From 489d4b0584f4657ceda1c5b9b68d5e9733827e47 Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Thu, 23 Sep 2021 18:37:29 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Update=20to=20WADO=20Image=20Loader=204?= =?UTF-8?q?.0.3=20to=20add=20dynamically=20imported=20WebAssembly=20codec?= =?UTF-8?q?=20support=20=F0=9F=9A=80=20(#2537)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: bump to prerelease of WADO Image Loader for testing * switch to released versions * update react-vtkjs-viewport and fix requestpool usage in StudyPrefetcher * attempt to fix e2e tests for script-tag usage * fix e2e test error * switch to using webpack alias in PWA to use dynamic import version of OHIF * fix copy plugin usage * try to fix publicpath issue * bump to 4.0.3 Co-authored-by: Alireza --- .gitignore | 3 + extensions/cornerstone/package.json | 12 +- extensions/debugging/package.json | 2 +- extensions/dicom-pdf/package.json | 2 +- extensions/dicom-rt/package.json | 4 +- extensions/dicom-segmentation/package.json | 4 +- extensions/vtk/package.json | 16 +-- platform/core/package.json | 8 +- platform/core/src/classes/StudyPrefetcher.js | 24 ++-- platform/viewer/.webpack/webpack.pwa.js | 26 +++- .../common/OHIFUserPreferences.spec.js | 15 +++ platform/viewer/cypress/support/commands.js | 10 +- platform/viewer/package.json | 12 +- yarn.lock | 125 ++++++++++++------ 14 files changed, 175 insertions(+), 88 deletions(-) diff --git a/.gitignore b/.gitignore index 10ce0874c..c2c0ec2b9 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,9 @@ junit.xml coverage/ .docz/ *.js.map +.yarn +platform/docs/.docusaurus +platform/ui/storybook-static # YALC (for Erik) .yalc diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 1f7279fff..e78f98d50 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -32,12 +32,12 @@ "peerDependencies": { "@ohif/core": "^0.50.0", "@ohif/ui": "^0.50.0", - "cornerstone-core": "^2.2.8", - "cornerstone-math": "^0.1.8", - "cornerstone-tools": "^4.20.1", - "cornerstone-wado-image-loader": "^3.1.0", + "cornerstone-core": "^2.5.0", + "cornerstone-math": "^0.1.9", + "cornerstone-tools": "^6.0.0", + "cornerstone-wado-image-loader": "^4.0.3", "dcmjs": "0.18.8", - "dicom-parser": "^1.8.3", + "dicom-parser": "^1.8.9", "hammerjs": "^2.0.8", "prop-types": "^15.6.2", "react": "^16.8.6", @@ -51,6 +51,6 @@ "classnames": "^2.2.6", "lodash.merge": "^4.6.2", "lodash.throttle": "^4.1.1", - "react-cornerstone-viewport": "4.0.5" + "react-cornerstone-viewport": "4.1.1" } } diff --git a/extensions/debugging/package.json b/extensions/debugging/package.json index 2f4a573d9..7e410e481 100644 --- a/extensions/debugging/package.json +++ b/extensions/debugging/package.json @@ -28,7 +28,7 @@ }, "peerDependencies": { "@ohif/core": "^2.6.0", - "dicom-parser": "^1.8.3" + "dicom-parser": "^1.8.9" }, "dependencies": { "@babel/runtime": "^7.5.5", diff --git a/extensions/dicom-pdf/package.json b/extensions/dicom-pdf/package.json index be84fad0a..698f9b9c5 100644 --- a/extensions/dicom-pdf/package.json +++ b/extensions/dicom-pdf/package.json @@ -29,7 +29,7 @@ }, "peerDependencies": { "@ohif/core": "^0.50.0", - "dicom-parser": "^1.8.3", + "dicom-parser": "^1.8.9", "prop-types": "^15.6.2", "react": "^16.8.6", "react-dom": "^16.8.6" diff --git a/extensions/dicom-rt/package.json b/extensions/dicom-rt/package.json index 11bc13db5..3f55bb5c6 100644 --- a/extensions/dicom-rt/package.json +++ b/extensions/dicom-rt/package.json @@ -29,8 +29,8 @@ }, "peerDependencies": { "@ohif/core": "^0.50.0", - "cornerstone-core": "^2.2.8", - "cornerstone-tools": "^4.20.1", + "cornerstone-core": "^2.5.0", + "cornerstone-tools": "^6.0.0", "dcmjs": "0.18.8", "gl-matrix": "^3.3.0", "prop-types": "^15.6.2", diff --git a/extensions/dicom-segmentation/package.json b/extensions/dicom-segmentation/package.json index ceaf096d0..3942c935b 100644 --- a/extensions/dicom-segmentation/package.json +++ b/extensions/dicom-segmentation/package.json @@ -29,8 +29,8 @@ }, "peerDependencies": { "@ohif/core": "^0.50.0", - "cornerstone-core": "^2.2.8", - "cornerstone-tools": "^4.20.1", + "cornerstone-core": "^2.5.0", + "cornerstone-tools": "^6.0.0", "dcmjs": "0.18.8", "prop-types": "^15.6.2", "react": "^16.8.6", diff --git a/extensions/vtk/package.json b/extensions/vtk/package.json index a23310748..5a3a4e5e0 100644 --- a/extensions/vtk/package.json +++ b/extensions/vtk/package.json @@ -32,11 +32,11 @@ "@ohif/core": "^0.50.0", "@ohif/i18n": "^0.50.0", "@ohif/ui": "^0.50.0", - "cornerstone-core": "^2.2.8", - "cornerstone-tools": "^4.20.1", - "cornerstone-wado-image-loader": "^3.1.0", + "cornerstone-core": "^2.5.0", + "cornerstone-tools": "^6.0.0", + "cornerstone-wado-image-loader": "^4.0.3", "dcmjs": "0.18.8", - "dicom-parser": "^1.8.3", + "dicom-parser": "^1.8.9", "i18next": "^17.0.3", "i18next-browser-languagedetector": "^3.0.1", "prop-types": "^15.7.2", @@ -50,14 +50,14 @@ "dependencies": { "@babel/runtime": "^7.5.5", "lodash.throttle": "^4.1.1", - "react-vtkjs-viewport": "^0.14.2" + "react-vtkjs-viewport": "^0.14.4" }, "devDependencies": { "@ohif/core": "^2.14.1", "@ohif/ui": "^1.10.1", - "cornerstone-tools": "^4.20.1", - "cornerstone-wado-image-loader": "^3.1.0", - "dicom-parser": "^1.8.3", + "cornerstone-tools": "^6.0.0", + "cornerstone-wado-image-loader": "^4.0.3", + "dicom-parser": "^1.8.9", "gh-pages": "^2.0.1", "i18next": "^17.0.3", "i18next-browser-languagedetector": "^3.0.1", diff --git a/platform/core/package.json b/platform/core/package.json index d7ff8765e..375ae46c9 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -31,10 +31,10 @@ "test:unit:ci": "jest --ci --runInBand --collectCoverage" }, "peerDependencies": { - "cornerstone-core": "^2.2.8", - "cornerstone-tools": "^4.20.1", - "cornerstone-wado-image-loader": "^3.1.0", - "dicom-parser": "^1.8.3" + "cornerstone-core": "^2.5.0", + "cornerstone-tools": "^6.0.0", + "cornerstone-wado-image-loader": "^4.0.3", + "dicom-parser": "^1.8.9" }, "dependencies": { "@babel/runtime": "^7.5.5", diff --git a/platform/core/src/classes/StudyPrefetcher.js b/platform/core/src/classes/StudyPrefetcher.js index 72ccc96eb..83f84ed9c 100644 --- a/platform/core/src/classes/StudyPrefetcher.js +++ b/platform/core/src/classes/StudyPrefetcher.js @@ -104,7 +104,7 @@ export class StudyPrefetcher { * Stop prefetching images. */ stopPrefetching() { - cornerstoneTools.requestPoolManager.clearRequestStack('prefetch'); + cornerstone.imageLoadPoolManager.clearRequestStack('prefetch'); } /** @@ -143,20 +143,24 @@ export class StudyPrefetcher { */ prefetchImageIds(imageIds) { const nonCachedImageIds = this.filterCachedImageIds(imageIds); - const requestPoolManager = cornerstoneTools.requestPoolManager; + const imageLoadPoolManager = cornerstone.imageLoadPoolManager; + + let requestFn; + if (this.options.preventCache) { + requestFn = id => cornerstone.loadImage(id); + } else { + requestFn = id => cornerstone.loadAndCacheImage(id); + } nonCachedImageIds.forEach(imageId => { - requestPoolManager.addRequest( - {}, - imageId, + imageLoadPoolManager.addRequest( + requestFn.bind(this, imageId), this.options.requestType, - this.options.preventCache, - () => {}, - noop + { + imageId, + } ); }); - - requestPoolManager.startGrabbing(); } /** diff --git a/platform/viewer/.webpack/webpack.pwa.js b/platform/viewer/.webpack/webpack.pwa.js index a36f6daa1..4cdb1589a 100644 --- a/platform/viewer/.webpack/webpack.pwa.js +++ b/platform/viewer/.webpack/webpack.pwa.js @@ -12,8 +12,6 @@ const CopyWebpackPlugin = require('copy-webpack-plugin'); const ExtractCssChunksPlugin = require('extract-css-chunks-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const { InjectManifest } = require('workbox-webpack-plugin'); -const TerserJSPlugin = require('terser-webpack-plugin'); -const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); // ~~ Rules const extractStyleChunksRule = require('./rules/extractStyleChunks.js'); // ~~ Directories @@ -49,6 +47,16 @@ module.exports = (env, argv) => { } }, }, + resolve: { + // We use this alias and the CopyPlugin below to support using the dynamic-import version + // of WADO Image Loader, but only when building a PWA. When we build a package, we must use the + // bundled version of WADO Image Loader so we can produce a single file for the viewer. + // (Note: script-tag version of the viewer will no longer be supported in OHIF v3) + alias: { + 'cornerstone-wado-image-loader': + 'cornerstone-wado-image-loader/dist/dynamic-import/cornerstoneWADOImageLoader.min.js', + }, + }, module: { rules: [...extractStyleChunksRule(isProdBuild)], }, @@ -78,6 +86,11 @@ module.exports = (env, argv) => { from: `${PUBLIC_DIR}/${APP_CONFIG}`, to: `${DIST_DIR}/app-config.js`, }, + { + from: + '../../../node_modules/cornerstone-wado-image-loader/dist/dynamic-import', + to: DIST_DIR, + }, ]), // https://github.com/faceyspacey/extract-css-chunks-webpack-plugin#webpack-4-standalone-installation new ExtractCssChunksPlugin({ @@ -102,6 +115,15 @@ module.exports = (env, argv) => { // maximumFileSizeToCacheInBytes: 4 * 1024 * 1024 }), ], + optimization: { + splitChunks: { + // include all types of chunks + chunks: 'all', + }, + //runtimeChunk: 'single', + minimize: isProdBuild, + sideEffects: true, + }, // https://webpack.js.org/configuration/dev-server/ devServer: { // gzip compression of everything served diff --git a/platform/viewer/cypress/integration/common/OHIFUserPreferences.spec.js b/platform/viewer/cypress/integration/common/OHIFUserPreferences.spec.js index 8ba329af1..65ab7c1f8 100644 --- a/platform/viewer/cypress/integration/common/OHIFUserPreferences.spec.js +++ b/platform/viewer/cypress/integration/common/OHIFUserPreferences.spec.js @@ -333,6 +333,7 @@ describe('OHIF User Preferences', () => { .scrollIntoView() .click(); + // Header should be in "English (USA)"" cy.get('.research-use') .scrollIntoView() @@ -560,6 +561,13 @@ describe('OHIF User Preferences', () => { .scrollIntoView() .click(); + // Close Success Message overlay (if displayed) + cy.get('body').then(body => { + if (body.find('.sb-closeIcon').length > 0) { + cy.get('.sb-closeIcon').click({ force: true }); + } + }); + // Open User Preferences modal again cy.openPreferences(); @@ -668,6 +676,13 @@ describe('OHIF User Preferences', () => { // Save changes cy.get('@saveBtn').click(); + // Close Success Message overlay (if displayed) + cy.get('body').then(body => { + if (body.find('.sb-closeIcon').length > 0) { + cy.get('.sb-closeIcon').click({ force: true }); + } + }); + // Open User Preferences modal cy.openPreferences(); // Navigate to Window Level tab diff --git a/platform/viewer/cypress/support/commands.js b/platform/viewer/cypress/support/commands.js index 7b7d4d658..e93a5127f 100644 --- a/platform/viewer/cypress/support/commands.js +++ b/platform/viewer/cypress/support/commands.js @@ -504,6 +504,9 @@ Cypress.Commands.add('resetUserHotkeyPreferences', () => { cy.get('@restoreBtn').click(); }); + // Click on Save Button + cy.get('@saveBtn').click(); + // Close Success Message overlay (if displayed) cy.get('body').then(body => { if (body.find('.sb-closeIcon').length > 0) { @@ -511,8 +514,6 @@ Cypress.Commands.add('resetUserHotkeyPreferences', () => { .first() .click({ force: true }); } - // Click on Save Button - cy.get('@saveBtn').click(); }); }); @@ -525,6 +526,9 @@ Cypress.Commands.add('resetUserGeneralPreferences', () => { cy.get('@restoreBtn').click(); }); + // Click on Save Button + cy.get('@saveBtn').click(); + // Close Success Message overlay (if displayed) cy.get('body').then(body => { if (body.find('.sb-closeIcon').length > 0) { @@ -532,8 +536,6 @@ Cypress.Commands.add('resetUserGeneralPreferences', () => { .first() .click({ force: true }); } - // Click on Save Button - cy.get('@saveBtn').click(); }); }); diff --git a/platform/viewer/package.json b/platform/viewer/package.json index 3b8ab3088..2ed5a1a00 100644 --- a/platform/viewer/package.json +++ b/platform/viewer/package.json @@ -19,14 +19,12 @@ "scripts": { "build:package": "cross-env NODE_ENV=production node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --config .webpack/webpack.commonjs.js --progress", "build:viewer": "cross-env NODE_ENV=production node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --config .webpack/webpack.pwa.js --progress", - "build:viewer:lesion-tracker": "cross-env ENTRY_TARGET=index-lesion-tracker.js NODE_ENV=production node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --config .webpack/webpack.pwa.js --progress", "build:viewer:ci": "cross-env NODE_ENV=production PUBLIC_URL=/pwa/ APP_CONFIG=config/netlify.js QUICK_BUILD=true node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --config .webpack/webpack.pwa.js", "build:viewer:demo": "cross-env NODE_ENV=production APP_CONFIG=config/demo.js HTML_TEMPLATE=rollbar.html QUICK_BUILD=true node --max_old_space_size=4096 ./../../node_modules/webpack/bin/webpack.js --progress --config .webpack/webpack.pwa.js", "build:viewer:package": "yarn run build:package", "dev": "cross-env NODE_ENV=development webpack-dev-server --config .webpack/webpack.pwa.js --watch", "dev:orthanc": "cross-env NODE_ENV=development PROXY_TARGET=/dicom-web PROXY_DOMAIN=http://localhost:8042 APP_CONFIG=config/docker_nginx-orthanc.js webpack-dev-server --config .webpack/webpack.pwa.js --watch", "dev:viewer": "yarn run dev", - "dev:viewer:lesion-tracker": "cross-env ENTRY_TARGET=index-lesion-tracker.js NODE_ENV=development webpack-dev-server --config .webpack/webpack.pwa.js --watch", "start": "yarn run dev", "test:e2e": "cypress open", "test:e2e:ci": "percy exec -- cypress run --config video=false --record --browser chrome --spec 'cypress/integration/visual-regression/**/*'", @@ -64,12 +62,12 @@ "@tanem/react-nprogress": "^1.1.25", "classnames": "^2.2.6", "core-js": "^3.2.1", - "cornerstone-core": "^2.2.8", - "cornerstone-math": "^0.1.8", - "cornerstone-tools": "^4.20.1", - "cornerstone-wado-image-loader": "^3.1.0", + "cornerstone-core": "^2.5.0", + "cornerstone-math": "^0.1.9", + "cornerstone-tools": "^6.0.0", + "cornerstone-wado-image-loader": "^4.0.3", "dcmjs": "0.18.8", - "dicom-parser": "^1.8.3", + "dicom-parser": "^1.8.9", "dicomweb-client": "^0.8.1", "hammerjs": "^2.0.8", "i18next": "^17.0.3", diff --git a/yarn.lock b/yarn.lock index d439562f6..b8642e5dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1337,6 +1337,21 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@cornerstonejs/codec-charls@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-charls/-/codec-charls-0.1.1.tgz#e55d4aa908732d0cc902888b7f3856c5a996df7f" + integrity sha512-Y250DGVzmownJ7WgpHxNqWvfTnv4/malaKm/tWm0xE1FxhQE8iErMWFpKxpNDk3MdfXO4/98piVsUwmJMiWoDQ== + +"@cornerstonejs/codec-libjpeg-turbo-8bit@^0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-libjpeg-turbo-8bit/-/codec-libjpeg-turbo-8bit-0.0.7.tgz#2ea9b575eed19e6e7e3701b7a50a4ae0ffbef0c4" + integrity sha512-qgm6BuVAy5mNP8SJ+A6+VbmPnqgj8jPvJrw4HbUoAzndmf9/VHjTYwawn3kmZWya5ErFAsXQ6c0U0noB1LKAiA== + +"@cornerstonejs/codec-openjpeg@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjpeg/-/codec-openjpeg-0.1.0.tgz#5bca10ae2980ff681ebcdace2074a0adaf12ad86" + integrity sha512-9mwseBidYPQ1rGPcUU8JriQnzUi5Bgtontqca7gw47uzxC4Zamoc1Kuho5LUpbS1LSnOLePOkDrg/LCYhJIq8g== + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -3085,6 +3100,11 @@ "@types/prop-types" "*" csstype "^2.2.0" +"@types/resize-observer-browser@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.6.tgz#d8e6c2f830e2650dc06fe74464472ff64b54a302" + integrity sha512-61IfTac0s9jvNtBCpyo86QeaN8qqpMGHdK0uGKCCIy2dt5/Yk84VduHIdWAcmkC5QvdkPL0p5eWYgUZtHKKUVg== + "@types/resolve@0.0.8": version "0.0.8" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" @@ -5265,6 +5285,11 @@ classnames@2.2.6, classnames@^2.2.5, classnames@^2.2.6: resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== +classnames@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== + clean-css@4.2.x, clean-css@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" @@ -6009,36 +6034,34 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cornerstone-core@^2.2.8: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cornerstone-core/-/cornerstone-core-2.3.0.tgz#b16430b0dc3883c795fbbd5f64d0f6357f91c889" - integrity sha512-1LiCfRIlQvR1j8OhF7/3pvvQvvnTYZUywEkuoEo5K5mMrlKdrQMS75uW1uXb/nXShQDJyyjtTCQSVGgv2yHA+w== +cornerstone-core@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/cornerstone-core/-/cornerstone-core-2.5.0.tgz#1051ffc34420ad7484e61d2f3bdbc41a5ebc1956" + integrity sha512-mJzvRJh8J7d5FJutjaL9cT8ZNnmj6l5PHROsyktZq1ojh4vkXfHECQ2izIQu8nmtJ9A6SyQRj4v5Uxn7hijzKw== -cornerstone-math@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/cornerstone-math/-/cornerstone-math-0.1.7.tgz#7c55536f02e7221b05fc49a4c780bb82c234ce39" - integrity sha512-svsDSoqLNFM9niCV2AtV2DNmRkYztT1v80lVdbA5hkgdGdpWg5/h2On794zbqBK+aI3hNOHufERDsI4wdXGknA== +cornerstone-math@0.1.9, cornerstone-math@^0.1.9: + version "0.1.9" + resolved "https://registry.yarnpkg.com/cornerstone-math/-/cornerstone-math-0.1.9.tgz#7ce5509e8b9f465b01f7c548470725e7569859fc" + integrity sha512-NxdooV73asEQgav1S+0e+a4K+W3CXJdLXyFkVN24qqCtmIpzZzwtw3F9KWPCekzSAJmbhtQ3HicOQj3d4vRtuw== -cornerstone-math@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/cornerstone-math/-/cornerstone-math-0.1.8.tgz#68ab1f9e4fdcd7c5cb23a0d2eb4263f9f894f1c5" - integrity sha512-x7NEQHBtVG7j1yeyj/aRoKTpXv1Vh2/H9zNLMyqYJDtJkNng8C4Q8M3CgZ1qer0Yr7eVq2x+Ynmj6kfOm5jXKw== - -cornerstone-tools@^4.20.1: - version "4.20.1" - resolved "https://registry.yarnpkg.com/cornerstone-tools/-/cornerstone-tools-4.20.1.tgz#90f6c28356622eac037683b19f9175f85d33dff7" - integrity sha512-SyQsrg3bnGHUvWGZpUq7ia7/gj12S9zQFK2VMhpyAYxK9pWz+PRv8HBi0eEe/fWGAo/Vc62IRkdP3uF9MJlqiQ== +cornerstone-tools@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cornerstone-tools/-/cornerstone-tools-6.0.0.tgz#6840658f4508e60cd206b17d6e56160367f616f1" + integrity sha512-VU4MrsO2NcQK6CUxuYFdiNvdWjF/NV/fs8jCePazYCoFDDKIYcUM9UmoYXAapFE2mon65p4u9wUAvuIuLeBQwA== dependencies: "@babel/runtime" "7.1.2" - cornerstone-math "0.1.7" + cornerstone-math "0.1.9" -cornerstone-wado-image-loader@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cornerstone-wado-image-loader/-/cornerstone-wado-image-loader-3.1.0.tgz#6007470be896678636da3188f194f5e66ed07858" - integrity sha512-n2yadbwK7rCHqJyh5AUmYVPUY5m7boKpheK60sXV41Z0eSZLin9Ja+P9yeAvkg0VGV+/zaBZGPUGY3YyjdWBgg== +cornerstone-wado-image-loader@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/cornerstone-wado-image-loader/-/cornerstone-wado-image-loader-4.0.3.tgz#4848a238af9b10742af6d08e204527acf5260c25" + integrity sha512-0KuMC6+hEFsCwVOBH4idKwPpbLdccPzP7i5Ja4q7E/kfwCE71uL8AzHhx96XcLeFN8oR8T+nzv8X6j0lyY32SA== dependencies: - dicom-parser "^1.8.3" - pako "^1.0.10" + "@cornerstonejs/codec-charls" "^0.1.1" + "@cornerstonejs/codec-libjpeg-turbo-8bit" "^0.0.7" + "@cornerstonejs/codec-openjpeg" "^0.1.0" + dicom-parser "^1.8.9" + pako "^2.0.4" cors@^2.8.4: version "2.8.5" @@ -6609,6 +6632,11 @@ date-fns@^2.2.1: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.6.0.tgz#a5bc82e6a4c3995ae124b0ba1a71aec7b8cbd666" integrity sha512-F55YxqRdEfP/eYQmQjLN798v0AwLjmZ8nMBjdQvNwEE3N/zWVrlkkqT+9seBlPlsbkybG4JmWg3Ee3dIV9BcGQ== +date-fns@^2.23.0: + version "2.23.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.23.0.tgz#4e886c941659af0cf7b30fafdd1eaa37e88788a9" + integrity sha512-5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA== + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" @@ -6935,10 +6963,10 @@ dicom-microscopy-viewer@^0.6.1: dicomweb-client "^0.5.2" ol "^5.3.0" -dicom-parser@^1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/dicom-parser/-/dicom-parser-1.8.3.tgz#6e4b862898112304db30143147562011c1ce6a4d" - integrity sha512-CMeUr+jea7Ml70N+/Z5Pd2MYtvLp6IU+TnvdLe6VRVKzZuTeYLYyuAQa9R+sFK4v4N39hig+hKHN+Wfi9sQ6GA== +dicom-parser@^1.8.9: + version "1.8.9" + resolved "https://registry.yarnpkg.com/dicom-parser/-/dicom-parser-1.8.9.tgz#c69b036b8234df1cfad9978d0d6f0caad1582e74" + integrity sha512-OdLBIh460sy0aVeBZ/XSjbzEvXDS18XWxTdTinYmIHNi2jZfo6UuxscX4/VuYslduQ9LaeY6sdEXe9P9e6qlvA== dicomweb-client@^0.5.2: version "0.5.2" @@ -14060,7 +14088,12 @@ pako@1.0.6: resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" integrity sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg== -pako@^1.0.10, pako@~1.0.2, pako@~1.0.5: +pako@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" + integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== + +pako@~1.0.2, pako@~1.0.5: version "1.0.10" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== @@ -15693,16 +15726,16 @@ react-codemirror2@^6.0.0: resolved "https://registry.yarnpkg.com/react-codemirror2/-/react-codemirror2-6.0.0.tgz#180065df57a64026026cde569a9708fdf7656525" integrity sha512-D7y9qZ05FbUh9blqECaJMdDwKluQiO3A9xB+fssd5jKM7YAXucRuEOlX32mJQumUvHUkHRHqXIPBjm6g0FW0Ag== -react-cornerstone-viewport@4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-4.0.5.tgz#3de83cdd3643980e0330f3743f631dbbb24d98a7" - integrity sha512-uamDtFljWWEHe26kOBJJ1Bu//6hAgEra7BDVykOvtMC/W7kW34Q2fFX3ZwkL6TDdCQ94O6K98IXPS9HbrEJWYg== +react-cornerstone-viewport@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/react-cornerstone-viewport/-/react-cornerstone-viewport-4.1.1.tgz#713536c031b1e1d0d9f58ad80ee34f15998e5759" + integrity sha512-cJ3D7WglieGxcR49hivORk1YnSCQFbj8HVNj7JFaddix8jMqIkBpmbN5En5+8yM3ujgdj1n66uaLWNoP7JE9Qw== dependencies: - classnames "^2.2.6" - date-fns "^2.2.1" + classnames "^2.3.1" + date-fns "^2.23.0" lodash.debounce "^4.0.8" prop-types "^15.7.2" - react-resize-detector "^4.2.1" + react-resize-detector "^6.7.6" react-dates@21.2.1: version "21.2.1" @@ -16053,7 +16086,7 @@ react-redux@^7.1.0: prop-types "^15.7.2" react-is "^16.9.0" -react-resize-detector@^4.2.0, react-resize-detector@^4.2.1: +react-resize-detector@^4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-4.2.1.tgz#8982b74c3e1cf949afaa3c41050458c87b033982" integrity sha512-ZfPMBPxXi0o3xox42MIEtz84tPSVMW9GgwLHYvjVXlFM+OkNzbeEtpVSV+mSTJmk4Znwomolzt35zHN9LNBQMQ== @@ -16064,6 +16097,16 @@ react-resize-detector@^4.2.0, react-resize-detector@^4.2.1: raf-schd "^4.0.2" resize-observer-polyfill "^1.5.1" +react-resize-detector@^6.7.6: + version "6.7.6" + resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-6.7.6.tgz#4416994e5ead7eba76606e3a248a1dfca49b67a3" + integrity sha512-/6RZlul1yePSoYJxWxmmgjO320moeLC/khrwpEVIL+D2EjLKhqOwzFv+H8laMbImVj7Zu4FlMa0oA7au3/ChjQ== + dependencies: + "@types/resize-observer-browser" "^0.1.6" + lodash.debounce "^4.0.8" + lodash.throttle "^4.1.1" + resize-observer-polyfill "^1.5.1" + react-router-dom@^5.0.1: version "5.1.2" resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.1.2.tgz#06701b834352f44d37fbb6311f870f84c76b9c18" @@ -16152,10 +16195,10 @@ react-transition-group@^4.1.1: loose-envify "^1.4.0" prop-types "^15.6.2" -react-vtkjs-viewport@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.14.2.tgz#8b3363e4fc0b2084e72d59b3bb6246c27b08b6a4" - integrity sha512-sIUU2Om0O4mby9tubjeVRPCNDGSKh2OM7tgpd+wxxjvAqOGRIab51jL+mZTP4ijTMRzZ8Gvl6c4ywOuXnH4RJA== +react-vtkjs-viewport@^0.14.4: + version "0.14.4" + resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.14.4.tgz#8cc5a49738fff3fee75ead61c98307bc24710151" + integrity sha512-WKU87iqH6AQ1R8zp1hUXU4hsGwfbkkoUhzSCjbBGZ9Di0ELYNx/xY9DtdmgsKOU5Y5Arp5+VQW/ziFsq2KTcTA== dependencies: date-fns "^2.2.1" gl-matrix "^3.1.0"