Edit this page

NA-MIC Project Weeks

Back to Projects List

Extending Radiotherapy Treatment Planning Capabilities within SlicerRT

Key Investigators

Presenter location: In-person

Project Description

We will extend the treatment planning capabilities of SlicerRT by upgrading the corresponding user interface to better separate plan optimization and dose calculation. Algorithms will be interfaced from the open source treatment planning toolkit matRad via its new Python extension pyRadPlan. The goal is to allow full treatment planning on data loaded directly in Slicer, returning planned dose cubes for further analysis in Slicer.


  1. Python connection between SlicerRT ExternalBeamPlanning & pyRadPlan (matRad’s Python interface)
  2. Photon & Ion Dose calculation engines available within SlicerRT ExternalBeamPlanning
  3. Updated SlicerRT ExternalBeamPlanning UI to better display planning workflow
  4. Rudimentary treatment plan optimization capabilities within SlicerRT

Approach and Plan

  1. Evaluate existing internal prototype for SlicerRT / matRad Python Interface
  2. Interface Forward dose calculation engines from matRad for photons and ions
  3. Update ExternalBeamPlanning Infrastructure to represent four-step planning process in slicerRT: Geometry Definition, Inverse Dose precomputation, Optimization, Forward dose calculation (already existing within ExternalBeamPlanning module in SlicerRT).

Progress and Next Steps

Project week progress

  1. Prototype for treatment planning with matRad Python interface cleaned up in SlicerRT
  2. Enable forward calculation / conformal beam-wise planning using dose calculation and optimization as a dose engine
  3. Create infrastructure within SlicerRT for separating treatment planning into dose influence matrix calculation and optimization by introducing PlanOptimizers
  4. Prototype for storing dose influence matrices in BeamNodes using Eigen Sparse Matrices (ITKEigen3)

Next steps

  1. Concatenate dose influence matrices on Plan level
  2. Enable full IMRT within PlanOptimizers using dose influence matrix structure (maybe also implement a mock optimizer just applying uniform fluences)


Prototype for beam-wise conformal planning:

Prostate plan with SlicerRT

New widget elements / infrastructure for inverse planning:

Widget Extension

Dose Influence storage accessible from Python for Beam Nodes:

Dose Influence Matrix accessibility

Background and References

No response