Abstract:
A facility for performing patient localization for radiation therapy is described. The facility activates two or more discrete software modules, and performs interactions between the activated software modules. Based upon the performed interactions, the facility performs patient localization for a radiation therapy session.

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) 
       [0001]    This application is a divisional of U.S. patent application Ser. No. 11/190,194, filed Jul. 25, 2005, entitled MODULAR SOFTWARE SYSTEM FOR GUIDED RADIATION THERAPY, which claims the benefit of U.S. Patent Application No. 60/590,697 filed Jul. 23, 2004, which are hereby incorporated by reference in their entireties. 
     
    
     TECHNICAL FIELD 
       [0002]    The present invention is directed to the field of software relating to the performance of radiation therapy. 
       BACKGROUND 
       [0003]    Radiation therapy can be used to treat localized cancer. In a typical application, a radiation delivery system has an ionizing radiation device mounted to a movable gantry. The radiation delivery system controls the motion of the radiation device to direct an ionizing radiation beam to a specific point in space commonly referred to as the “machine isocenter.” One aspect of radiation therapy is positioning a patient so that the patient&#39;s tumor is located at the machine isocenter. Patient positioning systems can provide information about the location of the tumor relative to the machine isocenter during patient setup procedures. Patient positioning systems use various technologies to locate the tumor, such as optically locating visual markers applied to the patient&#39;s skin, or using X-ray analysis to locate metal fiducials subcutaneously implanted in the patient. 
         [0004]    To the extent that conventional patient positioning systems are implemented using software, such software tends to support a single medical application, such as positioning patients for treatment of prostate cancer. Such software further tends to be either (1) monolithic, so that it must be executed on a single computer system having prescribed characteristics, or (2) rigidly distributed, so that each of two or more portions of the software must each be executed on a particular single computer system having prescribed characteristics. Where such software is rigidly distributed, different portions of it are typically designed to communicate in limited predefined ways. 
         [0005]    Such software can be difficult to adapt over time, such as to (1) change the manner in which it performs its present medical application, such as changing the technology employed to locate the tumor, or (2) support additional medical applications. 
         [0006]    In view of the shortcomings of conventional patient positioning software described above, patient positioning software that is more readily adaptable would have significant utility. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]      FIG. 1  is a network diagram showing computer systems and other hardware devices used by the facility. 
           [0008]      FIG. 2  is a block diagram showing some of the components typically incorporated in at least some of the computer systems and other devices on which the facility executes. 
           [0009]      FIG. 3  is a component diagram showing a typical set of components used by the facility to provide a medical application for tracking patient location during radiation treatment delivered to a prostate tumor. 
           [0010]      FIG. 4  is a flow diagram showing steps typically performed by the facility in order to launch a particular application. 
           [0011]      FIG. 5  is a flow diagram showing steps typically performed by the facility in order to invoke an individual component. 
           [0012]      FIG. 6  is a component diagram showing a set of components typically used by the facility to provide a medical application for tracking patient location during radiation treatment of a lung tumor. 
           [0013]      FIG. 7  is a table diagram showing sample contents of a component manifest data structure used in a first embodiment of the facility. 
           [0014]      FIG. 8  is a data structure diagram showing sample contents of a component manifest data structure used in a second embodiment of the facility. 
           [0015]      FIG. 9  is a data structure diagram showing a component dependency used in recursive invocation of components. 
       
    
    
     DETAILED DESCRIPTION 
       [0016]    A modular software facility for performing patient localization and/or location tracking during radiation therapy (“the facility”) is described. In some embodiments, the facility employs a set of distinct software components that interact in order to collectively perform the tracking function. In some embodiments, these components are substitutable software elements, each performing a different role and providing one or more functions. Components typically isolate dependencies of various types to a minimum number of components, abstracting their detailed operation away from their higher level function. Components typically communicate in well-defined ways, including via a publish and subscribe mechanism. 
         [0017]    In some embodiments, the components communicate using standardized mechanism, such as a publish-and-subscribe mechanism. In these embodiments, the dependencies and interactions between components are defined based upon what information each component provides (“publishes”), and what information each component consumes (“subscribes to”). By limiting the dependencies that components may have on one another, this design minimizes the risk that a re-implemented component will fail to interact properly with other existing components. For example, this design may be used to isolate dependencies on the particular technology used to locate the tumor to a small subset of the components, so that the remaining components are free of dependencies on the technology used. If the technology used is subsequently changed, the software facility could be adapted to the new technology by re-implementing only the subset of components. The use of a publish-and-subscribe mechanism enables the set of components consuming particular information from a particular publisher component to expand or contract without any special processing by the publisher component. 
         [0018]    In some embodiments, the facility utilizes a publish-and-subscribe mechanism that supports location transparency, such as publish-and-subscribe using .NET remoting. In these embodiments, many of the components can be executed on any of a set of connected computer systems, providing a measure of flexibility in the deployment of the facility. 
         [0019]    In some embodiments, an update to the facility is performed by replacing a proper subset of the facility&#39;s components with re-implemented versions of these components, without re-implementing the remaining components. 
         [0020]    In some embodiments, the facility may provide a number of different medical applications, such as patient tracking during radiation therapy for prostate cancer, lung cancer, breast cancer, cancer of the head and neck, liver cancer, pancreatic cancer, cervical cancer, orthopedic cancer, etc. In some such embodiments, each medical application is constituted of a particular set of components. For example, a particular medical application could add a new component not present in other medical applications, or replace a component present in other medical applications with a new implementation of the component. A particular medical application may also include additional hardware to be connected to the computing system. In these embodiments, the facility provides particular medical application by invoking the particular components used by the medical application. In such embodiments, the different applications may be distributed to customers separately. As one example, a new application may be distributed to a customer by providing a customer with a copy of each module. 
         [0021]    In some embodiments, the facility may provide a number of different activities relating to a localization and tracking system, including patient set up, patient treatment, patient biofeedback monitoring, patient treatment rehearsal, retrospective treatment data review, treatment data reporting, etc. In various embodiments, these activities are performed as described in U.S. patent application Ser. No. 11/189,542, filed Jul. 25, 2005, and entitled USER INTERFACE FOR GUIDED RADIATION THERAPY, which is hereby incorporated by reference in its entirety. In some embodiments, each activity is constituted of a particular set of components. In such embodiments, the different activities may be distributed to customers separately. 
         [0022]    In some embodiments, the facility may enable the tracking system to interact with a number of add-on functionalities, such as an accessory for positioning a couch or other structure supporting the patient; an accessory for controlling the intensity of the radiation beam; an accessory for controlling the shape of the radiation beam; an accessory for controlling devices securing the treatment room; an accessory for collecting biofeedback input, such as pulse or respiration; an accessory for performing pre-treatment or intra-treatment imaging; an accessory for supporting the correlation of time-index data for multiple sources; a quality assurance package for one or more accessories, etc. In some such embodiments, each such add-on functionality is constituted of a particular set of components. In some embodiments, the different add-on functionalities may be distributed to customers separately. 
         [0023]    In some embodiments, the facility is directed towards tracking a target, i.e., measuring the position and/or the rotation of a target in substantially real time, in a patient in medical applications. In some such embodiments, the facility collects position data of a marker that is substantially fixed relative to the target, determines the location of the marker in an external reference frame (i.e., a reference frame outside the patient), and provides an objective output in the external reference frame that is responsive to the location of the marker. The objective output is repeatedly provided at a frequency/periodicity that adequately tracks the location of the target in real time within a clinically acceptable tracking error range. As such, such tracking enables accurate tracking of the target during diagnostic, planning, treatment or other types of medical procedures. In many specific applications, the objective output is provided within a suitably short latency after collecting the position data and at a sufficiently high frequency to use the data for such medical procedures. 
         [0024]    In some or all of the above-described embodiments, the facility provides significant flexibility and adaptability to a system for tracking patient position for radiation therapy. 
         [0025]      FIG. 1  is a network diagram showing computer systems and other hardware devices used by the facility. A number of the computer systems and devices are connected by one or more data networks  110 . These include a magnetic localizer front end  101  for controlling a magnetic localizer device  102 . A tracking station  111  combines information from the magnetic localizer front end, as well as one or more camera, such as cameras  104 - 106 . The tracking station also provides a visual user interface. A console PC  103  provides an additional visual user interface. Computer systems and devices  101 - 106  are typically located inside a radiation treatment vault  100 , while the tracking station  111  is located outside. Those skilled in the art will appreciate that the facility may use sets of devices that differ from those shown here, including sets of devices that omit devices shown here, those that include devices not shown here, and/or those that combine or divide the functionality of devices shown here. One or more suitable, exemplary patient localization systems are described in the following, each of which is hereby incorporated by reference in its entirety: U.S. patent application Ser. No. 10/334,700, entitled PANEL-TYPE SENSOR/SOURCE ARRAY ASSEMBLY, filed Dec. 30, 2002; U.S. patent application Ser. No. 09/877,498, entitled GUIDED RADIATION THERAPY SYSTEM, filed Jun. 8, 2001; U.S. patent application Ser. No. 10/679,801, entitled METHOD AND SYSTEM FOR MARKER LOCALIZATION, filed Oct. 6, 2003; U.S. patent application Ser. No. 10/746,888, entitled IMPLANTABLE MARKER WITH WIRELESS SIGNAL TRANSMITTAL, filed Dec. 24, 2003; and U.S. patent application Ser. No. 10/749,478, entitled RECEIVER USED IN MARKER LOCALIZATION SENSING SYSTEM, filed Dec. 31, 2003. 
         [0026]      FIG. 2  is a block diagram showing some of the components typically incorporated in at least some of the computer systems and other devices on which the facility executes. These computer systems and devices  200  may include one or more central processing units (“CPUs”)  201  for executing computer programs; a computer memory  202  for storing programs and data—including data structures—while they are being used; a persistent storage device  203 , such as a hard drive, for persistently storing programs and data; a computer-readable media drive  204 , such as a CD-ROM drive, for reading programs and data stored on a computer-readable medium; and a network connection  205  for connecting the computer system to other computer systems, such as via the Internet, to exchange programs and/or data—including data structures. While computer systems configured as described above are typically used to support the operation of the facility, one of ordinary skill in the art will appreciate that the facility may be implemented using devices of various types and configurations, and having various components. 
         [0027]      FIG. 3  is a component diagram showing a typical set of components used by the facility to provide a medical application for tracking patient location during radiation treatment delivered to a prostate tumor. Those skilled in the art will appreciate that the facility could provide this application using a different set of components, such as a set of components that includes components not shown, a set of components that omits shown components, and/or a set of components in which the functionality of components is consolidated or divided. 
         [0028]      FIG. 3  shows components  301 - 308 , as well as dependencies between these components. A Guidance System Controller component  301  is the top-level component for the facility. The Guidance System Controller component acts as a registry for the various services, and represents the entire facility. A Target Tracker component  302  tracks the target isocenter of the patient by integrating the location of a sensor array provided by an Array Tracker component  303  with magnetic transponder locations provided by a Front-End Controller component  304 . Target isocenter tracking information may be used in a variety of ways, such as those described in U.S. Patent Application No. 60/590,693 filed Jul. 23, 2004, U.S. patent application Ser. No. 11/190,205, filed Jul. 25, 2005, and entitled DATA PROCESSING FOR REAL-TIME TRACKING OF A TARGET IN RADIATION THERAPY, U.S. Patent Application No. 60/590,503 filed Jul. 23, 2004, and U.S. patent application Ser. No. 11/189,431, filed Jul. 25, 2005, and entitled DYNAMIC/ADAPTIVE TREATMENT PLANNING FOR RADIATION THERAPY, each of which is hereby incorporated by reference in its entirety. The Target Tracker component outputs the location of the treatment isocenter relative to the machine isocenter, and publishes transponder locations and sensor array locations in the same coordinate system. The Array Tracker component  303  controls and provides access to cameras used to track the location of the sensor array, as well as a hub, and a vision tracking library used to analyze the input from the cameras. The Front-End Controller component  304  controls and provides information from a front-end Microcontroller Program component  305 . The Front-End Controller component may include and/or use a front-end interface and a magnetic localization algorithm library. The Front-End Controller component provides services, including logging, to the front-end microcontroller program component. The Front-End Controller component provides transponder locations relative to the sensor array to various subscribers. The Front-End Microcontroller Program component drives a sensor array to acquire raw magnetic transponder data. A System Database component  306  stores and provides access to system data such as patient records. A Tracking Station UI component  307  provides a graphical user interface providing capabilities such as patient data access, treatment room monitoring, and reporting. 
         [0029]    Console UI component  308  provides a graphical user interface for users in the radiation treatment vault, including patient session management, array positioning, tracking, quality assurance testing, and calibration. Sample behaviors provide by such UI components are described in U.S. Patent Application No. 60/590,699 filed Jul. 23, 2004 entitled USER INTERFACE FOR GUIDED RADIATION THERAPY, and U.S. patent application Ser. No. 11/189,542, filed Jul. 25, 2005, and entitled USER INTERFACE FOR GUIDED RADIATION THERAPY, each of which is incorporated herein by reference in its entirety. 
         [0030]    Component  305  typically executes on the magnetic localizer front end component  313 , typically located inside the radiation treatment vault. Component  308  typically executes on the console PC  312 , typically located inside the radiation treatment vault. Components  301 ,  302 ,  303 ,  304 ,  306 , and  307  typically execute on the tracking station  311 , typically located outside the radiation treatment vault. 
         [0031]    The direction(s) of the arrows between pairs of components indicate the dependency relationship(s) between the components. For example, the double-headed arrow between components  301  and  308  indicates both that component  301  has a dependency on component  308  and component  308  has a dependency on component  301 . The single-headed arrow between components  301  and  307  indicates that component  307  has a dependency on component  301 . The design for some embodiments omits various inter-component dependencies shown in  FIG. 3 , such as the dependency of component  301  on components  303  and  304 . In some embodiments, dependencies between components indicate a publish/subscribe relationship between the components. For instance, the dependency of component  307  on component  301  may indicate that component  307  subscribes to data published by component  301 . In some embodiments, these dependencies are also used as a basis for module invocation, as is discussed in greater detail below.  FIG. 3  further identifies a version number of each component, shown in a circle inside the component&#39;s rectangle. For example,  FIG. 3  shows that the guidance system controller component  301  is of version 1.1. 
         [0032]      FIG. 4  is a flow diagram showing steps typically performed by the facility in order to launch a particular application. In step  401 , the facility displays a list of applications obtained from a manifest data structure, discussed below in conjunction with  FIGS. 7 and 8 . In step  402 , the facility receives a user selection of one of the applications displayed in step  401 . In step  403 , if the user has purchased any license keys needed for the application, then the facility continues in step  404 , else the facility continues in step  401 . In some embodiments, the facility omits step  403 , and does not enforce a license key requirement in order to launch an application. In steps  404 - 406 , the facility loops through each component listed in the manifest for the selected application. In step  405 , the facility invokes the current component, such as is described below in connection with  FIG. 5 . In step  406 , if additional components remain to be processed, then the facility continues step  404  to process the next component, else these steps conclude. 
         [0033]      FIG. 5  is a flow diagram showing steps typically performed by the facility in order to invoke an individual component. In step  501 , the facility identifies other components upon which the present component is dependent. In steps  502 - 504 , the facility loops through each identified component. In step  503 , the facility invokes the identified component. In step  504 , if additional identified components remain to be processed, then the facility continues to step  502  to process the next identified component, else these steps conclude. 
         [0034]      FIG. 6  is a component diagram showing a set of components typically used by the facility to provide a medical application for tracking patient location during radiation treatment of a lung tumor. By comparing  FIG. 6  with  FIG. 3 , one can discern that there is intersection between components used to provide the prostate application and components used to provide the lung application. The differences are as follows: Array Tracker component  303  shown in  FIG. 3  is omitted from  FIG. 6 ; Guidance System Controller component  601  shown in  FIG. 1  has version number 1.2 as opposed to version number 1.1 of Guidance System Controller component  301  shown in  FIG. 3 ; the Tracking Station UI component  607  shown in  FIG. 6  is of version 2.0, whereas the Tracking Station UI component  307  shown in  FIG. 3  is of version 1.1; the console UI component  608  shown in  FIG. 6  is of version 2.0, whereas the console UI component  308  shown in  FIG. 3  is of version 1.1; and an additional respiration monitor component  609 , executing on a new respiration station computer station  614 , has been added. 
         [0035]      FIG. 7  is a table diagram showing sample contents of a component manifest data structure used in a first embodiment of the facility. Component Manifest  700  is a table made up of rows  701 - 716 , each corresponding to a component employed in a particular application. In particular, component manifest  700  contains a row for every component used in each application. Each row is divided into an application column  751  identifying the application, a component column  752  identifying the component, and a version number column  753  identifying the version. For example, row  701  indicates that the prostate application uses version 1.1 of the guidance system controller component. In using component manifest  700 , the facility would invoke the versions of the components shown in row  701 - 708  directly as part of invoking the prostate application. 
         [0036]      FIG. 8  is a data structure diagram showing sample contents of a component manifest data structure used in a second embodiment of the facility. The component manifest data structure  800  is similar to component manifest  700 , except that fewer components are identified for each application. For instance, component manifest  800  contains a single row  801  identifying a component for the prostate application. When component manifest  800  is used, version 1.1 of the Guidance System Controller component is directly invoked as part of launching the prostate application. When the Guidance System Controller component is invoked, it in turn invokes the components upon which it has dependencies, until all of the components needed for the prostate application are invoked. 
         [0037]      FIG. 9  is a data structure diagram showing a component dependency used in the recursive invocation of components discussed above in conjunction with  FIG. 8 . A first component  900  contains a reference  901  to a second component  910 . In connection with loading the first component, the facility uses the reference from the first component to the second component to invoke the second component. If the second component contains one or more of its own references  911 , the facility in turn uses the references  911  to invoke the depended-on components. The references may be stored either internally or externally to the components, or both. The references may identify the referred-to components in a variety of ways, such as using a file name, a fully-qualified path, a global unique identifier, a name and version number, or any of a number of other types of references. 
         [0038]    The localization system and at least one marker enables real time tracking of a target relative to a machine isocenter or another external reference frame outside of the patient during treatment planning, set up, radiation sessions, and at other times of the radiation therapy process. In many embodiments, real time tracking means collecting position data of the markers, determining the locations of the markers in an external reference frame, and providing an objective output in the external reference frame that is responsive to the location of the markers. The objective output is provided at a frequency that adequately tracks the target in real time and/or a latency that is at least substantially contemporaneous with collecting the position data (e.g., within a generally concurrent period of time). 
         [0039]    For example, several embodiments of real time tracking are defined as determining the locations of the markers and calculating the location of the target relative to the machine isocenter at (a) a sufficiently high frequency so that pauses in representations of the target location at a user interface do not interrupt the procedure or are readily discernable by a human, and (b) a sufficiently low latency to be at least substantially contemporaneous with the measurement of the location signals from the markers. Alternatively, real time means that the location system  10  calculates the absolute position of each individual marker  40  and/or the location of the target at a periodicity of 1 ms to 5 seconds, or in many applications at a periodicity of approximately 10-100 ms, or in some specific applications at a periodicity of approximately 20-50 ms. In applications for user interfaces, for example, the periodicity can be 12.5 ms (i.e., a frequency of 80 Hz), 16.667 ms (60 Hz), 20 ms (50 Hz), and/or 50 ms (20 Hz). 
         [0040]    Alternatively, real time tracking can further mean that the location system  10  provides the absolute locations of the markers and/or the target to a memory device, user interface, linear accelerator or other device within a latency of 10 ms to 5 seconds from the time the localization signals were transmitted from the markers. In more specific applications, the location system generally provides the locations of the markers and/or target within a latency of about 20-50 ms. The location system accordingly provides real time tracking to monitor the position of the markers and/or the target with respect to an external reference frame in a manner that is expected to enhance the efficacy of radiation therapy because higher radiation doses can be applied to the target and collateral effects to healthy tissue can be mitigated. 
         [0041]    Alternatively, real-time tracking can further be defined by the tracking error. Measurements of the position of a moving target are subject to motion-induced error, generally referred to as a tracking error. According to aspects of the present invention, the localization system and at least one marker enable real time tracking of the target relative to the machine isocenter or another external reference frame with a tracking error that is within clinically meaningful limits. 
         [0042]    Tracking errors are due to two limitations exhibited by any practical measurement system, specifically (a) latency between the time the target position is sensed and the time the position measurement is made available, and (b) sampling delay due to the periodicity of measurements. For example, if a target is moving at 5 cm/s and a measurement system has a latency of 200 ms, then position measurements will be in error by 1 cm. The error in this example is due to latency alone, independent of any other measurement errors, and is simply due to the fact that the target has moved between the time its position is sensed and the time the position measurement is made available for use. If this exemplary measurement system further has a sampling periodicity of 200 ms (i.e., a sampling frequency of 5 Hz), then the peak tracking error increases to 2 cm, with an average tracking error of 1.5 cm. 
         [0043]    In some embodiments, the facility uses structure and/or techniques described in U.S. patent application Ser. No. 11/166,801, filed on Jun. 24, 2005, which is hereby incorporated by reference in its entirety. 
         [0044]    It will be appreciated by those skilled in the art that the above-described facility may be straightforwardly adapted or extended in various ways. For example, the facility may be used in conjunction with a wide variety of components, executing on a wide variety of computer systems or other devices, and may provide a variety of different medical applications relating to radiation therapy. While the foregoing description makes reference to preferred embodiments, the scope of the invention is defined solely by the claims that follow and the elements recited therein.