PlanQualityAssurance (new module):
• checks for simlocalization points and to make sure the points have coordinates
• checks control point spacing in DynamicArc plans to make sure it is 2 degrees or less.
• (added a has_coordinates_poi method in StructureOperations to see if a poi is defined on the image set)
• Look for overlap between external and couch structures
Beginning log parsing.
• Implemented new critical level logging that will allow physicists to quickly see new, pertinent informational items in the log files
Critical: Key script output pertinent for plan checks
Info: Normal script operation leading to plan changes
Warning: Incorrect assumptions or operation when script was executed
Error: error
Debug: effectively, a print statement. YMMV on how useful the entry is
Starting to use the logging.critical level for extraction for PIC review
GeneralOperations
• Implemented a more sane approach to getting a current RS variable. GeneralOperations.py now has a simple function that either returns the RS variable beamset, plan, exam, etc. or optionally searches the current scope and returns a dictionary of all current variables within a patient
FinalDose:
• Checking for fiducial point existence and coordinates
• Checking SBRT and normal grid size, Added a test in final dose script to check for SBRT plan type and update the dose grid if necessary
• Checking for 2 degree control point spacing
• Rounding jaws to nearest mm
• Rounding to nearest MU
• Renaming beams to convention
• Checking for suitable dose specification points, then inserting if need be
• Adding electron calculations and autoselection of MC histories
• Removed SRS from the grid test (1 mm resolution was resulting in a 1 hour computation)
• Check on electron beams to see if they are clinical prior to computing dose
• Added the UserInterface Status guide for encouraging user patience.
• Added a test on TomoTherapy couch position. If the lateral shift exceeds the mechanical range +/- 2 cm, then alert the user that we will need to remove the indexing during treatment.
• If the TomoCouch centroid differs from the isocenter position by more than 2 cm, then center the couch on the isocenter. This will typically be the case when the patient will need to be un-indexed and moved on the table. If these positions differ by less than 2 cm, we should be able to get there with mechanical movement of the couch.
• Added an automatic increment to DSP names in case the DSP already exists (added an exists_dsp method to BeamOperations)
• Added a check to increase the dose difference allowed when finding a DSP, the calculation multiplies the dose tolerance by 1.1 until points are found in the dose distribution.
PlanningStructures
• Cleaning up code for readability.
• Fixed an error in the planning structures script which was defining Skin_PRV03 as a 5 mm internal wall on external. Now it is a 3 mm wall as the name implies
BeamOperations:
• Jaw Rounding: Check first segment only on a beam. If the jaws on the first segment need to be adjusted, then do it for all segments. (This sped up the
calculation significantly).
• Added nice formatting to jaw change message
• Set the tolerance for a suitable existing DSP to 0.01 Gy
• Added an alternative means of finding a dsp:
Find all points greater than specified percentage of dmax (say 98%)
Compute the centroid of these points
Return coordinates for the DSP.
• emc_calc_params now determines the number of histories based on the maximum of the hard limit (UW: 500000) and that required to give an uncertainty of 0.5%
Wrote a test function for the UserInterface.InputDialog method.
PlanQualityAssurance (new module): • checks for simlocalization points and to make sure the points have coordinates • checks control point spacing in DynamicArc plans to make sure it is 2 degrees or less. • (added a has_coordinates_poi method in StructureOperations to see if a poi is defined on the image set) • Look for overlap between external and couch structures
Beginning log parsing. • Implemented new critical level logging that will allow physicists to quickly see new, pertinent informational items in the log files Critical: Key script output pertinent for plan checks Info: Normal script operation leading to plan changes Warning: Incorrect assumptions or operation when script was executed Error: error Debug: effectively, a print statement. YMMV on how useful the entry is Starting to use the logging.critical level for extraction for PIC review
GeneralOperations • Implemented a more sane approach to getting a current RS variable. GeneralOperations.py now has a simple function that either returns the RS variable beamset, plan, exam, etc. or optionally searches the current scope and returns a dictionary of all current variables within a patient
FinalDose: • Checking for fiducial point existence and coordinates • Checking SBRT and normal grid size, Added a test in final dose script to check for SBRT plan type and update the dose grid if necessary • Checking for 2 degree control point spacing • Rounding jaws to nearest mm • Rounding to nearest MU • Renaming beams to convention • Checking for suitable dose specification points, then inserting if need be • Adding electron calculations and autoselection of MC histories • Removed SRS from the grid test (1 mm resolution was resulting in a 1 hour computation) • Check on electron beams to see if they are clinical prior to computing dose • Added the UserInterface Status guide for encouraging user patience. • Added a test on TomoTherapy couch position. If the lateral shift exceeds the mechanical range +/- 2 cm, then alert the user that we will need to remove the indexing during treatment. • If the TomoCouch centroid differs from the isocenter position by more than 2 cm, then center the couch on the isocenter. This will typically be the case when the patient will need to be un-indexed and moved on the table. If these positions differ by less than 2 cm, we should be able to get there with mechanical movement of the couch. • Added an automatic increment to DSP names in case the DSP already exists (added an exists_dsp method to BeamOperations) • Added a check to increase the dose difference allowed when finding a DSP, the calculation multiplies the dose tolerance by 1.1 until points are found in the dose distribution.
PlanningStructures • Cleaning up code for readability. • Fixed an error in the planning structures script which was defining Skin_PRV03 as a 5 mm internal wall on external. Now it is a 3 mm wall as the name implies
BeamOperations: • Jaw Rounding: Check first segment only on a beam. If the jaws on the first segment need to be adjusted, then do it for all segments. (This sped up the calculation significantly). • Added nice formatting to jaw change message • Set the tolerance for a suitable existing DSP to 0.01 Gy • Added an alternative means of finding a dsp: Find all points greater than specified percentage of dmax (say 98%) Compute the centroid of these points Return coordinates for the DSP. • emc_calc_params now determines the number of histories based on the maximum of the hard limit (UW: 500000) and that required to give an uncertainty of 0.5%
Wrote a test function for the UserInterface.InputDialog method.