diff --git a/babel.config.js b/babel.config.js index 10775e010b3..9fbd804637a 100644 --- a/babel.config.js +++ b/babel.config.js @@ -29,7 +29,28 @@ module.exports = { '@babel/plugin-transform-class-static-block', ], env: { - + test: { + presets: [ + [ + // TODO: https://babeljs.io/blog/2019/03/19/7.4.0#migration-from-core-js-2 + '@babel/preset-env', + { + modules: 'commonjs', + debug: false, + }, + ], + '@babel/preset-react', + '@babel/preset-typescript', + ], + plugins: [ + '@babel/plugin-proposal-object-rest-spread', + '@babel/plugin-syntax-dynamic-import', + '@babel/plugin-transform-regenerator', + '@babel/transform-destructuring', + '@babel/plugin-transform-runtime', + '@babel/plugin-transform-typescript', + ], + }, production: { presets: [ // WebPack handles ES6 --> Target Syntax diff --git a/extensions/cornerstone/src/utils/initViewTiming.ts b/extensions/cornerstone/src/utils/initViewTiming.ts index bc13cef6952..a9d1544c48d 100644 --- a/extensions/cornerstone/src/utils/initViewTiming.ts +++ b/extensions/cornerstone/src/utils/initViewTiming.ts @@ -40,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/package.json b/package.json index 7092f58511d..81b792ec681 100644 --- a/package.json +++ b/package.json @@ -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/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/Mode/Mode.tsx b/platform/app/src/routes/Mode/Mode.tsx index 6faf3c76ae8..ecbe7677a24 100644 --- a/platform/app/src/routes/Mode/Mode.tsx +++ b/platform/app/src/routes/Mode/Mode.tsx @@ -14,7 +14,6 @@ import loadModules from '../../pluginImports'; import isSeriesFilterUsed from '../../utils/isSeriesFilterUsed'; const { getSplitParam, sortingCriteria } = utils; -const { TimingEnum } = Enums; /** * 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/yarn.lock b/yarn.lock index 14d6c1a6106..7c0f8ea99e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12068,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" @@ -21182,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"