diff --git a/.circleci/config.yml b/.circleci/config.yml index e364e3bf665..f91484c1257 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -48,12 +48,12 @@ jobs: - checkout: post: - git fetch --all - - restore_cache: - name: Restore Yarn and Cypress Package Cache - keys: - # when lock file changes, use increasingly general patterns to restore cache - - yarn-packages-{{ checksum "yarn.lock" }} - - yarn-packages- + # - restore_cache: + # name: Restore Yarn and Cypress Package Cache + # keys: + # # when lock file changes, use increasingly general patterns to restore cache + # - yarn-packages-{{ checksum "yarn.lock" }} + # - yarn-packages- - run: name: Install Dependencies command: yarn install --frozen-lockfile @@ -107,12 +107,12 @@ jobs: post: - git fetch --all - - restore_cache: - name: Restore Yarn and Cypress Package Cache - keys: - # when lock file changes, use increasingly general patterns to restore cache - - yarn-packages-{{ checksum "yarn.lock" }} - - yarn-packages- + # - restore_cache: + # name: Restore Yarn and Cypress Package Cache + # keys: + # # when lock file changes, use increasingly general patterns to restore cache + # - yarn-packages-{{ checksum "yarn.lock" }} + # - yarn-packages- - run: name: Install Dependencies @@ -143,12 +143,12 @@ jobs: - checkout: post: - git fetch --all - - restore_cache: - name: Restore Yarn and Cypress Package Cache - keys: - # when lock file changes, use increasingly general patterns to restore cache - - yarn-packages-{{ checksum "yarn.lock" }} - - yarn-packages- + # - restore_cache: + # name: Restore Yarn and Cypress Package Cache + # keys: + # # when lock file changes, use increasingly general patterns to restore cache + # - yarn-packages-{{ checksum "yarn.lock" }} + # - yarn-packages- - run: name: Install Dependencies command: yarn install --frozen-lockfile @@ -237,11 +237,11 @@ jobs: post: - git fetch --all # Use increasingly general patterns to restore cache - - restore_cache: - name: Restore Yarn and Cypress Package Cache - keys: - - yarn-packages-{{ checksum "yarn.lock" }} - - yarn-packages- + # - restore_cache: + # name: Restore Yarn and Cypress Package Cache + # keys: + # - yarn-packages-{{ checksum "yarn.lock" }} + # - yarn-packages- - run: name: Install Dependencies command: yarn install --frozen-lockfile @@ -346,7 +346,9 @@ workflows: record: true store_artifacts: true working_directory: platform/viewer - build: npx cross-env QUICK_BUILD=true APP_CONFIG=config/dicomweb-server.js yarn run build + build: + npx cross-env QUICK_BUILD=true APP_CONFIG=config/dicomweb-server.js + yarn run build start: yarn run test:e2e:serve spec: 'cypress/integration/common/**/*,cypress/integration/pwa/**/*' wait-on: 'http://localhost:3000' @@ -372,7 +374,9 @@ workflows: record: true store_artifacts: true working_directory: platform/viewer - build: npx cross-env QUICK_BUILD=true APP_CONFIG=config/dicomweb-server.js yarn run build:package + build: + npx cross-env QUICK_BUILD=true APP_CONFIG=config/dicomweb-server.js + yarn run build:package start: yarn run test:e2e:serve spec: 'cypress/integration/common/**/*,cypress/integration/script-tag/**/*' wait-on: 'http://localhost:3000' @@ -403,7 +407,9 @@ workflows: yarn: true store_artifacts: false working_directory: platform/viewer - build: npx cross-env QUICK_BUILD=true APP_CONFIG=config/dicomweb-server.js yarn run build + build: + npx cross-env QUICK_BUILD=true APP_CONFIG=config/dicomweb-server.js + yarn run build # start server --> verify running --> percy + chrome + cypress command: yarn run test:e2e:dist cache-key: 'yarn-packages-{{ checksum "yarn.lock" }}' @@ -480,7 +486,9 @@ workflows: yarn: true store_artifacts: false working_directory: platform/viewer - build: npx cross-env QUICK_BUILD=true APP_CONFIG=config/dicomweb-server.js yarn run build + build: + npx cross-env QUICK_BUILD=true APP_CONFIG=config/dicomweb-server.js + yarn run build # start server --> verify running --> percy + chrome + cypress command: yarn run test:e2e:dist cache-key: 'yarn-packages-{{ checksum "yarn.lock" }}' diff --git a/platform/core/src/classes/MetadataProvider.js b/platform/core/src/classes/MetadataProvider.js index 51a16b6fe7b..c1517468e40 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 00000000000..be9630afa79 --- /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;