I’m trying to generate a RT treatment plan and visualise isodose surfaces through the SlicerRT extension. I’ve added 5 beams and selected the Mock Python dose engine but after calculating, the output dose volume doesn’t appear to be working correctly - when trying to visualise isodoses through the corresponding module, I get the error: dose volume is neither “GY” nor “RELATIVE”. I’ve included screencaps of both the error and the External Beam Planning configuration.
Dear @Harsforn
It’s not an error, just a warning message that calculated dose volume doesn’t have a dose units attribute. You can calculate isodose surface in any case, but the units on the color bar will be “MU” (monitor units). Could you confirm that calculated dose volume has expected dose distribution? That it’s not filled with zero values?
P.S.
I don’t know how Mock Python dose engine calculates dose distribution (Is it working or not).
Mock Python is just an example plugin to show developers how to write a dose engine in Python. It simply fills the beam volumes with a constant value (maybe with some noise applied). It should not be used for anything that intends to approximate real scenarios, only for testing.
Ahh I see; thank you. Is there another standalone photon dose engine/plugin available? I see that the orthovoltage engine uses dosxyzynrc but was hoping to avoid relying on that if possible.
Unfortunately our repeated past attempts to secure funding for adding a photon dose engine (among other things) were unsuccessful, so there are no good options to calculate MV photon dose in SlicerRT.
To answer your question about standalone photon engine, I have been looking at matRad (who at the time were not interested in working together on Slicer integration) but I haven’t checked the project for years. Back then the engine was not fully validated but was said to be pretty accurate.
If you find the matRad engine useful, and then have some affinity and motivation, we’d be happy to help in integrating it into Slicer. It should be fairly simple using SlicerMatlabBridge, but none of my colleagues had time to check in depth matRad and vice versa. Let me know if this sounds interesting to you!
I’ve actually been using matRad together with Slicer! I performed segmentation etc. through slicer (very user friendly) and then exported to matRad for dose calculations but I’ve found matRad to be very prescriptive with the kinds of files/formats it accepts - for example, if a scalar volume is not isotropic the DICOM import fails with an error about the slices being misaligned (which I corrected with Slicer’s Crop Volume but then ran into negative indexing issues with MATLAB/matRad).
I’ve been going back and forth between Slicer and matRad which is why I was asking about SlicerRT’s dose engine in this post - an attempt to cut matRad out of my workflow due to numerous compatibility issues I ran into.
While I am very interested in its integration with Slicer, my project is all but finished tomorrow so I wouldn’t be much help I’m afraid. I am a big fan of Slicer in the short time I’ve used it though and will continue to follow its development. Thank you all for your great work!
hi experts and all
I also encountered the same problem after I imported the DICOM image and conducted the beams and dose calculation. After reading the above solution, I understand is that this slicer RT can only be used for reading plans and some post-processing, but not for making real plans, right?
thank your answer
My guess, that a user calculated dose distribution in third party program or package and now the user wants to calculate a new DVH histogram with already available CT and Segmentation data.
It’s a long and hard way to create a new TPS for scratch.
so is plan design feasible in Slicer RT? Have you tried it? I tried it and found it was not very good. There were only the adjustment of the shooting field Angle and the lead door, which felt a little similar to the forward intensity adjustment, and the DVH was also not ideal…