DICOM data has negative spacing value


I am trying to load a DICOM dataset using vtk-dicom or GDCM. The volume rendering is never right (only show one plane at the lower Z plane. I found out the output from the reader has spacing values as: spacing[2]=-3. I changed the spacing value to +3, the rendering is working.

So, my guess is that VTK cannot directly support negative spacing value, or I need some fillters. Just couldn’t figure out how to get this right without resort the point data.

This is a multiframe RT dose, file, native VTK readers won’t even work.

I appreciate if you can help with this.

Merry Christmas!

If you need VTK-based robust DICOM RT dose, RT structure set, RT image, RT plan import (and all the other common DICOM IODs, such as CT, MRI, PET, US, deformable registration object, structured report, segmentation object, etc.) then you can use 3D Slicer and its SlicerRT extension.

You also get dose volume histogram computation and metrics, dose comparison (gamma analysis), external beam RT plan visualization (static and dynamic), isodose curve/surface display, dose warping, accumulation, RT structure set conversion to closed surface and binary labelmap, segmentation editing, dose computation using various engines (such as a simple proton dose engine; or orthovoltage treatment dose computation using EGSnrc), linac coordinate system visualization, patient collision analysis, etc.

Of course you can also use all standard Slicer features (many image registration, segmentation, visualization, quantification tools, one-click virtual reality display, etc.) for all these RT objects.

All these are VTK-based, open-source, completely free, with restriction-free license, free support, fully Python-scriptable and customizable and extensible in Python and C++.

If you have any questions then you can ask at discourse.slicer.org.

Hi Andras,

thanks a lot for your reply. I am trying to look into Slicer and RT extension. Even though they are all open, I realized that bringing things into our application is not an easy choice.

I would appreciate if you can suggest any approach to deal with the negative Z spacing value.

Best regards,

Since Slicer license allows free reuse for any purpose without restrictions, you can extract any part of SlicerRT DICOM importers. Of course then it is your responsibility to maintain the code and redevelop all the other features that you will need in the future.

Yes, this can be a tough decision. Often by the time it turns out that building a clinical application from scratch takes more effort than anticipated, already so much time is invested into the development that is hard to make architectural changes - even if it saves a lot of time in the mid/long term. If we can help with any information or other help to make the decision easier then let us know.