diff --git a/CHANGELOG.md b/CHANGELOG.md index 87a2ffc..6d531d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ This document contains the Spec2nii release history in reverse chronological order. +0.8.12 (WIP) +------------ +- Handle DICOMs missing series and instance numbers (generated through Siemens retrorecon). + 0.8.11 (Monday 20th April 2026) ---------------------------------- - Fix issues arising in coil names and 31P Siemens CSI with missing DICOM VOI fields. diff --git a/spec2nii/Siemens/dicomfunctions.py b/spec2nii/Siemens/dicomfunctions.py index 9d822d4..32bc586 100644 --- a/spec2nii/Siemens/dicomfunctions.py +++ b/spec2nii/Siemens/dicomfunctions.py @@ -123,8 +123,21 @@ def multi_file_dicom(files_in, fname_out, tag, verbose): dwelltime_list.append(dwelltime) meta_list.append(meta_obj) - series_num.append(int(img.dcm_data.SeriesNumber)) - inst_num.append(int(img.dcm_data.InstanceNumber)) + try: + series_num.append(int(img.dcm_data.SeriesNumber)) + except TypeError: + # If offline reconstruction has been used, it is possible that + # SeriesNumber (and InstanceNumber) are None. + # Set series_num to the SeriesInstanceUID with dots removed + pass + series_num.append( + int(img.dcm_data.SeriesInstanceUID.replace('.', ''))) + + try: + inst_num.append(int(img.dcm_data.InstanceNumber)) + except TypeError: + # Set inst_num number to idx + inst_num.append(idx) ref_ind, str_suf = identify_integrated_references(img, img.dcm_data.InstanceNumber) reference.append(ref_ind)