Erro when reading dicoms from GE 7T
Hello, I encountered the following errors when trying to read dicoms from our GE 7T scanner. Please advise?
> Singularity heudiconv-unstable.simg:~> heudiconv -d {subject}/SCANS/600/DICOM/*.dcm -s ANON1863 -f ~/bin/heudiconv/heudiconv/heuristics/convertall.py -c none -o ~/BIDS/
> INFO: Running heudiconv version 0.5.4.dev1
> INFO: Need to process 1 study sessions
> INFO: PROCESSING STARTS: {'subject': 'ANON1863', 'outdir': '/home/kahwang/BIDS/', 'session': None}
> INFO: Processing 10296 dicoms
> INFO: Analyzing 10296 dicoms
> Traceback (most recent call last):
> File "/opt/miniconda-latest/bin/heudiconv", line 11, in <module>
> load_entry_point('heudiconv', 'console_scripts', 'heudiconv')()
> File "/src/heudiconv/heudiconv/cli/run.py", line 127, in main
> process_args(args)
> File "/src/heudiconv/heudiconv/cli/run.py", line 341, in process_args
> dcmconfig=args.dcmconfig,)
> File "/src/heudiconv/heudiconv/convert.py", line 160, in prep_conversion
> grouping=None)
> File "/src/heudiconv/heudiconv/dicoms.py", line 121, in group_dicoms_into_seqinfos
> if mw.is_same_series(mwgroup[idx]):
> File "/opt/miniconda-latest/lib/python3.6/site-packages/nibabel/nicom/dicomwrappers.py", line 357, in is_same_series
> my_sig = self.series_signature
> File "/opt/miniconda-latest/lib/python3.6/site-packages/nibabel/onetime.py", line 141, in __get__
> val = self.getter(obj)
> File "/opt/miniconda-latest/lib/python3.6/site-packages/nibabel/nicom/dicomwrappers.py", line 275, in series_signature
> signature['vox'] = (self.voxel_sizes, none_or_close)
> File "/opt/miniconda-latest/lib/python3.6/site-packages/nibabel/onetime.py", line 141, in __get__
> val = self.getter(obj)
> File "/opt/miniconda-latest/lib/python3.6/site-packages/nibabel/nicom/dicomwrappers.py", line 208, in voxel_sizes
> pix_space = list(map(float, pix_space))
> ValueError: could not convert string to float: '.'
> Singularity heudiconv-unstable.simg:~> heudiconv --version
> 0.5.4.dev1
>
>
Hi @kaihwang - our GE support is fairly rudimentary. If you could share some of your problematic DICOMs, I can take a look at it later this week.
Thank you @mgxd - here is one single dicom. Please let me know if you need more.
1.2.840.113619.2.156.497853703.26898.1551348221.298445-600-10140-1oe3jdj.dcm.zip
@kaihwang this looks to be a problem at the level of the DICOM/pydicom tag reading. I was able to replicate it with the following:
In [1]: import pydicom
In [2]: dcm = pydicom.dcmread('1.2.840.113619.2.156.497853703.26898.1551348221.298445-600-10140-1oe3jdj.dcm')
In [3]: dcm.PixelSpacing
Out[3]: '2.5000\\2.5000'
when the value should look like ['2.5000', '2.5000']
I'd recommend opening an issue on pydicom's repo linking to this one.