DICOM imports single slice only

Hi all. I’ve very recently started using 3D Slicer, and I’m using version 4.11.20210226 on a virtual machine hosting “VGate” (using Ubuntu 18.4).

I am trying to create some fake CT DICOM files using python and pydicom. Originally, I tried to create the meta information from scratch using instructions provided on a stackoverflow, which worked fine in ImageJ but wouldn’t open at all in 3D Slicer.

So instead, I imported an existing CT dicom file using pydicom and dcmread and then adjusted some attributes as required (PatientName, PatientID, ImagesInAcquisition, RescaleSlope and RescaleIntercept, PixelSpacing, SliceThickness, PhotometricInterpretation, PixelRepresentation, StudyDescription and SeriesDescription). The original CT data opens fine in 3D Slicer and is anonymised from a Siemens CT scanner.

This works opens fine in ImageJ but when I import it as DICOM in 3D slicer and open it, it is only showing a single slice from approximately the center of the dataset. It looks a little like there might be three slices to select from, based on moving the scroll bar in the transaxial image, but the two outermost images are black (and at positions -726mm and -724mm c.f. the single slice at -725mm). There are no errors in the log though.

If I import the data in as Add Data instead of DICOM, it works almost perfectly, but the z-direction is squished. If I view the properties of the data, it has 1.000mm as the spacing. This made me consider whether adding another attribute of SpacingBetweenSlices as 4.84 would work, but this made no difference to any of the above. The original CT data doesn’t have this attribute either yet opens fine.

I’m at a loss as to what my next steps might be, can anyone suggest an avenue for me to explore (if not a solution).

Thank you

You could have a look at how the Create DICOM Series module works for ideas.

1 Like

According to the DICOM standard, a 3D volume must be reconstructed from slices based on these 3 attributes:

  • Image Position Patient
  • Image Orientation Patient
  • Pixel Spacing

All other parameters, which might seem to be related (slice thickness, etc.) must be ignored.

It looks like you have not set the first two of these three parameters.

See example of how to add the missing parameters using pydicom (this particular example is for enhanced multiframe images; it is simpler to do it for classic single-slice-per-file series) in DICOM Patcher module.