Skip to content

Nested DICOM sequence values not being included in BIDS #989

@captainnova

Description

@captainnova

Hi, we have lately been receiving enhanced DICOM from a Siemens XA60 site where the locations of some fields have moved from their customary top level addresses to inside nested sequences. Unfortunately dcm2niix is not noticing them there, and they are missing from the produced BIDS files.

Example:

(5200, 9229)  Shared Functional Groups Sequence
   (0018, 9112)  MR Timing and Related Parameters Sequence   1 item(s) ----
      (0018, 0080) Repetition Time                     DS: '4800.0'
      (0018, 0091) Echo Train Length                   IS: '243'
      (0018, 1314) Flip Angle                          DS: '120.0'
         ---------
...
  (0018, 9115)  MR Modifier Sequence   1 item(s) ---- 
...
     (0018, 9079) Inversion Times                     FD: 1550.0
      (0018, 9081) Partial Fourier                     CS: 'YES'

If I unenhance with dcuncat, everything from (5200, 9229) gets moved out of it, and dcm2niix puts them in the BIDS, so I can make a diff and see the "missing" fields:
ImagingFrequency
ScanningSequence
SequenceVariant
ScanOptions
ImageComments
TablePosition
RepetitionTime
MTState
SpoilingState
InversionTime
FlipAngle
CoilString
PercentPhaseFOV
PercentSampling
EchoTrainLength
PartialFourierDirection
PhaseEncodingSteps
FrequencyEncodingSteps
PhaseEncodingStepsOutOfPlane
ParallelReductionFactorInPlane
ParallelAcquisitionTechnique
PixelBandwidth
InPlanePhaseEncodingDirectionDICOM

This is not happening for all Siemens XA60 sites sending enhanced DICOM, and we do not know why this site is different. However, the behavior of moving something to inside (5200, 9229) Shared Functional Groups Sequence seems like something much more likely for a scanner manufacturer to do than a PACS or other downstream modifier, which tend to not write in enhanced format. I noticed issue:380, but this seems to be new behavior for Siemens XA. Unfortunately the X Protocol is absent, so I cannot find the software subversion, but I suspect it changed in September.

I would like dcm2niix to also check for kInversionTimes, etc. inside nested sequences (or at least (5200, 9229) ones) so that we would not have to unenhance. I see where the "d" structure is updated around nii_dicom.cpp:6122, but do you have any advice on generalizing it to include nested sequences?

dcm2niix versions:
v1.0.20251017 (JP2:OpenJPEG) (JP-LS:CharLS) GCC8.5.0 x86-64 (64-bit Linux) (git pulled from development a few minutes ago)
v1.0.20240327

Thanks,

Rob

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions