Patent ID: 12186585

Like reference numbers and designations in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIG.1depicts an example system100for obtaining a solution to an optimization program. The system100is an example of a system implemented as computer program(s) on one or more classical or quantum computing devices in one or more locations, in which the systems, components, and techniques described below can be implemented.

The system100includes a classical processor104, a QUBO formulator106, a classical post-processor108, and one or more quantum computing resources, e.g., quantum annealer110aand quantum gate processor110b. For convenience, two additional quantum computing resources are shown inFIG.1, with the quantum computing resources being external to the system100. However in some implementations the system100may be in communication with more or fewer additional quantum computing resources, or the system100may include the quantum computing resources. Components of the system100may be in data communication with each of the additional quantum computing resources, e.g., through a communication network such as a local area network or wide area network.

The system100is configured to receive as input data representing an optimization problem, e.g., input data102. As described in more detail below with reference to step202ofFIG.2, the input data102may include data specifying an objective function to be minimized (or maximized) with respect to a set of parameters, and data representing constraints for the minimization (or optimization).

The system100processes the received input data102to generate as output data representing actions to be initiated, e.g., actions112. The actions are based on a determined solution to the optimization problem. For example, the actions may include programming or operating a machine, e.g., a radiation machine, based on the solution to the optimization problem. In some implementations the solution to the optimization problem can be used to understand whether there could be an operation that would result in good quality or not. If the quality (based on the expected received dosage of different body tissues/organs computed using the solution) is tolerable, the solution could be fed into the radiation machine to operate on the patient. However, if the quality is not tolerable/acceptable, then this information could be sent back to the physician for further evaluation, e.g., to consider alternative or more advanced medication or radiation device.

The system100is configured to determine a solution to the optimization problem represented by the input data102. To determine a solution to the optimization problem, the system100uses one or more of the classical processor104, the QUBO formulator106or the classical post processor108.

The classical processor104is configured to receive data inputs and to process the received data inputs using classical search algorithms to determine a first solution to the optimization task represented by the input data102. For example the classical processor104may receive an initial input and subsequent inputs provided by the classical post processor108(which correspond to outputs generated by the quantum computing resources110a,110b.)

The classical processor104is configured to provide the determined first solutions to the QUBO formulator106.

The QUBO formulator106is configured to receive the input data102and first solutions from the classical processor104and to generate data representing a QUBO formulation of the optimization problem in a local region around the first solution to the optimization problem. Example operations performed by the QUBO formulator106to generate such approximate QUBO objective functions are described below with reference toFIG.2.

The system100is configured to transmit data representing generated QUBO formulations to one or more quantum computing resources. The quantum computing resources may include quantum annealer computing resources, e.g., quantum annealer110a. A quantum annealer is a device configured to perform quantum annealing—a procedure for finding the global minimum of a given objective function over a given set of candidate states using quantum tunneling. Quantum tunneling is a quantum mechanical phenomenon where a quantum mechanical system overcomes localized barriers in the energy landscape which cannot be overcome by a classically described system. Some quantum annealer devices perform a subclass of quantum annealing called adiabatic quantum computing, which relies on the adiabatic theorem to perform computations.

Quantum annealer devices can solve problems if they are formulated in an acceptable format. For example, quantum annealer devices can solve some QUBO formulations of problems by mapping the QUBO formulation into a qubit network of a quantum annealer device.

The quantum computing resources may include one or more quantum gate processors, e.g., quantum gate processor110b. A quantum gate processor includes one or more quantum circuits, i.e., models for quantum computation in which a computation is performed using a sequence of quantum logic gates, operating on a number of qubits (quantum bits).

Quantum gate processors can be used to solve certain optimization problems, e.g., problems that can be formulated as a QUBO problem. For example, some quantum gate processors can solve QUBO problems by simulating a corresponding adiabatic quantum annealing process using a gate model. This can be advantageous, e.g., compared to directly performing the corresponding adiabatic quantum annealing process using a quantum annealer device, since not all quantum annealer devices can realize physical quantum systems that represent an optimization problem. For example, some quantum annealer devices may not provide the physical interactions necessary to solve an optimization problem. In these examples, a Hamiltonian describing the optimization problem can be decomposed into a sequence of single or multi-qubit quantum gates, and a solution to the optimization problem can be obtained through application of the sequence of single or multi-qubit gates on a register of qubits and subsequent measurement of the register of qubits.

