Skip to content

DICOM: fix multiframe encoding with explicit length sequences#2691

Merged
Lestropie merged 1 commit intomasterfrom
dicom_fix_multiframe_with_explicit_length_sequences
Aug 8, 2023
Merged

DICOM: fix multiframe encoding with explicit length sequences#2691
Lestropie merged 1 commit intomasterfrom
dicom_fix_multiframe_with_explicit_length_sequences

Conversation

@jdtournier
Copy link
Copy Markdown
Member

As discussed in #2690

Problem stems from failure to handle cases where nested sequences all end at the same point. Previous implementation only closed the current sequence, without considering whether its own parents also needed to close at that point.

I'll be running my battery of tests shortly to confirm this doesn't introduce any issues with current datasets.

@jdtournier
Copy link
Copy Markdown
Member Author

OK, tests all check out - though with these changes I am now able to handle more data than previously, which is nice... 😁

testing using MRtrix3 found in "/home/donald/mrtrix3"
in "Bruker BioSpin - BAP94-31/"...
  [ x ] DTI_2seg_31dir b1/2000 0.2/0.4: OK
in "Bruker BioSpin - BAP94-31 (via XNAT)/"...
  [ x ] DTI_2seg_31dir b1/2000 0.2/0.4: OK
in "GE Discovery MR750w - DWI/"...
  [ 0 ] DTI AP pepolar 0: OK
  [ 1 ] PU:DTI AP pepolar 0: OK
in "GE Signa Excite/"...
  [ 0 ] Cor 3DSPGR 140: OK
  [ 1 ] depi 1NEX 45/6 96x96: OK
in "GE Signa HDxt/"...
  [ 0 ] cor T2 CUBE: OK
  [ 1 ] AXIAL Fibre: OK
  [ 2 ] ANGLE Fibre tracking: OK
in "GE Signa - phantom - various orientations/"...
  [ 0 ] 3D Ax FSPGR HFS: OK
  [ 1 ] 3D Ax FSPGR HFLD: OK
  [ 2 ] 3D Ax FSPGR HFP: OK
  [ 3 ] 3D Ax FSPGR HFRD: OK
  [ 4 ] 3D Ax FSPGR FFS: OK
  [ 5 ] 3D Ax FSPGR FFLD: OK
  [ 6 ] 3D Ax FSPGR FFP: OK
  [ 7 ] 3D Ax FSPGR FFRD: OK
in "MEDISO/"...
  [ x ] DW EPI CUSTOM DIR - AcqTime: 0:05:04, Slices: 17, NEX: 1, TR: 8236, TE: 71.3.: OK
in "Philips Achieva - cardiac/"...
  [ 1 ] SURVEY_L_SK8: OK
  [ 2 ] DTI_high_iso_E: OK
  [ 3 ] facDTI_high_iso_E SENSE: OK
  [ 4 ] facDTI_high_iso_E SENSE: OK
  [ 5 ] DTI_high_iso_E_b350: OK
  [ 6 ] facDTI_high_iso_E_b350 SENSE: OK
  [ 7 ] DWI_MSh: OK
  [ 8 ] facDWI_MSh SENSE: OK
in "Philips Achieva dStream - DWI/"...
  [ 0 ] FLAIR_Short: OK
  [ 1 ] fMRI_resting_std SENSE: OK
  [ 2 ] 3D_GRASE_PRASLOSKI: OK
  [ 3 ] DKI_25d_40d_700_1000: OK
  [ 4 ] DKI_75d_2800: OK
  [ 5 ] DKI_6d_revphase: OK
  [ 6 ] 3DTFE_mprage: OK
in "Philips Ingenia CX - head DTI/"...
  [ x ] *dti opt32 1000 avghighb SPIR 1.25iso 4bfactavg P: OK
in "Philips Ingenia CX - Muscle DTI/"...
  [ x ] DTI OPT12_NSA3_PB: OK
in "Philips Ingenia Elition X - inconsistent scaling/"...
  [ x ] DTI 1_MB2_sense1: OK
in "Philips Intera - DWI/"...
  [ x ] DT_SSh_high_2mm_NEW: OK
in "Philips - multiframe DWI/"...
  [ 1 ] DTI 16b: OK
  [ 2 ] DTI 16a: OK
in "Philips - multiframe multi-echo magnitude and phase/"...
  [ 0 ] QSM: OK
  [ 1 ] QSM: OK
in "Siemens Avanto - various/"...
  [ 0 ] fl3D_1x1x1_tra: OK
  [ 1 ] DWI_60: OK
in "Siemens Prisma Fit - various patient orientations/"...
  [ 1 0 ] t1_fl2d_sag: OK
  [ 1 1 ] ep2d_diff_mddw_20_p2: OK
  [ 2 0 ] t1_fl2d_sag: OK
  [ 2 1 ] ep2d_diff_mddw_20_p2: OK
  [ 3 0 ] t1_fl2d_sag: OK
  [ 3 1 ] ep2d_diff_mddw_20_p2: OK
  [ 4 0 ] t1_fl2d_sag: OK
  [ 4 1 ] ep2d_diff_mddw_20_p2: OK
in "Siemens Prisma - zero-filled mosaic/"...
  [ x ] DTI 64 Richtungen 2mm: OK
in "Siemens Skyra - phantom-mosaic/"...
  [ x ] ep2d_diff: OK
in "Siemens Skyra - various/"...
  [ 1 1 ] ASL_3D_tra_iso: OK
  [ 1 2 ] Perfusion_Weighted: OK
  [ 1 3 ] ASL_2D_tra: OK
  [ 1 4 ] MoCoSeries: OK
  [ 1 5 ] Perfusion_Weighted: OK
  [ 1 6 ] relCBF: OK
  [ 2 10 ] BRI 25-30 MDDW directions ep2d_diff_3scan_trace_p2_ColFA: OK
  [ 2 1 ] BRI 64 directions ep2d_diff_3scan_trace_p2: OK
  [ 2 2 ] BRI 64 directions ep2d_diff_3scan_trace_p2_ADC: OK
  [ 2 3 ] BRI 64 directions ep2d_diff_3scan_trace_p2_TRACEW: OK
  [ 2 4 ] BRI 64 directions ep2d_diff_3scan_trace_p2_FA: OK
  [ 2 5 ] BRI 64 directions ep2d_diff_3scan_trace_p2_ColFA: OK
  [ 2 6 ] BRI 25-30 MDDW directions ep2d_diff_3scan_trace_p2: OK
  [ 2 7 ] BRI 25-30 MDDW directions ep2d_diff_3scan_trace_p2_ADC: OK
  [ 2 8 ] BRI 25-30 MDDW directions ep2d_diff_3scan_trace_p2_TRACEW: OK
  [ 2 9 ] BRI 25-30 MDDW directions ep2d_diff_3scan_trace_p2_FA: OK
  [ 3 0 ] localizer: OK
  [ 3 1 ] BRI 64 directions ep2d_diff_3scan_trace_p2: OK
  [ 3 2 ] BRI 64 directions ep2d_diff_3scan_trace_p2_ADC: OK
  [ 3 3 ] BRI 64 directions ep2d_diff_3scan_trace_p2_TRACEW: OK
  [ 3 4 ] BRI 64 directions ep2d_diff_3scan_trace_p2_FA: OK
  [ 3 5 ] BRI 64 directions ep2d_diff_3scan_trace_p2_ColFA: OK
  [ 4 10 ] ep2d_bold_moco_p2 20CH: OK
  [ 4 11 ] act_MoCoSeries: OK
  [ 4 12 ] Design: OK
  [ 4 13 ] EvaSeries_GLM: OK
  [ 4 14 ] Mean_&_t-Maps: OK
  [ 4 2 ] ep2d_fid_basic_bold_p2_32 CH: OK
  [ 4 3 ] ep2d_bold_moco_p2: OK
  [ 4 4 ] act_MoCoSeries: OK
  [ 4 5 ] Design: OK
  [ 4 6 ] EvaSeries_GLM: OK
  [ 4 7 ] Mean_&_t-Maps: OK
  [ 4 9 ] ep2d_fid_basic_bold_p2 20CH: OK
  [ 5 2 10 ] intermediate t-Map: OK
  [ 5 2 11 ] Design: OK
  [ 5 2 12 ] EvaSeries_GLM: OK
  [ 5 2 13 ] Mean_&_t-Maps: OK
  [ 5 2 14 ] gre_field_mapping: OK
  [ 5 2 15 ] gre_field_mapping: OK
  [ 5 2 16 ] t2_tse_cor_fs_512_2.0mm: OK
  [ 5 2 17 ] Mag_Images: OK
  [ 5 2 18 ] Pha_Images: OK
  [ 5 2 19 ] mIP_Images(SW): OK
  [ 5 2 1 ] localizer: OK
  [ 5 2 20 ] SWI_Images: OK
  [ 5 2 21 ] t1_tir_cor_p2_2mm: OK
  [ 5 2 22 ] BRI 64 directions ep2d_diff_3scan_trace_p2: OK
  [ 5 2 23 ] BRI 64 directions ep2d_diff_3scan_trace_p2_ADC: OK
  [ 5 2 24 ] BRI 64 directions ep2d_diff_3scan_trace_p2_TRACEW: OK
  [ 5 2 25 ] BRI 64 directions ep2d_diff_3scan_trace_p2_FA: OK
  [ 5 2 26 ] BRI 64 directions ep2d_diff_3scan_trace_p2_ColFA: OK
  [ 5 2 27 ] t1_tse_tra_3mm: OK
  [ 5 2 28 ] t1_fl2d_tra_3mm: OK
  [ 5 2 2 ] t1_mprage_sag_p2_iso_0.9 2 AVG_32ch: OK
  [ 5 2 3 ] t2_tse_cor_fs_448_2.5mm: OK
  [ 5 2 4 ] t2_tirm_cor_dark-fluid_3mm: OK
  [ 5 2 5 ] t2_tse_tra_576_3mm_high res: OK
  [ 5 2 6 ] t2_tse_cor_fs_576_2.5mm_4ave_iPAT3: OK
  [ 5 2 7 ] StartFMRI: OK
  [ 5 2 8 ] ep2d_bold_moco_p2_32ch: OK
  [ 5 2 9 ] act_MoCoSeries: OK
in "Siemens Sonata - various from CD/"...
  [ 0 ] localizer: OK
  [ 12 ] t2_tse_cor_3mm: OK
  [ 13 ] t2_tse_tra_3mm_restore: OK
  [ 14 ] loc_t2_tse_tra: OK
  [ 15 ] loc_t2_tse_sag: OK
  [ 16 ] loc_t2_tse_cor: OK
  [ 1 ] t2_flair_tra_4mm: OK
  [ 25 ] t1_se_tra_KM_4mmlueckenlos: OK
  [ 2 ] t1_se_tra: OK
  [ 3 ] Phlebo_tof_cor: OK
  [ 4 ] t2_stern_fl2d_tra: OK
  [ 5 ] diff_0_500_1000_ADC: OK
  [ 6 ] diff_0_500_1000_ADC_ADC: OK
  [ 7 ] tof_fi3d_tra_3_BL_0.6mm: OK
in "Siemens Trio - mosaic/"...
  [ 0 ] localizer_sf: OK
  [ 10 ] diff 20DW 2NEX AT TE110_ADC: OK
  [ 11 ] diff 20DW 2NEX AT TE110_TRACEW: OK
  [ 12 ] diff 20DW 2NEX AT TE110_FA: OK
  [ 13 ] diff 20DW 2NEX AT TE80: OK
  [ 14 ] diff 20DW 2NEX AT TE80_ADC: OK
  [ 15 ] diff 20DW 2NEX AT TE80_TRACEW: OK
  [ 16 ] diff 20DW 2NEX AT TE80_FA: OK
  [ 17 ] localizer_sf: OK
  [ 18 ] diff 20DW 2NEX AT TE80: OK
  [ 19 ] diff 20DW 2NEX AT TE80_ADC: OK
  [ 1 ] diff 20DW 2NEX ALL TIGHT: OK
  [ 20 ] diff 20DW 2NEX AT TE80_TRACEW: OK
  [ 21 ] diff 20DW 2NEX AT TE80_FA: OK
  [ 22 ] diff 20DW 2NEX TE90 TR6400: OK
  [ 23 ] diff 20DW 2NEX TE90 TR6400_ADC: OK
  [ 24 ] diff 20DW 2NEX TE90 TR6400_TRACEW: OK
  [ 25 ] diff 20DW 2NEX TE90 TR6400_FA: OK
  [ 26 ] diff 20DW 2NEX TE100TR6900: OK
  [ 27 ] diff 20DW 2NEX TE100TR6900_ADC: OK
  [ 28 ] diff 20DW 2NEX TE100TR6900_TRACEW: OK
  [ 29 ] diff 20DW 2NEX TE100TR6900_FA: OK
  [ 2 ] diff 20DW 2NEX ALL TIGHT_ADC: OK
  [ 30 ] diff 20DW 2NEX TE80 TR6400: OK
  [ 31 ] diff 20DW 2NEX TE80 TR6400_ADC: OK
  [ 32 ] diff 20DW 2NEX TE80 TR6400_TRACEW: OK
  [ 33 ] diff 20DW 2NEX TE80 TR6400_FA: OK
  [ 34 ] diff 20DW 2NEX TE80 TR6900: OK
  [ 35 ] diff 20DW 2NEX TE80 TR6900_ADC: OK
  [ 36 ] diff 20DW 2NEX TE80 TR6900_TRACEW: OK
  [ 37 ] diff 20DW 2NEX TE80 TR6900_FA: OK
  [ 3 ] diff 20DW 2NEX ALL TIGHT_TRACEW: OK
  [ 4 ] diff 20DW 2NEX ALL TIGHT_FA: OK
  [ 5 ] ep2d_diff_MDDW_AT_WIP: OK
  [ 6 ] ep2d_diff_MDDW_AT_WIP_ADC: OK
  [ 7 ] ep2d_diff_MDDW_AT_WIP_TRACEW: OK
  [ 8 ] ep2d_diff_MDDW_AT_WIP_FA: OK
  [ 9 ] diff 20DW 2NEX AT TE110: OK
in "Siemens Trio - various/"...
  [ 1 0 ] localiser: OK
  [ 1 12 ] diff60_b3000_2.3_iPat2+ADC: OK
  [ 1 13 ] diff60_b3000_2.3_iPat2+ADC_ADC: OK
  [ 1 14 ] diff60_b3000_2.3_iPat2+ADC_TRACEW: OK
  [ 1 15 ] diff60_b3000_2.3_iPat2+ADC_FA: OK
  [ 1 1 ] t1_mpr_1mm iso qk: OK
  [ 1 2 ] AX MPR T1: OK
  [ 1 4 ] COR MPR T1: OK
  [ 1 6 ] SAG MPR T1: OK
  [ 2 0 ] localiser: OK
  [ 2 1 ] t1_mpr_1mm iso qk: OK
  [ 2 2 ] diff60_b3000_2.3_iPat2+ADC: OK
  [ 2 3 ] diff60_b3000_2.3_iPat2+ADC_ADC: OK
  [ 2 4 ] diff60_b3000_2.3_iPat2+ADC_TRACEW: OK
  [ 2 5 ] diff60_b3000_2.3_iPat2+ADC_FA: OK
in "Siemens Verio - anonymised/"...
  [ 1 ] DTI 30 directions: 2 averages : SAG: OK
  [ 2 ] DTI 30 directions: 2 averages : SAG: OK
in "Siemens Vida - Brain & Spine/"...
  [ 0 ] t1_mprage_sag_p2_iso: OK
  [ 1 ] ep2d_diff_MDDW: OK
  [ 3 ] ep2d_diff_MDDW_ADC: OK
  [ 4 ] ep2d_diff_MDDW_TRACEW: OK
  [ 5 ] ep2d_diff_MDDW_FA: OK
  [ 6 ] ep2d_diff_MDDW_ColFA: OK
  [ 7 ] ep2d_diff_MDDW_TENSOR_B0: OK
in "Siemens Vida - dMRI Head/"...
  [ 0 ] ep2d_diff_mddw_20_p2_s2: OK
  [ 1 ] ep2d_diff_mddw_20_p2_s2_ADC: OK
  [ 2 ] ep2d_diff_mddw_20_p2_s2_TRACEW: OK
  [ 3 ] ep2d_diff_mddw_20_p2_s2_FA: OK
  [ 4 ] ep2d_diff_mddw_20_p2_s2_ColFA: OK
  [ 5 ] ep2d_diff_mddw_20_p2_s2_TENSOR_B0: OK
in "Siemens Vida - DTI/"...
  [ x ] Anonymous^Patient  [MR]: OK
in "Siemens Vida - DTI DSI/"...
  [ 0 ] t1_mprage_sag_p2_iso: OK
  [ 10 ] ep2d_DSI257_s3p2_FA: OK
  [ 11 ] ep2d_DSI257_s3p2_ColFA: OK
  [ 12 ] ep2d_DSI257_s3p2_TENSOR_B0: OK
  [ 1 ] ep2d_mddw256_s3p2: OK
  [ 2 ] ep2d_mddw256_s3p2_ADC: OK
  [ 3 ] ep2d_mddw256_s3p2_TRACEW: OK
  [ 4 ] ep2d_mddw256_s3p2_FA: OK
  [ 5 ] ep2d_mddw256_s3p2_ColFA: OK
  [ 6 ] ep2d_mddw256_s3p2_TENSOR_B0: OK
  [ 7 ] ep2d_DSI257_s3p2: OK
  [ 8 ] ep2d_DSI257_s3p2_ADC: OK
  [ 9 ] ep2d_DSI257_s3p2_TRACEW: OK
in "Siemens Vida - enhanced and interoperability/"...
  [ 0 ] tra_DTI_P>>A_MB3_p2_TE108: OK
  [ 1 ] tra_DTI_A>>P_MB3_p2_TE108: OK
  [ 2 ] tra_DTI_P>>A_MB3_p2_TE108: OK
  [ 3 ] tra_DTI_A>>P_MB3_p2_TE108: OK
in "Siemens Vida - enhanced DICOM/"...
  [ 0 ] sag mprage t1: OK
  [ 1 ] tra_DTI_A>>P_MB3_p2_TE108: OK
  [ 2 ] tra_DTI_A>>P_MB3_p2_TE96 pf6-8: OK
  [ 3 ] tra_DTI_A>>P_MB3_p2_TE110opttr: OK
  [ 4 ] tra_DTI_P>>A_MB3_p2_TE110opttr: OK
in "Siemens Vida - enhanced DICOM anonymised/"...
  [ 10 ] Anonymous (ANON) [MR]: OK
  [ 11 ] Anonymous (ANON) [MR]: OK
  [ 2 ] Anonymous (ANON) [MR]: OK
  [ 3 ] Anonymous (ANON) [MR]: OK
  [ 4 ] Anonymous (ANON) [MR]: OK
  [ 5 ] Anonymous (ANON) [MR]: OK
  [ 6 ] Anonymous (ANON) [MR]: OK
  [ 7 ] Anonymous (ANON) [MR]: OK
  [ 8 ] Anonymous (ANON) [MR]: OK
in "Siemens Vida Fit - phantom - XA30 enhanced/"...
  [ 0 ] AAhead_scout: OK
  [ 10 ] ep2d_diff_6dir_tra>sag30_iso_pa: OK
  [ 11 ] ep2d_diff_6dir_tra>sag30_iso_pa_ADC: OK
  [ 12 ] ep2d_diff_6dir_tra>sag30_iso_pa_TRACEW: OK
  [ 13 ] ep2d_diff_6dir_tra>sag30_iso_pa_FA: OK
  [ 14 ] ep2d_diff_6dir_tra>sag30_iso_pa_ColFA: OK
  [ 15 ] ep2d_diff_6dir_tra>sag30_iso_pa_TENSOR_B0: OK
  [ 16 ] ep2d_diff_6dir_tra_iso_pa: OK
  [ 17 ] ep2d_diff_6dir_tra_iso_pa_ADC: OK
  [ 18 ] ep2d_diff_6dir_tra_iso_pa_TRACEW: OK
  [ 19 ] ep2d_diff_6dir_tra_iso_pa_FA: OK
  [ 20 ] ep2d_diff_6dir_tra_iso_pa_ColFA: OK
  [ 21 ] ep2d_diff_6dir_tra_iso_pa_TENSOR_B0: OK
  [ 22 ] fmri_20_iso_tra_ap: OK
  [ 23 ] MoCoSeries: OK
  [ 25 ] EvaSeries_GLM: OK
  [ 26 ] Mean_&_t-Maps: OK
  [ 27 ] fmri_20_iso_tra_pa: OK
  [ 28 ] MoCoSeries: OK
  [ 30 ] EvaSeries_GLM: OK
  [ 31 ] Mean_&_t-Maps: OK
  [ 32 ] fmri_20_iso_tra_ap_delay400: OK
  [ 33 ] MoCoSeries: OK
  [ 35 ] EvaSeries_GLM: OK
  [ 36 ] Mean_&_t-Maps: OK
  [ 37 ] ep2d_asl_iso_tra_ap_bolus700_TI1800_gap60: OK
  [ 38 ] MoCoSeries: OK
  [ 39 ] Perfusion_Weighted: OK
  [ 40 ] relCBF: OK
  [ 41 ] 3D_ASL_iso_tra_ap_bolus700_TI1800: OK
  [ 42 ] Perfusion_Weighted: OK
  [ 43 ] relCBF: OK
  [ 44 ] 3D_PCASL_iso_tra_ap_LD800_PLD1500: OK
  [ 45 ] Perfusion_Weighted: OK
  [ 46 ] relCBF: OK
  [ 47 ] 3D_multiTI_PCASL_iso_tra_ap_maxLD800_TI1_1000_TI2_2000: OK
  [ 48 ] Perfusion_Weighted: OK
  [ 49 ] relCBF: OK
  [ 4 ] ep2d_diff_6dir_tra_iso_ap: OK
  [ 50 ] BAT: OK
  [ 5 ] ep2d_diff_6dir_tra_iso_ap_ADC: OK
  [ 6 ] ep2d_diff_6dir_tra_iso_ap_TRACEW: OK
  [ 7 ] ep2d_diff_6dir_tra_iso_ap_FA: OK
  [ 8 ] ep2d_diff_6dir_tra_iso_ap_ColFA: OK
  [ 9 ] ep2d_diff_6dir_tra_iso_ap_TENSOR_B0: OK
in "Siemens Vida Fit - phantom - XA30 enhanced anonymised service/"...
  [ 0 ] AAhead_scout: OK
  [ 10 ] ep2d_diff_6dir_tra>sag30_iso_pa: OK
  [ 11 ] ep2d_diff_6dir_tra>sag30_iso_pa_ADC: OK
  [ 12 ] ep2d_diff_6dir_tra>sag30_iso_pa_TRACEW: OK
  [ 13 ] ep2d_diff_6dir_tra>sag30_iso_pa_FA: OK
  [ 14 ] ep2d_diff_6dir_tra>sag30_iso_pa_ColFA: OK
  [ 15 ] ep2d_diff_6dir_tra>sag30_iso_pa_TENSOR_B0: OK
  [ 16 ] ep2d_diff_6dir_tra_iso_pa: OK
  [ 17 ] ep2d_diff_6dir_tra_iso_pa_ADC: OK
  [ 18 ] ep2d_diff_6dir_tra_iso_pa_TRACEW: OK
  [ 19 ] ep2d_diff_6dir_tra_iso_pa_FA: OK
  [ 1 ] AAhead_scout_MPR_sag: OK
  [ 20 ] ep2d_diff_6dir_tra_iso_pa_ColFA: OK
  [ 21 ] ep2d_diff_6dir_tra_iso_pa_TENSOR_B0: OK
  [ 22 ] fmri_20_iso_tra_ap: OK
  [ 23 ] MoCoSeries: OK
  [ 25 ] EvaSeries_GLM: OK
  [ 26 ] Mean_&_t-Maps: OK
  [ 27 ] fmri_20_iso_tra_pa: OK
  [ 28 ] MoCoSeries: OK
  [ 2 ] AAhead_scout_MPR_cor: OK
  [ 30 ] EvaSeries_GLM: OK
  [ 31 ] Mean_&_t-Maps: OK
  [ 32 ] fmri_20_iso_tra_ap_delay400: OK
  [ 33 ] MoCoSeries: OK
  [ 35 ] EvaSeries_GLM: OK
  [ 36 ] Mean_&_t-Maps: OK
  [ 37 ] ep2d_asl_iso_tra_ap_bolus700_TI1800_gap60: OK
  [ 38 ] MoCoSeries: OK
  [ 39 ] Perfusion_Weighted: OK
  [ 3 ] AAhead_scout_MPR_tra: OK
  [ 40 ] relCBF: OK
  [ 41 ] 3D_ASL_iso_tra_ap_bolus700_TI1800: OK
  [ 42 ] Perfusion_Weighted: OK
  [ 43 ] relCBF: OK
  [ 44 ] 3D_PCASL_iso_tra_ap_LD800_PLD1500: OK
  [ 45 ] Perfusion_Weighted: OK
  [ 46 ] relCBF: OK
  [ 47 ] 3D_multiTI_PCASL_iso_tra_ap_maxLD800_TI1_1000_TI2_2000: OK
  [ 48 ] Perfusion_Weighted: OK
  [ 49 ] relCBF: OK
  [ 4 ] ep2d_diff_6dir_tra_iso_ap: OK
  [ 50 ] BAT: OK
  [ 5 ] ep2d_diff_6dir_tra_iso_ap_ADC: OK
  [ 6 ] ep2d_diff_6dir_tra_iso_ap_TRACEW: OK
  [ 7 ] ep2d_diff_6dir_tra_iso_ap_FA: OK
  [ 8 ] ep2d_diff_6dir_tra_iso_ap_ColFA: OK
  [ 9 ] ep2d_diff_6dir_tra_iso_ap_TENSOR_B0: OK
in "Siemens Vida Fit - phantom - XA30 perfusion/"...
  [ 1 ] BAT: OK

Copy link
Copy Markdown
Member

@Lestropie Lestropie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks; would likely have taken me a helluva lot longer to figure this one out.

Confirmed correct operation on the provided problematic dataset; beyond that I can only place my faith in the private DICOM test suite that it doesn't break anything else.

Is there any merit in incorporating the data from @timrosenow into that private dataset? Or, as might be possible given your statement, were there existing data in there that are now working given this fix, and so they would not provide any additional utility?

@Lestropie Lestropie added this pull request to the merge queue Aug 8, 2023
Merged via the queue into master with commit fdec23d Aug 8, 2023
@Lestropie Lestropie deleted the dicom_fix_multiframe_with_explicit_length_sequences branch August 8, 2023 03:47
@timrosenow
Copy link
Copy Markdown

That was incredibly fast, thank you guys

@jdtournier
Copy link
Copy Markdown
Member Author

Is there any merit in incorporating the data from @timrosenow into that private dataset?

Already is... 😜
First two Bruker datasets in the listing.

@Lestropie Lestropie restored the dicom_fix_multiframe_with_explicit_length_sequences branch August 26, 2025 08:11
@Lestropie Lestropie deleted the dicom_fix_multiframe_with_explicit_length_sequences branch August 27, 2025 00:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants