DWI loading from DICOM

I’ve tried to load an MRI study from DICOM that contained DWI series (Slicer 4.8.1 on Windows). Although I’ve installed SlierDMRI extension, the series was still loaded using scalar volume importer and appeared garbled.

Is this behavior expected? There used to be a DICOM importer plugin for diffusion data but it seems that it is not available in 4.8.1.

Can you please try DWIConvert and let me know if there is a problem loading directly?

I’m not sure where this discussion was (maybe MultiVolumeImporter), but we removed it from Slicer base because there were several complaints about it interfering with other plugins – I think either you or Andrey asked to remove it.

I’ll take another look at putting it into SlicerDMRI. DWIConvert has been refactored quite a bit for library use, so maybe now it is feasible to hook in to the heuristics there to get an accurate response (the existing code did not work very well for Siemens, which requires looking into the private header for a large percent of images).

I’ve tried DWIConvert. On the DICOM DVD I had my data in 7 subfolders.

  • When I specified the parent folder, the import failed (no files in the parent folder).
  • Then I copied all files into a single folder and tried to import that. I got LoadFromDisk not relevant error.
  • After that I tried each of the 7 directories one by one. Import failed with the same message as above (LoadFromDisk not relevant).
Diffusion-weighted DICOM Import (DWIConvert) standard error:

Exception creating converter 
itk::ExceptionObject (00000070D358D430)
Location: "unknown" 
File: D:\D\P\Slicer-481-package\BRAINSTools\DWIConvert\GenericDWIConverter.cxx
Line: 13
Description: itk::ERROR:  LoadFromDisk not relevant

These may be all user errors, I just could not figure out how to use this module.

Fortunately, this data set was anonymized and made available publicly, so you can try to import it, too: https://1drv.ms/f/s!Arm_AFxB9yqHsOArBhZiJ2HPqRA9Cg

The DICOM importer plugin is very useful: we could then avoid painful selection of multiple directories or merging of directories; and would give a single interface for loading all kinds of data from DICOM.

It was a good decision to remove it from the core, but it should be added to SlicerDMRI - the same way as special radiation therapy importers are in SlicerRT extension, and 4D cardiac ultrasound importers are in SlicerHeart. There is very little chance that people who are not interested in diffusion imaging will install SlicerDMRI and then try to load non-diffusion data set that SlicerDMRI will recognize; and if it happens then you can tune the SlicerDMRI importer code any time, without modifying Slicer core. The plugin that worked in Slicer core, should work without any modification in SlicerDMRI extension. You can have a look at SlicerRT or SlicerHeart to see how DICOM plugins are registered.


Thanks for sharing the data. The DWI sequence is 1866:

BWH003265:1861 inorton$ for f in *; do echo $f; dcmdump $f/$(ls $f | head -n 1) | grep Description; done
(0008,1030) LO [NEURO HEAD^BRAIN]                       #  16, 1 StudyDescription
(0008,103e) LO [localizer]                              #  10, 1 SeriesDescription
(0008,1030) LO [NEURO HEAD^BRAIN]                       #  16, 1 StudyDescription
(0008,103e) LO [SAG TSE T1]                             #  10, 1 SeriesDescription
(0008,1030) LO [NEURO HEAD^BRAIN]                       #  16, 1 StudyDescription
(0008,103e) LO [AX TSE T2 H.R.]                         #  14, 1 SeriesDescription
(0008,1030) LO [NEURO HEAD^BRAIN]                       #  16, 1 StudyDescription
(0008,103e) LO [AX DWI]                                 #   6, 1 SeriesDescription
(0008,1030) LO [NEURO HEAD^BRAIN]                       #  16, 1 StudyDescription
(0008,103e) LO [AX DWI_ADC]                             #  10, 1 SeriesDescription
(0008,1030) LO [NEURO HEAD^BRAIN]                       #  16, 1 StudyDescription
(0008,103e) LO [AX SPACE]                               #   8, 1 SeriesDescription
(0008,1030) LO [NEURO HEAD^BRAIN]                       #  16, 1 StudyDescription
(0008,103e) LO [COR MPR]                                #   8, 1 SeriesDescription

But the following basic tags are empty: Manufacturer (0008,0070) and Siemens SoftwareVersion (0018, 1020) so DWIConvert cannot identify the dataset, and falls back to a generic reader implementation, which fails. Certainly the error message could be improved!

However, this data does not have any diffusion-weighting tags, and there are only three volumes total in series 1866 ([1] looks like baseline, [2,3] look like gradient-weighting). So, it could not be used to calculate diffusion tensors or higher-order models.

I tried converting with dcm2nii, which does produce a valid 3-volume NIfTI, but does not extract any diffusion-weighting information (as expected since there are no tags available).

It looks like this data was very aggressively anonymized. If you have more information about the scanner or other details then we could figure out if the raw data would be supported.

Ok, we will put it back in. Hopefully I can pass an error message pointing to DWIConvert through the plugin interface, but I’ll ask questions about that if needed.

I opened the following issue to capture this:

I’ve anonymized the data set with CTP, with default settings. I can access the original data, if needed.

This is a brain CT+MRI data set of the same patient, which has been made available as “CT-MR Brain” data set in sample data module in recent nightly builds. It is also available here: http://slicer.kitware.com/midas3/folder/4996. Do you think there can be anything valuable in the diffusion weighted image that would be worth added to the published data set? If yes, then we can continue working on this, re-anonymizing the data set in a way that preserves necessary information.

1 Like

Here is the CTP script I used recently for Siemens DWI data. After anonymization, there were some warnings from dciodvfy, and one of our vendor collaborators still thought it was too strict – but four independent software were able to read the data as DWI. Note that some of the preserved tag ranges are Siemens private headers. I don’t recall seeing private data in the CSA headers in the past, but I still do a manual audit of all headers before release because I don’t know of any guarantees about whether protected information is stored in the private tags.

If the data is as I described above (1 b0, 2 gradient) then it is probably not worth extra effort (can’t calculate ADC even – and tensors require minimum 6 directions). But if there is a full acquisition then I’m always grateful for more sample data, especially if the anonymized DICOM can be shared too. I don’t think we have any MR + DWI-MR + CT datasets, so that would be nice to have.

We only have those series that I shared, so I’ll not upload the DWI series to the data store then.