The one or more quantum computing resources that receive the transmitted data representing the QUBO formulations are configured to process the received data to generate output data118representing a second solution to the optimization problem. The one or more quantum computing resources are configured to provide the generated output data118to the system100, e.g., to the classical post processor108.

The system100is configured to receive the output data118from the one or more quantum computing resources. The classical post-processor108is configured to process the received output data118. Processing the output data118may include determining whether termination criteria have been met or not, and determining one or more actions to be taken based on a solution to the optimization problem. Processing the output data118may also include generating a user interface presentation using the user interface module116based on the output data118. Example user interface presentations generated by the user interface module116are shown inFIGS.3-8.

The system100is configured to output data representing determined actions that can be taken112. For example, the system100may provide the data112to, or include, a broker that initiates actions based on the output data.

FIG.2is a flowchart of an example process200for solving an optimization problem using quantum computing resources. For convenience, the process200will be described as being performed by a system of one or more classical or quantum computing devices located in one or more locations. For example, example system100ofFIG.1, appropriately programmed in accordance with this specification, can perform the process200.

The system receives data representing the optimization problem (step202). The received data may include data representing an objective function to be optimized over a given set of parameters. The received data may also include data representing one or more constraints, e.g., inequality or equality constraints.

In some implementations the optimization problem may be an intensity-modulated radiation therapy (IMRT) treatment problem, where the solution to the IMRT treatment problem is a beamlet intensity setting or a set of parameters (e.g., intensity settings) for a set of beamlets.

In these implementations the received data may be based on a IMRT beamlet model. The IMRT beamlet model can include a model for the volume of the operation, as described below.

Model for Volume

In the presently described techniques, the volume of the operation is modelled by the interior of a three-dimensional Cartesian grid. Without formally defining the grid, such as via definition of tessellation of geometrical space, a rectilinear grid can be considered as a set of rectangular cells piling next to each other to form a large rectangular volume. In the case that all rectangular cells are cubes, the grid is a Cartesian grid. In some implementations this could be extended to rectilinear grid or other more general relaxations of grid. The boundary of the set of cubes can be associated with the natural set of edges and square faces on the boundary, and the interior of the set of cubes can be associated with, in the natural topological sense, the union of the cubes but excluding the boundary.

Let the size of the grid be D1×D2×D3, where D1, D2, D3∈N, and let D represent the Cartesian product of the grid:

D={1,2,…,D1}×{1,2,…,D2}×{1,2,…,D3}={(x,y,z):x∈{1,2,…,D1},y∈{1,2,…,D2},z∈{1,2,…,D3}}

In this case, given a reference point, every cubic cell can be labeled by a unique Cartesian coordinate based on its position. Let S represent the set of all D1·D2·D3cubes, and let
η:S→{1,2, . . . ,D1}×{1,2, . . . ,D2}×{1,2, . . . ,D3}
represent a 1-1 function assigning each cube with its coordinate in D. The cubes can be associated with their Cartesian coordinates, such that every c∈D corresponds to a unique cube η−1(c)∈S. The size of the cubes (the discretization) can vary—the model is general enough for any range of discretization. In some implementations a largest size of discretization can be the resolution of the medical image, e.g. a DICOM image which typically has a size between 256×256 to 512×512 pixels, with each pixel encoded by 16 bits. In some implementations the discretization can be approximately 10×20 pixels.

The IMRT beamlet model can also include a model for the body structure, as described below.

Model for Body Structure

A body structure is a physical structure that belongs to the body of a patient. It is a geometrical object that can be of any shape. Given the grid volume model, as described above, the physical occupancy of a body structure—the “volume”, of a body structure—can be described under the assumption of the volume model.

