Import DicomRT fault (caps open area)

slicerrt
(Russell Tarver) #1

Operating system: Windows
Slicer version: 4.7
Expected behavior: DicomRT fidelity
Actual behavior: Incorrect import/display?

I’m working on some 3D printing projects and can successfully move data from my planning station to my printing tools. However, it seems that when I import my DicomRT objects, 3Dslicer caps the top and bottom incorrectly. There’s probably an easy way to fix or trim this issue, but I can’t figure it out.

Right now, I import the DicomRT Structures, and simply export/save as an *.stl file, then I take over with Simplify3D. I’d rather not include another piece of software unless absolutely necessary. I’ve tried to attach a picture where you can see the added top and bottom ‘plates’ that are added.

image

(Andras Lasso) #2

What do you mean by “caps the top and bottom incorrectly”? Can you upload a screenshot how it looks like and what would you expect it to look like?

DICOM RTSTRUCT is only intended to be used for radiation therapy planning and it is not suitable as a general-purpose mesh file format. There are geometries that simply cannot be stored accurately in RTSTRUCT. If possible, try to avoid RTSTRUCT and use any standard mesh file format instead. There are new DICOM objects that allow proper storage of surface meshes.

(Russell Tarver) #3

Andras,

I think I’m limited to to DICOM-RT for my initial structure design and export based on my planning station capabilities. If you look at the uploaded graphic in the original post, you can see the artifact I’m seeing. You can see the general patient contour, and then at either end (top and bottom), you can see there’s a fine thin ‘plate’ with a sharp edge. Neither of those are in my original design and I suspect are some sort artifact from the DicomRT export, or DicomRT import.

Ultimately I solved this particular problem by using a cheap free modeler to subtract off a mm at each end, but I’d rather not add another piece of software unless absolutely necessary.

(Csaba Pinter) #4

End-capping is performed for the following reason: “Since the image slices that are used to draw the contours are shown at the midline of the voxels comprising the slice but are infinitely thin, end-capping needs to be applied, so that the half-voxel thick volume at the top and bottom extremes are considered.”

If you don’t do end-capping, then the top and bottom contours will be flat (and thus unrealistic), and also incorrectly occupying the volume as explained above. This step is typically performed in software able to import DICOM-RT, but the ways may be different. SlicerRT does end-capping by adding an extra contour half slice from the extreme slices, which will be the same as the last contours, except eroded to be 50% of the area.

I don’t think this option can be disabled, but I can add this option easily.

The Segment Editor module can do this, no need to use external software.

(Andras Lasso) #5

Would you mind posting an image that shows the issue better? Mark the part where the issue is and if possible attach a picture that shows a screenshot from a rendering by your TPS.

Do you try to define an open surface in your TPS? Do you draw lines or closed curves in the image slices?

Why do you use your TPS for segmentation? It is likely that you can do the segmentation faster and better quality using the Segment Editor module in Slicer. Also, you can avoid lossy and unpredictable conversion of your surface to and from DICOM RTSTRUCT (you can export segmentations from Slicer directly to STL).

(Russell Tarver) #6

Andras,

Thank you so much for the responses.

First image below is directly from my planning station (Varian Eclipse if that matters).
Second image is from Simplify3D showing the caps created by Slicer3D.
Third image is from Slicer3D.

I tried to keep the same aspect for all three images. The area of concern is the only ‘flat space’ in the whole structure and should be readily apparent. This isn’t a simple capping of an existing contour but instead is some type of interpolation between points.

If there’s an easy way to correct this in Slicer3D, then that would make my process flow much easier. I would really appreciate the tip/trick to do that easily. In general, I don’t bring in any of the images, only the structure.

Regarding my workflow. It’s much easier to design the device in the planning station because ultimately I need it there for calculation purposes, and it’s design is a function of existing beam placement and is facilitated by those tools.

image

image

image

(Csaba Pinter) #7

This seems like an open countour, but SlicerRT currently does not support open countours

Is it supposed to be open, or is it just really thin?

(Russell Tarver) #8

This particular device is a solid shell with a thickness of 3mm. It’s a closed shell, but the surfaces of interest (those large flat surfaces) should not be there.

Russ

(Andras Lasso) #9

Maybe we haven’t tested the end-capping algorithm thoroughly enough with thin shell geometries. Please share a data set with us (use a publicly available CT series to avoid privacy issues) and we’ll test and fix up end-capping.

1 Like
(Russell Tarver) #10

Andras,

Do you need the original CT set? The Structure started as DICOM-RT from my planning station. Generating contours outside of the planning station (and thus endcapping in Slicer3D), would complicate things for me.

For calculation purposes, I need to generate the structures in my planning station. For diagnostic purposes, I’ll generate a thicker shell and see if we have the same issue.

Russ

(Andras Lasso) #11

The original CT is needed to determine slice spacing (it is one of the many limitations of RTSTRUCT IOD that it cannot be fully interpreted without a referenced image IOD), but if it is missing then I think Slicer’s importer tries to guess slice spacing from the minimum distance between planar contour planes. So, it is nice to have the CT but if it is problematic to share then we can probably do without it.

(Csaba Pinter) #12

CT is not considered when triangulating RTSTRUCT (slice thickness is not needed from the CT for this step, but it is calculated from the contours, see here). We only need the structure set to fix this. However, if you don’t mind sharing the whole dataset for future test purposes, then we’d appreciate having it if it’s anonymized. Thanks!

1 Like
(Russell Tarver) #13

What’s the best way to upload/store this amount of data?

Russ

(Andras Lasso) #14

Upload to dropbox/onedrive/googledrive/etc and post the link. Thanks!

(Timeanddoctor) #15

you can use “modify” in blender another free software

(Csaba Pinter) #16

The problem with this is that he has DICOM-RT, not STL or OBJ.