A method, system and computer program product for prioritized prefetching and caching operations based on a viewer application context within a picture archiving and communication system (PACS). The method includes querying a priority cache for a next imaging study with at least one medical image file requiring prefetching, receiving a next study index corresponding to the imaging study with a highest priority value, a caching operation, and the cache state of the imaging study, identifying the at least one medical image file with the highest priority value requiring prefetching, prefetching the at least one medical image file with the highest priority value requiring prefetching, and storing, in an application cache, the at least one prefetched medical image file of the imaging study with the highest priority value, the application cache corresponding to the associated caching operation and the cache state of the imaging study.
Legal claims defining the scope of protection, as filed with the USPTO.
identifying, by a priority engine of the viewer application, a set of imaging studies of the plurality of imaging studies, wherein each of the set of imaging studies includes at least one medical image file requiring prefetching for a caching operation; determining, by the priority engine, a priority value for each imaging study of the set of imaging studies based on a viewer application context associated with a respective imaging study; a corresponding study index, a series index, and an image index, a caching operation associated with the at least one medical image file of the imaging study requiring prefetching, and a cache state of the plurality of medical image files of the imaging study; querying, by the priority engine, a priority cache for a next imaging study with at least one medical image file requiring prefetching; receiving, by the priority engine, a next study index corresponding to the imaging study with a highest priority value, an associated caching operation, and the cache state of the imaging study, wherein the next study index is the corresponding study index, the series index, and the image index; identifying, by the priority engine, the at least one medical image file of the imaging study with the highest priority value; prefetching, by the priority engine, the at least one medical image file of the imaging study with the highest priority value; storing, in an application cache within the memory of the PACS, the at least one prefetched medical image file of the imaging study with the highest priority value, wherein the application cache corresponds to the associated caching operation and the cache state of the imaging study with the highest priority value; fetching at least one medical image file from the application cache when the associated caching operation is to be performed on the at least one medical image file; and executing the associated caching operation on the medical image file. storing each imaging study in a study queue, a series queue, or an image queue within a memory of the PACS based on the corresponding priority value, wherein each imaging study is stored with: . A computer-implemented method for prioritized prefetching and caching operations within a picture archiving and communication system (PACS), the PACS comprising: a viewer application and a plurality of imaging studies, each imaging study including one or more series of medical image files, each series of medical image files including a plurality of medical image files, wherein each medical image file includes a medical image captured by a medical imaging apparatus and associated digital imaging and communications in medicine (DICOM) data, wherein the viewer application interacts with the plurality of medical image files, the computer-implemented method comprising:
claim 1 identifying a first set of imaging studies within the set of imaging studies, the first set of imaging studies including at least one medical image file requiring prefetching for a first caching operation indicated by one or more user queries; identifying a second set of imaging studies within the set of imaging studies, the second set of imaging studies including at least one medical image file requiring prefetching for a second caching operation indicated by one or more user inputs selecting at least one imaging study; or identifying a third set of imaging studies within the set of imaging studies, the third set of imaging studies including at least one medical image file requiring prefetching for a third caching operation indicated by a user subscription. . The computer-implemented method of, wherein the identifying of the set of imaging studies of the plurality of imaging studies comprises at least one of:
claim 2 . The computer-implemented method of, wherein the identifying of the set of imaging studies of the plurality of imaging studies further comprises aggregating the first set of imaging studies, the second set of imaging studies, and the third set of imaging studies into the set of imaging studies of the plurality of imaging studies.
claim 1 . The computer-implemented method of, wherein the priority value for each imaging study includes at least one of an image level priority value, a series level priority value, or a study level priority value, and wherein the image level priority value is higher than the series level priority value, and wherein the series level priority value is higher than the study level priority value.
claim 1 . The computer-implemented method of, wherein the viewer application context associated with the respective imaging study includes the associated caching operation, the cache state of the plurality of medical image files of the imaging study, and data indicating whether there is a user input or a user query associated with the imaging study.
claim 1 data indicating whether there are active operations for medical image files associated with the image study; data indicating whether the image study and the associated medical image files are present in the application cache; or data indicating eligibility of the image study and the associated medical image files for each caching operation. . The computer-implemented method of, wherein the cache state of the image study comprises:
claim 1 . The computer-implemented method of, wherein the application cache comprises at least one of a decode image cache, an image file cache, or an image cache.
one or more computer processors; one or more non-transient computer-readable storage media; identify, by a priority engine of the viewer application, a set of imaging studies of the plurality of imaging studies, wherein each of the set of imaging studies includes at least one medical image file requiring prefetching for a caching operation; determine, by the priority engine, a priority value for each imaging study of the set of imaging studies based on a viewer application context associated with a respective imaging study; store each imaging study in a study queue, a series queue, or an image queue within a memory of the PACS based on the corresponding priority value, wherein each imaging study is stored with: a corresponding study index, a series index, and an image index, a caching operation associated with the at least one medical image file of the imaging study requiring prefetching, and a cache state of the plurality of medical image files of the imaging study; query, by the priority engine, a priority cache for a next imaging study with at least one medical image file requiring prefetching; receive, by the priority engine, a next study index corresponding to the imaging study with a highest priority value, an associated caching operation, and the cache state of the imaging study, wherein the next study index is the corresponding study index, the series index, and the image index; identify, by the priority engine, the at least one medical image file of the imaging study with the highest priority value requiring prefetching; prefetch, by the priority engine, the at least one medical image file of the imaging study with the highest priority value; store, in an application cache within the memory of the PACS, the at least one prefetched medical image file of the imaging study with the highest priority value, wherein the application cache corresponds to the associated caching operation and the cache state of the imaging study with the highest priority value; fetch at least one medical image file from the application cache when the associated caching operation is to be performed on the at least one medical image file; and execute the associated caching operation on the medical image file. program instructions to: program instructions stored on the computer-readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising: . A computer system for prioritized prefetching and caching operations within a picture archiving and communication system (PACS), the PACS comprising: a viewer application and a plurality of imaging studies, each imaging study including one or more series of medical image files, each series of medical image files including a plurality of medical image files, wherein each medical image file includes a medical image captured by a medical imaging apparatus and associated digital imaging and communications in medicine (DICOM) data, wherein the viewer application interacts with the plurality of medical image files, the computer system comprising:
claim 8 . The computer system of, wherein the program instructions to identify the set of imaging studies of the plurality of imaging studies comprise program instructions to: identify a first set of imaging studies within the set of imaging studies, the first set of imaging studies including at least one medical image file requiring prefetching for a first caching operation indicated by one or more user queries; identify a second set of imaging studies within the set of imaging studies, the second set of imaging studies including at least one medical image file requiring prefetching for a second caching operation indicated by one or more user inputs selecting at least one imaging study; or identify a third set of imaging studies within the set of imaging studies, the third set of imaging studies including at least one medical image file requiring prefetching for a third caching operation indicated by a user subscription.
claim 9 . The computer system of, wherein the program instructions to identify the set of imaging studies of the plurality of imaging studies further comprise program instructions to: aggregate the first set of imaging studies, the second set of imaging studies, and the third set of imaging studies into the set of imaging studies of the plurality of imaging studies.
claim 8 . The computer system of, wherein the priority value for each imaging study includes at least one of an image level priority value, a series level priority value, or a study level priority value, and wherein the image level priority value is higher than the series level priority value, and wherein the series level priority value is higher than the study level priority value.
claim 8 . The computer system of, wherein the viewer application context associated with the respective imaging study includes the associated caching operation, the cache state of the plurality of medical image files of the imaging study, and data indicating whether there is a user input or a user query associated with the imaging study.
claim 8 . The computer system of, wherein the cache state of the image study comprises: data indicating whether there are active operations for medical image files associated with the image study; data indicating whether the image study and the associated medical image files are present in the application cache; or data indicating eligibility of the image study and the associated medical image files for each caching operation.
claim 8 . The computer system of, wherein the application cache comprises at least one of a decode image cache, an image file cache, or an image cache.
identify, by a priority engine of the viewer application, a set of imaging studies of the plurality of imaging studies, wherein each of the set of imaging studies includes at least one medical image file requiring prefetching for a caching operation; determine, by the priority engine, a priority value for each imaging study of the set of imaging studies based on a viewer application context associated with a respective imaging study; store each imaging study in a study queue, a series queue, or an image queue within a memory of the PACS based on the corresponding priority value, wherein each imaging study is stored with: a corresponding study index, a series index, and an image index, a caching operation associated with the at least one medical image file of the imaging study requiring prefetching, and a cache state of the plurality of medical image files of the imaging study; query, by the priority engine, a priority cache for a next imaging study with at least one medical image file requiring prefetching; receive, by the priority engine, a next study index corresponding to the imaging study with a highest priority value, an associated caching operation, and the cache state of the imaging study, wherein the next study index is the corresponding study index, the series index, and the image index; identify, by the priority engine, the at least one medical image file of the imaging study with the highest priority value requiring prefetching; prefetch, by the priority engine, the at least one medical image file of the imaging study with the highest priority value; store, in an application cache within the memory of the PACS, the at least one prefetched medical image file of the imaging study with the highest priority value, wherein the application cache corresponds to the associated caching operation and the cache state of the imaging study with the highest priority value; fetch at least one medical image file from the application cache when the associated caching operation is to be performed on the at least one medical image file; and execute the associated caching operation on the medical image file. . A computer program product for prioritized prefetching and caching operations within a picture archiving and communication system (PACS), the PACS comprising: a viewer application and a plurality of imaging studies, each imaging study including one or more series of medical image files, each series of medical image files including a plurality of medical image files, wherein each medical image file includes a medical image captured by a medical imaging apparatus and associated digital imaging and communications in medicine (DICOM) data, wherein the viewer application interacts with the plurality of medical image files, the computer program product comprising a non-transient computer readable storage medium having program code embodied therewith, the program code executable by a processor to:
claim 15 . The computer program product of, wherein the program code to identify the set of imaging studies of the plurality of imaging studies comprises program code to: identify a first set of imaging studies within the set of imaging studies, the first set of imaging studies including at least one medical image file requiring prefetching for a first caching operation indicated by one or more user queries; identify a second set of imaging studies within the set of imaging studies, the first set of imaging studies including at least one medical image file requiring prefetching for a second caching operation indicated by one or more user inputs selecting at least one imaging study; identify a third set of imaging studies within the set of imaging studies, the third set of imaging studies including at least one medical image file requiring prefetching for a third caching operation indicated by a user subscription; aggregate the first set of imaging studies, the second set of imaging studies, and the third set of imaging studies into the set of imaging studies of the plurality of imaging studies.
claim 15 . The computer program product of, wherein the priority value for each imaging study includes at least one of an image level priority value, a series level priority value, or a study level priority value, and wherein the image level priority value is higher than the series level priority value, and wherein the series level priority value is higher than the study level priority value.
claim 15 . The computer program product of, wherein the viewer application context associated with the respective imaging study includes the associated caching operation, the cache state of the plurality of medical image files of the imaging study, and data indicating whether there is a user input or a user query associated with the imaging study.
claim 15 . The computer program product of, wherein the cache state of the image study comprises: data indicating whether there are active operations for medical image files associated with the image study, data indicating whether the image study and the associated medical image files are present in the application cache, or data indicating eligibility of the image study and the associated medical image files for each caching operation.
claim 15 . The computer program product of, wherein the application cache comprises at least one of a decode image cache, an image file cache, or an image cache.
Complete technical specification and implementation details from the patent document.
The present invention relates to the field of medical picture archiving and communication systems (PACS); and more particularly relates to a system and method for prioritizing prefetching and caching operations based on application context within a PACS.
In the field of medical imaging, the use of PACS has revolutionized the way medical professional's store, access, and analyze patient images. For example, PACS allows healthcare professionals to quickly access and conduct a detailed review of a plurality of medical images in digital format, which can lead to faster and more accurate diagnoses and treatment planning. PACS also allows multiple healthcare professionals to simultaneously access medical images for a particular patient, which provides an efficient way to communicate amongst healthcare professionals and allows for a second opinion in a given medical situation.
However, within a PACS, displaying medical images at interactive frame rates is critical for interpretation workstations, such as radiology workstations. To achieve the fastest initial display and smoothest scrolling performance, all images would ideally be cached locally on the workstation rather than relying on on-demand streaming from a server as the user interacts with the system. One solution is to preemptively download studies to which a user has subscribed based on queries relevant to the user and prioritizing them based on the query order. However, at times, a user may select other studies to open or download that may not be cached on the workstation. For such cases, providing priority retrieval to selected studies may be needed.
Accordingly, there exists a need for improved methods and systems within PACS that enable prioritized prefetching and caching operations based on an application context.
It is, therefore, an aspect of the present invention to provide a computer-implemented method for prioritized prefetching and caching operations within a picture archiving and communication system (PACS), the PACS including: a viewer application and a plurality of imaging studies. Each imaging study includes one or more series of medical image files, each series of medical image files including a plurality of medical image files. Each medical image file includes a medical image captured by a medical imaging apparatus and associated metadata. The viewer application interacts with the plurality of medical image files.
The computer-implemented method includes: identifying, by a priority engine of the viewer application, a set of imaging studies of the plurality of imaging studies, wherein each of the set of imaging studies includes at least one medical image file requiring prefetching for a caching operation; determining, by the priority engine, a priority value for each imaging study of the set of imaging studies based on a viewer application context associated with a respective imaging study; storing each imaging study in a study queue, a series queue, or an image queue within a memory of the PACS based on the corresponding priority value, wherein each imaging study is stored with a corresponding study index, a series index, and an image index, a caching operation associated with the at least one medical image file of the imaging study requiring prefetching, and a cache state of the plurality of medical image files of the imaging study; querying, by the priority engine, a priority cache for a next imaging study with at least one medical image file requiring prefetching; receiving, by the priority engine, a next study index corresponding to the imaging study with a highest priority value, an associated caching operation, and the cache state of the imaging study, wherein the next study index is the corresponding study index, the series index, and the image index; identifying, by the priority engine, the at least one medical image file of the imaging study with the highest priority value requiring prefetching; prefetching, by the priority engine, the at least one medical image file of the imaging study with the highest priority value; storing, in an application cache within the memory of the PACS, the at least one prefetched medical image file of the imaging study with the highest priority value, wherein the application cache corresponds to the associated caching operation and the cache state of the imaging study with the highest priority value; fetching at least one medical image file from the application cache when the associated caching operation is to be performed on the at least one medical image file; and executing the associated caching operation on the medical image file.
Another aspect of the present invention provides a computer system for prioritized prefetching and caching operations within a PACS, the PACS comprising: a viewer application and a plurality of imaging studies. Each imaging study includes one or more series of medical image files, each series of medical image files including a plurality of medical image files. Each medical image file includes a medical image captured by a medical imaging apparatus and associated metadata. The viewer application interacts with the plurality of medical image files. The computer system includes one or more computer processors; one or more non-transient computer-readable storage media; program instructions stored on the computer-readable storage media for execution by at least one of the one or more computer processors.
The program instructions include program instructions to: identify, by a priority engine of the viewer application, a set of imaging studies of the plurality of imaging studies, wherein each of the set of imaging studies includes at least one medical image file requiring prefetching for a caching operation; determine, by the priority engine, a priority value for each imaging study of the set of imaging studies based on a viewer application context associated with a respective imaging study; store each imaging study in a study queue, a series queue, or an image queue within a memory of the PACS based on the corresponding priority value, wherein each imaging study is stored with a corresponding study index, a series index, and an image index, a caching operation associated with the at least one medical image file of the imaging study requiring prefetching, and a cache state of the plurality of medical image files of the imaging study; query, by the priority engine, a priority cache for a next imaging study with at least one medical image file requiring prefetching; receive, by the priority engine, a next study index corresponding to the imaging study with a highest priority value, an associated caching operation, and the cache state of the imaging study, wherein the next study index is the corresponding study index, the series index, and the image index; identify, by the priority engine, the at least one medical image file of the imaging study with the highest priority value requiring prefetching; prefetch, by the priority engine, the at least one medical image file of the imaging study with the highest priority value; store, in an application cache within the memory of the PACS, the at least one prefetched medical image file of the imaging study with the highest priority value, wherein the application cache corresponds to the associated caching operation and the cache state of the imaging study with the highest priority value; fetch at least one medical image file from the application cache when the associated caching operation is to be performed on the at least one medical image file; and execute the associated caching operation on the medical image file.
Another aspect of the present invention provides a computer program product system for prioritized prefetching and caching operations within a PACS, the PACS including a viewer application and a plurality of imaging studies, each imaging study including one or more series of medical image files, each series of medical image files including a plurality of medical image files. Each medical image file includes a medical image captured by a medical imaging apparatus and associated metadata. The viewer application interacts with the plurality of medical image files. The computer program product includes a non-transient computer readable storage medium having program code embodied therewith.
The program code executable by a processor to: identify, by a priority engine of the viewer application, a set of imaging studies of the plurality of imaging studies, wherein each of the set of imaging studies includes at least one medical image file requiring prefetching for a caching operation; determine, by the priority engine, a priority value for each imaging study of the set of imaging studies based on a viewer application context associated with a respective imaging study; store each imaging study in a study queue, a series queue, or an image queue within a memory of the PACS based on the corresponding priority value, wherein each imaging study is stored with corresponding study, series, and image indices, a caching operation associated with the at least one medical image file of the imaging study requiring prefetching, and a cache state of the plurality of medical image files of the imaging study; query, by the priority engine, a priority cache for a next imaging study with at least one medical image file requiring prefetching; receive, by the priority engine, a next study index corresponding to the imaging study with a highest priority value, an associated caching operation, and the cache state of the imaging study, wherein the next study index is the corresponding study index, the series index, and the image index; identify, by the priority engine, the at least one medical image file of the imaging study with the highest priority value requiring prefetching; prefetch, by the priority engine, the at least one medical image file of the imaging study with the highest priority value; store, in an application cache within the memory of the PACS, the at least one prefetched medical image file of the imaging study with the highest priority value, wherein the application cache corresponds to the associated caching operation and the cache state of the imaging study with the highest priority value; fetch at least one medical image file from the application cache when the associated caching operation is to be performed on the at least one medical image file; and execute the associated caching operation on the medical image file.
Additional aspects, advantages and novel features of the present invention will be set forth in part in the description which follows and will in part become apparent to those in the practice of the invention, when considered with the attached figures.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit," "module" or "system." Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer-readable medium(s) having computer-readable program code/instructions embodied thereon.
Any combination of computer-readable media may be utilized. Computer-readable media may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of a computer-readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, radio frequency (RF), etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on a user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
1 FIG. 100 102 105 107 104 103 109 109 109 With initial reference to, a block diagram illustrating an information processing environment, generally, for capturing, storing, and/or analyzing medical images that can be used in association with an embodiment of the present invention is provided. The information processing environment can include one or more of an imaging apparatus, one or more servers (e.g., an image serverand a report server), and computing devices (e.g., a medical care workstation (WS)and an interpretation WS) communicatively coupled together via a network. It should be understood that two or more of the aforementioned components may be combined in a single unit. Networkcan be made up of telecommunication network technologies that are based on physically wired, optical, and/or wireless radio-frequency methods that may be arranged in a variety of network topologies. In general, networkcan be any set of digital interconnections that allow computing devices to use common communication protocols to communicate with each other.
102 130 120 102 130 120 102 106 109 102 102 Imaging apparatusmay be one or more imaging devices that include an emitterand a sensor. Imaging apparatusis configured to scan the body of a subject by exposing the subject to signals emitted by emitter, capturing those signals (or signal reflections) via sensor, and thereby obtain detailed internal images of the subject's body (e.g., images of the anatomy and the physiological processes inside the body). The medical images generated by imaging apparatusmay be stored in imaging databaseand/or other database that is communicatively coupled to network. For example, imaging apparatusis configured to generate sequential tomographic images of a subject. Imaging apparatusmay capture tomographic images along one or more anatomical planes (e.g., the transaxial plane, coronal plane, sagittal plane, median plane, parasagittal plane, and other anatomical planes) of subjects.
130 102 102 Applicable signals emitted by emitterinclude, but are not limited to, strong magnetic fields, magnetic field gradients, radio waves, X-rays, and ionizing radiation. Imaging apparatuspreferably generates heterogeneous sequential tomographic images of the subject. Imaging apparatuscan generate medical images using one or more medical imaging techniques that include, but are not limited to, X-ray, CT scan, MRI, PET, MIP, and/or other medical imaging technique capable of generating internal images of a subject's body or part thereof.
105 107 105 106 107 108 104 The servers may each include a software program providing a database management system (DBMS) installed therein. In some embodiments, image serverand report servercan be included in one or more computing devices. The servers may include one or more storage media (e.g., flash memory, solid state drive (SSD), or hard disk drive (HDD)) for storing information. For example, image servercan include an image database (DB)for at least storing medical images. Report servermay include a report DBfor at least storing processed reports. Medical care WScan be used by healthcare professionals (e.g., doctors and nurses) to at least observe medical images in detail, view interpretation reports, and/or generate electronic medical records.
104 105 107 104 110 103 109 Medical care WSmay transmit a viewing request for medical images to image server, display the received medical images, transmit a viewing request for the associated interpretation report(s) to report server, and/or display the received interpretation report. Medical care WSmay perform the above processes via executing software programs for respective processes. The steps described in the instant disclosure may be performed by one or more control circuits and/or processors. The interpretation reports can include images analyzed by an information processing programincluded in interpretation WS(or other computing device communicatively coupled to network).
103 106 109 103 103 100 103 100 103 103 109 110 110 110 103 110 109 Interpretation WSis a computing device that can be configured to analyze or interpret one or more medical images (e.g., stored in image DBor other data store communicatively coupled to network) as described in the present disclosure. Interpretation WSmay be used by user (e.g., a healthcare professional such as a radiologist) to interpret one or more medical images and/or create interpretation reports. In certain instances, interpretation WSmay be proximate to the other elements in information processing environment, such as in a medical center or hospital. In other instances, interpretation WSmay be remote to the other elements in information processing environment. For example, interpretation WSmay be in a home or remote office of a medical professional (e.g., a radiologist). Interpretation WS, or other processor(s) communicatively coupled to network, can perform steps defined by an information processing program. As will be discussed in more detail below, information processing programis computer code that enables the display, navigation, examination, and/or annotation of sets of medical images. Information processing programcan be stored in a database communicatively coupled to the interpretation WS. Alternatively, information processing programcan be stored in one or more databases that are communicatively coupled to network.
110 200 200 200 242 102 106 108 109 242 248 2 5 FIGS.- Information processing programmay be or may include a picture archiving and communication system (PACS). Referring now to, embodiments of the present invention provide computer-implemented methods, systems, and computer program products for prioritizing prefetching and caching operations based on application context within PACS. PACSincludes a plurality of imaging studies including a plurality of medical image files, each medical image file including a medical imagecaptured by one or more medical imaging apparatusand stored in one or more databases,that are communicatively coupled to network. Each of the plurality of medical image files includes a medical imageand corresponding metadata(e.g., digital imaging and communications in medicine (DICOM) formatted data). The metadata may comprise a plurality of data objects corresponding to information entities (IEs). For example, the data objects may correspond to information entities such as a patient, a study, a medical device, a physician's visit, a series of images, a patent schedule, a document, a diagnostic interpretation, etc. The data objects may include attributes consisting of a tag, a value representation describing the data type and format, and an alphanumeric data value.
200 103 104 220 202 103 104 220 250 222 222 242 102 After logging in to PACSon interpretation WSor medical care WS, a worklist graphical user interface (GUI)may be provided in a first windowdisplayed on a display of WS,. Worklist GUImay include one or more panesdisplaying one or more lists of a plurality of imaging studies. Each of plurality of imaging studiesmay be associated with one or more medical image files, each medical image file including a medical imageof a subject (e.g., person) captured by one or more medical imaging apparatuses.
222 220 204 240 103 104 240 246 242 222 242 246 242 248 When an imaging studyis selected from worklist GUI, a second windowproviding a viewer GUImay be displayed on the display of WS,. Viewer GUIincludes at least one panethat is configured for displaying at least one medical imageof the selected at least one imaging study. The at least one medical imageis displayed in at least one panefor viewing by medical professionals for the purpose of reviewing, evaluating and diagnosing any medical conditions that may be present in the images subject. The at least one medical imageincludes a metadata overlay layer comprising metadata.
240 246 242 222 In some embodiments, viewer GUImay include a plurality of panes, wherein each pane displays an image of the plurality of medical imagesof selected imaging study.
1 103 104 200 As noted above, within a PACS, displaying medical images at interactive frame rates is critical for interpretation workstations. Medical image file sizes within a PACS can range fromkilobyte to hundreds of megabytes depending on the type of procedure and body part being imaged. To achieve the fastest initial display and smoothest scrolling performance, the images a user selects to view would ideally be cached locally on the workstation (e.g., WS) rather than relying on on-demand streaming from a server as the user interacts. To accomplish this fast initial display and smooth scrolling performance, subscribed studies may be preemptively download based on queries relevant to the user and prioritizing them based on the query order. However, as PACSis being used, a user may select other studies, that may not be cached on the workstation, to open or download. For such cases, priority to selected studies may be needed.
Ultimately, the system must determine an optimal next image and operation to dispatch, given application context, subscriptions, and resource constraints such as CPU cores and storage space. The system should achieve eventual consistency and minimize the possibility of cyclical caching and flushing operations. The system must also have flexibility to support the DICOM information model, allowing priorities specified at various hierarchy levels.
3 5 FIGS.A- 200 200 410 400 103 104 222 408 406 106 402 105 404 102 104 103 406 408 222 242 102 410 412 With additional reference to, embodiments of the present invention provide computer-implemented methods, systems, and computer program products for prioritized prefetching and caching operations based on a viewer application context within PACS. PACSincludes a viewer applicationhosted on a client device(e.g., interpretation WSor medical care WS) and a plurality of imaging studiesstored in an image file storeand managed by a database(e.g., image DB) on one or more servers(e.g., image server). Image servicemay be used by one or more electronic devices (e.g., imaging apparatus, medical care WSand interpretation WS, etc.) to access image metadata from databaseand to read image medical image files from or write medical image files to an image file store. Each imaging studymay include one or more series of medical image files. Each series of medical image files may include a plurality of medical image files. Each medical image file includes a medical imagecaptured by a medical imaging apparatus (e.g., imaging apparatus) and associated metadata (e.g., DICOM formatted data). Viewer applicationinteracts with the plurality of medical image files, prefetching and caching the medical image files in image file cache.
300 410 420 302 222 418 220 240 3 3 FIGS.A-C With additional reference to a computer-implemented methodshown in, viewer applicationincludes a priority enginethat identifies, at operational step, a set of imaging studies of the plurality of imaging studies, wherein each of the set of imaging studies includes at least one medical image file requiring prefetching for a caching operation. The aforementioned identification may include identifying a first set of imaging studies indicated by one or more user queries, identifying a second set of imaging studies indicated by one or more user inputs selecting at least one imaging study, and identifying a third set of imaging studies indicated by a user subscription, and aggregating the first set of imaging studies, the second set of imaging studies, and the third set of imaging studies into the set of imaging studies of the plurality of imaging studies. It should be understood that a user may query imaging studies, select imaging studies or medical images within an imaging study, and subscribe to imaging studies via viewer user interface (UI) modules(e.g., worklist GUIand viewer GUI).
304 420 At operational step, priority enginedetermines a priority value for each imaging study of the set of imaging studies based on a viewer application context associated with a respective imaging study. The priority value for each imaging study may include at least one of an image level priority value, a series level priority value, or a study level priority value, wherein the image level priority value is higher in priority than the series level priority value and the series level priority value is higher in priority than the study level priority value. Additionally, the viewer application context associated with the respective imaging study includes an associated caching operation to be performed on at least one medical image of the imaging study, a cache state of the plurality of medical image files of the imaging study, and data indicating whether there is a user input or a user query associated with the imaging study.
306 420 448 446 444 440 432 450 452 454 At operational step, each imaging study in the set of imaging studies is stored by priority enginein a study queue bucket, a series queue bucket, or an image queue bucketof a priority study cachewithin priority cachebased on the corresponding priority value. Each imaging study may be stored with corresponding study, series, and image indices, a caching operation associated with the at least one medical image file of the imaging study requiring prefetching, and a cache state of the plurality of medical image files of the imaging study. The cache state may be at least one of an image cache state, a series cache state, or a study cache state. The cache state may include data indicating whether there are active operations for medical image files associated with the image study, data indicating whether the image study and the associated medical image files are present in the application cache, data indicating eligibility of the image study and the associated medical image files for each caching operation.
5 FIG. 500 502 504 506 508 510 512 514 1 2 1 2 1 2 With additional reference to caching operation based image, series, and study queue buckets illustrated in, caching operations may include downloading an object(e.g., a medical image file), flushing an image file from a specific memory cache, flushing an image file from a specific memory cache to a file, decoding a medical image file, reading a stored medical image file, writing a medical image file to memory, deleting a medical image file, flushing a decoded medical image file, and the like. Each caching operation may have an associated operation cache bucket associated with each of the various priority levels. For example, each caching operation may have an operation cache bucket associated with each image level priority value (e.g., image level priority value P, image level priority value P, et cetera), a cache bucket associated with each series level priority value (e.g., series level priority value P, series level priority value P, etc.), and a cache bucket associated with each study level priority value (e.g., study level priority value P, study level priority value P, et cetera). In certain embodiments, a round-robin ordering of operations may be utilized for items (i.e., image of an imaging study needing to be prefetched) with equal priority levels.
502 2 500 2 Within a caching operation, image level priority values are higher in priority than series level priority values, and series level priority value are higher in priority than study level priority values. In some instances, a caching operation may have a priority bucket with more than one item having a same priority level. For example, flushing memory operationmay have two items with an image level priority value of Por download operationmay have five items with a series level priority value of P.
308 420 432 432 432 440 442 436 442 436 5 FIG. At operational step, priority enginequeries priority cachefor a next imaging study with at least one medical image file requiring prefetching. To allow efficient queries of the next object/operation pair to dispatch, the system maintains caches of object/operation eligibility at various hierarchy levels within priority cache. Priority cachemay be a data structure including priority study cache, study priority buckets, an image retry queue, and the like. Study priority bucketsmay include a queue of imaging study indices corresponding to medical studies including at least one medical image needing to be prefetched. A study priority bucket may correspond to each caching operation for each priority level. For example, each cell ofmay correspond to a study priority bucket. Image retry queuemay include, for example, items that were unsuccessfully prefetched.
310 420 At operational step, priority enginereceives a next study index or identifier corresponding to the imaging study with a highest priority value, an associated caching operation, and the cache state of the imaging study. A study index or identifier may include a corresponding study index or identifier, a series index or identifier, and an image index or identifier corresponding to the imaging study. The indices may include one or more alpha-numeric characters. In some embodiments, subsequent image indices within a series may be sequential or alphabetical, and subsequent series indices within a study may be sequential or alphabetical.
312 420 At operational step, priority engineidentifies the at least one medical image file of the imaging study with the highest priority value requiring prefetching. If the highest priority value is an image level priority value, then the indicated image is immediately returned. If the highest priority value is a series level priority value, the series queue within the study is queried for the next series, the range of image indices the series covers within the study is retrieved, within the range of image indices the images buckets of the study are queried, and the first image of the series within the study needing to be prefetched is returned. If the highest priority value is a study level priority value, the images buckets of the study are queried and the first image of the series within the study needing to be prefetched is returned.
314 420 430 420 434 434 422 424 426 At operational step, priority engineprefetches the at least one medical image file of the imaging study with the highest priority value. A message handlerof priority enginesends an operation and an image to an image operation dispatcher. Image operation dispatchersends the operation and the image to an image downloader, an image decoder, an image cache accessor, or the like based on the operation.
316 426 412 414 416 636 316 300 302 420 420 318 At operational step, the at least one prefetched medical image file of the imaging study with the highest priority value is returned to image cache accessorand stored in an application cache (e.g., image file cache, a decoded image cache, an image cache, or the like) within a memory of the PACS (e.g., a system memory). The application cache corresponds to the associated caching operation and the cache state of the imaging study with the highest priority value. After operational step, computer-implemented methodmay repeatedly return to operational stepto update the priority values in priority cacheand query priority cachefor the next caching operation to perform and dispatch those operations while proceeding in parallel to operational step. After a medical image file is prefetched and stored in an application cache, one or more cache states may be updated to reflect updated states and eligibilities.
318 320 At operational step, at least one medical image file from the application cache is fetched when the associated caching operation is to be performed on the at least one medical image file. At operational step, the associated caching operation is executed on the medical image file.
6 FIG. 600 600 612 624 626 628 632 634 636 638 612 640 624 626 612 612 641 643 641 624 634 640 643 612 632 645 612 Referring to, an exemplary computing environmentis shown that can be utilized through programming to implement any of the processing thus far described. The computing environmentmay comprise a computerincluding a system busthat couples a video interface, network interface, one or more serial ports, a keyboard/mouse interface, and a system memoryto a Central Processing Unit (CPU). Computermay also include a Graphics Processing Unit (GPU) or one or more other special or general purpose processing units. A monitor or displayis connected to busby video interfaceand provides the user with a graphical user interface to view, edit, and otherwise manipulate items displayed on computer. The graphical user interface allows the user to enter commands and information into computerusing a keyboardand a user interface selection device, such as a mouse or other pointing device. Keyboardand user interface selection device are connected to busthrough keyboard/mouse interface. The displayand user interface selection deviceare used in combination to form the graphical user interface which may allow a user to implement at least a portion of the present invention. Other peripheral devices may be connected to computerthrough serial portor universal serial bus (USB) drivesto transfer information to and from computer.
636 624 644 646 648 950 612 652 654 956 612 645 958 612 652 654 656 645 658 624 652 654 656 645 658 612 612 612 a a a a a The system memoryis also connected to busand may include ROM, RAM, an operating system, a basic input/output system (BIOS), application programsand program data. The computermay further include a hard disk drivefor reading from and writing to a hard disk, a magnetic disk drivefor reading from and writing to a removable magnetic disk (e.g., floppy disk), and an optical disk drivefor reading from and writing to a removable optical disk (e.g., CD ROM or other optical media). The computermay also include USB drivesand other types of drives for reading from and writing to flash memory devices (e.g., compact flash, memory stick/PRO and DUO, SD card, multimedia card, smart media card), and a scannerfor scanning items such as digital images to be downloaded to computer. A hard disk interface, magnetic disk drive interface, an optical drive interface, a USB drive interface, and a scanner interfaceoperate to connect busto hard disk drive, magnetic disk drive, optical disk drive, USB driveand a scanner, respectively. Each of these drive components and their associated computer-readable media may provide computerwith non-volatile storage of computer-readable instruction, program modules, data structures, application programs, an operating system, and other data for the computer. In addition, it will be understood that computermay also utilize other types of computer-readable media in addition to those types set forth herein, such as digital video disks, random access memory, read only memory, other types of flash memory cards, magnetic cassettes, and the like.
628 660 624 109 109 612 624 662 109 632 664 612 612 Network interfaceprovides a communication pathbetween busand network, which allows notifications, information and other data to be communicated through networkfrom any of the previously identified devices, and optionally saved in a memory, to the computer. This type of logical network connection is commonly used in conjunction with a local area network. Images may also be communicated from busthrough a communication pathto networkusing serial portand a modem. Using a modem connection between the computerand other computing devices, databases, or the like may be used in conjunction with a wide area network or the Internet. It will be appreciated that the network connections shown herein are merely exemplary, and it is within the scope of the present invention to use other types of network connections between computerand other computing devices including both wired and wireless connections.
As discussed above, embodiments of the present invention provide improved methods and communication systems within PACS that enable prioritized prefetching and caching operations based on application context.
Based on the foregoing, method, computer system, and program product have been disclosed in accordance with the present invention. However, numerous modifications and substitutions can be made without deviating from the scope of the present invention. Therefore, the present invention has been disclosed by way of example and not limitation.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
November 5, 2024
May 7, 2026
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.