Abstract:
This invention relates to a method and system for remotely monitoring computer-aided detection (CAD) system processing status. In film-based CAD systems digital images are created by a film digitizer, which is typically loaded with 50 or 100 films. Occasionally, film feeding errors occur which halt the digitization. This invention provides a method and system for detecting the stoppage and for notifying an operator who is not in the vicinity of the digitizer. Notification is accomplished by a variety of methods including pager, telephone, cell phone, and mobile computing devices. In addition to notification of stoppages, the operator may choose to be notified when a certain number of films remain to be processed. This allows the digitizer to be loaded with additional films before the CAD system completes processing of the originally loaded set of films. System efficiency is increased by eliminating idle intervals where the CAD system is stopped awaiting input data.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
   This application claims the benefit of U.S. Provisional application Ser. No. 60/444,919 filed Feb. 4, 2003, incorporated herein by reference. 

   BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   This invention relates to a method and system for remotely monitoring processing status in computer-aided detection (CAD) systems. 
   2. Discussion of Related Prior Art 
   Medical CAD systems are commercially available to assist in the detection of breast and lung cancer, including products by iCAD Inc. (Hudson, N.H.) and Deus Technologies (Rockville, Md.). CAD systems process digital versions of medical images to produce an output indicating potentially cancerous regions. When the medical image is a film, a film digitizer is used to create the digital image. In practice, operators use CAD systems to process hundreds of films each day by way of batch feeding, where many films are placed in an input tray, then mechanically fed into the digitizer. The CAD system operator typically has many other duties at locations where the CAD system is not visible, and does not monitor the digitization process. 
   A typical CAD system configuration is shown in  FIG. 1 . System components are housed in a console, comprising a film digitizer, computer, and monitor. The film feeding process is susceptible to failure from situations such as double feeds or jams. Furthermore, digitizers may issue firmware error codes when internal device errors cause the digitization process to halt. When an error in digitization occurs, a message corresponding to the error code may be displayed on the monitor. Current systems can notify only an operator near the monitor. Consequently, when the operator returns to the CAD system and the message received by the operator, processing has been stopped for an interval of time. Any stoppage in film feeding is costly in terms of lost processing time. 
   Consider the situation of an operator starting a batch process of 25 cases near the end of the workday. The operator loads the films into the digitizer and initiates CAD processing. If a film happens to jam after the first case, the remaining 24 cases must be processed the next day. Assuming the system requires an average of 5 minutes to process a case, it will take 2 hours to complete running CAD for these cases. 
   The primary purpose of CAD systems is to assist radiologists in the detection of cancer. However, radiologists also face economic realities and CAD systems are costly medical devices. In the United States, the federal government provides reimbursement for each mammographic study read with CAD assistance. It is sound business practice to maximize the number of studies provided to the CAD system. 
   The introduction of CAD equipment to clinics has increased the workload for radiological technologists. Radiological technologists working in mammography clinics are responsible for a variety of tasks of including exposing mammograms, developing films, and keeping associated records, all while maintaining efficient workflow. The technologist does not have the time to monitor the digitization process at the CAD system. Yet, the medical benefits of timely availability of CAD results for the patient, and the economic benefits of a continuously running CAD machine require the digitization process be kept running. 
   Given the economic and workflow factors, it is therefore desirable to provide a method and system to provide CAD processing status information to an operator who is remotely located from the CAD system. 
   SUMMARY OF THE INVENTION 
   The present invention provides a method and system for remotely monitoring computer-aided detection system processing status. Specifically, the present invention provides of notification of a remotely located user in the event that a delay or stoppage of a system for performing CAD processing of images is detected. 
   In one aspect of the invention, a method is provided for remote monitoring of status information to a film-based CAD system user comprising: providing a CAD system with a film digitizer; providing films to be processed to the film digitizer; performing a processing operation on the films; identifying a status change in the digitizer during the processing operation; and transmitting notification of the status change to a user located remotely from the digitizer. 
   In another aspect of the invention, a method is provided for operating a digitizer comprising: providing a CAD system, the CAD system including a film digitizer and a user specific configuration file having information for initiating contact with a user; providing films to be processed to the film digitizer; performing a processing operation on the films; identifying a status change in the digitizer during the processing operation; and transmitting notification of the status change to a user located remotely from the digitizer. 
   In a further aspect of the invention, a method is provided for remote monitoring of status information to a film-based CAD system user comprising: providing a CAD system with a film digitizer; providing films to be processed to the film digitizer; performing a processing operation on the films; identifying a status change in the digitizer during the processing operation; and initiating contact with a user located remotely from the digitizer in response to the identification of a status change. 
   In yet another aspect of the invention, a method is provided for remote monitoring of status information to a CAD system user comprising: providing input imagery to the CAD system; performing a processing operation on the input imagery; identifying a status change in the processing operation; and transmitting notification of the status change to a user located remotely from the CAD system. 
   Other objects and advantages of the invention will be apparent from the following description, the accompanying drawings and the appended claims. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  diagrammatically illustrates a prior art system displaying a processing status message on an operator console; 
       FIG. 2  diagrammatically illustrates the overall architecture of the present invention; 
       FIG. 3  illustrates an exemplary operator config file; 
       FIG. 4 . is a flow chart illustrating a process for detecting a halted process; 
       FIG. 5  is a flow chart illustrating a process for notifying a remotely located user; and 
       FIG. 6  illustrates an exemplary notification. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
   An overview of the invention is provided in  FIG. 2 . The CAD system console  100 , comprises a housing for film digitizer  110 , a computer  120 , and a monitor  130 . The computer in the CAD system console is provided with a variety of communication devices, comprising telephonic connection  300 , a wireless access point  400 , and a local area network  500 . Operator config files  200 , contains operator specific address information, such as pager and telephone numbers, email address, IP address, preference of notification details, and delivery options. A system config file  210  contains information specific to the network communication paths and a CAD system notification option. 
   When an event occurs that halts CAD processing, a notification is transmitted to one or more operators via the method specified in the operator configuration files. Notifications can be in the form of a simple message, such as a message box displayed on a screen. Alternatively, notification can provide detailed information, such as a hypertext document including the number of cases or films remaining to be processed, the time and nature of the halt, and so on. 
   In the case of telephonic notification to an operator&#39;s pager  310 , notification  315  is a text message. In the case of notification by phone  320 , notification  325  is a voice message. The pager and phone may be caller-ID enabled, and in this situation, the operator is assumed to recognize the calling number. Therefore, the operator would know to check the CAD processing when a call is received from the CAD system. Alternatively, the operator may choose to listen to additional information provided in a voice message. In a preferred embodiment, the operator is first notified by a caller-ID enabled device and has the option of requesting further information. 
   In facilities with a remote area network  500  and monitors  510  in multiple locations, the notification may be sent to remote monitors according to a predetermined preference specified in a configuration file. In a preferred embodiment, a notification of a halt in processing  520  is displayed on a predetermined set of monitors. In another embodiment, the notification is broadcast only to the monitor(s) currently in use by a predetermined set of operators. Alternatively, notification  520  is an email message notifying an operator of a halt in processing. 
   In facilities with wireless networks, a wireless access point  400 , communicates with a user&#39;s mobile computing device  410 , to display a notification  420 . Mobile computing devices comprise personal digital assistants, wireless-enabled laptop computers and cell phones with wireless internet capability. Notification  420  can be in the form of a message box displayed on screen or an email message. 
   Preferably, worklist information is made available to the remotely located operator. A worklist is a set of patient identifiers with case information, processing status and operator identification. The set of patient identifiers corresponds to the collection of films input to the CAD system. Case information includes the number of films in the case. Processing status can be “pending”, “in progress”, “halted”, or “completed”. The worklist may be conveyed in an ASCII or hypertext formatted email message. 
   Operator Config File 
   Operator config files are used to specify delivery option, message content and operator address information. An operator config file contains operator specific address information, such as pager or phone numbers, email address, IP address, preference of notification details, and delivery options. A format for an operator config file is shown in  FIG. 3 ,  299 . Fields in the operator config file are indicated within angled brackets (&lt; &gt;) and variable names are shown between percent signs (%). 
   Two fields in an operator config file determine the identity and notification channels for the associated operator. The operator identity is stored under the field labeled &lt;operator_id&gt;. The variable storing identity related information of the operator is % op_id %. Preferred notification channels are determined by reading values for variables under the &lt;channel_preference&gt; field. Since an operator may desire to be notified by more than one method, the channel preference field is allowed to contain more than one entry. In this example, allowed values for % preferred_channel_n % include: “pager”, “email”, “voice_phone”, “enabled_phone”, and “network”. A third field, &lt;low_film_warn&gt; indicates whether or not the operator wishes to be notified when a predetermined minimum number of films remain to be processed. The variable % low_film_yes_no % stores the “yes” or “no” option according to the operators wishes. 
   Subsequent fields in the operator config file specify address information and message content settings. The &lt;pager&gt; field contains a variable storing the telephone number of the pager, % pager_number %. In a preferred embodiment, the option to transmit an alphanumeric error code is provided by the variable % error_code %. The value of this variable is obtained from a halt code provided by the CAD system. The &lt;email&gt; field contains variables for one or more email addresses, % email_address_n %, where the operator desires notification messages to be sent, as indicated by variables % email_address — 1% and % email_address — 2%. Message content of the email notification is determined by providing one or more variable names. Here, % e_notify_msg % indicates a text message suitable for email is to be populated by parsing a halt code provided by the CAD system. Additionally, the worklist information can be provided by storage and transmission of the variable % worklist %. 
   Parameters for a voice-only telephonic notification are provided under the &lt;voice_phone&gt; field. The telephone number is stored in the variable % voice_number %, and elements in the voice message are determined by the contents of the variable % v_notify_msg %. The contents of % v_notify_msg % are later parsed by a text-to-speech or other application for conveying textual information telephonically. 
   Parameters for a web-enabled telephone are provided under the &lt;enabled_Phone&gt; field. The telephone number is stored in the variable % enabled_phone_number %. Message content is determined by providing one or more variable names. In this example, the notification will consist of values stored in the % ep_notify_msg % variable along with worklist information in the % worklist % variable. It is also possible for the variable % v_notify_msg % to be stored under the &lt;enabled_phone&gt; field for audio delivery of selected information. 
   Notifications may also be provided over network connections according to information specified under the &lt;network&gt; field. The network identification of the operator is stored in the variable % username %. Content of the notification is determined by providing one or more variable names. In this example, the message is stored in the variable % net_notify_msg %. 
   System Config File 
   The system config file  210  contains site specific information. This information includes dialing options for modem operations. For example, whether or not a ‘9’ must be dialed to reach an outside line. Similarly, network communication information may also be stored in the system config file. Additionally, the system config file stores a value, N_low, used to specify a value for a “low film count” at the input of the CAD system. Operators can choose to be notified when the low film count limit is reached by specifying an option in their operator config file. 
   Halt Detection 
   Halted processing is detected by an automated method. The method first initializes variables indicating the status of the process and the elapsed time status. Then, if the elapsed time status indicates a time interval has been exceeded while the process status is indicating an unfinished process, a halt notification is sent to a user. A detailed description of operation follows. 
   Referring to  FIG. 4 , assume a monitored process is to be started on a host computer. Before the monitored process commences, two system variables, P and T, are initialized to predetermined values. Step  600  shows the variables P and T where P denotes the process complete variable, and T denotes the timer complete variable. Setting both variables to ‘0’ in step  600  indicates neither the process nor the timer have completed. The process begins executing at Step  605  and a timer thread is spawned in step  620 , both steps commencing at substantially the same time. Spawning a timer thread refers to launching an application that counts a predetermined amount of time before signaling that the amount of time has elapsed. 
   Step  610  tests for the condition of a completed process. If the process is not complete, the test is repeated. When the process completes, P is set to ‘1’ in Step  615 . Concurrent with the testing for a completed process, the timer is tested in Step  625 . If the timer has not reached a predetermined value, the test is repeated. When the timer is complete, T is set to ‘1’ in Step  630 . Steps  620 ,  625  and  630  are equivalent to starting a program that will change the value of T to ‘1’ after a predetermined time interval has elapsed. The time interval is set to be slightly longer than that typically required for the process to complete. The values of the status variables are substantially continuously monitored in Step  635 . 
   Four possible combinations of the status variables are possible, as shown in the left hand side portion of Step  635 . When both values are ‘0’, no action is required as the process is running and the elapsed time counter has not yet reached the predetermined maximum value. When P equals ‘1’ and T equals ‘0’, the process has completed before the maximum time has elapsed. Therefore, the timer thread is killed and the outputs of the process are available for subsequent use. When P equals ‘0’ and T equals ‘1’, the timer has reached its maximum value before the process has completed. This condition indicates a halted process. Therefore, a halt notification  636  is sent to an operator. Finally, although it should not occur in normal operations, it is possible for both P and T to equal ‘1’. This event indicates some type of system error and would require operator attention. Therefore, a system error notification  637  is sent alerting an operator of this condition. 
   Halts in processing may be caused by a variety of problems. Two common problem areas are digitization and the CAD application. As long as the operating system of the computer  120  remains operable, notifications may be constructed and sent. 
   Halt Detection in Digitization Process 
   The method described in  FIG. 4  is explained in terms of the film digitization process. According to the invention, process complete and timer variables P and T are initialized to ‘0’, and then the request for image data is issued corresponding to step  605 . When the host computer requests image data, the digitizer begins to feed a film through the film path with the object of creating digital image data. At substantially the same time, a timer thread is spawned. Assuming digitization of a single film requires approximately 45 seconds, the timer thread is specified to allow 60 seconds to elapse before setting T equal to ‘1’. The process  610  now corresponds to the digitization of a film and creating of corresponding image data. The expected outcome is that all requested image data are provided. In this event, the variables P and T will take on respective values of ‘1’ and ‘0’. The process output is the image data. Thus at step  635  the image data is made available to subsequent processing steps, presumably analysis by CAD algorithms. 
   An example demonstrating the notification feature of the invention is now provided. Consider initializing variables P and T, requesting image data as above, and beginning the digitization step  605  and spawning a timer thread at substantially the same moment. Assume a film becomes jammed in the feed mechanism of the digitizer. In this situation, Step  630  will occur before Step  615 . Therefore, the variables P and T will take on respective values of ‘0’ and ‘1’. Correspondingly, Step  635  will send a halt notification. Of course, other situations may occur which cause a notification to be sent. One such example would be a loss of communication between the host computer and the digitizer. 
   Film digitizers are typically connected with a host computer and provide digital image data, low-level communications and internal error codes. These error codes may be interpreted and used in constructing a notification. Importantly, this invention allows for notifications of halted processing to be sent to operators in a timely fashion even when digitizers do not provide such error codes. 
   Notification 
   Notifications are constructed as shown in  FIG. 5 . The notification process begins when a halt notification and associated halt code information are obtained, step  700 . After the halt notification is received, CAD system information comprising CAD system identification, and worklist information  705 , including operator identification, is read in Step  710 . The operator identification is used to identify one or more associated configuration files,  220 ,  230 , . . . ,  290 . Contents of the identified configuration files allow a customized notifications to be constructed in Step  720 . The notifications are then transmitted by the channel or channels given in the configuration file. 
   The content of the notification varies according to operator settings specified in corresponding configuration files. Modes of notification comprise: caller ID only, message box, voice (text to speech applications are commercially available, for example WiViK, from Prentke Romich Company, Wooster, Ohio), text messaging, email including unformatted text and formatted hypertext, including html and xml documents. 
   With caller ID only notification, such as with a pager or some telephones, the operator receives a telephone call from the system, which is identified with a predetermined telephone number known to the operator. When the operator sees a call from the system, the operator will know that a halt in processing has occurred. 
   Operators may choose to be notified by a message box may displayed on their workstations or computing devices. In another embodiment, text messages can be transmitted to many phones, providing the operator with a description of the situation encountered by the CAD system. For example, the time of the error and the number of films remaining to be processed in the batch. An exemplary textual notification,  730 , is provided in  FIG. 6 . 
   Corrective Action 
   If an operator is in the general vicinity of the CAD system and receives notification that CAD processing has halted, the operator may choose to go to the CAD system, correct the problem, and restart the digitizer from the console of the CAD system  100 . When the operator is not in the general vicinity of the CAD system and receives notification of a processing halt on a mobile computing device or remote monitor and information regarding the type of error, it may be desirable for the operator to send commands to the system for restarting the digitizer. Commands to the system may be conveyed by a variety of means. Options include interacting with an interface provided on a remote display, calling a telephone number and interacting with a touch tone or speech recognition voice menu. 
   Alternatively, the configuration file may contain a field for automated error handling and an associated command stored in an automated error handling variable. For example, an operator may specify to automatically issue a “clear loaded film” command in the event an error code indicates a jammed film. 
   Additional Notifications 
   The modular design of the invention provides options for additional system functionality. An operator may desire notification when CAD results for a particular patient are available. In this situation, the operator selects a “notify upon completion” option for that patient in the CAD system worklist. Since case status and operator identification are available in the worklist, a notification is created and sent to a specific operator when the indicated case has been processed by the CAD system. 
   Another useful feature allows the operator to request a notification when a predetermined number of films remain to be processed. Such notification allows the operator to return to the digitization console for loading additional films to keep the CAD process running. In a preferred embodiment, a system config file stores a value for the number of remaining films at which a notification may be sent, N_low. The system config file is read by the CAD system when the batch process is initiated. Also, upon initiation of the batch process, worklist information is parsed to determine which operators are associated with the batch. The operator config files are then read for each associated operator. If the &lt;low_film_warn&gt; field is “yes” in an operator&#39;s config file, when the number of films remaining to be processed reaches the predetermined value, notification will be sent to that operator. 
   The running count of the number of films remaining to be processed is obtained from worklist information. The operator enters the number of films in each case as films are loaded. Therefore, the total number of films provided to the system is obtained by summing across the number of cases not yet processed. The running count of films is updated as each film is processed and as cases are added to the input. When a film has been successfully digitized, the count is decreased by one, and when a case is added, the film count is increased by the number of films in that case.