Unable to load DICOM segmentation - missing slice thickness

I’m unable to load a DICOM segmentation.

The segmentation was created by the Brainlab Curve navigation system in the AMIGO suite.
I unfortunately cannot share the file.

Tested on the latest preview version (version 5.1.0, revision 30987, built 2022-06-02) and the stable release.

I was tempted to ignore this and just assume that the file was faulty, but:

  • this was the case for more than one file
  • I could open the segmentation with other software (ImFusion Suite Demo Version to be specific)

This is the full error log (detailed logging enabled):

Examine for import using DICOMEnhancedUSVolumePlugin
Examine for import using DICOMGeAbusPlugin
Examine for import using DICOMImageSequencePlugin
Examine for import using DICOMPETSUVPlugin
Examine for import using DICOMParametricMapPlugin
DICOMParametricMapPluginClass : Caching files
DICOMParametricMapPluginClass : Using cached files
Examine for import using DICOMRWVMPlugin
Examine for import using DICOMScalarVolumePlugin
Examine for import using DICOMSegmentationPlugin
DICOMSegmentationPluginClass : Caching files
DICOM SEG modality found
Examine for import using DICOMSlicerDataBundlePlugin
Examine for import using DICOMTID1500Plugin
DICOMTID1500PluginClass : Caching files
DICOMTID1500PluginClass : Using cached files
Examine for import using DICOMVolumeSequencePlugin
Examine for import using Dcm2niixPlugin
[‘/Applications/Slicer.app/Contents/Extensions-30987/SlicerDcm2nii/lib/Slicer-5.1/qt-scripted-modules/Resources/bin/dcm2niix’, ‘-n’, ‘-1’, ‘-s’, ‘y’, ‘-f’, ‘%p_%t_%s’, ‘-i’, ‘y’, ‘-o’, ‘/private/var/folders/sj/w4lgym6n0qx3j46fzwdrv3x80000gn/T/Slicer-fryderykkogl/tmpearfjf5v’, ‘/private/var/folders/sj/w4lgym6n0qx3j46fzwdrv3x80000gn/T/Slicer-fryderykkogl/tmpearfjf5v/input-dicom-files.txt’]
Chris Rorden’s dcm2niiX version v1.0.20220505 (JP2:OpenJPEG) (JP-LS:CharLS) Clang10.0.0 x86-64 (64-bit MacOS)
Found 1 files in ‘/private/var/folders/sj/w4lgym6n0qx3j46fzwdrv3x80000gn/T/Slicer-fryderykkogl/tmpearfjf5v/input-dicom-files.txt’
Found 1 DICOM file(s)
Ignoring derived image(s) of series 82 /Users/fryderykkogl/Data/DICOM from Brainlab/p3_how/99398381/43232200_decompressed
Conversion required 0.002901 seconds (0.002893 for core code).
Examine for import using DicomRtImportExportPlugin
Examine for import using DicomSroImportExportPlugin
Examine for import using MultiVolumeImporterPlugin
MultiVolumeImporterPlugin: examine
MultiVolumeImporterPlugin: found 0 multivolumes!
MultiVolumeImporterPlugin: examineMultiseries
MultiVolumeImporterPlugin: found 0 multivolumes!
MultiVolumeImporterPlugin: found 0 loadables in 1 files in 0.0sec.
DICOM SEG load()
in load(): uid = 1.2.276.0.20.1.4.72.550353941687.11068.1606854664.323220.0
SEG2NRRD did not complete successfully, unable to load DICOM Segmentation
Cleaning up temporarily created directory /private/var/folders/sj/w4lgym6n0qx3j46fzwdrv3x80000gn/T/Slicer-fryderykkogl/QIICR/SEG/2022-06-06_115042/1.2.276.0.20.1.4.72.550353941687.11068.1606854664.323220.0
Could not load: Objects as a DICOMSegmentation
Found CommandLine Module, target is /Applications/Slicer.app/Contents/Extensions-30987/DCMQI/lib/Slicer-5.1/cli-modules/segimage2itkimage
ModuleType: CommandLineModule
Convert DICOM Segmentation Image into ITK image(s) command line:
/Applications/Slicer.app/Contents/Extensions-30987/DCMQI/lib/Slicer-5.1/cli-modules/segimage2itkimage --inputDICOM /Users/fryderykkogl/Data/DICOM from Brainlab/p3_how/99398381/43232200_decompressed --outputDirectory /private/var/folders/sj/w4lgym6n0qx3j46fzwdrv3x80000gn/T/Slicer-fryderykkogl/QIICR/SEG/2022-06-06_115042/1.2.276.0.20.1.4.72.550353941687.11068.1606854664.323220.0 --outputType nrrd
Convert DICOM Segmentation Image into ITK image(s) standard output:
dcmqi repository URL: GitHub - QIICR/dcmqi: dcmqi (DICOM for Quantitative Imaging) is a free, open source C++ library for conversion between imaging research formats and the standard DICOM representation for image analysis results revision: e25cb30 tag: latest
Row direction: 1 4.897e-12 -0
Col direction: -4.897e-12 1 0
Z direction: 0 0 1
Total frames: 287
Total frames with unique IPP: 287
Total overlapping frames: 0
Origin: [-141.62, -167.528, -39.7066]
Convert DICOM Segmentation Image into ITK image(s) standard error:
ERROR: No sufficient information to derive slice spacing! Unable to interpret the data.
Fatal error encountered.
Convert DICOM Segmentation Image into ITK image(s) completed with errors
SEG2NRRD did not complete successfully, unable to load DICOM Segmentation
Could not load: Objects as a DICOMSegmentation

Thanks for the report @koeglfryderyk. To make this reproducible can you please generate a sharable segmentation instance using phantom data? There is a well-known issue with dicom segmentations being ambiguous if the slice thickness is not included so this is probably an issue that should be reported as an issue to Brainlab but it is also possible that there’s a workaround so that it isn’t a bottleneck for you. @fedorov

A workaround could potentially be to use dcmodify and patch the SEG instances by adding SliceThickness with the value taken from the corresponding MR series to SharedFunctionalGroupsSequence[0] > PixelMeasuresSequence[0] (or you would need to create that sequence if it does not exist).

Of course, this assumes that SEG has the same geometry as the source MR series, which in the general case cannot be assumed.

Below is the example of the relevant part of a SEG series from BrainLab phantom study you shared with me earlier Fryderyk - the file should have something like this after you patch it:

image