U.S. patent application number 13/004760 was filed with the patent office on 2011-12-01 for modular software system for guided radiation therapy.
Invention is credited to Stephen C. Phillips, Ryan K. Seghers.
Application Number | 20110295101 13/004760 |
Document ID | / |
Family ID | 45022653 |
Filed Date | 2011-12-01 |
United States Patent
Application |
20110295101 |
Kind Code |
A1 |
Phillips; Stephen C. ; et
al. |
December 1, 2011 |
MODULAR SOFTWARE SYSTEM FOR GUIDED RADIATION THERAPY
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.
Inventors: |
Phillips; Stephen C.;
(Woodinville, WA) ; Seghers; Ryan K.; (Kirkland,
WA) |
Family ID: |
45022653 |
Appl. No.: |
13/004760 |
Filed: |
January 11, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11190194 |
Jul 25, 2005 |
7899513 |
|
|
13004760 |
|
|
|
|
Current U.S.
Class: |
600/407 ;
717/174 |
Current CPC
Class: |
A61N 5/1067 20130101;
A61N 5/1049 20130101; G16H 20/40 20180101; A61N 2005/1051
20130101 |
Class at
Publication: |
600/407 ;
717/174 |
International
Class: |
A61B 6/00 20060101
A61B006/00; G06F 9/445 20060101 G06F009/445 |
Claims
1-29. (canceled)
30. A method for installing first and second application software
packages, the first and second application software packages being
designed to perform localization of a marker in or on a human body,
the first application software package constituted of a first set
of components, the second application software package constituted
of a second set of components, the second set of components
including at least one component included in the first set of
components and at least one component not included in the first set
of components, comprising: installing the first application
software package by installing each of the first set of components;
and at a time after the first application software package is
installed, installing the second application software package by
installing components (1) including components of the second set of
components not included in the first set of components and (2)
excluding at least one component of the first set.
31. The method of claim 30 wherein installing the first application
software package includes storing in a component directory an
association between the first application software package and the
first set of components, such that the stored association can be
used to select the first set of components for activation to invoke
the first application software package, and wherein installing the
second application software package includes storing in the
component directory an association between the second application
software package and the second set of components, such that the
stored association can be used to select the second set of
components for activation to invoke the second application software
package.
32. The method of claim 30 wherein installing the first application
software package includes storing an association between the first
application software package and the first set of components, such
that the stored association can be used to select the first set of
components for activation to invoke the first application software
package, and wherein installing the second application software
package includes storing an association between the second
application software package and the second set of components, such
that the stored association can be used to select the second set of
components for activation to invoke the second application software
package.
33. The method of claim 30 wherein the first application software
package is a distinguished version of a distinguished software
product, and wherein the second application software package is a
version of the distinguished software product subsequent to the
distinguished version.
34. The method of claim 33, further comprising executing the second
application software package.
35. The method of claim 30, further comprising executing the first
application software package.
36. The method of claim 30 wherein the first application software
package is a first software product, and wherein the second
application software package is a second software product distinct
from the first software product.
37. The method of claim 30 wherein the first and second application
software package both perform patient localization for radiation
therapy.
38. The method of claim 37 wherein the first and second application
software package both perform patient localization for radiation
therapy relating to the same organ.
39. The method of claim 37 wherein the first and second application
software package both perform patient localization for radiation
therapy directed to the same medical disorder.
40. The method of claim 37 wherein the first application software
package performs patient localization for radiation therapy
relating to a first organ, and wherein the second application
software package performs patient localization for radiation
therapy relating to a second organ distinct from the first
organ.
41. The method of claim 40 wherein either the first application
software package or the second application software package
performs patient localization for radiation therapy relating to the
prostate.
42. The method of claim 40 wherein either the first application
software package or the second application software package
performs patient localization for radiation therapy relating to the
breast.
43. The method of claim 40 wherein either the first application
software package or the second application software package
performs patient localization for radiation therapy relating to the
head.
44. The method of claim 40 wherein either the first application
software package or the second application software package
performs patient localization for radiation therapy relating to the
neck.
45. The method of claim 40 wherein the second application software
package performs patient localization for radiation therapy
relating to the lung.
46. The method of claim 45 wherein the second application software
package includes a supplemental software module for performing
respiration gating of the radiation therapy.
47. The method of claim 37 wherein the first application software
package performs patient localization for radiation therapy
directed to a first medical disorder, and wherein the second
application software package performs patient localization for
radiation therapy directed to a second medical disorder distinct
from the first medical disorder.
48. The method of claim 30, further comprising, contemporaneously
with the installation of the second application software package,
installing a hardware device used in conjunction with the second
application software package.
49. A system for installing first and second application software
packages, the first and second application software packages being
designed to perform localization of a marker in or on a human body,
the first application software package constituted of a first set
of components, the second application software package constituted
of a second set of components, the second set of components
including at least one component included in the first set of
components and at least one component not included in the first set
of components, comprising: an application software package receiver
for receiving information representing the first application
software package and information representing the second
application software package; and an installation manager that: in
response to receipt by the application software package receiver of
information representing the first application software package,
installs the first application software package by installing each
of the first set of components, and in response to receipt by the
application software package receiver of information representing
the first application software package at a time after the first
application software package is installed, installs the second
application software package by installing only those components of
the second set of components not included in the first set of
components.
50. The method of claim 49 wherein the first and second application
software packages both perform patient localization for radiation
therapy.
51. A method in a computing system for launching a software product
selected from a plurality of software products relating to
radiation therapy tasks installed on the computing system,
comprising: receiving input identifying the selected software
product; accessing a module directory that identifies, for each
software product of the plurality, at least one of a set of module
versions included in the software product; and using the
identification of at least one of the set of module versions
included in the software product, activating the module versions in
order to locate one or more markers in or on a human body.
52. The method of claim 51 wherein the selected software product
performs patient localization for radiation therapy.
53. The method of claim 51 wherein the selected software product
performs patient localization for radiation therapy with respect to
a first organ, and wherein a software product of the plurality
other than the selected software product performs patient
localization for radiation therapy with respect to a second organ
that is distinct from the first organ.
54. The method of claim 51 wherein the selected software product
performs patient localization for radiation therapy directed to a
first medical disorder, and wherein a software product of the
plurality other than the selected software product performs patient
localization for radiation therapy directed to a second medical
disorder that is distinct from the first medical disorder.
55. The method of claim 51 wherein the accessed module directory
identifies for a first software product a distinguished version of
a distinguished module, and wherein the accessed module directory
does not identify for a second software product any version of the
distinguished module.
56. The method of claim 51 wherein the accessed module directory
identifies for a first software product a first version of a
distinguished module, and wherein the accessed module directory
identifies for a second software product a second version of the
distinguished module that is distinct from the first version of the
distinguished module.
57. The method of claim 51 wherein the accessed module directory
identifies for both a first software product and a second software
product a distinguished version of a distinguished module.
58. The method of claim 51 wherein the module versions identified
by module directory for the selected software product includes
versions of the following modules: a transponder interrogation
module that drives a sensor array to interrogate a set of one or
more transponders; a controller module that controls the
transponder interrogation module and determines the location of
each transponder of the set; and a patient tracking module that
determines the location of a patient treatment site relative to a
treatment delivery isocenter.
59. The method of claim 58 wherein the module versions identified
by module directory for the selected software product further
includes versions of the following modules: a tracking station user
interface for displaying patient localization information; a
database module for storing patient localization information; and
an array tracking module for tracking the location of the sensor
array relative to the location the treatment delivery
isocenter.
60. The method of claim 59 wherein the module versions identified
by module directory for the selected software product further
includes versions of the following modules: a central module
representing all of the installed software modules; and a console
user interface for displaying patient localization information to
an occupant of a treatment chamber in which radiation therapy is
delivered.
61. The method of claim 51, further comprising determining whether
the computer system possesses a license key for the selected
software product, and wherein activating identified module versions
is performed only if it is determined that the computing system
possesses a license key for the selected software product.
62. The method of claim 51 wherein each module version of the set
of module versions included in the software product is identified
by the accessed module directory.
63. The method of claim 51 wherein a proper subset of the set of
module versions included in the software product is identified in
the directory, and wherein explicit dependencies on the software
modules identified by the directory on additional software modules
of the set are used to identify the additional modules for
activation.
64. A computer-readable medium whose contents cause a computing
system to perform a method for launching a software product
selected from a plurality of software products installed on the
computing system, comprising: receiving input identifying the
selected software product; accessing a module directory that
identifies, for each software product of the plurality, a set of
module versions included in the software product; and activating
the module versions identified by the module directory for the
selected software product in order to locate one or more markers in
or on a human body.
65. The computer-readable medium of claim 64 wherein the selected
software product performs patient localization for radiation
therapy.
66. One or more computer memories collectively containing a module
directory data structure, comprising data that identifies, for each
a plurality of application software products for locating one or
more markers in or on a human body, a set of module versions
included in the application software product, such that a selected
one of the plurality of application software products can be
launched by activating each module version of the set of module
versions identified for the selected application software product
by the data contained by the a module directory data structure.
67. The method of claim 51 wherein the each of the plurality of
software products performs patient localization for radiation
therapy.
68. A method in a computing system for performing patient
localization for radiation therapy, comprising: during a first
period of time, operating a localization software system comprising
at least a first software module and a second software module;
during the first period of time, when a distinguished data element
published by the first software module is subscribed only by the
second software module, when the first software module generates a
publication event for the distinguished data element, delivering
the generated publication event only to the second software module;
during a second period of time, operating a localization software
system comprising at least the first software module, the second
software module, and a third software module; during the second
period of time, when the distinguished data element published by
the first software module is subscribed by both the second software
module and the third software module, when the first software
module generates a publication event for the distinguished data
element, delivering the generated publication event to both the
second software module and the third software module, wherein the
logic of the first software module is unaltered between the first
period of time and the second period of time.
69. The method of claim 68 wherein the first software module is a
Guidance System Controller module, and wherein the second software
module is a Tracking Station UI software module, and wherein the
third software module is a Console UI software module.
70. The method of claim 68 wherein the first software module is a
Guidance System Controller Module, and wherein the second software
module is a Tracking Station UI software module, and wherein the
third software module is a Accessory Device Interface module.
71. A computer-readable medium whose contents cause a computing
system to a method for performing patient localization, the method
comprising: during a first period of time, operating a localization
software system comprising at least a first software module and a
second software module; during the first period of time, when a
distinguished data element published by the first software module
is subscribed only by the second software module, when the first
software module generates a publication event for the distinguished
data element, delivering the generated publication event only to
the second software module; during a second period of time,
operating a localization software system comprising at least the
first software module, the second software module, and a third
software module; during the second period of time, when the
distinguished data element published by the first software module
is subscribed by both the second software module and the third
software module, when the first software module generates a
publication event for the distinguished data element, delivering
the generated publication event to both the second software module
and the third software module, wherein the logic of the first
software module is unaltered between the first period of time and
the second period of time.
72. A computing system for performing patient localization,
comprising: a publish and subscribe mechanism with which software
modules may register with to (a) publish events of a particular
type relating to patient localization for radiation therapy, and/or
(b) subscribe to published events of a particular type relating to
patient localization for radiation therapy; one or more memories
collectively containing a set of one or more executable software
modules; and one or more processors for executing software modules
contained by the memories, such that an executable software module
among the set may, after registering to publish events of a
distinguished type, publish events of the distinguished type
without regard for the number or identity of software modules
registered to subscribe to events of the distinguished type.
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'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'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'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'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.
* * * * *