SlicerRt / SlicerRT

Open-source toolkit for radiation therapy research, an extension of 3D Slicer. Features include DICOM-RT import/export, dose volume histogram, dose accumulation, external beam planning (TPS), structure comparison and morphology, isodose line/surface generation, etc.
https://slicerrt.org
127 stars 60 forks source link

initial MLC support #120

Closed MichaelColonel closed 4 years ago

MichaelColonel commented 4 years ago

RTPlan only

cpinter commented 4 years ago

Thanks a lot for making the separate PR for the MLCs!

I'll add comments in the code.

MichaelColonel commented 4 years ago

Some changes. Beam polydata for MLC was rewritten from scratch to use both MLC and Jaws information.

Some artifacts are still possible, when beam polydata is generated.

I don't know how to put table node correctly in hierarchy as a child of RTPlan node or beam node, and how to draw beam always foreground.

cpinter commented 4 years ago

Thank you very much, I really appreciate your time!

We are in the middle of moving abroad, but I'll try to make some time to review it. If everything seems alright except for the two things you mention then I'll integrate it and do those myself.

Cheers!

MichaelColonel commented 4 years ago

Beam is not always foreground is no longer an issue. Beam node doesn't update beam poly data, when i set MLC positions table node using

beamNode->SetAndObserveMLCPositionTableNode(tableNode);

It updates polydata when i click on "Edit properties..." action in popup menu on a beam node.

Basically two problems remains (IMHO):

  1. Proper position of MLC table node within hierarchy, maybe better name for the MLC table node as well.
  2. Beam node should observe changes in a MLC table node, and updates beam polydata

image

cpinter commented 4 years ago

Perfect, thank you! Also thanks @Sunderlandkyl for merging! Now I am gradually getting back to normal, and soon I will take a look at the two outstanding issues mentioned above.