Can't load dicom images generated by dcmtk

[quote=“lassoan, post:20, topic:7338”]
Slicer’s Scalar volume DICOM reader plugin requires image geometry information defined by slice position and orientation tags.
[/quote] and you can see them on the dcmdump that I posted.

they are present. as I said,

self.targetCorners
read from the dicom header in this python script are correct.

if I transform the dicom in nifti the transformation matrix is correct.

the problem comes from ```
volumeNode.GetIJKToRASMatrix(ijkToRAS)

Hi @pdeman - I’m sure we can sort this out - I don’t have much experience with OCT, but I agree with Andras we should be able to make a custom DICOMPlugin that handles the specifics of this data.

The existing ScalarVolume plugin delegates to ITK for dicom reading, since there are a lot of legacy issues handled by the dcmtk and gdcm readers, but they don’t handle OCT well either. Best is to write a new reader with pydicom that is aware of the needs of this use case.

I think this is a good point. You cannot. I think we should have a resource that lists which SOP class UIDs are supported, and which extensions are needed when this capability is not available in the main application.

1 Like

but in dicomscalarplugin,
if the geometry from the dicom header read in self.targetCorners is correct,
but different from the geometry in self.originalCorners isn’t it possible to “force” to use the geometry read in self.targetCorners?

Hi -

I don’t know the OCT use case, but the geometry correction code is used for missing slices or sheared slice planes. Do either of these come up in OCT? I still think the best bet is to put the data in a preferred dicom instance and then write a slicer dicom plugin to handle it directly.

no it doesn’t occur in OCT. at least I have never seen that.
I don’t think that modifying the dicom sop class uid one generated dicom, especially to put an sop class uid which is not the correct one, is a good idea.

Hmm, I don’t think we’re communicating well. I’m suggesting you find the correct DICOM encoding of your data and then we figure out the best way to read that in Slicer (probably through a custom plugin that understands that SOP class). Is there a standard SOP class for the data you have?