Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DICOM: fix multiframe encoding with explicit length sequences #2691

Merged

Conversation

jdtournier
Copy link
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
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
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
5 checks passed
@Lestropie Lestropie deleted the dicom_fix_multiframe_with_explicit_length_sequences branch August 8, 2023 03:47
@timrosenow
Copy link

That was incredibly fast, thank you guys

@jdtournier
Copy link
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.

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