There are different ways to define such a volume for structures. One option is to define a structure's volume as the set of all cubic cells whose interior geometrically coincide with the structure. Under this definition, there could be a cell having only a small portion of overlap with the structure, yet is still considered belonging to a structure's volume. Due to this, another option is described. This second option defines a structures' volume as the set of all cubic cells with at least 50% of its interior volume geometrically coincide with the structure. For each structure s, Vs⊂D is defined as the set of coordinates corresponding to the cubic cells that are in volume of s.

All body structures in the model can be categorized as one of the two sets of structures. The first set is the planning target volume (PTV), SPTV, which includes a set of different radiotherapy targets. The other set of structures includes the organs at risks (OAR), which is represented by SOAR. These are the organs or tissues around the radiotherapy target that are inevitably exposed to radiation, and there are restrictions on the amount of radiation that these structures can be exposed to.

The IMRT beamlet model can also include a model for the beamlet, as described below.

Model for Beamlet

In model for the beamlet, it is assumed that the positioning of the beamlets are fixed. Let there be N beamlets. For the i-th beamlet, where i∈{1, 2, . . . , N}, let Mibe its D1×D2×D3radiation dose matrix per unit of the beam's intensity weight, in which the (j, k, l)-th element is the radiation dose (in a unit of certain radiation quantity, say Gray, or denoted by Gy for short) that the cubic volume (j, k, l) receives per unit of the beam's intensity. Furthermore, let w∈+Nbe the vector of beamlet intensity weights, where its i-th element wiis the nonnegative intensity weight of the i-th beamlet. Note that w∈+is the set of all nonnegative real numbers. For a given beamlet intensity weight vector w, the total radiation dose is modeled as:

M⁡(w)=∑i=1Nwi⁢Mi

In implementations where the optimization problem is an IMRT treatment problem, the received data may include data representing one or more dose-volume constraints, as described below.

Dose-Volume Constraints

For each structure s∈SPTVor s∈SOAR, the dose-volume constraint is a pair of values, (vs, ds), in which vs∈[0, 1] and ds∈+. Such pair of values is equivalent to the following statement:

vsof the entire volume of structure s receives at least dsGray of radiation dose

There can be multiple dose-volume constraints for each structure, and therefore, for each structure s with rsdenoting the number of its dose-volume constraints, (vs,i, ds,i),denotes the i-th pair, where i∈{1, 2, . . . , rs}.

In implementations where the optimization problem is an IMRT treatment problem, the received data may include data representing an objective function to be minimized over beamlet intensity weights, as described below.

IMRT Beamlet Optimization Objective Function

The IMRT treatment objective function is based on a quantity of interest {tilde over (D)}s,v(w). Given a volume percentage v∈[0, 1], and provided a structure s and beam intensity weight w, this quantity of interest {tilde over (D)}s,v(w)∈[0, 1] computes:
{tilde over (D)}s,v(w)=the smallest dose (Gy) thatvof the volume ofsis at least receiving.
Which is equivalent to the v-quantile of the dose quantities of all the cubic cells in s, that is,
{tilde over (D)}s,v(w)=vquantile of {M(w)x,y,z:(x,y,z)∈Vs}
where M(w)x,y,zrepresents the (x, y, z)-th element of the total radiation dose matrix M(w), as defined above.

The objective of the IMRT beamlet optimization is to minimize the following objective function:

C⁡(w)=α⁢∑s∈SP⁢T⁢V(ds-D~s,vs(w))2+∑s∈SO⁢A⁢Rβs⁢∑i=1rS(max⁢{0,D~s,vs,i(w)-ds,i})2
where SPTVrepresents a set of radiotherapy target body structures, dsrepresents a minimal amount of radiation dose to be received by structure s, SOARrepresents a set of body structures that are at risk, rsrepresents the total number of dose-volume constraints for a structure s, a and βsare constants, {tilde over (D)}s,vs(w) represents a smallest dose that vsof the volume of a respective body structure s is at least receiving, and w represents a vector of beamlet intensity weights where the i-th element wiof w represents a non-negative intensity weight of the i-th beamlet. The first term of the objective function is a total squared difference of the targeted treatment dosage and the actual dosage, summed over all PTVs. This represents the deviation from the prescription to the radiotherapy targets. The second term is the total squared amount of over-dosage on the organs at risk. This represents the amount of overdose on sensitive organs.

To apply some optimization techniques, e.g., those optimization techniques related to quantum computing, the IMRT beamlet optimization task can be discretized. For example, let L∈N represent the level of discretization. Each beamlet intensity weight wican then be described by L binary variables wi,1, wi,2, . . . wi,L∈{0, 1} such that

w~i=∑j=1Lwi,j⁢2j-1.
In this way, wican be any integer in the interval [0, 2L−1]. Because the beamlet intensity weights wiare not freely varying integers and are fixed in a fixed range, a normalization can be applied to the radiation dose matrices M. Each matrix Mican be multiplied with a constant γ∈+. Each individual radiation dose matrix is {tilde over (M)}≡γMi, and the total radiation dose is

M⁡(w)=∑i=1Nwi⁢M~i=∑i=1Nwi⁢γ⁢Mi
The choice of γ takes the flexibility that the variables need into account. For example, in some implementations (e.g., those where it is assumed that |SPTV|=1), γ can be chosen such that d0={tilde over (D)}s,vs(w*), where w*=(2L-1, 2L-1). That is, w* is the instance when all variables are assigned the value 2L-1, which is close to the middle of the interval [0, 2L−1]. This ensures that the variable w has the flexibility of moving away from the instance in which d0={tilde over (D)}s,vs(w). The binary representation of w* has wi,j*=1 if j=L and wi,j*=0 otherwise. A single variable vector that stores all the wi,jis denoted by {tilde over (w)} and can be defined by ωL(i−1)+j=wi,j, ∀i∈{1, . . . , N}, j∈{1, . . . , L}.

The objective function C(w) can be redefined in terms of {tilde over (w)} as

C⁡(w~)=α⁢∑s∈SP⁢T⁢V(ds-D~s,vs(F-1(w~)))2+∑s∈SO⁢A⁢Rβs⁢∑i=1rs(max⁢{0,D~s,vs,i(F-1(w~))-ds,i})2
where F represents a one-to-one mapping from w to {tilde over (w)} defined by F: {0, . . . , 2L−1}N→{0,1}NBwith NB≡NL representing the length of the vector {tilde over (W)}.

Returning toFIG.2, the system iteratively processes, until termination criteria are met, the received data representing the optimization problem to obtain data representing a solution to the optimization problem (step204). For example, the system may iteratively process the received data until the difference between sequentially obtained outputs is smaller than a predetermined threshold. In some implementations an optimal choice of the predetermined threshold can be determined through evaluation of actual experimental runs and often varies case by case. In other implementations stopping criteria from other classical optimization heuristics, e.g., step-wise search, can be used.

For a first iteration, the system performs a classical search algorithm on an initial input (e.g., a randomly selected configuration of beamlet intensity weights) to determine a first solution to the optimization problem. The system then provides data representing the first solution to the optimization problem to a quantum computing resource. The data representing the first solution to the optimization problem can include a quadratic unconstrained binary optimization (QUBO) formulation of the optimization problem in a local region (defined as the locality within a given Hamming distance) around the first solution to the optimization problem, as described in more detail below. That is, the system can generate the QUBO formulation of the optimization problem in a local region around the first solution to the optimization problem. The system then obtains data representing a second solution to the optimization problem from the quantum computing resource, and provides the data representing the second solution to the optimization problem as input to a subsequent iteration.

In implementations where the optimization problem is an IMRT treatment problem, generating a QUBO formulation of the optimization problem in a local region around the first solution to the optimization problem includes generating a local second-order approximation of the IMRT objective function, as described below.

Local Second-Order Approximation of the Cost Function

Quantum annealing can solve binary optimization problems with objective functions that are quadratic polynomials of a set of binary variables. Since the IMRT objective function is not a quadratic polynomial (or even a low-order polynomial), in order to use quantum annealing, the IMRT objective function is approximated using second-order fitting. That is, the system determines a second-order function that fits all the first and second neighbors of a current location (determined by the classical search algorithm). The approximated IMRT objective function determines the objective to be optimized by the quantum computing resource. Determining a second-order function that fits all the first and second neighbors of a current location is as follows.

