From 8681036b2133cfc325658691a256a86b5e36705f Mon Sep 17 00:00:00 2001 From: igoroctaviano Date: Thu, 15 Apr 2021 09:15:42 -0300 Subject: [PATCH] fix(wl): fix metadata provider window level issues after dicomweb update (string vs number) --- platform/core/src/classes/MetadataProvider.js | 13 ++++++++----- .../core/src/utils/metadataProvider/validNumber.js | 9 +++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 platform/core/src/utils/metadataProvider/validNumber.js diff --git a/platform/core/src/classes/MetadataProvider.js b/platform/core/src/classes/MetadataProvider.js index 51a16b6fe..c1517468e 100644 --- a/platform/core/src/classes/MetadataProvider.js +++ b/platform/core/src/classes/MetadataProvider.js @@ -4,6 +4,7 @@ import dicomParser from 'dicom-parser'; import getPixelSpacingInformation from '../utils/metadataProvider/getPixelSpacingInformation'; import fetchPaletteColorLookupTableData from '../utils/metadataProvider/fetchPaletteColorLookupTableData'; import fetchOverlayData from '../utils/metadataProvider/fetchOverlayData'; +import validNumber from '../utils/metadataProvider/validNumber'; class MetadataProvider { constructor() { @@ -284,7 +285,7 @@ class MetadataProvider { break; case WADO_IMAGE_LOADER_TAGS.VOI_LUT_MODULE: - const { WindowCenter, WindowWidth } = instance; + let { WindowCenter, WindowWidth } = instance; const windowCenter = Array.isArray(WindowCenter) ? WindowCenter @@ -294,15 +295,17 @@ class MetadataProvider { : [WindowWidth]; metadata = { - windowCenter, - windowWidth, + windowCenter: validNumber(windowCenter), + windowWidth: validNumber(windowWidth), }; break; case WADO_IMAGE_LOADER_TAGS.MODALITY_LUT_MODULE: + const rescaleSlope = validNumber(instance.RescaleSlope); + const rescaleIntercept = validNumber(instance.RescaleIntercept); metadata = { - rescaleIntercept: instance.RescaleIntercept, - rescaleSlope: instance.RescaleSlope, + rescaleIntercept, + rescaleSlope, rescaleType: instance.RescaleType, }; break; diff --git a/platform/core/src/utils/metadataProvider/validNumber.js b/platform/core/src/utils/metadataProvider/validNumber.js new file mode 100644 index 000000000..be9630afa --- /dev/null +++ b/platform/core/src/utils/metadataProvider/validNumber.js @@ -0,0 +1,9 @@ +const validNumber = val => { + if (Array.isArray(val)) { + return val.map(v => (v !== undefined ? Number(v) : v)); + } else { + return val !== undefined ? Number(val) : val; + } +}; + +export default validNumber;