ConversionError: Unsupported or missing PlaneOrientationSequence for multiframe CBCT scan
ikatechis opened this issue · 11 comments
I am trying to read a cbct scan dicom file with the following multi-frame structure.
Dataset.file_meta -------------------------------
(0002, 0000) File Meta Information Group Length UL: 240
(0002, 0001) File Meta Information Version OB: b'\x00\x01'
(0002, 0002) Media Storage SOP Class UID UI: CT Image Storage
(0002, 0003) Media Storage SOP Instance UID UI: 1.2.826.0.1.3680043.2.1143.3083054729434657293525645010105100921
(0002, 0010) Transfer Syntax UID UI: JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1])
(0002, 0012) Implementation Class UID UI: 1.2.826.0.1.3680043.2.1143.107.104.103.115.3.0.5
(0002, 0013) Implementation Version Name SH: 'GDCM 3.0.5'
(0002, 0016) Source Application Entity Title AE: 'gdcmanon'
-------------------------------------------------
(0008, 0005) Specific Character Set CS: 'ISO_IR 100'
(0008, 0008) Image Type CS: ['ORIGINAL', 'PRIMARY', 'AXIAL']
(0008, 0016) SOP Class UID UI: CT Image Storage
(0008, 0018) SOP Instance UID UI: 1.2.826.0.1.3680043.2.1143.3083054729434657293525645010105100921
(0008, 0020) Study Date DA: '20190828'
(0008, 0021) Series Date DA: '20190828'
(0008, 0023) Content Date DA: '20190828'
(0008, 002a) Acquisition DateTime DT: '20190828120550'
(0008, 0030) Study Time TM: '121036'
(0008, 0031) Series Time TM: '120550'
(0008, 0033) Content Time TM: '120550'
(0008, 0050) Accession Number SH: ''
(0008, 0060) Modality CS: 'CT'
(0008, 0070) Manufacturer LO: 'Sirona'
(0008, 0080) Institution Name LO: ''
(0008, 1010) Station Name SH: ''
(0008, 1030) Study Description LO: ''
(0008, 1090) Manufacturer's Model Name LO: 'XG3D'
(0010, 0010) Patient's Name PN: ''
(0010, 0020) Patient ID LO: ''
(0010, 0030) Patient's Birth Date DA: ''
(0010, 0032) Patient's Birth Time TM: ''
(0010, 0040) Patient's Sex CS: ''
(0010, 1000) Other Patient IDs LO: ''
(0012, 0062) Patient Identity Removed CS: 'YES'
(0012, 0063) De-identification Method LO: 'BASIC APPLICATION LEVEL CONFIDENTIALITY PROFILE'
(0018, 0050) Slice Thickness DS: '0.16'
(0018, 0060) KVP DS: '85.0'
(0018, 1020) Software Versions LO: 'SIDICOM RM 3.6'
(0018, 1150) Exposure Time IS: '14179'
(0018, 1151) X-Ray Tube Current IS: '7'
(0018, 115e) Image and Fluoroscopy Area Dose Pro DS: '8.06'
(0018, 5100) Patient Position CS: 'HFS'
(0020, 000d) Study Instance UID UI: 1.2.826.0.1.3680043.2.1143.864642127989210488809346509255086530
(0020, 000e) Series Instance UID UI: 1.2.826.0.1.3680043.2.1143.6720147829949193632547509159324587631
(0020, 0010) Study ID SH: ''
(0020, 0011) Series Number IS: '100'
(0020, 0012) Acquisition Number IS: None
(0020, 0052) Frame of Reference UID UI: 1.2.826.0.1.3680043.2.1143.6720147829949193632547509159324587631
(0020, 1040) Position Reference Indicator LO: ''
(0020, 4000) Image Comments LT: ''
(0028, 0002) Samples per Pixel US: 1
(0028, 0004) Photometric Interpretation CS: 'MONOCHROME2'
(0028, 0008) Number of Frames IS: '512'
(0028, 0010) Rows US: 512
(0028, 0011) Columns US: 512
(0028, 0030) Pixel Spacing DS: [0.16, 0.16]
(0028, 0100) Bits Allocated US: 16
(0028, 0101) Bits Stored US: 12
(0028, 0102) High Bit US: 11
(0028, 0103) Pixel Representation US: 0
(0028, 1050) Window Center DS: '1024.0'
(0028, 1051) Window Width DS: '4096.0'
(0028, 1052) Rescale Intercept DS: '-1024.0'
(0028, 1053) Rescale Slope DS: '1.0'
(0400, 0500) Encrypted Attributes Sequence 1 item(s) ----
(0400, 0510) Encrypted Content Transfer Syntax U UI: Explicit VR Little Endian
(0400, 0520) Encrypted Content OB: Array of 1008 elements
---------
(5200, 9230) Per-frame Functional Groups Sequence 512 item(s) ----
(0020, 0032) Image Position (Patient) DS: [-40.960000, -56.560971, 37.160904]
(0020, 0037) Image Orientation (Patient) DS: [1, 0, 0, 0, 1, 0]
---------
(0020, 0032) Image Position (Patient) DS: [-40.960000, -56.560971, 37.000904]
(0020, 0037) Image Orientation (Patient) DS: [1, 0, 0, 0, 1, 0]
---------
(0020, 0032) Image Position (Patient) DS: [-40.960000, -56.560971, 36.840904]
(0020, 0037) Image Orientation (Patient) DS: [1, 0, 0, 0, 1, 0]
---------
(0020, 0032) Image Position (Patient) DS: [-40.960000, -56.560971, 36.680904]
(0020, 0037) Image Orientation (Patient) DS: [1, 0, 0, 0, 1, 0]
---------
The PlaneOrientationSequence
is missing but the ImageOrientationPatient property is there. Is there a way to support the conversion of this dicom structure?
Dear Iason,
We should be able to support this quite easily, however there is one condition.
Due to the fact that we (icometrix) include dicom2nifti in our clinical products we need proper testing etc.
If you would be able to share one example of this data with me (through email or so) this can be used to create a test dataset (fully anonimized, including random pixel data).
Can also be a publicly available dataset.
Kind regards,
Arne
Dear Iason,
I just requested access to the file. Once I receive it I can take a further look and push a small release to fix this issue.
Kind regards,
Arne
Hi Arne,
Could you please request access for this one? Sorry for the inconvenience
I think you should have access now. Thank you very much for your interest!
The download worked. I will try to push out a release with a fix soon.
The sirona "multiframe" dicom file seems to take a quite liberal interpretation for multiframe dicom headers.
I was however able to make it work.
Fix will be available starting release 2.4.7 (hopefully still today)
Release pushed out to pypi and conda
Iason,
Thanks for sharing the data and making this changes possible.
Kind regards,
Arne
Hi Arne,
You are amazing! Thank you for the super quick update!
All the best,
Iason