Given the current location {tilde over (w)}=({tilde over (w)}1, {tilde over (w)}2, . . . , {tilde over (w)}NB)∈{0, 1}NB, let M be an upper-triangular matrix of real values, i.e. mi,j∈∀i, j:

M=[m1,1m1,2m1,3⋯m1,NB0m2,2m2,3⋯m2,NB⋮⋮⋮⋮⋮0000mNB⁢NB]
Let u∈{0, 1}NBbe a first or second neighbor of {tilde over (w)} (or some other neighbour a predetermined distance away), that is, the Hamming distance of u and {tilde over (w)} is ≤2 (or less than or equal to another predetermined number. For larger Hamming distances, e.g., larger than 2, and the larger neighborhood within that distance, since there are NB(NB+1)/2 degrees of freedom in this model, NB(NB+1)/2−1 (excluding the center or original point that is included in the fitting) points in this neighborhood can be randomly selected, and the model can be fitted with those points. Including a larger neighborhood introduces flexibility and can overcome and prevent overfitting. For any such u, the equation
uTMu=C(u)
is imposed. There is a total of

(NB1)+(NB2)=NB+NB(NB-1)2=NB(NB+1)2
such equations. M is solved for by solving this systems of equations. The second-order approximation of the cost function C(.) at u is then:
uTMu

It is noted that an upper-triangular matrix is sufficient, since ∀u and for any matrix K, and considering the upper-triangular matrix M where Mi,j=Ki,j+Kj,i, ∀i≤j, it can be shown that uTMu=uTKu.

Hamming Penalty in Local Quantum Annealing Search

In order to restrict the local quantum annealing search to find a candidate in the local “trust region” such that the second-order approximation is still accurate, the system can add a penalty term to the approximated cost function that is dependent on the Hamming distance of the candidate and the starting point. The Hamming penalty construction is described below.

Let {tilde over (w)}(0)=({tilde over (w)}1(0), {tilde over (w)}2(0), . . . , {tilde over (w)}NB(0))∈{0,1}NBbe a starting point for an iteration, and let {tilde over (w)}=({tilde over (w)}1, {tilde over (w)}2, . . . , {tilde over (w)}NB)∈{0,1}NBbe a candidate point. The Hamming distance of {tilde over (w)}(0)and {tilde over (w)} is:

dH(w~(0),w~)≡(w~(0)-w~)T⁢(w~(0)-w~)=∑i=1NB(w~(0)-w~i])=∑i=1NB(w~i2-2⁢w~(0)(w~i-w~i(0)⁢2),
and since {tilde over (w)}i∈{0,1}, ∀i, as described above,

dH(w~(0),w~)=∑i=1NB(w~i-2⁢w~i(0)⁢w~i+w~i(0)⁢2)=∑i=1NB((1-2⁢w~i(0))⁢w~i+w~i(0)⁢2)=∑i=1NB(1-2⁢w~i(0))⁢∑i=1NBw~i(0),
The Hamming distance therefore corresponds to a linear term. In implementations of the presently described Hamming penalty construction, there are two types of penalties—a scaled Hamming penalty and a scaled quadratic Hamming penalty.

The scaled Hamming penalty adds the following penalty term to the objective function:
PdH({tilde over (w)}(0),{tilde over (w)}),
where P>>0 is a large penalty constant.

The scaled quadratic Hamming penalty takes the form:
PdH({tilde over (w)}(0),{tilde over (w)})2.
These penalties are at most second-order polynomials, and hence the resulting sum of them with the objective approximation is still quadratic.

Returning toFIG.2, the system initiates an action based on the obtained data representing a solution to the optimization problem (step206). For example, in implementations where the optimization problem is an IMRT treatment problem, the system can program a radiotherapy machine using the obtained beamlet intensity setting, or can operate the radiotherapy machine at the beamlet intensity setting as part of a IMRT treatment.

In some implementations the system may generate a user interface presentation based on the obtained data representing a solution to the optimization problem.

Example user interfaces generated by the system based on example process200in an IMRT treatment plan setting are shown inFIGS.3-9.

FIG.3shows an example user interface presentation300. The user interface presentation300enables a user, e.g., a medical professional, to log in to a system “q Rad” that generates solutions to IMRT treatment problems.

FIG.4shows an example user interface presentation302. The user interface presentation302can be displayed when a user John Chris304has successfully logged in to the q Rad system using example user interface presentation300. The user interface presentation302includes options306a-bwhich, when selected by the user, causes the user interface presentation302to present different types of information.

For example, in response to the user selecting the patient option306a, the user interface presentation302presents options308a-cfor searching a patient database or adding a new record to a patient database. Option308ais a search field that enables a user to search the patient database based on patient name. In some implementations, user selection of option308acan cause the user interface presentation302to display a drop down list of patients, e.g., in alphabetical order. In response to user selection of a patient included in the drop down list, a user interface presentation showing data related to the patient can be displayed, as described below with reference toFIG.5. In some implementations, a user can input a patient name in option308a. Input of a patient name can cause the user interface presentation302to display search results matching the input patient name, e.g., as a list of patients in alphabetical order. In response to user selection of a patient included in the search results, a user interface presentation showing data related to the patient can be displayed, as described below with reference toFIG.5.

Option308bis a search field that enables a user to search the patient database based on tumor type. In some implementations user selection of option308bcan cause the user interface presentation302to display a drop down list of tumor types, e.g., in alphabetical order. In response to user selection of a tumor type included in the drop down list, a user interface presentation showing patients diagnosed with the tumor type can be displayed. User selection of a patient with a tumor of the tumor type can cause the user interface presentation to display data related to the patient, as described below with reference toFIG.5. In some implementations a user can input a tumor type in option308a. Input of a tumor type can cause the user interface presentation302to display search results matching the input tumor type, e.g., as a list of tumor types in alphabetical order. In response to user selection of a tumor type included in the search results, a user interface presentation showing patients diagnosed with the tumor type can be displayed. User selection of a patient with a tumor of the tumor type can cause the user interface presentation to display data related to the patient, as described below with reference toFIG.5.

Option308cenables a user to add a new record to the patient database.

In some implementations, in response to the user selecting the patient option306a, the user interface presentation302can present icons310a-brepresenting patients recently viewed by the user, e.g., in a last login session or prior to selection of the patient option306a. User selection of an icon310aor310bcan cause the user interface presentation to display data related to the corresponding patient, as described below with reference toFIG.5.

In response to the user selecting the machine option306bthe user can be presented with an an overview of available machines.

FIG.5shows an example user interface presentation312. The user interface presentation312shows data relating to a patient undergoing IMRT, e.g., as selected by a user through user interface302. A first portion314of the user interface presentation312displays personal information for the patient, e.g., patient name, date of birth, contact details, address, and insurance provider. In some implementations the first portion314can include an option316which, when selected, opens an electronic health record for the patient.

A second portion318of the user interface presentation312enables the user to interact with the q-rad system to calculate an optimal IMRT treatment plan for the patient. For example, the second portion318of the user interface presentation312includes an image, e.g., a most recent image, of the patient's tumor. In addition, the second portion318of the user interface presentation312includes options322-328for inputting data including tumour type, location, and volume-dose constraints, e.g., data specifying an objective function to be minimized (or maximized) with respect to a set of parameters and data representing constraints for the minimization (or optimization) as described at step202with reference toFIG.2. For example, option322enables the user to input a target body structure or body structure at risk from the treatment. Option324enables the user to select a volume of the body structure input at option322, e.g., as a percentage. Option326enables the user to select a dosage limit for the volume of the body structure. After the user completes options322,324and326, the user can select option328to add the volume-dose constraint to the IMRT objective function.

FIG.6shows an example user interface presentation332. The user interface presentation332shows example user interface presentation312after the user has entered multiple volume-dose constraints. For example, the user has entered the right kidney in option322, specified a volume of 10% in option324, and entered a dosage limit of 20Gy in option326. The user can select option328to add this volume-dose constraint to the IMRT objective function. After adding a volume-dose constraint to the IMRT objective function, a summary of the volume-dose constraint is displayed on the right hand side of portion318. In this example, the user has already entered five volume-dose constraints for the patient's bladder, left femoral head, right femoral head, and planning target volumes (PTV). Added volume-dose constraints can be deleted by selecting the trash options next to the displayed volume-dose constraints.

When a user has entered all required volume-dose constraints, the user can request a corresponding IMRT treatment plan by selecting the calculate plan option330. Selection of the calculate plan option330causes the system to execute step204of example process200described with reference toFIG.2using the received input data.

FIG.7shows an example user interface presentation334. The user interface presentation334shows example user interface presentation332after the user inputs volume-dose constraints and other information to define a corresponding IMRT objective function and selects the calculate plan option330. The user interface presentation334shows information relating to a corresponding IMRT treatment plan. For example, the user interface presentation334includes a summary336of the volume-dose constraints input by the user in example user interface presentation332and the image of the tumor shown in example user interface presentation332.

The user interface presentation334further includes graphs338and340that enable the user to visualize the solution to the IMRT treatment plan problem, e.g., the generated treatment plan. Graph338shows a dose-volume histogram for each input body structure. Graph340shows a three-dimensional representations of the generated treatment plan, where the surface would be coloured according to Gy intensity. The user can export the generated plan by selection of the export option341. For example, the user can export the generated plan as machine instructions which can be directly transmitted to a IMRT machine to program the machine to execute the generated treatment plan.

FIG.8shows an example user interface presentation342. The user interface presentation342displays a calendar view344and enables a user to view the dates and details of previously generated treatment plans, and to add a new upcoming calculated treatment plans, e.g., the treatment plan calculated and displayed in user interfaces332,334. A user can select a previously generated plan and view or adjust the plan. For example, a user may select a planned treatment and adjust values associated with the treatment plan to update the treatment plan or calculate a new plan. Selection of a previously generated plan can cause the user interface presentation342to display a presentation similar to user interface presentation334or332, through which the user can select and adjust previously entered volume-dose constraints.

FIG.9shows an example user interface presentation346. The user interface presentation346displays images348related to calculated treatment plans for different days, and enables a user to compare the different treatments and in some cases the patient's response to the treatments. The user can highlight a particular image and select the select option350to view a treatment plan performed on the date of the image, e.g., selection of the select option350can cause the user interface presentation346to display a presentation similar to user interface presentation334or332.

Implementations of the digital and/or quantum subject matter and the digital functional operations and quantum operations described in this specification can be implemented in digital electronic circuitry, suitable quantum circuitry or, more generally, quantum computational systems, in tangibly-embodied digital and/or quantum computer software or firmware, in digital and/or quantum computer hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. The term “quantum computing device” may include, but is not limited to, quantum computers, quantum information processing systems, quantum cryptography systems, or quantum simulators.

Implementations of the digital and/or quantum subject matter described in this specification can be implemented as one or more digital and/or quantum computer programs, i.e., one or more modules of digital and/or quantum computer program instructions encoded on a tangible non-transitory storage medium for execution by, or to control the operation of, data processing apparatus. The digital and/or quantum computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, one or more qubits, or a combination of one or more of them. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal that is capable of encoding digital and/or quantum information, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode digital and/or quantum information for transmission to suitable receiver apparatus for execution by a data processing apparatus.

The terms quantum information and quantum data refer to information or data that is carried by, held or stored in quantum systems, where the smallest non-trivial system is a qubit, i.e., a system that defines the unit of quantum information. It is understood that the term “qubit” encompasses all quantum systems that may be suitably approximated as a two-level system in the corresponding context. Such quantum systems may include multi-level systems, e.g., with two or more levels. By way of example, such systems can include atoms, electrons, photons, ions or superconducting qubits. In many implementations the computational basis states are identified with the ground and first excited states, however it is understood that other setups where the computational states are identified with higher level excited states are possible. The term “data processing apparatus” refers to digital and/or quantum data processing hardware and encompasses all kinds of apparatus, devices, and machines for processing digital and/or quantum data, including by way of example a programmable digital processor, a programmable quantum processor, a digital computer, a quantum computer, multiple digital and quantum processors or computers, and combinations thereof. The apparatus can also be, or further include, special purpose logic circuitry, e.g., an FPGA (field programmable gate array), an ASIC (application-specific integrated circuit), or a quantum simulator, i.e., a quantum data processing apparatus that is designed to simulate or produce information about a specific quantum system. In particular, a quantum simulator is a special purpose quantum computer that does not have the capability to perform universal quantum computation. The apparatus can optionally include, in addition to hardware, code that creates an execution environment for digital and/or quantum computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

A digital computer program, which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code, can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a digital computing environment. A quantum computer program, which may also be referred to or described as a program, software, a software application, a module, a software module, a script, or code, can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and translated into a suitable quantum programming language, or can be written in a quantum programming language, e.g., QCL or Quipper.

A digital and/or quantum computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data, e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files, e.g., files that store one or more modules, sub-programs, or portions of code. A digital and/or quantum computer program can be deployed to be executed on one digital or one quantum computer or on multiple digital and/or quantum computers that are located at one site or distributed across multiple sites and interconnected by a digital and/or quantum data communication network. A quantum data communication network is understood to be a network that may transmit quantum data using quantum systems, e.g. qubits. Generally, a digital data communication network cannot transmit quantum data, however a quantum data communication network may transmit both quantum data and digital data.

The processes and logic flows described in this specification can be performed by one or more programmable digital and/or quantum computers, operating with one or more digital and/or quantum processors, as appropriate, executing one or more digital and/or quantum computer programs to perform functions by operating on input digital and quantum data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA or an ASIC, or a quantum simulator, or by a combination of special purpose logic circuitry or quantum simulators and one or more programmed digital and/or quantum computers.

For a system of one or more digital and/or quantum computers to be “configured to” perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. For one or more digital and/or quantum computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by digital and/or quantum data processing apparatus, cause the apparatus to perform the operations or actions. A quantum computer may receive instructions from a digital computer that, when executed by the quantum computing apparatus, cause the apparatus to perform the operations or actions.

Digital and/or quantum computers suitable for the execution of a digital and/or quantum computer program can be based on general or special purpose digital and/or quantum processors or both, or any other kind of central digital and/or quantum processing unit. Generally, a central digital and/or quantum processing unit will receive instructions and digital and/or quantum data from a read-only memory, a random access memory, or quantum systems suitable for transmitting quantum data, e.g. photons, or combinations thereof.

The essential elements of a digital and/or quantum computer are a central processing unit for performing or executing instructions and one or more memory devices for storing instructions and digital and/or quantum data. The central processing unit and the memory can be supplemented by, or incorporated in, special purpose logic circuitry or quantum simulators. Generally, a digital and/or quantum computer will also include, or be operatively coupled to receive digital and/or quantum data from or transfer digital and/or quantum data to, or both, one or more mass storage devices for storing digital and/or quantum data, e.g., magnetic, magneto-optical disks, optical disks, or quantum systems suitable for storing quantum information. However, a digital and/or quantum computer need not have such devices.

Digital and/or quantum computer-readable media suitable for storing digital and/or quantum computer program instructions and digital and/or quantum data include all forms of non-volatile digital and/or quantum memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; CD-ROM and DVD-ROM disks; and quantum systems, e.g., trapped atoms or electrons. It is understood that quantum memories are devices that can store quantum data for a long time with high fidelity and efficiency, e.g., light-matter interfaces where light is used for transmission and matter for storing and preserving the quantum features of quantum data such as superposition or quantum coherence.

Control of the various systems described in this specification, or portions of them, can be implemented in a digital and/or quantum computer program product that includes instructions that are stored on one or more non-transitory machine-readable storage media, and that are executable on one or more digital and/or quantum processing devices. The systems described in this specification, or portions of them, can each be implemented as an apparatus, method, or system that may include one or more digital and/or quantum processing devices and memory to store executable instructions to perform the operations described in this specification.

While this specification contains many specific implementation details, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular implementations. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system modules and components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

Particular implementations of the subject matter have been described. Other implementations are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous.