Skip to content

XA61A localizer crash #1392

Open
Open
@bpinsard

Description

@bpinsard

I got my hands on Siemens XA61A data (Cima.X), and the localizer causes heudiconv (@yarikoptic FYI) to crash in nibabel code.

Traceback (most recent call last):                                             
  File "/home/bpinsard/.virtualenvs/heudiconv_dev/bin/heudiconv", line 8, in <module>
    sys.exit(main())                                                           
  File "/home/bpinsard/.virtualenvs/heudiconv_dev/lib/python3.10/site-packages/heudiconv/cli/run.py", line 30, in main
    workflow(**kwargs)                                                         
  File "/home/bpinsard/.virtualenvs/heudiconv_dev/lib/python3.10/site-packages/heudiconv/main.py", line 410, in workflow
    study_sessions = get_study_sessions(        
  File "/home/bpinsard/.virtualenvs/heudiconv_dev/lib/python3.10/site-packages/heudiconv/parser.py", line 221, in get_study_sessions
    seqinfo_dict = group_dicoms_into_seqinfos(
  File "/home/bpinsard/.virtualenvs/heudiconv_dev/lib/python3.10/site-packages/heudiconv/dicoms.py", line 342, in group_dicoms_into_seqinfos
    mwinfo = validate_dicom(filename, dcmfilter)                    
  File "/home/bpinsard/.virtualenvs/heudiconv_dev/lib/python3.10/site-packages/heudiconv/dicoms.py", line 179, in validate_dicom
    del mw.series_signature[sig]                                                                                                                              
  File "/usr/lib/python3.10/functools.py", line 981, in __get__
    val = self.func(instance)
  File "/home/bpinsard/.virtualenvs/heudiconv_dev/lib/python3.10/site-packages/nibabel/nicom/dicomwrappers.py", line 886, in series_signature
    signature['image_shape'] = (self.image_shape, eq)
  File "/usr/lib/python3.10/functools.py", line 981, in __get__
    val = self.func(instance)                                                  
  File "/home/bpinsard/.virtualenvs/heudiconv_dev/lib/python3.10/site-packages/nibabel/nicom/dicomwrappers.py", line 775, in image_shape
    raise WrapperError("Number of slice indices and positions don't match")
nibabel.nicom.dicomwrappers.WrapperError: Number of slice indices and positions don't match

This is a classic localizer with 3 slices in each plane, but packed into a single enhanced dicoms.
Possibly Siemens is not following some dicoms specs.

dcm2niix v1.0.20240731 (FYI @neurolabusc) is also behaving abnormally, as it stacks the 3 slices in 1 volume, instead of splitting it in separate niftis.

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