diff --git a/console/nii_dicom.cpp b/console/nii_dicom.cpp index 7e192940..46dad9bf 100644 --- a/console/nii_dicom.cpp +++ b/console/nii_dicom.cpp @@ -4583,6 +4583,7 @@ const uint32_t kEffectiveTE = 0x0018 + uint32_t(0x9082 << 16); //FD #define kASLContrastTechniqueGE 0x0043 + (0x10A3 << 16) //CS #define kASLLabelingTechniqueGE 0x0043 + (0x10A4 << 16) //LO #define kDurationLabelPulseGE 0x0043 + (0x10A5 << 16) //IS +#define kMRTablePositionInformation 0x0043 + (0x10B2 << 16) //LO #define kMultiBandGE 0x0043 + (0x10B6 << 16) //LO #define kCompressedSensingParameters 0x0043 + (0x10B7 << 16) //LO #define kDeepLearningParameters 0x0043 + (0x10CA << 16) //LO "0.75\High" @@ -7368,6 +7369,18 @@ const uint32_t kEffectiveTE = 0x0018 + uint32_t(0x9082 << 16); //FD d.durationLabelPulseGE = dcmStrInt(lLength, &buffer[lPos]); break; } + case kMRTablePositionInformation: { //LO issue427GE + if (d.manufacturer != kMANUFACTURER_GE) + break; + //LO array of floats stored in LONG STRING! + // [960.5\400\17.9108\0\-9999\-9999] + //we want 3rd value, e.g. 17.9: + float v[5]; + dcmMultiFloat(lLength, (char *)&buffer[lPos], 5, v); + d.CSA.tablePos[3] = v[3]; + d.CSA.tablePos[0] = 1.0; + break; + } case kMultiBandGE: { //LO issue427GE if (d.manufacturer != kMANUFACTURER_GE) break;