ERROR with DCE MRI loading in DICOM Browser

Operating system: Microsoft Windows 7 Enterprise
Slicer version: Slicer 4.7.0
Expected behavior: Loading DCE MRI DICOM data using DICOM Browser or MultiVolume Importer
Actual behavior: I have someT1 axial contrasted MRI image datasets. I imported them and can see in DICOM Browser series but it gives an error when I try to load. I used the DICOM browser,MultiVolume importer, also DATA load options to load the images, but none of them works. Also I have some DCE MRI images, but the software crashes whenever I try to load those DCE folders, which contain 1400 DICOM files in each.
I`d apprecite your help.
Thanks,
Ezgi

Use the latest nightly version.

To fix the crash when you load a large series, increase the amount of memory by either installing more physical memory in your computer or increase virtual memory size to 10x larger than the size of your data set.

Let us know if you still have problems.

To the best of my knowledge, the only way to load a DCE MRI series as a dynamic 4-d series is to import it first into DICOM Browser, and then load using MultiVolumeImporter plugin.

After you import, when you click “Advanced” option and examine that DCE series in the DICOM Browser, do you see any loadables recognized as MultiVoumes?

Thanks for your quick replies.

The DCE data size is only 38 MB. I imported it first into DICOM browser and then loaded using MultiVolumeImporter plugin. The first image below shows when I import and examine it with Advancedoption. And the second image shows when I load it.

As I realized that is a DWI volume file, even though it is saved as DCE volume file. So afterwards I tried to import it using Diffusion-Weighted DICOM Import(DWI Convert) plugin but it gives the error you can see in the third image(text only) below.

Disable the DICOMDiffusionVolumePlugin and try to load the series again.

@ihnorton Volumes are getting misclassified as DWI volumes too frequently. Could you move the diffusion plugin to the diffusion extension? Let me know if there is any technical difficulty with that or you need help.

Disabling the DICOMDiffusionVolumePlugin did not help, either. What are the other causes that could be related with this issue?

Unfortunately, DICOM storage of both DWI and DCE volumes are implemented in different ways by each vendor. Probably yours is just another variant. To make sure Slicer can load it properly, we would need at least one sample data set, preferably a phantom scan (if you don’t have that, then an anonymized patient data set may work, too).

I am a bit unclear what you are trying to achieve.

You said it is loaded as a multivolume using the corresponding plugins, is this correct? If yes, you can then use multi volume explorer plugin to look at the b-value signal curves, and you can use DWModeling module [1] from the SlicerProstate extension to fit different diffusion models to the data. What do you want to do with the data?

[1] https://www.slicer.org/wiki/Documentation/Nightly/Modules/DWModeling

Sure I can send you a sample data set.
It is loaded as a multivolume but the axial image can not be scrolled, it shows only 1 image. And sagittal and coronal images look like a streak, as you can see in the image above I sent to here before. What we want to do with the data is to do the quantitative analysis and measure parameters like transfer constant and fractional value using DCE MRI.

Thanks for the clarification. Indeed, I don’t see an easy way to debug this issue without a sample dataset.

Make sure you deidentify the data before sharing it.

Hope this helps to solve the issue.
Thanks.

https://mdacc.box.com/s/bj5p5nwm1bycldey1vr4n1or8jygk8aq

1 Like

I got the message “The item you are trying to access has either been deleted or unavailable to you”. But it’s more important for @Fedorov to get it, so if he downloaded it successfully then it should be enough for now.

After a followup with @kirezgik, I confirm I was able to download the dataset, and reproduce the problem. It is not something obvious to me, so I can’t fix it quickly. I will update this thread when I had time to investigate. Thank you for sharing the sample dataset!

@kirezgik just to clarify - for the data that you sent to me, I am not able to load it as a multivolume at all (see error popup below). Can you confirm the behavior is the same on your end? I want to make sure I am debugging the same issue that you experience. Perhaps there are two issues I need to investigate, but I can only reproduce this one.

image

Yes it behaves the same and this error pops up when I use DICOM browser to load. But I could import and visualize the data using MultiVolume Importer plugin.

1 Like

Ah, I see, thanks! I was confused, because you are referring to the MultiVolume Importer module. That module is intended to import multivolume data that is not in DICOM format (ie, when each individual volume is stored in a research format, such as NRRD). So the behavior you observe is expected (or, to be more precise, not unexpected). Thank you for the clarification.

I spent some time looking into this problem, but did not find the solution yet.

The issue appears to be not in MultiVolume related code, but in loading individual time frames of the DCE series. The multivolume frames are separated by TriggerTime in this dataset. If I take just the instances of the first frame, they fail to load as a Scalar Volume. The ScalarVolume plugin does not report any warnings and confirms that spacing between slices is consistent within the machine error. Here are the values for ImagePositionPatient:

(0020,0032) DS [-20\15\-5.559591]                       #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\-4.250905]                       #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\-2.942219]                       #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\-1.633533]                       #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\-0.3248464]                      #  18, 3 ImagePositionPatient
(0020,0032) DS [-20\15\0.9838399]                       #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\2.292526]                        #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\3.601213]                        #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\4.909899]                        #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\6.218585]                        #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\7.527271]                        #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\8.835958]                        #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\10.14464]                        #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\11.45333]                        #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\12.76202]                        #  16, 3 ImagePositionPatient
(0020,0032) DS [-20\15\14.0707]                         #  14, 3 ImagePositionPatient

However, loading of the scalar volume fails at the archetype level at this line: https://github.com/Slicer/Slicer/blob/master/Modules/Scripted/DICOMPlugins/DICOMScalarVolumePlugin.py#L298

With this error in the error log: “A spacing of 0 is not allowed: Spacing is [0.3125, 0.3125, 0]”. I can’t understand why it comes up as 0 in the archetype reader!

@pieper can you take a look into this?

On a debug build this data crashes in an assert in GDCM. This indicates there’s something pretty wrong with the data and probably the 0 spacing is a side effect.

@pieper thanks! Do you know which tag it is failing to read?

No idea how after all those years it didn’t occur to me to run a validator on this dataset! It seems that this dataset may have been generated on a preclinical system, and those are notorious for their non-compliance to the standard.

Indeed, dciodvfy gives a lot of errors.

(0x0019,0x108d)  ?  - Warning - Unrecognized tag - assuming explicit value representation OK
Error - Pixel Aspect Ratio may not be present when it has a ratio of 1:1 - values are 31\31
Warning - Value dubious for this VR - (0x0008,0x1060) PN Name of Physician(s) Reading Study  PN [0] = <saif> - Retired Person Name form
Warning - Value dubious for this VR - (0x0008,0x1070) PN Operators' Name  PN [0] = <saif> - Retired Person Name form
Error - Value invalid for this VR - (0x0010,0x0030) DA Patient's Birth Date  DA [0] = <00010101> - Character invalid for this VR = '0' (0x30)
Error - Dicom dataset contains invalid data values for Value Representations
MRImage
Warning - is only permitted to be empty when actually unknown; should be absent (not empty) if an unpaired body part, and have a value if a paired body part - attribute <Laterality>
Error - May not be present when Pixel Spacing is present - attribute <PixelAspectRatio>
Error - A value is required for value 3 in MR Images - attribute <ImageType>
Error - Attribute present when condition unsatisfied (which may not be present otherwise) Type 2C Conditional Element=<InversionTime> Module=<MRImage>
Error - Attribute present when condition unsatisfied (which may not be present otherwise) Type 2C Conditional Element=<TriggerTime> Module=<MRImage>

Even after I manually cleaned up most of the issues, to make dciodvfy complain about the following only

MRImage
Warning - is only permitted to be empty when actually unknown; should be absent (not empty) if an unpaired body part, and have a value if a paired body part - attribute <Laterality>

I am still not able to load it as a scalar volume into Slicer!