diff --git a/extensions/cornerstone-dicom-seg/package.json b/extensions/cornerstone-dicom-seg/package.json index a91baf729cf..1d8d56f2999 100644 --- a/extensions/cornerstone-dicom-seg/package.json +++ b/extensions/cornerstone-dicom-seg/package.json @@ -46,9 +46,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.44.1", - "@cornerstonejs/tools": "^1.44.1", - "@kitware/vtk.js": "29.3.0", + "@cornerstonejs/adapters": "^1.63.4", + "@cornerstonejs/core": "^1.63.4", + "@kitware/vtk.js": "29.7.0", "react-color": "^2.19.3" } } diff --git a/extensions/cornerstone-dicom-sr/package.json b/extensions/cornerstone-dicom-sr/package.json index 1292e6259e9..0035bf765bf 100644 --- a/extensions/cornerstone-dicom-sr/package.json +++ b/extensions/cornerstone-dicom-sr/package.json @@ -46,9 +46,9 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.44.1", - "@cornerstonejs/core": "^1.44.1", - "@cornerstonejs/tools": "^1.44.1", + "@cornerstonejs/adapters": "^1.63.4", + "@cornerstonejs/core": "^1.63.4", + "@cornerstonejs/tools": "^1.63.4", "classnames": "^2.3.2" } } diff --git a/extensions/cornerstone/package.json b/extensions/cornerstone/package.json index 0f58911f906..cb4c2f9e383 100644 --- a/extensions/cornerstone/package.json +++ b/extensions/cornerstone/package.json @@ -38,7 +38,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.44.1", + "@cornerstonejs/dicom-image-loader": "^1.63.4", "@ohif/core": "3.8.0-beta.55", "@ohif/ui": "3.8.0-beta.55", "dcmjs": "^0.29.12", @@ -54,11 +54,11 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@cornerstonejs/adapters": "^1.44.1", - "@cornerstonejs/core": "^1.44.1", - "@cornerstonejs/streaming-image-volume-loader": "^1.44.1", - "@cornerstonejs/tools": "^1.44.1", - "@kitware/vtk.js": "29.3.01", + "@cornerstonejs/adapters": "^1.63.4", + "@cornerstonejs/core": "^1.63.4", + "@cornerstonejs/streaming-image-volume-loader": "^1.63.4", + "@cornerstonejs/tools": "^1.63.4", + "@kitware/vtk.js": "29.7.0", "html2canvas": "^1.4.1", "lodash.debounce": "4.0.8", "lodash.merge": "^4.6.2", diff --git a/extensions/cornerstone/src/utils/initViewTiming.ts b/extensions/cornerstone/src/utils/initViewTiming.ts index 8c4ad9f03de..a9d1544c48d 100644 --- a/extensions/cornerstone/src/utils/initViewTiming.ts +++ b/extensions/cornerstone/src/utils/initViewTiming.ts @@ -1,13 +1,7 @@ -import { log, Types } from '@ohif/core'; +import { log, Enums } from '@ohif/core'; import { EVENTS } from '@cornerstonejs/core'; -const { TimingEnum } = Types; - -const IMAGE_TIMING_KEYS = [ - TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES, - TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE, - TimingEnum.STUDY_TO_FIRST_IMAGE, -]; +const IMAGE_TIMING_KEYS = []; const imageTiming = { viewportsWaiting: 0, @@ -23,6 +17,18 @@ const imageTiming = { */ export default function initViewTiming({ element }) { + if (!IMAGE_TIMING_KEYS.length) { + // Work around a bug in WebPack that doesn't getting the enums initialized + // quite fast enough to be declared statically. + const { TimingEnum } = Enums; + + IMAGE_TIMING_KEYS.push( + TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES, + TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE, + TimingEnum.STUDY_TO_FIRST_IMAGE, + ); + } + if (!IMAGE_TIMING_KEYS.find(key => log.timingKeys[key])) { return; } @@ -34,6 +40,7 @@ function imageRenderedListener(evt) { if (evt.detail.viewportStatus === 'preRender') { return; } + const { TimingEnum } = Enums; log.timeEnd(TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE); log.timeEnd(TimingEnum.STUDY_TO_FIRST_IMAGE); log.timeEnd(TimingEnum.SCRIPT_TO_VIEW); diff --git a/extensions/default/src/MergeDataSource/index.ts b/extensions/default/src/MergeDataSource/index.ts index 91852da2705..42e49c69418 100644 --- a/extensions/default/src/MergeDataSource/index.ts +++ b/extensions/default/src/MergeDataSource/index.ts @@ -50,7 +50,9 @@ export const callForAllDataSourcesAsync = async ({ const defs = Object.values(extensionManager.dataSourceDefs); const defaultDataSourceDef = defs.find(def => def.sourceName === defaultDataSourceName); const dataSourceDefs = defs.filter(def => def.sourceName !== defaultDataSourceName); - dataSourceDefs.unshift(defaultDataSourceDef); + if (defaultDataSourceDef) { + dataSourceDefs.unshift(defaultDataSourceDef); + } const promises = []; const sourceNames = []; @@ -100,7 +102,9 @@ export const callForAllDataSources = ({ const defs = Object.values(extensionManager.dataSourceDefs); const defaultDataSourceDef = defs.find(def => def.sourceName === defaultDataSourceName); const dataSourceDefs = defs.filter(def => def.sourceName !== defaultDataSourceName); - dataSourceDefs.unshift(defaultDataSourceDef); + if (defaultDataSourceDef) { + dataSourceDefs.unshift(defaultDataSourceDef); + } const mergedData = []; for (const dataSourceDef of dataSourceDefs) { @@ -140,7 +144,7 @@ export const callForDefaultDataSource = ({ * Calls the data source specified by the RetrieveAETitle of the given display set. * @typedef {Object} CallByRetrieveAETitleOptions * @property {string} path - The path of the method to call on the data source. - * @property {unknown[]} args - The arguments to pass to the method. + * @property {any[]} args - The arguments to pass to the method. * @property {string} defaultDataSourceName - The name of the default data source. * @property {ExtensionManager} extensionManager - The extension manager. */ diff --git a/extensions/measurement-tracking/package.json b/extensions/measurement-tracking/package.json index 5e13cce784c..3204c22a27f 100644 --- a/extensions/measurement-tracking/package.json +++ b/extensions/measurement-tracking/package.json @@ -32,8 +32,8 @@ "start": "yarn run dev" }, "peerDependencies": { - "@cornerstonejs/core": "^1.44.1", - "@cornerstonejs/tools": "^1.44.1", + "@cornerstonejs/core": "^1.63.4", + "@cornerstonejs/tools": "^1.63.4", "@ohif/core": "3.8.0-beta.55", "@ohif/extension-cornerstone-dicom-sr": "3.8.0-beta.55", "@ohif/ui": "3.8.0-beta.55", diff --git a/package.json b/package.json index 6b17ed590d3..81b792ec681 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@kitware/vtk.js": "29.3.0", + "@kitware/vtk.js": "29.7.0", "core-js": "^3.2.1" }, "peerDependencies": { @@ -138,7 +138,7 @@ "terser-webpack-plugin": "^5.1.4", "typescript": "4.6.4", "unused-webpack-plugin": "2.4.0", - "webpack": "^5.50.0", + "webpack": "^5.90.3", "webpack-cli": "^4.7.2", "webpack-dev-server": "4.7.3", "webpack-hot-middleware": "^2.25.0", diff --git a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js index 385b67f944a..00383180f45 100644 --- a/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js +++ b/platform/app/cypress/integration/measurement-tracking/OHIFCornerstoneToolbar.spec.js @@ -85,7 +85,7 @@ describe('OHIF Cornerstone Toolbar', () => { // The exact text is slightly dependent on the viewport resolution, so leave a range cy.get('@viewportInfoTopLeft').should($txt => { const text = $txt.text(); - expect(text).to.include('W:1185').include('L:479'); + expect(text).to.include('W:118').include('L:479'); }); }); diff --git a/platform/app/package.json b/platform/app/package.json index 816bcfae94b..01de2dd49f2 100644 --- a/platform/app/package.json +++ b/platform/app/package.json @@ -53,7 +53,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.5", - "@cornerstonejs/dicom-image-loader": "^1.44.1", + "@cornerstonejs/dicom-image-loader": "^1.63.4", "@emotion/serialize": "^1.1.3", "@ohif/core": "3.8.0-beta.55", "@ohif/extension-cornerstone": "3.8.0-beta.55", diff --git a/platform/app/public/config/local_static.js b/platform/app/public/config/local_static.js index 89f205d0115..7bd03c87eb9 100644 --- a/platform/app/public/config/local_static.js +++ b/platform/app/public/config/local_static.js @@ -15,21 +15,121 @@ window.config = { dataSources: [ { namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', - sourceName: 'dicomweb', + sourceName: 'e2e', + configuration: { + friendlyName: 'StaticWado test data', + // The most important field to set for static WADO + staticWado: true, + name: 'StaticWADO', + wadoUriRoot: '/viewer-testdata', + qidoRoot: '/viewer-testdata', + wadoRoot: '/viewer-testdata', + qidoSupportsIncludeField: false, + imageRendering: 'wadors', + thumbnailRendering: 'wadors', + enableStudyLazyLoad: true, + supportsFuzzyMatching: false, + supportsWildcard: true, + singlepart: 'video,thumbnail,pdf', + omitQuotationForMultipartRequest: true, + bulkDataURI: { + enabled: true, + relativeResolution: 'studies', + }, + }, + }, + { + namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', + sourceName: 'local', configuration: { friendlyName: 'Static WADO Local Data', name: 'DCM4CHEE', + qidoRoot: 'http://localhost:5000/dicomweb', + wadoRoot: 'http://localhost:5000/dicomweb', + qidoSupportsIncludeField: false, + supportsReject: true, + supportsStow: true, + imageRendering: 'wadors', + thumbnailRendering: 'wadors', + enableStudyLazyLoad: true, + supportsFuzzyMatching: false, + supportsWildcard: true, + staticWado: true, + singlepart: 'video', + bulkDataURI: { + enabled: true, + relativeResolution: 'studies', + }, + }, + }, + { + namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', + sourceName: 'docker', + configuration: { + friendlyName: 'Static WADO Docker Data', + name: 'DCM4CHEE', + qidoRoot: 'http://localhost:25080/dicomweb', + wadoRoot: 'http://localhost:25080/dicomweb', + qidoSupportsIncludeField: false, + supportsReject: true, + supportsStow: true, + imageRendering: 'wadors', + thumbnailRendering: 'wadors', + enableStudyLazyLoad: true, + supportsFuzzyMatching: false, + supportsWildcard: true, + staticWado: true, + singlepart: 'bulkdata,video,pdf', + bulkDataURI: { + enabled: true, + relativeResolution: 'studies', + }, + }, + }, + { + namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', + sourceName: 'ohif', + configuration: { + friendlyName: 'AWS S3 Static wado server', + name: 'aws', + wadoUriRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb', + qidoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb', + wadoRoot: 'https://d33do7qe4w26qo.cloudfront.net/dicomweb', + qidoSupportsIncludeField: false, + imageRendering: 'wadors', + thumbnailRendering: 'wadors', + enableStudyLazyLoad: true, + supportsFuzzyMatching: false, + supportsWildcard: true, + staticWado: true, + singlepart: 'bulkdata,video,pdf', + bulkDataURI: { + enabled: true, + relativeResolution: 'studies', + }, + }, + }, + { + friendlyName: 'StaticWado default data', + namespace: '@ohif/extension-default.dataSourcesModule.dicomweb', + sourceName: 'dicomweb', + configuration: { + name: 'DCM4CHEE', + wadoUriRoot: '/dicomweb', qidoRoot: '/dicomweb', wadoRoot: '/dicomweb', qidoSupportsIncludeField: false, + supportsReject: false, imageRendering: 'wadors', thumbnailRendering: 'wadors', enableStudyLazyLoad: true, supportsFuzzyMatching: false, supportsWildcard: true, staticWado: true, - singlepart: 'bulkdata,video,pdf', - omitQuotationForMultipartRequest: true, + bulkDataURI: { + enabled: true, + relativeResolution: 'studies', + }, }, }, { diff --git a/platform/app/src/routes/DataSourceWrapper.tsx b/platform/app/src/routes/DataSourceWrapper.tsx index c9d1d693692..0ae2b698ed4 100644 --- a/platform/app/src/routes/DataSourceWrapper.tsx +++ b/platform/app/src/routes/DataSourceWrapper.tsx @@ -1,15 +1,13 @@ /* eslint-disable react/jsx-props-no-spreading */ import React, { useCallback, useEffect, useState } from 'react'; import PropTypes from 'prop-types'; -import { ExtensionManager, MODULE_TYPES, Types, log } from '@ohif/core'; +import { Enums, ExtensionManager, MODULE_TYPES, log } from '@ohif/core'; // import { extensionManager } from '../App.tsx'; import { useParams, useLocation } from 'react-router'; import { useNavigate } from 'react-router-dom'; import useSearchParams from '../hooks/useSearchParams.ts'; -const { TimingEnum } = Types; - /** * Determines if two React Router location objects are the same. */ @@ -151,7 +149,7 @@ function DataSourceWrapper(props) { // 204: no content async function getData() { setIsLoading(true); - log.time(TimingEnum.SEARCH_TO_LIST); + log.time(Enums.TimingEnum.SEARCH_TO_LIST); const studies = await dataSource.query.studies.search(queryFilterValues); setData({ @@ -161,8 +159,8 @@ function DataSourceWrapper(props) { pageNumber: queryFilterValues.pageNumber, location, }); - log.timeEnd(TimingEnum.SCRIPT_TO_VIEW); - log.timeEnd(TimingEnum.SEARCH_TO_LIST); + log.timeEnd(Enums.TimingEnum.SCRIPT_TO_VIEW); + log.timeEnd(Enums.TimingEnum.SEARCH_TO_LIST); setIsLoading(false); } diff --git a/platform/app/src/routes/Mode/Mode.tsx b/platform/app/src/routes/Mode/Mode.tsx index 22840324639..ecbe7677a24 100644 --- a/platform/app/src/routes/Mode/Mode.tsx +++ b/platform/app/src/routes/Mode/Mode.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useState, useRef } from 'react'; import { useParams, useLocation, useNavigate } from 'react-router'; import PropTypes from 'prop-types'; // TODO: DicomMetadataStore should be injected? -import { DicomMetadataStore, ServicesManager, utils, Types, log } from '@ohif/core'; +import { DicomMetadataStore, ServicesManager, utils, log, Enums } from '@ohif/core'; import { DragAndDropProvider, ImageViewerProvider } from '@ohif/ui'; import { useSearchParams } from '@hooks'; import { useAppConfig } from '@state'; @@ -14,7 +14,6 @@ import loadModules from '../../pluginImports'; import isSeriesFilterUsed from '../../utils/isSeriesFilterUsed'; const { getSplitParam, sortingCriteria } = utils; -const { TimingEnum } = Types; /** * Initialize the route. @@ -84,8 +83,8 @@ function defaultRouteInit( unsubscriptions.push(instanceAddedUnsubscribe); - log.time(TimingEnum.STUDY_TO_DISPLAY_SETS); - log.time(TimingEnum.STUDY_TO_FIRST_IMAGE); + log.time(Enums.TimingEnum.STUDY_TO_DISPLAY_SETS); + log.time(Enums.TimingEnum.STUDY_TO_FIRST_IMAGE); const allRetrieves = studyInstanceUIDs.map(StudyInstanceUID => dataSource.retrieve.series.metadata({ @@ -106,9 +105,9 @@ function defaultRouteInit( }); Promise.allSettled(allRetrieves).then(promises => { - log.timeEnd(TimingEnum.STUDY_TO_DISPLAY_SETS); - log.time(TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE); - log.time(TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES); + log.timeEnd(Enums.TimingEnum.STUDY_TO_DISPLAY_SETS); + log.time(Enums.TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE); + log.time(Enums.TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES); const allPromises = []; const remainingPromises = []; diff --git a/platform/core/package.json b/platform/core/package.json index 17e531bd927..df2dff45fe2 100644 --- a/platform/core/package.json +++ b/platform/core/package.json @@ -37,7 +37,7 @@ "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjph": "^2.4.2", - "@cornerstonejs/dicom-image-loader": "^1.44.1", + "@cornerstonejs/dicom-image-loader": "^1.63.4", "@ohif/ui": "3.8.0-beta.55", "cornerstone-math": "0.1.9", "dicom-parser": "^1.8.21" diff --git a/platform/core/src/types/TimingEnum.ts b/platform/core/src/enums/TimingEnum.ts similarity index 100% rename from platform/core/src/types/TimingEnum.ts rename to platform/core/src/enums/TimingEnum.ts diff --git a/platform/core/src/enums/index.ts b/platform/core/src/enums/index.ts new file mode 100644 index 00000000000..8daa802dcba --- /dev/null +++ b/platform/core/src/enums/index.ts @@ -0,0 +1,3 @@ +import { TimingEnum } from './TimingEnum'; + +export { TimingEnum }; diff --git a/platform/core/src/index.test.js b/platform/core/src/index.test.js index 85ee6817645..7c000ae5926 100644 --- a/platform/core/src/index.test.js +++ b/platform/core/src/index.test.js @@ -25,6 +25,7 @@ describe('Top level exports', () => { // 'CineService', 'CustomizationService', + 'Enums', 'StateSyncService', 'UIDialogService', 'UIModalService', diff --git a/platform/core/src/index.ts b/platform/core/src/index.ts index 67836da4d3c..ddea2c457f1 100644 --- a/platform/core/src/index.ts +++ b/platform/core/src/index.ts @@ -11,6 +11,7 @@ import user from './user.js'; import utils from './utils'; import defaults from './defaults'; import * as Types from './types'; +import * as Enums from './enums'; import { CineService, @@ -120,6 +121,7 @@ export { DicomMetadataStore, pubSubServiceInterface, PubSubService, + Enums, Types, PanelService, }; diff --git a/platform/core/src/types/index.ts b/platform/core/src/types/index.ts index d41dd6b435d..15c428e3db3 100644 --- a/platform/core/src/types/index.ts +++ b/platform/core/src/types/index.ts @@ -20,9 +20,6 @@ export type * from './PanelModule'; export type * from './IPubSub'; export type * from './Color'; -// Enum exports -export * from './TimingEnum'; - /** * Export the types used within the various services and managers, but * not the services/managers themselves, which are exported at the top level. diff --git a/platform/ui/src/views/StudyList/components/Header.js b/platform/ui/src/views/StudyList/components/Header.js index a13ebf71518..1b66822c6a1 100644 --- a/platform/ui/src/views/StudyList/components/Header.js +++ b/platform/ui/src/views/StudyList/components/Header.js @@ -4,7 +4,7 @@ import { withTranslation } from 'react-i18next'; import { IconButton, Icon, NavBar } from '../../../components'; -import OHIFLogo from './OHIFLogo.js'; +import OHIFLogo from './OHIFLogo'; function Header({ appLogo = OHIFLogo(), children, t }) { const showSettingsDropdown = () => { diff --git a/yarn.lock b/yarn.lock index 804c21d2b24..7c0f8ea99e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1485,10 +1485,10 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@cornerstonejs/adapters@^1.44.1": - version "1.47.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.47.1.tgz#16a3196a16af3b2fb2d5bf4d2eeda165962e8c78" - integrity sha512-4/jyrlV2QwXSnyBfeFPWQHao+UuiloTJuVoZ6Sam1E6/gw4LnMdfi8UtugYxNjwZysPEGkc8BAdfDMux0xMrwA== +"@cornerstonejs/adapters@^1.63.4": + version "1.63.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-1.63.4.tgz#c43fcbb5217d09a4aaa3ecdbd5feb58d1283f486" + integrity sha512-HC1OGFEbveAd+Bs7UHDVBSK1XL187EsJqXkuDe5A1tlCUKoA2MCW/lX1sraW/0Z6Gm9GVzGnkVtRMBxYd96ENg== dependencies: "@babel/runtime-corejs2" "^7.17.8" buffer "^6.0.3" @@ -1537,45 +1537,47 @@ resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== -"@cornerstonejs/core@^1.44.1", "@cornerstonejs/core@^1.47.1": - version "1.47.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.47.1.tgz#fc6b9fafde6862c7e87ca528d2e9b83886a82a0c" - integrity sha512-VR4B9jSPCU9zbcM2zAq2re+YYgu+onvKGVK7wgIdqpQ3W7CjEmaHzWqVb19ZjezeSNO5cbP6o14tlUhoog0acQ== +"@cornerstonejs/core@^1.63.4": + version "1.63.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-1.63.4.tgz#0d324e0df130854d0f6c24137b8e60053e0af3b4" + integrity sha512-l/7u1THn2pYq97QMBm8uy/kQWUEIlbq7rzdP6u1lSs8yDqK/f6zSQjNrvB/D6vRiVKnHVIlByxbbmEY46JQHmQ== dependencies: - "@kitware/vtk.js" "29.3.0" + "@kitware/vtk.js" "29.7.0" comlink "^4.4.1" detect-gpu "^5.0.22" gl-matrix "^3.4.3" lodash.clonedeep "4.5.0" -"@cornerstonejs/dicom-image-loader@^1.44.1": - version "1.47.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.47.1.tgz#a1a4ab2d598eba239c239b7fd1fa6c797014ff8d" - integrity sha512-6ebof2OZFHMWBgbbGahVMbSYN3iqDAivn9nY6FnxrDgXUl4HgKmWq9+gM/Fo8NCe6CwABWqExWO393G5Yb5I2Q== +"@cornerstonejs/dicom-image-loader@^1.63.4": + version "1.63.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-1.63.4.tgz#6827cb9d3d840dcd6a798e884a169adcc6bba311" + integrity sha512-agnRjhIBFiYQ6gQTjHmio+DG79OTaNXU3NbEVVxWdahqR1MnJBX39FT+1mi+8AhbN9sH2f+IpB4MoqraNFetLw== dependencies: "@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-openjpeg" "^1.2.2" "@cornerstonejs/codec-openjph" "^2.4.5" - "@cornerstonejs/core" "^1.47.1" + "@cornerstonejs/core" "^1.63.4" dicom-parser "^1.8.9" pako "^2.0.4" uuid "^9.0.0" -"@cornerstonejs/streaming-image-volume-loader@^1.44.1": - version "1.47.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.47.1.tgz#4a5a5d81aab900dcd212c315ddc1eb61e5e94ef1" - integrity sha512-FzZ+Wtfc+X26p0fzguyAMkAfoZa8SfslC5wmPt5+vxHf+IGgRPSkPJ/vVMAxI7L6qC0mEOt4XcCmszX9wWS1mg== +"@cornerstonejs/streaming-image-volume-loader@^1.63.4": + version "1.63.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/streaming-image-volume-loader/-/streaming-image-volume-loader-1.63.4.tgz#37ba9de488d5472c3dd98f85698a854c97b4b29f" + integrity sha512-GoxxmQVeHVZntFFwVwOp/fttgTrzXBwH08gk6JDjhHhmh22Ci7P137hG8o54uA6dv0/W572em60SrIzvjB4Xwg== dependencies: - "@cornerstonejs/core" "^1.47.1" + "@cornerstonejs/core" "^1.63.4" comlink "^4.4.1" -"@cornerstonejs/tools@^1.44.1": - version "1.47.1" - resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.47.1.tgz#40085a824584de3970d4aa106b30a5a6ae6504ec" - integrity sha512-yPdkEp570S4B1ldP7mtyacT9Eu5Hh2CR/ZCbBMVMQmlnsi9SFKVYKFpOSxUQd1u+MK2AKcpzrr7BbH9OOR4lCg== +"@cornerstonejs/tools@^1.63.4": + version "1.63.4" + resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-1.63.4.tgz#4f85cf77bda97738ff05ef9184cf68e617f1631c" + integrity sha512-LDoqShwi0b6kEGqnfY3pUrK4nExS9lqhXFvWew6wH9znUyEIVhGexBXNYDb3E2Gy13d4drtjsM+PXFt7c0PecQ== dependencies: - "@cornerstonejs/core" "^1.47.1" + "@cornerstonejs/core" "^1.63.4" + "@icr/polyseg-wasm" "0.4.0" + "@types/offscreencanvas" "2019.7.3" comlink "^4.4.1" lodash.clonedeep "4.5.0" lodash.get "^4.4.2" @@ -2550,6 +2552,11 @@ resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8" integrity sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw== +"@icr/polyseg-wasm@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@icr/polyseg-wasm/-/polyseg-wasm-0.4.0.tgz#755e23d07c3d8d8fca1113278c803c1ef0185da0" + integrity sha512-3sZmiwG8I0NaqPle0L7+V/ZexiR7IjIUFkUsaOoFI9rNuBGyyMMmxAxnCmqcDFtBDk9h+JEYJf6e3NnqlHi/HQ== + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -2824,32 +2831,10 @@ resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@kitware/vtk.js@29.3.0": - version "29.3.0" - resolved "https://registry.yarnpkg.com/@kitware/vtk.js/-/vtk.js-29.3.0.tgz#8601e07cde3da61c285aabfcb3484ae1ffb1074b" - integrity sha512-EofIxo6Qcfhh8SRx8Xp7B8HGM//2tzjQbhrMQsiaoPgs3yhtrqm+CBFmqboxt+waF8qUKxuUQb+DzM8cX2ivAg== - dependencies: - "@babel/runtime" "7.22.11" - "@types/webxr" "^0.5.5" - commander "9.2.0" - d3-scale "4.0.2" - fast-deep-equal "^3.1.3" - fflate "0.7.3" - gl-matrix "3.4.3" - globalthis "1.0.3" - seedrandom "3.0.5" - shader-loader "1.3.1" - shelljs "0.8.5" - spark-md5 "3.0.2" - stream-browserify "3.0.0" - webworker-promise "0.5.0" - worker-loader "3.0.8" - xmlbuilder2 "3.0.2" - -"@kitware/vtk.js@29.3.01": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@kitware/vtk.js/-/vtk.js-29.3.1.tgz#007df75c1f4744b4779087b9306a667c6acdc3c8" - integrity sha512-TM3uBVwJWdMIU+VD+OnSxQU45lJiJiOxxkx56Du6K4d18u5fHi7nBkSlNhTtOCX5H8amwIofaPCKRnYRNkjosA== +"@kitware/vtk.js@29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@kitware/vtk.js/-/vtk.js-29.7.0.tgz#56c352a755dd61bf34664866441ef9143e55a24d" + integrity sha512-z6XcoB+uUKayOsfLFR6GJW59bUyDe8JLkw3AMWKHbdLQmWvGosl32Zq18TYwCWAH/epIjZBoLBV+8o2GjgCb0w== dependencies: "@babel/runtime" "7.22.11" "@types/webxr" "^0.5.5" @@ -5272,6 +5257,11 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== +"@types/offscreencanvas@2019.7.3": + version "2019.7.3" + resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz#90267db13f64d6e9ccb5ae3eac92786a7c77a516" + integrity sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A== + "@types/parse-json@^4.0.0": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" @@ -12078,9 +12068,9 @@ ip-address@^9.0.5: sprintf-js "^1.1.3" ip@^1.1.0: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== + version "1.1.9" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.9.tgz#8dfbcc99a754d07f425310b86a99546b1151e396" + integrity sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ== ip@^2.0.0: version "2.0.0" @@ -21192,6 +21182,36 @@ webpack@5, webpack@^5.50.0, webpack@^5.73.0, webpack@^5.81.0: watchpack "^2.4.0" webpack-sources "^3.2.3" +webpack@^5.90.3: + version "5.90.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.90.3.tgz#37b8f74d3ded061ba789bb22b31e82eed75bd9ac" + integrity sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.11.5" + "@webassemblyjs/wasm-edit" "^1.11.5" + "@webassemblyjs/wasm-parser" "^1.11.5" + acorn "^8.7.1" + acorn-import-assertions "^1.9.0" + browserslist "^4.21.10" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.15.0" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.2.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.0" + webpack-sources "^3.2.3" + webpackbar@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-5.0.2.tgz#d3dd466211c73852741dfc842b7556dcbc2b0570"