Import of registration DICOM files

dicom
(Eduardo Meilán Bermejo) #1

Operating system: Windows 7 Profesional 64 bits
Slicer version: 4.6.2

Hi everyone,

I’m trying to use a DICOM registration object but I can’t even load it. I made a registration (in fact, two of them; one is rigid and the other one deformable) using Varian Eclipse module and I want to use this transformation for other purposes. What I really want right now is to change the format to a vector field or something like that.
If I try to import this object with the DICOM module it says “Could not load x as a scalar volume”. If I try to load it as data it doesn’t give me any message but it doesn’t load it.

Is there any way I could import a registration in DICOM format?

Thank you very much,

Best regards,

Edu

(Andras Lasso) #2

Use the latest nightly version of Slicer and install SlicerRT extension.

(Eduardo Meilán Bermejo) #3

Thank you very much! I’ll try as soon as I can

(Eduardo Meilán Bermejo) #4

Hi!
I’ve been trying to download the slicerRT extension, but I have some
problems when doing from my institution. Is there any posibility of
downloading from the web and not from the extension manager? I could then
install it from the file. I’ve benn looking in several webs (
http://slicer.kitware.com/midas3, https://github.com/SlicerRt/SlicerRT…)
but I can’t find any zip, tar or similar file to download. Could you help
me, please?

Sorry for disturbing you.
Best regards,

Edu

(Andras Lasso) #5

See detailed instructions here: https://www.slicer.org/wiki/Documentation/Nightly/SlicerApplication/ExtensionsManager#How_to_manually_download_an_extension_package.3F

(Stephan Hohmann) #6

Hi everybody,
I have the same issue as the OP, but I have installed the latest SlicerRT version (0.18.0). Slicer is 4.9. nightly 2018-09-10.
I have two DICOM registration objects, exported from MIM 6.8.3.
The rigid registration registers a CT to an MRI, and the deformable one registers a CT to a follow-up CT (accounting for animal growth in between).
They import into the DICOM database nicely, but when I try to load either registration object, a warning is triggered by the Scalar Volume Reader: “Reference image in series does not contain geometry information. Please use caution.”
When I proceed with “load anyway”, an error is thrown “Could not load 0: Image registration as a scalar volume”
When I uncheck the DICOMScalarVolumePlugin reader and leave only the DicomRtImportExportPlugin checked in the DICOM browser, no warning is triggered but nothing is loaded either.

Any hints at what I am missing are greatly appreciated.

Thank you
Stephan

(Csaba Pinter) #7

This warning is rarely a cause for concern. The threshold for giving this warning is very low, so you can usually ignore it I think.

FYI I’m not sure how well deformable SROs are handler right now, but we’ll work on it soon in SlicerRT.

(Andrey Fedorov) #8

I think the issue is that ScalarVolumePlugin should not even examine the registration object. If it loads correctly when you uncheck ScalarVolumePlugin, I would not worry about anything else. ScalarVolumePlugin needs to be fixed to ignore this IOD.

(Stephan Hohmann) #9

Thank you for the swift reply.
It works now.
For the record: For some reason, DicomSroPlugin was unchecked from the beginning in my DICOM browser.
And after getting the ScalarVolume warning for the first time, i unchecked all other handlers as well, except for DicomRtImportExport (which I thought would handle REGs), not being aware of that the SroPlugin is the one I would actually need. Only after Csaba referred to “deformable SROs” I realized that this acronym must stand for registration objects. Since I re-activated the DicomSrcoPlugin handler, everything works fine without warnings and with the registrations showing up in the scene hierarchy.

Thank you all for your great work with Slicer.
Stephan

2 Likes
(Andrey Fedorov) #10

I have to admit, I do not know what “SRO” stands for (in this context)!

(Csaba Pinter) #11

DICOM Spatial Registration Object

1 Like
(Csaba Pinter) #12

This is strange. I’ll look into this.

I’m not sure if the warning was thrown from the SRO. It gets thrown many times from valid scalar volumes as well. However in general it wouldn’t hurt making it ignore special IOD types.

(Steve Pieper) #13

If the plugin recognizes the SOPClass then it should return a very high confidence so that it is selected by default. The ScalarVolume plugin returns medium confidence for for pretty much anything so that it can be the catch-all for anything not recognized by specialized readers. So in this case it’s the SRO plugin that should be fixed.

(Csaba Pinter) #14

The SRO plugin does the same, not sure what is there to fix. Again I think there is a misunderstanding and the ScalarVolume plugin actually never tries to load SRO and vice versa, SRO never tries to load a scalar volume, but there is a usual geometry warning for ScalarVolume plugin trying to load a scalar volume while everything is loaded as expected. @stephan needs to confirm this, but if my hunch is right then we’re good.

(Steve Pieper) #15

Good - if both SRO and ScalarVolume plugins are enabled then SRO plugin should recognize the sop class and return highest priority and be selected for loading.

(Stephan Hohmann) #16

Yes, I think we are good here. The only scenario where a warning was displayed (and the import eventually failed if I clicked “load anyway”) was when the SRO plugin was inactive. It seems that the scalar plugin works as a sort of scavenger, trying to import any class which is not imported by some more specific plugin. As soon as I activated the checkbox for the SRO plugin, the scalar plugin threw no more warning messages.
Sorry for all the confusion.

(Steve Pieper) #17

Thanks for checking and clearing this up.

Yes, my rationale for that is that there are so many poorly formatted dicom files out there and so many heuristics and fixes that are hard-coded into the ITK/GDCM/DCMTK layers that we may as well give it a try instead of just giving up (or before giving up).

1 Like
(Andras Lasso) #18

Keeping scalar volume reader as a catch-all makes sense, but when scalar volume reader is used as a last resort, it could be nicer to show a more generic error message “Could not load 0: Image registration" (do not mention scalar volume) and maybe add some basic information (imaging modality, SOP class UID, etc.) that may be useful for debugging.

1 Like
(Hannah Mary Thomas Thevarthundiyil) #19

I have a similar query. I want to import the DICOM registration objects, exported from MIM 6.8.7. The cooresponding DICOM images came in without any problems. However the registration objects did not and I got the following error. image

Slicer has caught an internal error.

You may be able to continue from this point, but results are undefined.

Suggested action is to save your work and restart.

If you have a repeatable sequence of steps that causes this message, please report the issue following instructions available at http://slicer.org

The message detail is:

Exception thrown in event: d:\d\p\slicer-480-package\itkv4\modules\io\imagebase\include\itkImageFileReader.hxx:143:
Could not create IO object for reading file C:/Users/hmthomas/Desktop/New folder/2016-08__Studies/FLARE005_9599-FLARE005_REG_2016-08-15_152550_CT.THERAPY.PLAN.RAD.ON_FDG.PET.fusion.pretx_n1__00000/2.16.840.1.114362.1.6.6.4.16526.10113205933.441938047.913.5384.dcm
Tried to create one of the following:
NiftiImageIO
NrrdImageIO
GiplImageIO
JPEGImageIO
GDCMImageIO
BMPImageIO
LSMImageIO
PNGImageIO
TIFFImageIO
VTKImageIO
StimulateImageIO
BioRadImageIO
MetaImageIO
MRCImageIO
MINCImageIO
MGHImageIO
MRMLIDImageIO
HDF5ImageIO
GE4ImageIO
GE5ImageIO
You probably failed to set a file suffix, or
set the suffix to an unsupported type.

How can I resolve this problem?
Thanks,
Hannah

(Andras Lasso) #20

You need to install SlicerRT extension and load DICOM data using DICOM module (drag-and-drop the parent folder to the application window and not individual files).

We are actively working on improving DICOM SRO import/export compatibility with mim. If you find any issues then let us know and if possible, share your data sets (make sure they do not contain patient information).