The Plans Toolbar
The plans tool is selected upon selecting RtDosePlan under the Applications toolbar on the main menu.† Options that do not belong to the treatment planning function but that might otherwise be part of Dosimetry Check are either grayed out or do not appear.† Treatment plans are saved under the directory pn.d under the patientís directory whereas Dosimetry Check plans are saved a separate subdirectory ckpn.d.
Under the Plan pull down menu are options to create a new plan, to retrieve an existing plan, or to edit an existing plan.† You must first create or retrieve a plan before you can edit it.†
A plan may also be deleted and copied.† If you copy a plan you must give the copy a new name.† If you have a plan and want to consider some changes, copy the plan and change the new copy, so that the old plan remains available.
The plans and beam parameters are saved as you create and change them.† Some beam parameters are saved when you return from the beamís toolbar.† Dose matrices are saved when you return from the plan toolbar.† You must always take a normal exit from the program to insure that things are saved.† Leaving the plan toolbar for a particular plan will insure that new plan parameters are saved.
Note that you may select or create more than one plan, and may selectively display each plan in different frames.† Because of this feature, plans are not automatically displayed.† You have to select which frames and screens to display a plan in.
Under the plans toolbar is the option to display dose volume histograms.† The dose volume histogram for the same structure for different plans may be displayed together at the same time.
Dose Volume Histogram Popup
Under the Select Volumes pull down on the popup will be a list of the plans.† For each plan cascading off to the side will be a list of all the volumes in the primary stacked image sit for that plan.† You may select any volume for any plan.† Hitting the compute button will start the process of computing the dose volume histograms for all the selected plans and volumes that are to be displayed.† Each volume will be displayed in its chosen display color.† The line style will change each time the same volume is reselected for a different plan.† In the example above there are two plans, one called test and the other tight.† The dose volume histogram is displayed for the target outlined region of interest, gtv, and for the rectum.
The program will generate points at random within the volume and compute the dose at that point.† Using a random process results in faster dose volume histograms (see the paper:† ďRandom Sampling for Evaluating Treatment PlansĒ by A. Niemierko and M. Goitein in Medical Physics Vol. 17(5), 1990, pages 753-762).† The program will continue to generate points and will periodically update the dose volume histogram curve for each volume until the density for a particular volume exceeds one point per cubic millimeter.† When the curves settle down and stop changing you can hit the stop button.† The words ďrunningĒ will appear at the top of the graphics area on the popup while points are being generated.† The program will stop all calculations when a large density of points is achieved for each of the volumes, which is greater than one point per cubic millimeter, or when the stop button has been hit.
The user may change the display from cubic centimeters to percent of volume.† The dose increment along the horizontal axis may be changed as well.† The background of the graphics area can be selected to be white or black.
The Plan Toolbar
Once you have selected or created a plan, the plan toolbar will be displayed.† When the plan is first created you will be required to select the primary stacked image set.† This set will specify the skin boundary and the pixel to density conversion curve.† Once you have selected the primary image set, you cannot change it, you would have to create a new plan.† The toolbar shows the current plan name in an option menu.† You may select different plans with this option menu among the plans that were currently retrieved or created with this run of the program.† Next on the toolbar is the name of the primary stacked image set once it is selected, or an option menu to do so if not yet selected.
The Beams pull down menu has to do with creating and editing beams that belong to the plan.† You can create, edit, and delete beams.† When you create a new beam it will start out with the isocenter of any prior beam in the same plan if not the first beam.† You can also create a new beam that has the same isocenter and angles of a prior existing beam, or create a new beam that is to be parallel opposed to an existing beam.† Each beam is stored in a subdirectory under the planís subdirectory.† You can also change the isocenter location of all the beams to that of a particular beam.
For the current program release, only x-ray beams may be selected.† We presently do not support electron beams.
Under the beams pull down is an option to generate a series of beams conformed to the projection of a particular target and with the projection of other selected volumes subtracted.† This function is for machine with a multi-leaf collimator.
The make conform beams popup tool.
This function will generate static beams on a selected arc at selected intervals in degrees to conform to a selected target.† You can set a margin for any volume selected.† The margin refers to the margin of the volume, not the margin when the volume is projected to the beam's eye view plane.
For example, you might first generate beams every 40 degrees that conform to the prostate.† Then you might generate beams every 40 degrees that conform to the prostate less the projection of the rectum.† Then you can use the auto-weight feature to solve for the monitor units to use for each beam.
First select the treatment machine and then the energy desired.
Next select the target volume and the margin for that volume.†
Hit the "Subtract Volumes" button to bring up a popup listing all outlined volumes for you to choose which volume whose projection you want to subtract.†† Note that you can select a separate margin for each of these volumes (positive margin means the margin is added to the volume, then its projection is subtracted).† It would not make sense for you to select the target volume to be subtracted.† The subtract volumes popup is described in the Beam section under the multi-leaf tool.† However, here if the subtracted volume bisects the projected target into two or more pieces, a separate beam is made for each piece.† For example, if the rectum in the AP direction bisects the prostate (target) into a left and right side, one beam will conform to the left side and another to the right side.† Note that using the MLC control under the Beam toolbar this will not happen, a separate beam with a separate aperture is not made.† But here multiple beams are made, each conformed to a separate projected piece of the target.† Any further editing will require one to drag a leaf to a particular position.
You can select whether the leaf center is to touch the volume (we mean the projection of the volume), all of the leaf edge is to be outside of the target, or all of the leaf edge is to be inside the projected target volume (less all projections).
Leave the toggle button IN if you want to optimize on the collimator angle.† You can set the increment for which collimator angles are tried.†† For example, if one, then every degree is tried.†† If set to five, then starting at the minimum angle, the increment is tried angles is five, for example, 0, 5, 10, 15, and so on.† If optimizing on the collimator angle, the collimator angle set in the below control is ignored.
You can specify the minimum area in the beam's eye view plane at isocenter that the remaining projection is to have in order for a beam to be made.† This projected area will include any added margin.† If the projected area is less than that selected, the beam will not be made.† If the projected area is zero, the beam is never made.
You can select the collimator angle and couch angle that all the generated beams are to have.† As noted above, if optimizing on the collimator angle the collimator angle here is ignored.
Next you must specify the arc over which the beams are to be generated and the spacing in degrees between each generated static beam.† Do this by selecting the angle at which the arc is to start, the direction and length of the arc, and the increment along the arc at which beams are to be generated.†† The generation of beams will stop if the next beam would go beyond the arc length.
For example, an arc length of 360 degrees starting at zero with an increment of 40 degrees would generate beams at 0, 40, 80, 120, 160, 200, 240, 280, and 320 degrees (0 or 360 is not duplicated).
Hit the "Create Beams" button when you have made all your selections.† You can then select each beam to be edited, and look at the beamís eye view for that beam to view the result for that beam.
Under the Display pull down are options pertaining to displaying the plan.† Because there may be more than one plan in the run of a program, the plans are not automatically displayed in frames.† Rather you must select which frames to display the plans in.† You can specify a specific frame or all the frames on the currently displayed screen.† However, the program will not allow a plan to be displayed on an image that does not belong to either the primary stacked image set or on an image set not fused to the primary image set.† A plan cannot be displayed in a frame in which a plan is all ready displayed.† What is displayed are the beams, point doses, and isodose curves if also selected for display.† Note that under the stacked image set pull down on the main you can redisplay an entire image set on a new screen, for the case you want to display a different plan on all the images of the same image set.
Display Plan Control Popup.
A popup tool is provided to remove a plan from being displayed in a frame.† The same controls appear to display a plan but additional controls are provided to remove a plan from a frame or screen.
The central ray is drawn as a solid line to isocenter, and then drawn as a dashed line beyond.† The beamís eye view x, y, and z axes are drawn and marked.† The z axis is the central ray, positive toward the source of x-rays, and lies coincident with the central ray.† With the treatment machine pointed at the floor and the collimator unrotated, the x axis goes from left to right while standing in front of the treatment couch looking toward the gantry.† The y axis is parallel to the long axis of the unrotated treatment couch and points toward the gantry.† The origin is at isocenter.† The intersection of the beam with the plane is shown.† When the beamís toolbar is actively selected, this area is tinted yellow.
There is an option to create a screen consisting of four frames, a transverse, coronal, and sagittal plane, and a 3d room view.† The planes are either the center of the image set or may be the center of an outlined region of interest.†
Items under the evaluate pull down have to do with calculating the dose and displaying the result.† Because calculation times may be long, there is control to selectively select which frames the dose is to be displayed in.† Each frame is calculated when it is selected here to display the dose.† The hot spot in that frame will be displayed and marked with a star asterisk like figure.
Each beam maintains a dose matrix on diverging fan lines, the fan lines covering the area of the beam.† A rotating beam would be simulated with multiple dose matrices at increments specified by the plan.† The spacing between the fan lines and along the fan lines is specified by the plan, so that all the beams belonging to a plan use the same parameters.† Each beam stores its matrix under its own subdirectory under the plan subdirectory.† The matrices are written to disk files when the return button on the plan toolbar is activated.
For any two dimensional plane image displayed in a frame a two dimensional matrix will be generated that covers the entire image.† The same spacing parameter specifies the distance between points.† When the dose is calculated, the coordinates of each node of the two dimensional matrix is passed to each beam.† The beam module will find the diverging box bounded by the fan lines that the point is inside.† The eight corners of the box will be referred to when interpolating the dose at the position of the passed in point.† Each beam will calculate the dose to each vertex of the diverging box on a need basis.† When ever a reference is made to a vertex where the dose has yet to be computed, the dose is computed at that time.† After calculating the dose to a plane, all the beams will have a swath through their dose matrices of calculated points.† As more planes are computed, more of each beamís dose matrix is computed.† If any change is made to a particular beam, that beamís matrix is reinitialized.
Likewise when a dose in a 3d perspective room view is computed, a rectangular array (lattice) of points is generated for the patient volume.† Each of those points is likewise passed to each beam, so that after a room view display each beam will most likely have calculated the dose to all of the available vertices.
The Calculate All Beam 3D option will force all the beams to compute the dose to all the vertices on their respective dose matrices.
A control is available to specify the spacing to use for all the dose matrices and the increment in rotation to simulate beam arcs.† Making a change here will force all beams to dump their current dose matrices.† The matrices covering planes and the matrix for room views also must be regenerated if a change in spacing is made here.† The user will then have to reselect the frame to display the dose in.
The arc spacing is the increment to use to simulate an arc with fixed beams.† This parameter is adjusted somewhat by each beam to fit the arc length of that beam so that the arc is simulated with equally spaced fixed beams.
2d Isodose Control
This control provides a tool for the user to specify the isodose value to be displayed.† The dose may be displayed in cG or percent of dose to a normalization point (see Normalization Point under Options).† Changing between cG or percent simply changes the label for the curves, the same dose is shown.† The dose value desired is to be typed in the text field at the top of the popup.† For special emphasis, you have the option to increase the width of any selected isodose line.† The line width is in pixels and the default value is zero, which specifies the normal line width.†
The isodose value may be tinted in a single color showing the boundaries and interior (higher doses) of that isodose line.† You may use the mouse to select different isodose values to tint on the scrolled list below the text field for the value entry.† Note also that the tint may be turned off and the tint color may be changed among the primary colors and additions of any two of the primary colors.† Likewise any selected isodose line may be deleted or have its color changed.† Colors are initially assigned at random.† Note also that each isodose line has tick marks on the down hill side (lower dose) of the isodose line, analogous to topographical maps.† The selected isodose lines apply to all 2d frames in which the dose has been selected to be displayed for the plan.
An issue that must be dealt with is what to do when two successive dose vertices span the skin boundary, so that one point is outside the patient and the next point is inside the patient.† The plotting of the isodose line simply stops at that point.† However, the tinted area necessarily requires a closed contour.
In those regions the tint follows a path between points inside the patient and outside the patient and does not accurately represent the dose.
3d Isodose Control Popup.
A three dimensional isodose surface may be shown in 3d perspective room views of the primary stacked image set or any image set fused to it.† Only one surface can be shown at a time.† The desired value is typed into the text field provided.† Under the text field is a control for the transparency of the isodose surface.
Limitations apply here.† A transparent surface can only be seen inside a second transparent surface if the inside transparent surface is drawn first.† Two transparent surfaces that intersect will present a problem in that if surface A is drawn first and surface B is drawn second, then surface A can be seen inside surface B, but surface B cannot be seen inside surface A.† This software will draw the transparent isodose surface before other transparent surfaces.† No attempt is make to sort surfaces or part of surfaces.† If this becomes a problem you have two options. †One, make all the other surfaces opaque or make the isodose surface opaque.† You can also use a cutting plane on volumes that are drawn.† A second option is to display the isodose surface in wire frame.† The wire, solid, off, control is below the transparency scale.
This control controls all frames simultaneously that show 3d room perspective views where the user has chosen to show the dose.† The user must first choose to display the plan in the frame.
The plan does not have its own list of specific points.† Rather, the only list of specific points is maintained by the primary stacked image set.† Therefore all plans using the same stacked image set will calculate the dose to the same list of specific points.† The controls for the specific points are under the Stacked Image Sets pull down on the main toolbar.† Select Options and then Points.
However, we need the ability to specify the coordinates of a point in terms of the beamís eye view coordinates of a specific beam.† Therefore a control is provided here for adding a point where the position is initially specified in beamís eye coordinates.† The coordinates are then transformed to the stacked image set coordinates and the point is created and saved.† The point is not moved if the beam is later moved.† To delete a point use the above controls for points as described under the Stacked Image Sets Options.† The beamís eye view coordinate system is described elsewhere as well.† In the unrotated collimator and gantry positions (beam pointed at floor), the x axis goes across the couch left to right when looking into the gantry, the y axis points toward the gantry along the gantryís axis of rotation, and the z axis points toward the source of x-rays.† The x and y axes rotate with the collimator.
Plan Points Toolbar.
Under the Evaluate pull down we have a points toolbar.† Here the dose to the specific points may be computed, displayed, printed, or saved to a temporary file.† We can select the popup to enter new points in beamís eye view coordinates.† There is also a mechanism for comparing measured to computed values for testing purposes.
Simply hitting this button will cause the points to be computed and printed.† However, the physics summary provides more information about points, such as their coordinates in plan and beamís eye view coordinates, and the contribution of each beam to the point.† The physics summary is printed from a print button on the dose prescription popup selected from the Options pull down on the plan toolbar.
Selecting this option, the pointís label and dose value will be written to a file in the temporary file directory where print jobs are also stored.† The dose to the points are first computed.† An example file follows:
//† Test Square†††† 12-Dec-2000-09:19:19(hr:min:sec)
// Label††††††††† Dose in cGray
<* Example Label *> 1.299286
<* slice 10 row 4 column 7 *> 1.324436
The file is written in our ASCII standard whereby comment lines start with two slashes and are not read.† The label for the point is enclosed between the <* and *> symbols.† The dose value is simply a number set off by white space.† This format will also be referred to below.
This choice will display the dose value computed for each point below the label for the point in all frames where the plan is displayed.
This will turn off the display of the dose value of the points.† Note also that any change to the plan or a beam will also turn of the display of the dose values.
Locate Points in BEV Coordinates Control
This tool is provided here as a convenience so that a point can be added to the stacked image set in reference to the beamís eye view coordinates of a beam.† The control is very much like the one provided by the stacked image set under Options, Points toolbar.† However, we have added an option menu to select the beam.† Below the option menu are controls for the x, y, and z coordinates of the point.† The point may not be located with the mouse.† Do that on the control provided by the stacked image set.† This control is provided for the case when a point must be specified in relationship to the coordinate system of a beam.† Likewise, to delete or otherwise edit points, use the other controls provided by the Stacked Image Sets Options.
This option was provided for a very narrow purpose.† Specifically, we irradiated a Rando Phantom and measured the dose at specific points and wanted to be able to display the measured value with the computed value.† The measured values must be written to a file in the same format as the computed points are written to as described above.† Selection of this option will prompt you to enter the file name of the measured points.† The measured points are associated with the computed points by means of the pointís label.† The labels are not directly compared.† First each label is converted to lower case and then all spaces are removed and then compared.† Care must be taken that the labels will remain unique when the user creates the labels.† For a match, the measured value will be displayed below the computed value.† An m is also appended to the measured dose value.† In our use of the Rando Phantom we labeled the holes according to a scheme.† There are 7 rows and 13 columns of holes with the 3 cm matrix drilling.† Each hole is known by its slice number, row number, and column number.† By labeling the holes consistently, the measured values can be matched up with the computed values and displayed.† The specific points are also computed upon selecting this option.
We have also written a program that will compare measured and computed values, CompareRandoPoints.† Invoke this program and on the command line provide the name of the file that contains the measured points, the name of the file that contains the computed points, and the name of a file to write the report to.† This program assumes that only numbers appear in the label field, consisting of the slice number, row number, and column number separated by spaces and sorts values by those indices.
This labeling scheme could cause some confusion in the above display function in frames as 11 1 1 would be indistinguishable from 1 1 11, for example, after removing spaces.† The row number is only in the range of 1 to 7 and the column goes only from 1 to 13.† Use leading zeros for the slice number and column number for single digits if there is a possibility of confusion, i.e. 11, 1 01 and 01 1 11.
On the options pull down we can select the dose prescription method.† Because the dose prescription might be in terms of the dose to the normalization point, we put both controls on the same popup.
In the upper left hand corner of the popup, you can select to show either dose in centiGray, or percent of dose.† The default is to show dose.† To show percent, hit the percent choice.†† BUT, percent of what?† To the right of the show dose or percent area is where you can select the normalization point.† When you show percent, it will be the percent of this point.† Changing between dose and percent simply changes the labels for the same selected isodose lines.
Here we specify where the normalization point is.
The left choice is to normalize to the isocenter of a particular beam.† Below the choice you pick the beam.† If all beams have the same isocenter location, it won't make any difference which beam you choose.
The middle choice is to normalize to the nominal dmax point of a particular beam.† Here the point will be on the central axis at the depth of the nominal dmax depth, for example 1.5 cm if 6x.† The same option menu selects which beam is to supply the dmax point.
The right choice is to select some specific point for the normalization point.† This is a point that you locate within the stacked image set under the Stacked Image Sets pull down on the main tool bar, to Options, to the Points toolbar.† The option menu below Specific Point on the right is to select which point among the list of points.
The dose prescription method is selected here.† There are three choices:† specify the dose to a point for each beam, specify the monitor units for each beam, or specify the dose to the normalization point and then select the weight for each beam.
For each beam, you must specify the dose that the beam is to give to some point.† Lengthen the popup or scroll to each beam control area.† You type in the dose to the beam's point.† This entry also determines the relative weight of each beam.† Below the type in area, you specify what is to be the beam's point.† The choices are identical to the normalization point controls above.† You may select the isocenter or dmax point of any beam.† The default is the beam's own isocenter point.† Or you may pick a dmax point of a beam or lastly, a specific point located from the stacked image set.†
After specifying the dose and dose point for each beam, hit the Apply button and the monitor units will be displayed for each beam.† You will notice a slight change in the dose values.† This is because the dose is shown for the monitor units rounded off to a whole number.† Under dose to a point, you cannot specify the monitor units.† Monitor units are computed when the Apply button is hit.
Choose this option to specify the monitor units each beam is to get.† You must type in the monitor units for each beam.† Then hit the Apply button and the dose to each beam's point will be shown.† The monitor units used with the open field and wedged field is also shown.† If a wedge is present and an open field and wedged field are being mixed to make a smaller wedge angle, you will see the respective monitor units for the open and wedged field.† You cannot change that here.† You must set the wedge angle under the wedge option for each beam to less than the nominal wedge angle to mix open and wedged fields and set the ratio.
The dose to each beam's point is displayed when the Apply button is hit.
Choose this option to specify the dose that the normalization point is to get.† Then select the percent.† For example, 180 cG and 95% means that 95% of the dose to the normalization point will be 180 cG.† Under this option you specify the weight of each beam by typing in the numbers for Dose or Weight for each beam.† Here the entry is now weight.† This is the relative dose each beam is to give to its weight point relative to the other beam's weight point.† Hitting the Apply button will display the monitor units and calculate the actual dose to each beam's weight point.†
The monitor units are computed and the dose to each beam's point is displayed when the Apply button is hit. You can then select to redisplay isodose curves to see how a change in weight affects the dose distribution.
A physics summary is printed when the print button is hit.† Note that the physics summary contains a plan ID number.† If any change is made to the plan that effects the dose, the plan ID is incremented.† The plan ID is also displayed on all the 2d and 3d frames where the plan is displayed.† This ID number serves as a control to guarantee that a print out belongs with a particular screen print.† This print out contains information about each beam and the dose to specific points, and should be placed in the patientís chart and used as the definitive document for the plan.
The function will compute the monitor units for each beam given a minimum dose constraint on a target volume.† The dose to other outlined regions of interest can be minimized or constraints imposed.
The beam auto weight toolbar.
This toolbar provides tools for solving for the monitor units for each active beam in an optimal fashion.† Four different optimization schemes are supplied:
(1) linear programming solved with the Simplex method,
(2) a down hill search method with penalties added to the objective function for violated constraints.
(3) the Cimmino algorithm,
(4) Simulated Annealing.
The behavior of these four solution methods are different and effect the way you must set up the problem in choosing parameters for targets and organs at risk (OARs).
Plans must be evaluated for the correct dose and dose distribution after running this algorithm.† You cannot assume this algorithm will find the correct monitor units for all the beams.† You must evaluated the plan as you would any plan when changing beam weights.
By specifying different apertures for different beams, including beams with different apertures for the same beam location, you can achieve plans meeting difficult treatment plan specifications.† We recommend that you read the reference:
"An Optimized Forward-Planning Technique for Intensity Modulated Radiation Therapy" by Y.Xiao et. al, in Medical Physics, Vol. 27, No. 9, Sept. 2000, pages 2093-2099,
as to how to achieve similar results to intensity modulated radiation therapy (IMRT) with this method.† Two or more beams at the same coordinates but with different field shapes results in some intensity modulation, so in some respects one could call this IMRT.† Our definition of IMRT is the division of a beam field into pixels and solving for the intensities of each of those pixels separately, often referred to as inverse planning.† We are not doing that here, but we can achieve similar results here with what is usually referred to as forward planning.† The beams and beam shapes are predefined as normally done in planning.† This tool is used here to help find the monitor units to use for each of those beams to achieve a clinical end.† Below we only have constraints on dose, we do not deal with volume histogram constraints.
The Simplex method has a linear objective function and linear constraints.† It has the advantage of strictly enforcing constraints and reporting if a feasible solution (a solution that satisfies all the constraints) is not possible.† The down hill search method and simulated annealing method have only an objective function and use the same objective function.† Constraints are folded into the objective function by added a penalty to the objective function if a constraint is violated and so will return a solution even if the constraints cannot be all satisfied, with the solution being a compromise.† The down hill search could get trapped in a local minimum if there are multiple minimums.†† The simulated annealing algorithm might be more likely to find a global minimum.† The Cimmino algorithm only has constraints and has no objective function.† It is described in the above reference.† If all the constraints cannot be satisfied, a compromise solution is returned.
All three algorithms use the parameters you define or select with the Select OAR and Target popup, but they will use those parameters differently.† On this popup you can select which volume is to be the target volume.† You must specify a minimum dose for the target.† You can optionally specify a maximum dose as a constraint.† Notice that there is also an importance parameter and a penalty parameter.
You may also select volumes as an OAR.† You would not specify a minimum dose for an OAR, but you might specify a maximum dose as an optional constraint.† The importance parameter and penalty parameter might also apply depending upon the algorithm used.† How the constraints, importance value, and penalty value are used depends upon the algorithm selected to solve for the beam weights (monitor units).
Select target and OAR popup tool.
NOTE:† A blank text field for an upper constraint (maximum dose) means there is not an upper constraint.† Whereas a value of zero creates an upper constraint of zero dose.
The contibution of a volume to the objective functions are normalized by the number of points in the volume so that a large volume does not dominate.
The simplex method solves for linear objective functions and linear constraints.† All our constraints are linear in that the dose is specified as being either above some selected value or below some selected value.† The program minimizes the sum of the dose to the target and OARs.
The linear sum of dose in the objective function means that our clinical objectives may not be automatically met when this sum is minimized.† For example, if two points each get 90 cG the sum is 180, but if instead one point were to get 0 and the second to get 180, the sum is still 180.† This is different from taking the squares of the dose.†† Taking the squares the 90, 90 situation, i.e. 2 times 90 squared, results in an objective function value of 16,200 and has a lower value than the 0, 180 situation, where 0 squared plus 180 squared results in a value of 32,400.† Therefore a linear sum does not distinguish between all the dose being concentrated in an area from the same dose being spread out.† For example, for a four field box on a pelvis, this algorithm is probably going to pick the A/P fields over the laterals because the A/P thickness is typically less than the lateral thickness.† But clinically, we want the dose spread out outside of the target and not concentrated.† However, minimizing the sum of the dose with a floor on the dose enforced for the target will push the solution toward a uniform dose in the target.†
To force the simplex method to spread the dose out among all the fields will probably require an upper constraint on the dose to the body outside the target.† To achieve this, make a new volume from the target with an added margin of 2 to 4 cm (use the function under Volumes on the Contouring toolbar called New Volume From Old).† Then create yet another volume that is the skin boundary with this target plus margin volume subtracted.† Put an upper constraint on this volume.† Start with the target dose and run a solution.† Then lower the dose.† You can do this quickly using a binary search where you half the difference, i.e., set as the upper constraint the target dose divided by two.† If there is no feasible solution take the dose midway between the infeasible solution dose and the last dose that you did get a feasible solution.† With a few trys you will arrive at a good solution.
With the simplex method, the importance value that you can specify for a volume simply multiplies the dose by that value and adds the result to the object function that is being minimized.† The objective function is the sum of the dose to all points inside the target volume and the sum of the dose to all points inside OARs (but multiplied by the importance value for that OAR or target).† The penalty value is not used.† The dose to all points in the target volume is constrained to be greater than or equal to the target dose specified for that volume.† An upper dose constraint is optional for target volumes.† An upper constraint is also optional for OARs.
Any time you specify an upper constraint, a feasible solution that satisfies all the constraints may not exist, and the simplex method will report if a feasible solution does not exist.† You will than have to raise an upper constraint.† That is why it is best that you start with a large upper constraint for which you can get a feasible solution and then lower the constraint until a feasible solution does not exist.
For a reference see:
"On the use of Cimmino's simultaneous projections method for computing a solution of the inverse problem in radiation therapy treatment planning" by Yair Censor, Martin D. Altschuler, and William D. Powlis in Inverse Problems Vol 4, 1988, pages 607-623.
"An optimized forward-planning technique for intensity modulated radiation therapy" by Xiao et. al., Medical Physics, Vol 27 No 9, Sept. 2000, pp. 2093-2099, particularly pages 2094-2095.
There is no objective function to minimize or maximize.† This algorithm simply finds a solution to satisfy all inequalities or a compromise if a feasible solution is not possible.
A selected OAR will be ignored unless you specify an upper constraint value.† The value could be zero (the field must have a number in it and not be blank).
The importance value weights each selected volume, the larger the importance the more the weight.† The weight is divided by the number of points in the volume.† The penalty value is ignored.
We would suggest you first select the target and the minimum target dose.† Then select OAR's and set the upper dose to zero.† If there is no upper dose limit set for an OAR, the OAR is not considered.† The Cimmino algorithm only has constraints, there is no objective function to minimize.† But the constraints are weighted according to their importance.† To cover the target, you may have to increase its importance value.
The Cimmino algorithm stops when either the solution distance is no longer changing, or the maximum number of iterations is exceeded.† You can change either of those two parameters.† The distance is in the units of monitor units.† But the algorithm considers the weight in moving a vector so the distance is divided by the total weight.
Cimmino Set Parameters Popup
Making the stop distance smaller will make the algorithm run longer, and increasing the iteration limit will permit the algorithm to run longer.† Trial and error is required to adjust these parameters and see how they might effect the solution.† But we have picked default values that should work in most cases.
The down hill search method simply searches to minimizes an objective function.† [The simulated annealing algorithm uses the same objective function.]† Constraints are not enforced as there are no constraints in the algorithm.† Rather, constraints get folded into the objective function.
For the target dose lower constraint, the contribution to the objective function is the difference between the dose and minimum target dose squared, and then multiplied by the importance value.† The penalty value is then added only if the dose is less than the target dose.† The contribution is then divided by the number of points in the volume.
For any volume with an upper constraint, the target or OAR, there is only a contribution to the objective function if the dose exceeds the upper constaint value.† The contribution is the penalty value multiplied by the importance value and divided by the number of points in the volume.
For all OARs, the dose is squared and multiplied by the importance value and divided by the number of points in the volume.† The penalty value is not used.
This is called non-linear optimization because the objective function is not a linear equation.† The algorithm should find a feasible solution if one exist because the cost will be lower (the cost being the value of the objective function) for a feasible solution.† Remember that a feasible solution is one that satisfies all the constraints.† However, it might be possible for a local minimum to exist in an infeasible region.† And if there is no feasible solution, a compromise is found in that the objective function is minimized.
After selecting your targets and OARs, you can always hit the Simplex solution button first to find out if a feasible solution exist.† If there are no upper constraints there will always be a feasible solution, since you can always make the monitor units large enough to cover the target dose.† The exception might be if the beams do not irradiate the target.
For the down hill search we suggest you first try simply selecting a target, specify the target dose, and select the OARs, one of which might be the entire body.
The simulated annealing method uses the same objective function used by the down hill search method described above.† The user can control the cooling schedule.† A longer cooling schedule takes longer but improves the chances for finding a good solution.
A reference is:
ďOptimization by Simulated AnnealingĒ by S. Kirkpatrick, C.D. Gelatt, M.P. Vecchi, Science, Vol. 220, No. 4598, pp. 671-680.
Simulated Annealing Stop Parameters
The algorithm generates monitor units for each beam at random.† The standard deviation of the spread of these monitor units is decreased as the algorithm runs.† The square root of the variance is the standard deviation.† The standard deviation is incrementally decreased when the number of iterations per step has occurred.† This is set to ten in the above example (the default value).† After every ten iterations, a sum that starts with zero is increment by the increment value (0.01 in the above example, the default value).† The negative of this sum is the argument to the exponential function, e raised to the Ėsum, i.e., exp(-sum).† This term is the standard deviation fraction:
Sd_fraction = exp ( - sum)
Thus the value of the exponential function, sd_fraction, starts at one and decreases to zero.† The standard deviation is this exponential function value times the initial standard deviation.† The algorithm stops when the standard deviation is less then a minimum value, currently 0.5 monitor units.†
These details are not necessary for you to know.† Just that making the increment smaller or making the number of iterations per increment larger will cause the algorithm to run longer, and will increase the chance of finding a good solution.
The same cooling schedule is used to compute the probability of accepting an increase in objection function.† The variance of the objective function is periodically computed.† The probability of accepting an increase in objective function value decreases according to the same exponential function.† The probability of keeping an increase in cost is computed by:
Probability = exp( - 0.5 * variance) * sd_fraction
Where variance is the current variance of the objective function, and sd_fraction is as above.† Note that the above exponential is the Gauss function or normal probability distribution.† The best solution seen is what is returned.
Once you have selected the target and OARs and call for a solution, the program must compute the dose rate each beam contributes to each point.† A distribution of points are found in each volume to represent that volume.† This dose calculation can take a few minutes, but the results are saved and you can change optimization parameters and call for a second solution without the points having to be recomputed.† Only if you change a beam or add a new volume will the calculation of dose have to be repeated.† You can therefore try different parameters and look at the solution.† The monitor units found with each solution will be displayed to you and automatically installed for each beam.
The plan can be output to an accelerator in two formats:† Dicom RT and Elektaís Transa format.†
For Dicom RT you just select this option and the plan will be written to a file in the temporary directory where print jobs get written (see file tmp.dir.loc in the program resources directory identified in your current directory by rlresources.dir.loc, see the System 2100 manual).†† A popup will inform you of the file name created.† This file will contain all the beam coordinates, monitor units, energy, wedge, and multi-leaf information.† [You can use program DicomRTDump to display the information in a Dicom RT file.]† To send this file to a linear accelerator you will have to use a third party Dicom communications package, of which there are apparently many choices.
Elekta (formally Phillips) has a private protocol for transferring beam shapes to their multi-leaf collimator.† Only the energy, field shape, jaw setting, collimator angle, and multi-leaf positions can be written out.† The files get written to a directory and the linear accelerator does an NFS (Network File Sharing) mount of that directory.† In the machineís data directory must be the file ElektaTransa.loc.† An example of the file follows:
// Directory where plans are to be exported to.†† The program
// first looks into the machine's beam data directory.
// If there it is read there.† If not found it looks into the
// program resources directory.
/* file format version this file */ 1
/* limit of number of plans per patient directory */ 3
/* limit of number of beams per plan */ 8
/* name of machine to put in the file */† MLC_01
/* number of characters of patient dept. id # to use */ 7
/* number of characters of last name of patient to use */ 3
/* number of characters of first name of patient to use */ 0
/* number of characters of middle name of patient to use */ 0
This file specifies the directory where the beam data files are to be written to.† The directory specified here must be listed in the /etc/exports file.† In that file one list the directory, as above, and then possibly the host names of systems the directory may be exported to.†† If no names are listed the directory can be exported to any system.† For example:
will allow the directory /home/export.d/patients to be mounted by the system with host name MLC_01.
It is necessary that read and write permission be given to everyone for this directory, and all components of the path must exist.† To give read and write permission the command is:
†††††††† chmod†† ugo+rw††† /home/export.d/patients
NFS must be running on the treatment planning computer.† For more information see the Elekta Precise Treatment System External Interfaces Manual, TRANSA.
The machine name must be that which the accelerator identifies itself for this purpose.
The program must build a patient ID.† The ID is actually limited to 14 characters.† Specifying more characters in the above file will not cause the program to run over the 14 characters.† In the above example, a patient ID is built from the first 7 characters of the department number and the first three characters of the patientís last name.† Only 12 characters are actually used in any case.† A number is appended if the number of sites should exceed 3.† In the above example, if there are in fact 26 beams in the plan, a second patient ID will be created to hold the last two beams.† The limit on the number of beams per site and sites per patient ID is a specification from Elekta.