Skip to content

Conversation

@jdtournier
Copy link
Member

@jdtournier jdtournier commented Apr 20, 2022

Based on test data provided by @bjeurissen where some attributes were missing , namely SliceTiming, EchoTime, MultibandAccelerationFactor & SliceEncodingDirection. For some reason, fixing the slice timing import also fixed the MB factor and slice direction imports (presumably because these are only carried over if the slice timings are known).

The EchoTime can be imported correctly if we accept the EffectiveEchoTime as equivalent. Not sure whether that will cause problems down the track, but it probably feels safe enough for now...?

@jdtournier jdtournier added this to the 3.0.4 milestone Apr 20, 2022
@jdtournier jdtournier requested a review from a team April 20, 2022 13:33
@jdtournier jdtournier self-assigned this Apr 20, 2022
bjeurissen
bjeurissen previously approved these changes Apr 20, 2022
@jdtournier
Copy link
Member Author

jdtournier commented Apr 21, 2022

OK, I added a couple more fixes while I was at it. I had issues with the Siemens synthetic DW (TRACEW) images - they all came out as one big 3D stack rather than the expected 4D multiple volumes (one per synthetic b-value). We also had trouble converting the colFA (RGB) images correctly. Everything now checks out with these last two commits.

All testing checks out now, including all datasets provided recently from various sources (thanks @bjeurissen & @neurolabusc). I did have to update some of the validation data since the updates on this branch extract more information from the DICOM headers than previously, but that's expected, and I verified that all the changes make sense. The full output of that last round of testing is shown below for reference:

testing using MRtrix3 found in "/home/donald/mrtrix3"
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
  [ 15 ] ep2d_diff_6dir_tra>sag30_iso_pa_TENSOR_B0: OK
  [ 16 ] ep2d_diff_6dir_tra_iso_pa: OK
  [ 21 ] ep2d_diff_6dir_tra_iso_pa_TENSOR_B0: OK
  [ 22 ] ep2d_asl_iso_tra_ap_bolus700_TI1800_gap60: OK
  [ 23 ] MoCoSeries: OK
  [ 24 ] Perfusion_Weighted: OK
  [ 25 ] relCBF: OK
  [ 26 ] 3D_ASL_iso_tra_ap_bolus700_TI1800: OK
  [ 27 ] Perfusion_Weighted: OK
  [ 28 ] relCBF: OK
  [ 29 ] 3D_PCASL_iso_tra_ap_LD800_PLD1500: OK
  [ 30 ] Perfusion_Weighted: OK
  [ 31 ] relCBF: OK
  [ 32 ] 3D_multiTI_PCASL_iso_tra_ap_maxLD800_TI1_1000_TI2_2000: OK
  [ 33 ] Perfusion_Weighted: OK
  [ 34 ] relCBF: OK
  [ 35 ] BAT: OK
  [ 4 ] ep2d_diff_6dir_tra_iso_ap: OK
  [ 9 ] ep2d_diff_6dir_tra_iso_ap_TENSOR_B0: OK
in "Siemens Vida Fit - phantom - XA30 perfusion/"...
  [ 1 ] BAT: OK

@Lestropie
Copy link
Member

For some reason, fixing the slice timing import also fixed the MB factor and slice direction imports (presumably because these are only carried over if the slice timings are known).

The multiband acceleration factor is to my knowledge not actually encoded directly anywhere, and is instead calculated based on the slice timings. While technically the slice encoding axis could be encoded (for 2D sequences) regardless of knowledge of slice timings, just not knowing the sign of traversal means that you probably wouldn't want to set SliceEncodingDirection.

@jdtournier jdtournier merged commit 026e850 into master Apr 22, 2022
@jdtournier jdtournier deleted the dicom_fix_missing_import_siemens_enhanced branch April 22, 2022 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants