Not Applicable.
Not Applicable
The present invention relates generally to the field of medical imaging systems. Particularly, the present invention relates to a method and system for optimal scheduling of image processing jobs in conjunction with off-line batch preprocessing and online on-demand processing tasks for computer-aided detection, review and diagnosis (CAD) workstation devices.
The U.S. patent Classification Definitions: 382/128 (class 382, Image Analysis, subclass 128, Biomedical application).
Prior art that discusses a similar subject to that considered here can be found in references 1 and 2. The systems described in those documents receives a “case” as a sequence of DICOM images, applies CAD processing to the entire “case”, and sends out a CAD report for that case. The “case-level” model of the system does not handle finer granularity of the process work. Therefore it can not meet the needs of interactive image processing tasks.
The system described here addresses the issues in prior arts in that the unit of work is an image (not a complete case), and the architecture described here is finer grained, allowing a mechanism for multiple priority streams of processing. This in turn allows for both interactive and batch processing within the same implementation, as opposed to the strictly off-line model described in references 1 and 2. Thus an essential difference between the present invention and prior art is its capability to meet the needs of interactive applications.
The present invention considers two types of imaging processing: opportunistic off-line preprocessing and interactive online processing. In a CAD workstation system, it is usually desirable to preprocess the images to generate automated findings from the images, such as, anatomy segmentations, and computer-aided cancer detection reports. When the system is used interactively by a user, further on-demand image processing is requested, and the result is required in real-time (i.e., interactively). An example of such online interactive image processing is lesion segmentation and assessment of a finding that is manually detected by the user. Existing CAD systems and workstations do not handle these two types of image processing tasks together in an optimal fashion.
A system and method for optimal scheduling of image processing jobs is provided. The system comprises an algorithm service that hosts both off-line batch algorithm preprocessing tasks and online on-demand algorithm processing tasks for computer-aided detection, review and diagnosis (CAD) workstation devices. Requests for processing come either from a DICOM service that receives images sent to the system, and forwards those for batch processing, or from an interactive workstation application, which requests interactive CAD processing. In order to support both behaviors, requests for processing are placed onto a queue which is sorted first by priority, and second by the time that the request is added to the queue. Requests for interactive processing from a workstation application are added to the queue with the highest priority, whereas requests for batch processing are added at a low priority. The algorithm service accepts and processes requests for computation from a single input queue. Cyclically until the queue is empty, it takes the top-most item from the queue and passes the request to the algorithms which it hosts, and when that request is completed, it sends a message to one or more output queues. In this way, low-priority batch processing requests are processed opportunistically whenever the computer is not processing a high-priority interactive processing task. Similarly, low priority batch processing tasks can be preempted prior to completion, if a high-priority interactive request is received on the input queue.
CAD algorithm—the code that performs the image specific processing. This code is hosted by the “algorithm service”, and is given a set of images to process, and it generates a set of reports (the CAD results).
Algorithm service—this is a windows service that is installed on a hosting computer. It is configured to start on system startup, and runs in the background, accepting requests for computation from an “input queue” and passing them to algorithm(s) it hosts, and when those are completed, it sends a message to one or more “output queues”.
DICOM service—this is another windows service that is installed on the hosting computer. The algorithm service and DICOM service can be installed on the same computer, but the architecture supports other combinations (including models where there is no DICOM service—the initiator of CAD processing can be any software that can send a message to the input queue). The DICOM service essentially operates as a configurable DICOM router—it listens for associations, and in the simplest model provides a storage class provider for DICOM images that are pushed to it. On receipt of such images, it stores them to disk (typically in DICOM “part-10” format), and sends a request to the algorithm service (via the input queue) to process that case. Once the CAD processing is completed, the DICOM service receives a message from the “output queue”, and uses this to trigger the conversion of the CAD report into an export stream (typically DICOM SR) which is sent to configured destinations.
Supporting services—
Interactive CAD processing fits into the architecture at the level of the queues (see
Periodically, even when a task is computing, the algorithm service checks for higher priority tasks that are waiting to be executed. If such a task is found on the queue (i.e., it is a new request), then this new request can pre-empt an already executing task. This is achieved by suspending the thread executing the existing task, and dispatching the new high priority task to a separate computation engine. The suspended task is resumed once the high priority task has completed.
The infrastructure introduces the following innovations to this domain:
Processing requests come from either a DICOM service for batch processing, or from a workstation application for interactive processing, with the requests differentiated by their relative priority.
Dispatch of algorithm processing as each image of a case is received,
Multiple processing streams in a single algorithm service.
These innovations result in the following benefits:
A single CAD infrastructure can support the needs of both batch and interactive processing, which means that the code for both can be centralized and shared between uses.
Minimal lag in the processing—since the images in a case are processed as received, if the algorithm processing occurs within the time of a single image transfer, then the worst case delay before a report is available is the time to process a single image. The typical model is to consider each case (e.g., containing 4 images in a mammography exam, or 200-500 images in a CT exam) as a single unit, with the result that the CAD processing does not start until the last image is received (so for example, this would mean a delay before report availability of 4× the time to process a single image in a typical screening mammography case). This feature of the system is most important for so-called “wet read” scenarios, where the patient is scanned, the images run through the processing, and the radiologist performs the read while the patient is still present. Of course many screening sites use a batch model, where the reading is deferred to a single session, but for sites that do immediate reading, CAD can only be useful if it is available at the same time as the images (of very shortly after them). Thus this feature is vital to making CAD usable in this reading model.
The trend in computing is more cores (CPUs) on single chip, and larger memories. Even a basic desktop system now typically has 2 cores, and 1 GB of memory is considered minimal. Desktop machines with 4 and even 8 cores are available this year, and it is quite common to have 8 GB of RAM on such a system. Even disk technology is undergoing a transformation, with the move to solid state (e.g., flash memory) drives. In order to take advantage of this evolution in the computing environment, the typical approach is to utilize threads to spread computational load across CPUs. The model here is to do this at two levels—the low level being the splitting of image processing tasks into bands that are assigned to different worker threads. This affords some speedup to a single operation, but for a complex sequence of operations that make up a large algorithm like mammography CAD, it has limited benefit (many of the steps in the processing cannot easily or productively utilize multiple threads, and there are many points requiring synchronization across threads). The second model employed in this new architecture is support for multiple processing streams within the algorithm service. The idea with this is that multiple cases can productively be processed in parallel within an algorithm service. This means that the throughput of the system can scale with the number of cores. A particular benefit of this design is that since multiple streams are sharing the memory, CPU and I/O resources of a single (multi-core) computer, the average usage of any of those resources tends to be lower than the sum of the peaks, because any algorithm instance cyclically uses those resources. In this new design, a single algorithm service maintains a pool of threads, a pool of execution engines (each capable of running an algorithm instance), and a pool of memory. These resources are shared across multiple jobs; with the benefit that the system can processes more jobs per hour than a system that supports only a single processing stream. This advance will of course be most useful at sites with heavy throughput needs (e.g., a site with multiple digital acquisition devices, with a single computer performing CAD for all of them)—so the advantages to the end user are lower cost and simplified configuration.
1. Patent application U.S. Ser. No. 11/440,978 “DICOM adapter service for CAD system”, May 25, 2006. 2. Patrick Heffernan and Heidi Zhang, “Software architecture for a CAD server”, CARS, International Congress Series 168 (2004), pages 861-866, 2004.
Number | Date | Country | |
---|---|---|---|
61008073 | Dec 2007 | US |