@ohif/app 3.13.0-beta.59 → 3.13.0-beta.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/{1933.bundle.448c6e97834ccd69074b.js → 1933.bundle.0055c536e1392867e57c.js} +3 -3
  2. package/dist/{9195.bundle.05baee0d667832b5a679.js → 2851.bundle.c5202066974b96955c28.js} +134 -17
  3. package/dist/{3138.bundle.0211e0caf715d7faa924.js → 3138.bundle.5ed994e6e0ff7c720a75.js} +2 -2
  4. package/dist/{4688.bundle.c817780f93ca0fa7ff08.js → 4688.bundle.e23f20a556dca69540fd.js} +2 -2
  5. package/dist/{4819.bundle.a0f639384f0bb2ec7a4a.js → 4819.bundle.fb82fcc8360f4883691e.js} +2 -2
  6. package/dist/{5802.bundle.addd0259c8f9d0a18244.js → 5802.bundle.41cf74cda9aad21601e8.js} +2 -2
  7. package/dist/{8305.bundle.561034b71c762fdbee81.js → 8305.bundle.21d4c7deff19f6ce9a6a.js} +2 -2
  8. package/dist/{8558.bundle.eeadfbd16886a60eef8e.js → 8558.bundle.5c64a061bf4d5d5f6d7a.js} +1 -1
  9. package/dist/{8583.bundle.8ea4b9115aa7d731c33a.js → 8583.bundle.a0ccedd0799600ad5fad.js} +2 -2
  10. package/dist/app-config.js +12 -0
  11. package/dist/{app.bundle.5e9bd3853479e9f2178c.js → app.bundle.348a74b1a7aeb7c8d0a8.js} +13 -13
  12. package/dist/index.html +1 -1
  13. package/dist/sw.js +1 -1
  14. package/package.json +20 -20
  15. /package/dist/{1459.bundle.1a52c0d128f1431e5321.js → 1459.bundle.ed7323f44e4ff4ecd69a.js} +0 -0
  16. /package/dist/{2018.bundle.1e91bc504ffad3cf59f9.js → 2018.bundle.ab8f9ceeae0e18eb303b.js} +0 -0
  17. /package/dist/{213.bundle.cc3e760f2dd0635e1f2e.js → 213.bundle.18a8b5a1e2f00de7feaf.js} +0 -0
  18. /package/dist/{2424.bundle.80d265b694f36a8d6c3f.js → 2424.bundle.5e858661a06aa36dd859.js} +0 -0
  19. /package/dist/{3461.bundle.dfa7fd8cda25ebc6665b.js → 3461.bundle.54f8d64ed1965c14ec4c.js} +0 -0
  20. /package/dist/{4507.bundle.c8ee19fc9689aa362207.js → 4507.bundle.18379f328211aee3aba5.js} +0 -0
  21. /package/dist/{5015.bundle.4cd219119d2966d886ed.js → 5015.bundle.dda760490cf19777b6b3.js} +0 -0
  22. /package/dist/{5028.bundle.4f15333fd752c46570d8.js → 5028.bundle.494b6ca9e0f5567c26e2.js} +0 -0
  23. /package/dist/{5457.bundle.789af50b3e9318017153.js → 5457.bundle.328f29b05df8d287491b.js} +0 -0
  24. /package/dist/{5485.bundle.e6a16033567e73803b7c.js → 5485.bundle.53614f38e6ee0e052bdc.js} +0 -0
  25. /package/dist/{6027.bundle.87a14d8c064618560228.js → 6027.bundle.1bfe806a0cb494dfc265.js} +0 -0
  26. /package/dist/{7639.bundle.e94c967acf71d94199a1.js → 7639.bundle.2ec2272d8eb08df56b66.js} +0 -0
  27. /package/dist/{8499.bundle.7249b7db2e23884c689b.js → 8499.bundle.dbeca38ee1d1471ce4d8.js} +0 -0
  28. /package/dist/{85.bundle.0541ddda5fc48ccd5b94.js → 85.bundle.e426258a9ad5bcf9bb3e.js} +0 -0
  29. /package/dist/{9927.bundle.7206fcedcf759a5c9b5e.js → 9927.bundle.3bdd61e78a710e09cc0b.js} +0 -0
@@ -20,8 +20,8 @@ const id = package_namespaceObject.UU;
20
20
  var react = __webpack_require__(86326);
21
21
  // EXTERNAL MODULE: ../../ui-next/src/index.ts + 3084 modules
22
22
  var src = __webpack_require__(15953);
23
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 139 modules
24
- var default_src = __webpack_require__(39195);
23
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 140 modules
24
+ var default_src = __webpack_require__(62851);
25
25
  // EXTERNAL MODULE: ../../core/src/index.ts + 69 modules
26
26
  var core_src = __webpack_require__(42356);
27
27
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
@@ -2772,7 +2772,7 @@ const extension = {
2772
2772
  /* harmony export */ A: () => (/* binding */ getDicomWebClient)
2773
2773
  /* harmony export */ });
2774
2774
  /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42356);
2775
- /* harmony import */ var _ohif_extension_default__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39195);
2775
+ /* harmony import */ var _ohif_extension_default__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62851);
2776
2776
 
2777
2777
 
2778
2778
 
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[9195],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[2851],{
3
3
 
4
4
  /***/ 52675
5
5
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
@@ -745,7 +745,7 @@ function Toolbar({
745
745
 
746
746
  /***/ },
747
747
 
748
- /***/ 39195
748
+ /***/ 62851
749
749
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
750
750
 
751
751
 
@@ -2710,12 +2710,96 @@ function retrieveBulkData(value, options = {}) {
2710
2710
 
2711
2711
  // EXTERNAL MODULE: ../../../node_modules/query-string/index.js
2712
2712
  var query_string = __webpack_require__(98985);
2713
+ ;// ../../../extensions/default/src/utils/secureConfigFetch.js
2714
+ // @ts-nocheck
2715
+
2716
+ function normalizeAllowedOrigins(allowedOrigins = []) {
2717
+ if (!Array.isArray(allowedOrigins)) {
2718
+ return [];
2719
+ }
2720
+ const configuredOrigins = allowedOrigins.filter(origin => typeof origin === 'string').map(origin => origin.trim()).filter(Boolean);
2721
+ return configuredOrigins.map(origin => {
2722
+ try {
2723
+ const parsedOrigin = new URL(origin);
2724
+ if (!['http:', 'https:'].includes(parsedOrigin.protocol)) {
2725
+ console.error(`[secureConfigFetch] Ignoring misconfigured allowed origin "${origin}". ` + 'Entries must use http:// or https://.');
2726
+ return null;
2727
+ }
2728
+ if (parsedOrigin.username || parsedOrigin.password || parsedOrigin.pathname !== '/' || parsedOrigin.search || parsedOrigin.hash) {
2729
+ console.error(`[secureConfigFetch] Ignoring misconfigured allowed origin "${origin}". ` + 'Entries must be bare origins only (scheme + host + optional port), with no username/password, path, query, or hash.');
2730
+ return null;
2731
+ }
2732
+ return parsedOrigin.origin;
2733
+ } catch {
2734
+ console.error(`[secureConfigFetch] Ignoring misconfigured allowed origin "${origin}". Entry is not a valid URL.`);
2735
+ return null;
2736
+ }
2737
+ }).filter(Boolean);
2738
+ }
2739
+ function resolveConfigUrl(rawUrl) {
2740
+ if (!rawUrl || typeof rawUrl !== 'string') {
2741
+ throw new Error('Missing required "url" query parameter');
2742
+ }
2743
+ try {
2744
+ return new URL(rawUrl, window.location.href);
2745
+ } catch {
2746
+ throw new Error('Invalid URL in "url" query parameter');
2747
+ }
2748
+ }
2749
+ function resolveConfigFetchPolicy(rawUrl, policy = {}) {
2750
+ const {
2751
+ allowedOrigins = [],
2752
+ userAuthenticationService
2753
+ } = policy;
2754
+ const parsedUrl = resolveConfigUrl(rawUrl);
2755
+ const protocol = parsedUrl.protocol.toLowerCase();
2756
+ if (!['http:', 'https:'].includes(protocol)) {
2757
+ throw new Error('Only HTTP(S) URLs are allowed for dynamic datasource configuration');
2758
+ }
2759
+ if (parsedUrl.hash) {
2760
+ throw new Error('URL fragments are not allowed for dynamic datasource configuration');
2761
+ }
2762
+ if (parsedUrl.username || parsedUrl.password) {
2763
+ throw new Error('URL userinfo is not allowed for dynamic datasource configuration');
2764
+ }
2765
+ const isAuthenticated = Boolean(userAuthenticationService?.getAuthorizationHeader?.()?.Authorization);
2766
+ if (isAuthenticated) {
2767
+ const normalizedAllowedOrigins = normalizeAllowedOrigins(allowedOrigins);
2768
+ if (!normalizedAllowedOrigins.length || !normalizedAllowedOrigins.includes(parsedUrl.origin)) {
2769
+ throw new Error(`Blocked remote configuration origin "${parsedUrl.origin}" in authenticated environment`);
2770
+ }
2771
+ }
2772
+ return {
2773
+ parsedUrl,
2774
+ normalizedUrl: parsedUrl.toString(),
2775
+ isAuthenticated
2776
+ };
2777
+ }
2778
+ async function fetchConfigJson(normalizedPolicy) {
2779
+ const {
2780
+ normalizedUrl,
2781
+ isAuthenticated
2782
+ } = normalizedPolicy;
2783
+ const response = isAuthenticated ? await fetch(normalizedUrl) : await fetch(normalizedUrl, {
2784
+ method: 'GET',
2785
+ mode: 'cors',
2786
+ credentials: 'omit',
2787
+ redirect: 'error',
2788
+ referrerPolicy: 'no-referrer'
2789
+ });
2790
+ if (!response.ok) {
2791
+ throw new Error(`Failed to fetch dynamic datasource configuration (${response.status})`);
2792
+ }
2793
+ return response.json();
2794
+ }
2795
+
2713
2796
  ;// ../../../extensions/default/src/DicomJSONDataSource/index.js
2714
2797
 
2715
2798
 
2716
2799
 
2717
2800
 
2718
2801
 
2802
+
2719
2803
  const DicomJSONDataSource_metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
2720
2804
  const mappings = {
2721
2805
  studyInstanceUid: 'StudyInstanceUID',
@@ -2762,7 +2846,10 @@ const findStudies = (key, value) => {
2762
2846
  });
2763
2847
  return studies;
2764
2848
  };
2765
- function createDicomJSONApi(dicomJsonConfig) {
2849
+ function createDicomJSONApi(dicomJsonConfig, servicesManager) {
2850
+ const {
2851
+ userAuthenticationService
2852
+ } = servicesManager.services;
2766
2853
  const implementation = {
2767
2854
  initialize: async ({
2768
2855
  query,
@@ -2771,7 +2858,11 @@ function createDicomJSONApi(dicomJsonConfig) {
2771
2858
  if (!url) {
2772
2859
  url = query.get('url');
2773
2860
  }
2774
- let metaData = getMetaDataByURL(url);
2861
+ const evaluatedUrl = resolveConfigFetchPolicy(url, {
2862
+ allowedOrigins: dicomJsonConfig.dangerouslyAllowedOriginsForAuthenticatedEnvironments,
2863
+ userAuthenticationService
2864
+ });
2865
+ let metaData = getMetaDataByURL(evaluatedUrl.normalizedUrl);
2775
2866
 
2776
2867
  // if we have already cached the data from this specific url
2777
2868
  // We are only handling one StudyInstanceUID to run; however,
@@ -2781,8 +2872,7 @@ function createDicomJSONApi(dicomJsonConfig) {
2781
2872
  return aStudy.StudyInstanceUID;
2782
2873
  });
2783
2874
  }
2784
- const response = await fetch(url);
2785
- const data = await response.json();
2875
+ const data = await fetchConfigJson(evaluatedUrl);
2786
2876
  let StudyInstanceUID;
2787
2877
  let SeriesInstanceUID;
2788
2878
  data.studies.forEach(study => {
@@ -2812,10 +2902,10 @@ function createDicomJSONApi(dicomJsonConfig) {
2812
2902
  });
2813
2903
  });
2814
2904
  _store.urls.push({
2815
- url,
2905
+ url: evaluatedUrl.normalizedUrl,
2816
2906
  studies: [...data.studies]
2817
2907
  });
2818
- _store.studyInstanceUIDMap.set(url, data.studies.map(study => study.StudyInstanceUID));
2908
+ _store.studyInstanceUIDMap.set(evaluatedUrl.normalizedUrl, data.studies.map(study => study.StudyInstanceUID));
2819
2909
  },
2820
2910
  query: {
2821
2911
  studies: {
@@ -2950,6 +3040,8 @@ function createDicomJSONApi(dicomJsonConfig) {
2950
3040
  console.warn(' DICOMJson store dicom not implemented');
2951
3041
  }
2952
3042
  },
3043
+ reject: {},
3044
+ deleteStudyMetadataPromise: () => {},
2953
3045
  getImageIdsForDisplaySet(displaySet) {
2954
3046
  const images = displaySet.images;
2955
3047
  const imageIds = [];
@@ -3008,8 +3100,20 @@ function createDicomJSONApi(dicomJsonConfig) {
3008
3100
  query
3009
3101
  }) => {
3010
3102
  const url = query.get('url');
3011
- return _store.studyInstanceUIDMap.get(url);
3012
- }
3103
+ if (!url) {
3104
+ return;
3105
+ }
3106
+ try {
3107
+ const evaluatedUrl = resolveConfigFetchPolicy(url, {
3108
+ allowedOrigins: dicomJsonConfig.dangerouslyAllowedOriginsForAuthenticatedEnvironments,
3109
+ userAuthenticationService
3110
+ });
3111
+ return _store.studyInstanceUIDMap.get(evaluatedUrl.normalizedUrl);
3112
+ } catch {
3113
+ return;
3114
+ }
3115
+ },
3116
+ getConfig: () => dicomJsonConfig
3013
3117
  };
3014
3118
  return src/* IWebApiDataSource */.pt.create(implementation);
3015
3119
  }
@@ -3278,6 +3382,7 @@ function createDicomLocalApi(dicomLocalConfig) {
3278
3382
 
3279
3383
 
3280
3384
 
3385
+
3281
3386
  /**
3282
3387
  * This datasource is initialized with a url that returns a JSON object with a
3283
3388
  * dicomWeb datasource configuration array present in a "servers" object.
@@ -3290,6 +3395,9 @@ function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager) {
3290
3395
  const {
3291
3396
  name
3292
3397
  } = dicomWebProxyConfig;
3398
+ const {
3399
+ userAuthenticationService
3400
+ } = servicesManager.services;
3293
3401
  let dicomWebDelegate = undefined;
3294
3402
  const implementation = {
3295
3403
  initialize: async ({
@@ -3300,8 +3408,11 @@ function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager) {
3300
3408
  if (!url) {
3301
3409
  throw new Error(`No url for '${name}'`);
3302
3410
  } else {
3303
- const response = await fetch(url);
3304
- const data = await response.json();
3411
+ const evaluatedUrl = resolveConfigFetchPolicy(url, {
3412
+ allowedOrigins: dicomWebProxyConfig.dangerouslyAllowedOriginsForAuthenticatedEnvironments,
3413
+ userAuthenticationService
3414
+ });
3415
+ const data = await fetchConfigJson(evaluatedUrl);
3305
3416
  if (!data.servers?.dicomWeb?.[0]) {
3306
3417
  throw new Error('Invalid configuration returned by url');
3307
3418
  }
@@ -3332,9 +3443,15 @@ function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager) {
3332
3443
  store: {
3333
3444
  dicom: (...args) => dicomWebDelegate.store.dicom(...args)
3334
3445
  },
3335
- deleteStudyMetadataPromise: (...args) => dicomWebDelegate.deleteStudyMetadataPromise(...args),
3336
- getImageIdsForDisplaySet: (...args) => dicomWebDelegate.getImageIdsForDisplaySet(...args),
3337
- getImageIdsForInstance: (...args) => dicomWebDelegate.getImageIdsForInstance(...args),
3446
+ reject: {
3447
+ series: (...args) => dicomWebDelegate?.reject?.series?.(...args)
3448
+ },
3449
+ deleteStudyMetadataPromise: (...args) => dicomWebDelegate?.deleteStudyMetadataPromise?.(...args),
3450
+ getImageIdsForDisplaySet: (...args) => dicomWebDelegate?.getImageIdsForDisplaySet?.(...args),
3451
+ getImageIdsForInstance: (...args) => dicomWebDelegate?.getImageIdsForInstance?.(...args),
3452
+ getConfig: (...args) => dicomWebDelegate?.getConfig?.(...args) ?? {
3453
+ dicomUploadEnabled: false
3454
+ },
3338
3455
  getStudyInstanceUIDs({
3339
3456
  params,
3340
3457
  query
@@ -10487,8 +10604,8 @@ function AboutModalDefault() {
10487
10604
  name
10488
10605
  } = (0,browser_detect_es5/* default */.A)();
10489
10606
  const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`;
10490
- const versionNumber = "3.13.0-beta.59";
10491
- const commitHash = "792f78e35f9941e12aec60466da5f0670cae83ce";
10607
+ const versionNumber = "3.13.0-beta.60";
10608
+ const commitHash = "eede569a88ed6a3177bbdea8552dfb93ca13cac5";
10492
10609
  const [main, beta] = versionNumber.split('-');
10493
10610
  return /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU, {
10494
10611
  className: "w-[400px]"
@@ -1119,8 +1119,8 @@ function WorkflowPanel({
1119
1119
 
1120
1120
 
1121
1121
 
1122
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 139 modules
1123
- var default_src = __webpack_require__(39195);
1122
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 140 modules
1123
+ var default_src = __webpack_require__(62851);
1124
1124
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 194 modules
1125
1125
  var cornerstone_src = __webpack_require__(24688);
1126
1126
  ;// ../../../extensions/cornerstone-dynamic-volume/src/panels/DynamicExport.tsx
@@ -1748,8 +1748,8 @@ function destroy() {
1748
1748
  var ai_dist_esm = __webpack_require__(75165);
1749
1749
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/polymorphic-segmentation/dist/esm/index.js + 14 modules
1750
1750
  var polymorphic_segmentation_dist_esm = __webpack_require__(56983);
1751
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 139 modules
1752
- var default_src = __webpack_require__(39195);
1751
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 140 modules
1752
+ var default_src = __webpack_require__(62851);
1753
1753
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
1754
1754
  var state = __webpack_require__(71353);
1755
1755
  ;// ../../../extensions/cornerstone/src/utils/getViewportEnabledElement.ts
@@ -1246,8 +1246,8 @@ function getImageSrcFromImageId(cornerstone, imageId) {
1246
1246
  });
1247
1247
  }
1248
1248
  /* harmony default export */ const PanelStudyBrowserTracking_getImageSrcFromImageId = (getImageSrcFromImageId);
1249
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 139 modules
1250
- var default_src = __webpack_require__(39195);
1249
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 140 modules
1250
+ var default_src = __webpack_require__(62851);
1251
1251
  ;// ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/index.tsx
1252
1252
 
1253
1253
  //
@@ -14,8 +14,8 @@ __webpack_require__.d(__webpack_exports__, {
14
14
 
15
15
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
16
16
  var react = __webpack_require__(86326);
17
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 139 modules
18
- var src = __webpack_require__(39195);
17
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 140 modules
18
+ var src = __webpack_require__(62851);
19
19
  ;// ../../../extensions/dicom-microscopy/src/DicomMicroscopyViewport.css
20
20
  // extracted by mini-css-extract-plugin
21
21
 
@@ -356,8 +356,8 @@ function getHangingProtocolModule() {
356
356
  }
357
357
  /* harmony default export */ const src_getHangingProtocolModule = (getHangingProtocolModule);
358
358
 
359
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 139 modules
360
- var default_src = __webpack_require__(39195);
359
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 140 modules
360
+ var default_src = __webpack_require__(62851);
361
361
  // EXTERNAL MODULE: ../../../extensions/default/src/utils/_shared/PROMPT_RESPONSES.ts
362
362
  var PROMPT_RESPONSES = __webpack_require__(96357);
363
363
  ;// ../../../extensions/cornerstone-dicom-seg/src/commandsModule.ts
@@ -644,7 +644,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
644
644
 
645
645
 
646
646
  const Component = /*#__PURE__*/react.lazy(() => {
647
- return Promise.all(/* import() */[__webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(1608)]).then(__webpack_require__.bind(__webpack_require__, 88414));
647
+ return Promise.all(/* import() */[__webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(1608)]).then(__webpack_require__.bind(__webpack_require__, 88414));
648
648
  });
649
649
  const OHIFCornerstoneRTViewport = props => {
650
650
  return /*#__PURE__*/react.createElement(react.Suspense, {
@@ -1093,8 +1093,8 @@ function PanelRoiThresholdSegmentation() {
1093
1093
 
1094
1094
 
1095
1095
 
1096
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 139 modules
1097
- var default_src = __webpack_require__(39195);
1096
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 140 modules
1097
+ var default_src = __webpack_require__(62851);
1098
1098
  ;// ../../../extensions/tmtv/src/Panels/PanelTMTV.tsx
1099
1099
 
1100
1100
 
@@ -251,6 +251,12 @@ window.config = {
251
251
  configuration: {
252
252
  friendlyName: 'dicomweb delegating proxy',
253
253
  name: 'dicomwebproxy',
254
+ // Security controls for runtime ?url=... datasource loading:
255
+ // In authenticated environments, runtime ?url origins must be allowlisted:
256
+ // dangerouslyAllowedOriginsForAuthenticatedEnvironments: [
257
+ // 'https://config.example.com',
258
+ // 'http://localhost:5000',
259
+ // ],
254
260
  },
255
261
  },
256
262
  {
@@ -259,6 +265,12 @@ window.config = {
259
265
  configuration: {
260
266
  friendlyName: 'dicom json',
261
267
  name: 'json',
268
+ // Security controls for runtime ?url=... datasource loading:
269
+ // In authenticated environments, runtime ?url origins must be allowlisted:
270
+ // dangerouslyAllowedOriginsForAuthenticatedEnvironments: [
271
+ // 'https://config.example.com',
272
+ // 'http://localhost:5000',
273
+ // ],
262
274
  },
263
275
  },
264
276
  {
@@ -80772,7 +80772,7 @@ const detectionOptions = {
80772
80772
  }
80773
80773
  });
80774
80774
  ;// ../../i18n/package.json
80775
- const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.13.0-beta.58"}');
80775
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.13.0-beta.59"}');
80776
80776
  ;// ../../i18n/src/utils.js
80777
80777
  const languagesMap = {
80778
80778
  ar: 'Arabic',
@@ -242304,35 +242304,35 @@ modes.push("@ohif/mode-ultrasound-pleura-bline");
242304
242304
  async function loadModule(module) {
242305
242305
  if (typeof module !== 'string') return module;
242306
242306
  if (module === "@ohif/extension-default") {
242307
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(9195), __webpack_require__.e(2591)]).then(__webpack_require__.bind(__webpack_require__, 39195));
242307
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(2851), __webpack_require__.e(2591)]).then(__webpack_require__.bind(__webpack_require__, 62851));
242308
242308
  return imported.default;
242309
242309
  }
242310
242310
  if (module === "@ohif/extension-cornerstone") {
242311
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(4972)]).then(__webpack_require__.bind(__webpack_require__, 24688));
242311
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(4972)]).then(__webpack_require__.bind(__webpack_require__, 24688));
242312
242312
  return imported.default;
242313
242313
  }
242314
242314
  if (module === "@ohif/extension-measurement-tracking") {
242315
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(5261), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(3461), __webpack_require__.e(4819)]).then(__webpack_require__.bind(__webpack_require__, 8877));
242315
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(5261), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(3461), __webpack_require__.e(4819)]).then(__webpack_require__.bind(__webpack_require__, 8877));
242316
242316
  return imported.default;
242317
242317
  }
242318
242318
  if (module === "@ohif/extension-cornerstone-dicom-sr") {
242319
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(3461), __webpack_require__.e(7829)]).then(__webpack_require__.bind(__webpack_require__, 93461));
242319
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(3461), __webpack_require__.e(7829)]).then(__webpack_require__.bind(__webpack_require__, 93461));
242320
242320
  return imported.default;
242321
242321
  }
242322
242322
  if (module === "@ohif/extension-cornerstone-dicom-seg") {
242323
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(8305)]).then(__webpack_require__.bind(__webpack_require__, 9099));
242323
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(8305)]).then(__webpack_require__.bind(__webpack_require__, 9099));
242324
242324
  return imported.default;
242325
242325
  }
242326
242326
  if (module === "@ohif/extension-cornerstone-dicom-pmap") {
242327
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(5028)]).then(__webpack_require__.bind(__webpack_require__, 82098));
242327
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(5028)]).then(__webpack_require__.bind(__webpack_require__, 82098));
242328
242328
  return imported.default;
242329
242329
  }
242330
242330
  if (module === "@ohif/extension-cornerstone-dynamic-volume") {
242331
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(3138)]).then(__webpack_require__.bind(__webpack_require__, 14696));
242331
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(3138)]).then(__webpack_require__.bind(__webpack_require__, 14696));
242332
242332
  return imported.default;
242333
242333
  }
242334
242334
  if (module === "@ohif/extension-dicom-microscopy") {
242335
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(4406), __webpack_require__.e(9195), __webpack_require__.e(1933)]).then(__webpack_require__.bind(__webpack_require__, 6015));
242335
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(4406), __webpack_require__.e(2851), __webpack_require__.e(1933)]).then(__webpack_require__.bind(__webpack_require__, 6015));
242336
242336
  return imported.default;
242337
242337
  }
242338
242338
  if (module === "@ohif/extension-dicom-pdf") {
@@ -242344,11 +242344,11 @@ async function loadModule(module) {
242344
242344
  return imported.default;
242345
242345
  }
242346
242346
  if (module === "@ohif/extension-tmtv") {
242347
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(8583)]).then(__webpack_require__.bind(__webpack_require__, 57289));
242347
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(4579), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(8583)]).then(__webpack_require__.bind(__webpack_require__, 57289));
242348
242348
  return imported.default;
242349
242349
  }
242350
242350
  if (module === "@ohif/extension-test") {
242351
- const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(9195), __webpack_require__.e(4688), __webpack_require__.e(8499)]).then(__webpack_require__.bind(__webpack_require__, 94285));
242351
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(4287), __webpack_require__.e(9567), __webpack_require__.e(2075), __webpack_require__.e(9205), __webpack_require__.e(2108), __webpack_require__.e(7431), __webpack_require__.e(2851), __webpack_require__.e(4688), __webpack_require__.e(8499)]).then(__webpack_require__.bind(__webpack_require__, 94285));
242352
242352
  return imported.default;
242353
242353
  }
242354
242354
  if (module === "@ohif/extension-cornerstone-dicom-rt") {
@@ -397438,7 +397438,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
397438
397438
  /******/ // This function allow to reference async chunks
397439
397439
  /******/ __webpack_require__.u = (chunkId) => {
397440
397440
  /******/ // return url for filenames based on template
397441
- /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"0541ddda5fc48ccd5b94","147":"173b4a11960d03a3b5b0","213":"cc3e760f2dd0635e1f2e","572":"be57af5b834dd833a418","732":"ea6f9d8504e37e01a208","1459":"1a52c0d128f1431e5321","1608":"e4aadbf17d38143dacdf","1927":"be67b3aafe238ca9f191","1933":"448c6e97834ccd69074b","2007":"2559b710030605fc2bc6","2018":"1e91bc504ffad3cf59f9","2075":"23265b8e7597c398db4f","2108":"aea8d3b39486dd5ab39e","2424":"80d265b694f36a8d6c3f","2701":"b591cf6385ed53ed6093","3054":"a2a50c4674d99c619ca7","3138":"0211e0caf715d7faa924","3461":"dfa7fd8cda25ebc6665b","3694":"a41ec0ba4f935200ab93","4202":"850a7c7c011800b3daea","4287":"b7840e7b94cbbc102236","4406":"573d234b4641d23cf8db","4507":"c8ee19fc9689aa362207","4579":"0a6b2f49a7e136a79e37","4688":"c817780f93ca0fa7ff08","4819":"a0f639384f0bb2ec7a4a","5015":"4cd219119d2966d886ed","5028":"4f15333fd752c46570d8","5261":"2655560097e9250eac44","5457":"789af50b3e9318017153","5485":"e6a16033567e73803b7c","5802":"addd0259c8f9d0a18244","6027":"87a14d8c064618560228","6939":"41fbdef87597b5172ec6","7159":"fb9df255868960f69765","7431":"5e14641f2c71e852abe7","7639":"e94c967acf71d94199a1","8094":"148a66619607e37cbf19","8305":"561034b71c762fdbee81","8499":"7249b7db2e23884c689b","8558":"eeadfbd16886a60eef8e","8583":"8ea4b9115aa7d731c33a","9195":"05baee0d667832b5a679","9205":"315c3b56464a7590235a","9567":"be350438bed4e656f278","9845":"267831496ba080d9f8da","9862":"09783830f0cb75a84d2a","9927":"7206fcedcf759a5c9b5e"}[chunkId] + ".js";
397441
+ /******/ return "" + ({"572":"polySeg","2007":"interpolation","3054":"histogram-worker","3694":"compute"}[chunkId] || chunkId) + ".bundle." + {"85":"e426258a9ad5bcf9bb3e","147":"173b4a11960d03a3b5b0","213":"18a8b5a1e2f00de7feaf","572":"be57af5b834dd833a418","732":"ea6f9d8504e37e01a208","1459":"ed7323f44e4ff4ecd69a","1608":"e4aadbf17d38143dacdf","1927":"be67b3aafe238ca9f191","1933":"0055c536e1392867e57c","2007":"2559b710030605fc2bc6","2018":"ab8f9ceeae0e18eb303b","2075":"23265b8e7597c398db4f","2108":"aea8d3b39486dd5ab39e","2424":"5e858661a06aa36dd859","2701":"b591cf6385ed53ed6093","2851":"c5202066974b96955c28","3054":"a2a50c4674d99c619ca7","3138":"5ed994e6e0ff7c720a75","3461":"54f8d64ed1965c14ec4c","3694":"a41ec0ba4f935200ab93","4202":"850a7c7c011800b3daea","4287":"b7840e7b94cbbc102236","4406":"573d234b4641d23cf8db","4507":"18379f328211aee3aba5","4579":"0a6b2f49a7e136a79e37","4688":"e23f20a556dca69540fd","4819":"fb82fcc8360f4883691e","5015":"dda760490cf19777b6b3","5028":"494b6ca9e0f5567c26e2","5261":"2655560097e9250eac44","5457":"328f29b05df8d287491b","5485":"53614f38e6ee0e052bdc","5802":"41cf74cda9aad21601e8","6027":"1bfe806a0cb494dfc265","6939":"41fbdef87597b5172ec6","7159":"fb9df255868960f69765","7431":"5e14641f2c71e852abe7","7639":"2ec2272d8eb08df56b66","8094":"148a66619607e37cbf19","8305":"21d4c7deff19f6ce9a6a","8499":"dbeca38ee1d1471ce4d8","8558":"5c64a061bf4d5d5f6d7a","8583":"a0ccedd0799600ad5fad","9205":"315c3b56464a7590235a","9567":"be350438bed4e656f278","9845":"267831496ba080d9f8da","9862":"09783830f0cb75a84d2a","9927":"3bdd61e78a710e09cc0b"}[chunkId] + ".js";
397442
397442
  /******/ };
397443
397443
  /******/ })();
397444
397444
  /******/
@@ -397787,7 +397787,7 @@ function __rewriteRelativeImportExtension(path, preserveJsx) {
397787
397787
  /******/ "8558": [
397788
397788
  /******/ 2108,
397789
397789
  /******/ 7431,
397790
- /******/ 9195,
397790
+ /******/ 2851,
397791
397791
  /******/ 4688,
397792
397792
  /******/ 1608
397793
397793
  /******/ ],
package/dist/index.html CHANGED
@@ -3,4 +3,4 @@
3
3
  return import(moduleId);
4
4
  }
5
5
 
6
- window.PUBLIC_URL = '/';</script><script defer="defer" src="/app.bundle.5e9bd3853479e9f2178c.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
6
+ window.PUBLIC_URL = '/';</script><script defer="defer" src="/app.bundle.348a74b1a7aeb7c8d0a8.js"></script><link href="/app.bundle.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="react-portal"></div><div id="root"></div></body></html>
package/dist/sw.js CHANGED
@@ -50,7 +50,7 @@ self.addEventListener('message', event => {
50
50
  }
51
51
  }
52
52
  });
53
- workbox.precaching.precacheAndRoute([{'revision':null,'url':'/1459.bundle.1a52c0d128f1431e5321.js'},{'revision':null,'url':'/147.bundle.173b4a11960d03a3b5b0.js'},{'revision':'e0cfcadcf2c2fbc1f117196b9f62bf3e','url':'/147.css'},{'revision':null,'url':'/1608.bundle.e4aadbf17d38143dacdf.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1608.css'},{'revision':null,'url':'/17dd54813d5acc10bf8f.wasm'},{'revision':null,'url':'/1927.bundle.be67b3aafe238ca9f191.js'},{'revision':null,'url':'/1933.bundle.448c6e97834ccd69074b.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1933.css'},{'revision':null,'url':'/2018.bundle.1e91bc504ffad3cf59f9.js'},{'revision':null,'url':'/2075.bundle.23265b8e7597c398db4f.js'},{'revision':null,'url':'/2108.bundle.aea8d3b39486dd5ab39e.js'},{'revision':null,'url':'/213.bundle.cc3e760f2dd0635e1f2e.js'},{'revision':null,'url':'/2424.bundle.80d265b694f36a8d6c3f.js'},{'revision':null,'url':'/2516.bundle.f62228e9a800de8d4b31.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/2591.css'},{'revision':null,'url':'/2701.bundle.b591cf6385ed53ed6093.js'},{'revision':null,'url':'/3138.bundle.0211e0caf715d7faa924.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/3138.css'},{'revision':null,'url':'/31fb9346313fc3740d7b.woff2'},{'revision':null,'url':'/3461.bundle.dfa7fd8cda25ebc6665b.js'},{'revision':null,'url':'/4202.bundle.850a7c7c011800b3daea.js'},{'revision':null,'url':'/4287.bundle.b7840e7b94cbbc102236.js'},{'revision':null,'url':'/4406.bundle.573d234b4641d23cf8db.js'},{'revision':null,'url':'/4507.bundle.c8ee19fc9689aa362207.js'},{'revision':null,'url':'/4579.bundle.0a6b2f49a7e136a79e37.js'},{'revision':null,'url':'/4688.bundle.c817780f93ca0fa7ff08.js'},{'revision':null,'url':'/4819.bundle.a0f639384f0bb2ec7a4a.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/4819.css'},{'revision':'27c847594562926775c007c401b4fe98','url':'/4972.css'},{'revision':null,'url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/5015.bundle.4cd219119d2966d886ed.js'},{'revision':null,'url':'/5028.bundle.4f15333fd752c46570d8.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/5028.css'},{'revision':null,'url':'/5261.bundle.2655560097e9250eac44.js'},{'revision':null,'url':'/5457.bundle.789af50b3e9318017153.js'},{'revision':null,'url':'/5485.bundle.e6a16033567e73803b7c.js'},{'revision':null,'url':'/5491.bundle.4866d2ecb20dd089e071.js'},{'revision':null,'url':'/5802.bundle.addd0259c8f9d0a18244.js'},{'revision':'db90dfc1361c5dfac355bf8067ab4371','url':'/5802.css'},{'revision':null,'url':'/5830.bundle.791019deddd536980a11.js'},{'revision':null,'url':'/5858.bundle.466e58128de344ab53f3.js'},{'revision':null,'url':'/6027.bundle.87a14d8c064618560228.js'},{'revision':null,'url':'/6354.bundle.929febcf6d326e582e00.js'},{'revision':null,'url':'/6376.bundle.738c873196491232acb6.js'},{'revision':null,'url':'/6386.bundle.5d82d1f41d1c37a0358d.js'},{'revision':null,'url':'/6939.bundle.41fbdef87597b5172ec6.js'},{'revision':null,'url':'/7159.bundle.fb9df255868960f69765.js'},{'revision':'20a92cf14c2d8be6cd580f68780cc7fa','url':'/7159.css'},{'revision':null,'url':'/7190.bundle.3738008038e70525764f.js'},{'revision':null,'url':'/732.bundle.ea6f9d8504e37e01a208.js'},{'revision':null,'url':'/7431.bundle.5e14641f2c71e852abe7.js'},{'revision':null,'url':'/7537.bundle.1726a7f7a4c378296085.js'},{'revision':null,'url':'/7639.bundle.e94c967acf71d94199a1.js'},{'revision':null,'url':'/7758.bundle.c8d106364298e7d288f0.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/7829.css'},{'revision':null,'url':'/8094.bundle.148a66619607e37cbf19.js'},{'revision':null,'url':'/8305.bundle.561034b71c762fdbee81.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8305.css'},{'revision':null,'url':'/8499.bundle.7249b7db2e23884c689b.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8499.css'},{'revision':null,'url':'/85.bundle.0541ddda5fc48ccd5b94.js'},{'revision':null,'url':'/8558.bundle.eeadfbd16886a60eef8e.js'},{'revision':null,'url':'/8583.bundle.8ea4b9115aa7d731c33a.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8583.css'},{'revision':null,'url':'/9039.bundle.7afa93b103c3b26d4855.js'},{'revision':null,'url':'/9195.bundle.05baee0d667832b5a679.js'},{'revision':null,'url':'/9205.bundle.315c3b56464a7590235a.js'},{'revision':null,'url':'/9567.bundle.be350438bed4e656f278.js'},{'revision':null,'url':'/982b0633e475d94949df.wasm'},{'revision':null,'url':'/9845.bundle.267831496ba080d9f8da.js'},{'revision':null,'url':'/9862.bundle.09783830f0cb75a84d2a.js'},{'revision':null,'url':'/9927.bundle.7206fcedcf759a5c9b5e.js'},{'revision':'d41d8cd98f00b204e9800998ecf8427e','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':null,'url':'/a957c5cd315f89b6feb1.wasm'},{'revision':'c11dc68cde4925f1ce47ab53247b4c97','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.5e9bd3853479e9f2178c.js'},{'revision':'3040479e6dca754e36429c7138c28fdd','url':'/app.bundle.css'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/android-chrome-144x144.png'},{'revision':'5cde390de8a619ebe55a669d2ac3effd','url':'/assets/android-chrome-192x192.png'},{'revision':'e7466a67e90471de05401e53b8fe20be','url':'/assets/android-chrome-256x256.png'},{'revision':'9bbe9b80156e930d19a4e1725aa9ddae','url':'/assets/android-chrome-36x36.png'},{'revision':'5698b2ac0c82fe06d84521fc5482df04','url':'/assets/android-chrome-384x384.png'},{'revision':'56bef3fceec344d9747f8abe9c0bba27','url':'/assets/android-chrome-48x48.png'},{'revision':'3e8b8a01290992e82c242557417b0596','url':'/assets/android-chrome-512x512.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/android-chrome-72x72.png'},{'revision':'4c3289bc690f8519012686888e08da71','url':'/assets/android-chrome-96x96.png'},{'revision':'cf464289183184df09292f581df0fb4f','url':'/assets/apple-touch-icon-1024x1024.png'},{'revision':'0857c5282c594e4900e8b31e3bade912','url':'/assets/apple-touch-icon-114x114.png'},{'revision':'4208f41a28130a67e9392a9dfcee6011','url':'/assets/apple-touch-icon-120x120.png'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/apple-touch-icon-144x144.png'},{'revision':'977d293982af7e9064ba20806b45cf35','url':'/assets/apple-touch-icon-152x152.png'},{'revision':'6de91b4d2a30600b410758405cb567b4','url':'/assets/apple-touch-icon-167x167.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-180x180.png'},{'revision':'647386c34e75f1213830ea9a38913525','url':'/assets/apple-touch-icon-57x57.png'},{'revision':'0c200fe83953738b330ea431083e7a86','url':'/assets/apple-touch-icon-60x60.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/apple-touch-icon-72x72.png'},{'revision':'c9989a807bb18633f6dcf254b5b56124','url':'/assets/apple-touch-icon-76x76.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-precomposed.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon.png'},{'revision':'05fa74ea9c1c0c3931ba96467999081d','url':'/assets/apple-touch-startup-image-1182x2208.png'},{'revision':'9e2cd03e1e6fd0520eea6846f4278018','url':'/assets/apple-touch-startup-image-1242x2148.png'},{'revision':'5591e3a1822cbc8439b99c1a40d53425','url':'/assets/apple-touch-startup-image-1496x2048.png'},{'revision':'337de578c5ca04bd7d2be19d24d83821','url':'/assets/apple-touch-startup-image-1536x2008.png'},{'revision':'cafb4ab4eafe6ef946bd229a1d88e7de','url':'/assets/apple-touch-startup-image-320x460.png'},{'revision':'d9bb9e558d729eeac5efb8be8d6111cc','url':'/assets/apple-touch-startup-image-640x1096.png'},{'revision':'038b5b02bac8b82444bf9a87602ac216','url':'/assets/apple-touch-startup-image-640x920.png'},{'revision':'2177076eb07b1d64d663d7c03268be00','url':'/assets/apple-touch-startup-image-748x1024.png'},{'revision':'4fc097443815fe92503584c4bd73c630','url':'/assets/apple-touch-startup-image-750x1294.png'},{'revision':'2e29914062dce5c5141ab47eea2fc5d9','url':'/assets/apple-touch-startup-image-768x1004.png'},{'revision':'f692ec286b3a332c17985f4ed38b1076','url':'/assets/browserconfig.xml'},{'revision':'f3d9a3b647853c45b0e132e4acd0cc4a','url':'/assets/coast-228x228.png'},{'revision':'ad6e1def5c66193d649a31474bbfe45d','url':'/assets/favicon-16x16.png'},{'revision':'84d1dcdb6cdfa55e2f46be0c80fa5698','url':'/assets/favicon-32x32.png'},{'revision':'95fb44c4998a46109e49d724c060db24','url':'/assets/favicon.ico'},{'revision':'5df2a5b0cee399ac0bc40af74ba3c2cb','url':'/assets/firefox_app_128x128.png'},{'revision':'11fd9098c4b07c8a07e1d2a1e309e046','url':'/assets/firefox_app_512x512.png'},{'revision':'27cddfc922dca3bfa27b4a00fc2f5e36','url':'/assets/firefox_app_60x60.png'},{'revision':'2547879ee2928a5fd56dca483bcbd967','url':'/assets/images/CT-AAA.png'},{'revision':'245628fb9d18d6c5cd529615079f8e86','url':'/assets/images/CT-AAA2.png'},{'revision':'997a9c8b57e7b4e46d8f01fb49d078c6','url':'/assets/images/CT-Air.png'},{'revision':'e7ed89711f63348d49898da3a2b73ab9','url':'/assets/images/CT-Bone.png'},{'revision':'09d1dc6efebb10a60cdf85ed74a10214','url':'/assets/images/CT-Bones.png'},{'revision':'f8ae9bafd3b90ba3efbdcbe8901db187','url':'/assets/images/CT-Cardiac.png'},{'revision':'ed0cc538aba90d6a1c029923ca9b47db','url':'/assets/images/CT-Cardiac2.png'},{'revision':'dfdaf4e4889aefbf09514545f45726bb','url':'/assets/images/CT-Cardiac3.png'},{'revision':'5d4b9a331136a1a5d7ce7ccf7dfcca36','url':'/assets/images/CT-Chest-Contrast-Enhanced.png'},{'revision':'5fb264499a5bb42487663b00e42d1513','url':'/assets/images/CT-Chest-Vessels.png'},{'revision':'ab8f0e569c972388ddaaa61b92449fac','url':'/assets/images/CT-Coronary-Arteries-2.png'},{'revision':'e4e7e2e3cc09bc8c4fb03b6441bd2845','url':'/assets/images/CT-Coronary-Arteries-3.png'},{'revision':'79a2962a2d3cbe4bd3b675b5ca83c659','url':'/assets/images/CT-Coronary-Arteries.png'},{'revision':'6502a6bdab1c70e2188c3bf12ce5d4e4','url':'/assets/images/CT-Cropped-Volume-Bone.png'},{'revision':'e28ad3cf5ed2006fc5a7cffd602736fc','url':'/assets/images/CT-Fat.png'},{'revision':'ca1c5be76053edee27e68ffbf9105101','url':'/assets/images/CT-Liver-Vasculature.png'},{'revision':'d6c9ab857ed2ad19f1ff20bea02b6655','url':'/assets/images/CT-Lung.png'},{'revision':'ddb599c6a163bdf28ece8de1a337470a','url':'/assets/images/CT-MIP.png'},{'revision':'0b0dcf7940a555e2a9a0900f7f84d4d3','url':'/assets/images/CT-Muscle.png'},{'revision':'6082d383f9ce375a5873e2a00fc4d372','url':'/assets/images/CT-Pulmonary-Arteries.png'},{'revision':'b317366149ee2607bec95d63eb4d7661','url':'/assets/images/CT-Soft-Tissue.png'},{'revision':'4b0cd5a673ebb71da22a91ed608d6695','url':'/assets/images/DTI-FA-Brain.png'},{'revision':'3ea1cbee022af5b94710b73726308832','url':'/assets/images/MR-Angio.png'},{'revision':'bd25ca7b166193547f34950eed440e5c','url':'/assets/images/MR-Default.png'},{'revision':'2e50a49b859aeb316a1c23f911fce9ad','url':'/assets/images/MR-MIP.png'},{'revision':'6ba74de6961e08652ff9e2f1871b473d','url':'/assets/images/MR-T2-Brain.png'},{'revision':'42406bb474f0f87cf04a5afbbcd5e389','url':'/assets/images/VolumeRendering.png'},{'revision':'2017d95fae79dcf34b5a5b52586d4763','url':'/assets/manifest.webapp'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/mstile-144x144.png'},{'revision':'334895225e16a7777e45d81964725a97','url':'/assets/mstile-150x150.png'},{'revision':'e295cca4af6ed0365cf7b014d91b0e9d','url':'/assets/mstile-310x150.png'},{'revision':'cbefa8c42250e5f2443819fe2c69d91e','url':'/assets/mstile-310x310.png'},{'revision':'aa411a69df2b33a1362fa38d1257fa9d','url':'/assets/mstile-70x70.png'},{'revision':'5609af4f69e40e33471aee770ea1d802','url':'/assets/yandex-browser-50x50.png'},{'revision':'dd001f21b3970d5a7f3e245cc10d21df','url':'/assets/yandex-browser-manifest.json'},{'revision':null,'url':'/c22b37c3488e1d6c3aa4.wasm'},{'revision':null,'url':'/compute.bundle.a41ec0ba4f935200ab93.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/dicom-microscopy-viewer/charlswasm_decode.wasm'},{'revision':'9214592a1edd456ad2ef69772201398e','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js'},{'revision':'813dee9adb3a3478dedc6dfe1479e15b','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js.map'},{'revision':'fb088ddc5ec5de63aa6095f70baa2d45','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js'},{'revision':'cdf943673c34e8dd6be85b026bdffc70','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.map'},{'revision':'52b9a07fe0541fe8c313d9788550bf51','url':'/dicom-microscopy-viewer/dicomiccwasm.wasm'},{'revision':'7edb59d2be7c993050cb31ded36afa31','url':'/dicom-microscopy-viewer/libjpegturbowasm_decode.wasm'},{'revision':'54a25d82a224dfd401569baffc8b478d','url':'/dicom-microscopy-viewer/openjpegwasm_decode.wasm'},{'revision':'4acdd19a35d759ec2669f1ba9490937d','url':'/es6-shim.min.js'},{'revision':'92b01d0a387d59841e02cc3a4c994657','url':'/google.js'},{'revision':null,'url':'/histogram-worker.bundle.a2a50c4674d99c619ca7.js'},{'revision':'671cadc0cdac90698f45550e7e3fc8c8','url':'/index.html'},{'revision':'31c0367ca4160b2c6373e905739c5719','url':'/init-service-worker.js'},{'revision':null,'url':'/interpolation.bundle.2559b710030605fc2bc6.js'},{'revision':'74fc9658b62903be2048c1f82a22b4d4','url':'/manifest.json'},{'revision':'3fa71aa0af3e34b4ebd9a71eee0f4bdd','url':'/ohif-logo-light.svg'},{'revision':'7e81da785c63e75650101db6c5d7560e','url':'/ohif-logo.svg'},{'revision':'eadf8bf1d85032a029e2c0df4b8938b0','url':'/oidc-client.min.js'},{'revision':'242abae066a3d4717e09f218703f1923','url':'/ort/cjs/ort.all.min.js'},{'revision':'039ea411b3b655094035e85bb2e245d4','url':'/ort/cjs/ort.all.min.js.map'},{'revision':'fb509ab752acf788c3cc25459ae72e62','url':'/ort/cjs/ort.min.js'},{'revision':'30087ad61fc31272eb6094962e3a0451','url':'/ort/cjs/ort.min.js.map'},{'revision':'0fad6d8ca65291350ca8a1751659a536','url':'/ort/cjs/ort.training.wasm.min.js'},{'revision':'da692fb2cd7f67223b92a90955b87cb3','url':'/ort/cjs/ort.training.wasm.min.js.map'},{'revision':'f471b605fb03df54c63d5bc77a32226b','url':'/ort/cjs/ort.wasm-core.min.js'},{'revision':'cc4475faebff69233b4fdc1a78eb0399','url':'/ort/cjs/ort.wasm-core.min.js.map'},{'revision':'d228221765171d0a4cf3cb3909dd0be3','url':'/ort/cjs/ort.wasm.min.js'},{'revision':'6d132c02e5eeadf4da54c8bcc0c15200','url':'/ort/cjs/ort.wasm.min.js.map'},{'revision':'9a463e37f9550d7a23f5a47076b6b3d8','url':'/ort/cjs/ort.webgl.min.js'},{'revision':'26e251b6aee08c91a3d6e1af1410659d','url':'/ort/cjs/ort.webgl.min.js.map'},{'revision':'5cd623012201d7c5ddbbdb57224ac26d','url':'/ort/cjs/ort.webgpu.min.js'},{'revision':'e53c54f9663a5d7573b66dd3d25fb93a','url':'/ort/cjs/ort.webgpu.min.js.map'},{'revision':'a6b7eb31b5dcf3835a90ea0d201f21e3','url':'/ort/cjs/package.json'},{'revision':'2ccbe0c4397149108dd0d7ced00b5879','url':'/ort/esm/ort.all.min.js'},{'revision':'2b2ff793ba11a59563a504067aa1e469','url':'/ort/esm/ort.all.min.js.map'},{'revision':'978e978337e66e848c2351da61fd7e8e','url':'/ort/esm/ort.min.js'},{'revision':'add9f88f20194b214c8a97b200c4eac0','url':'/ort/esm/ort.min.js.map'},{'revision':'61471773b94ac06d0d814b49cf619233','url':'/ort/esm/ort.training.wasm.min.js'},{'revision':'60057feb2e9c1d39d7e52b165e450e72','url':'/ort/esm/ort.training.wasm.min.js.map'},{'revision':'12635093e14a67921565de89f678c470','url':'/ort/esm/ort.wasm-core.min.js'},{'revision':'1d2c905465e8b47dc023beaf715bb6ae','url':'/ort/esm/ort.wasm-core.min.js.map'},{'revision':'f2780d73ea108c5728b4c4fb6bd1e8df','url':'/ort/esm/ort.wasm.min.js'},{'revision':'e1af0f0e8befaa973a9192cdc1a882fb','url':'/ort/esm/ort.wasm.min.js.map'},{'revision':'c5a2e8ed939ccfb0211336d8b385d81a','url':'/ort/esm/ort.webgl.min.js'},{'revision':'9e0198bc10517578066aed6c8baef1a3','url':'/ort/esm/ort.webgl.min.js.map'},{'revision':'0c96a22438d8ffdf94f13b1693dbed8b','url':'/ort/esm/ort.webgpu.min.js'},{'revision':'24126f825e1c2dd678b4b85cde6c4e3a','url':'/ort/esm/ort.webgpu.min.js.map'},{'revision':'b305354b5d3207dc798e87449005a1de','url':'/ort/esm/package.json'},{'revision':'10ba4d1a5289405cff7d9b5f453b60b4','url':'/ort/ort-training-wasm-simd.wasm'},{'revision':'f7380fb5928344460bac0e5833ee4a82','url':'/ort/ort-wasm-simd-threaded.jsep.wasm'},{'revision':'068e15f5aba004197782c011a782c500','url':'/ort/ort-wasm-simd-threaded.wasm'},{'revision':'8a468bda81bfb9e375907f0b6da8ffee','url':'/ort/ort-wasm-simd.jsep.wasm'},{'revision':'27a8292511e77fc50ced64326875ca4a','url':'/ort/ort-wasm-simd.wasm'},{'revision':'c9cf2d09cfabe6ea517c87620091a2fb','url':'/ort/ort-wasm-threaded.wasm'},{'revision':'88cb0475e8c4228b29dd201646223f0c','url':'/ort/ort-wasm.wasm'},{'revision':'708def774c211a2b036384d9e14dbfe7','url':'/ort/ort.all.js'},{'revision':'32e292212f5767983e5433f0a88d3425','url':'/ort/ort.all.min.js'},{'revision':'c4a4b66af400491c83591ab732dac868','url':'/ort/ort.all.min.js.map'},{'revision':'5d78ec66bcab8a26756d43b8c63a8f1e','url':'/ort/ort.js'},{'revision':'d552a78742409520bd30fb824a88a266','url':'/ort/ort.min.js'},{'revision':'a1fdb4abef4a6130f72148fe469ca114','url':'/ort/ort.min.js.map'},{'revision':'e3b420cb98f192d8755934dde7c014db','url':'/ort/ort.node.min.js'},{'revision':'9b0c2098e6c9b0f6d6e54e8cb434ed76','url':'/ort/ort.node.min.js.map'},{'revision':'722dabcfbb18772ca80ef96ef9b9a036','url':'/ort/ort.training.wasm.min.js'},{'revision':'de35b3d2e302163bdcb80d3e20c84266','url':'/ort/ort.training.wasm.min.js.map'},{'revision':'f92b62229fc36d346f720b2410e63576','url':'/ort/ort.wasm-core.min.js'},{'revision':'8f56640956155afecadc318d8a32e0f6','url':'/ort/ort.wasm-core.min.js.map'},{'revision':'5ac1ffe964e3bd1f0d2e6a3a18a5a1ba','url':'/ort/ort.wasm.min.js'},{'revision':'9b0a74e48529a07b61428b1a48233b39','url':'/ort/ort.wasm.min.js.map'},{'revision':'4591c9c641ab0151b9a8cdc1ce110286','url':'/ort/ort.webgl.min.js'},{'revision':'77e632e10b98c8d10e17bb3071d5cba4','url':'/ort/ort.webgl.min.js.map'},{'revision':'027aca68552f5081e90a08f7fb064fb7','url':'/ort/ort.webgpu.min.js'},{'revision':'12dc9d5c577bac166f0f74590e4d27dd','url':'/ort/ort.webgpu.min.js.map'},{'revision':null,'url':'/polySeg.bundle.be57af5b834dd833a418.js'},{'revision':'a1aef5311245f5864315443d12246c37','url':'/polyfill.min.js'},{'revision':'981ac7f7543b8330e3826aff72c33382','url':'/serve.json'},{'revision':'b1e488d9955b62bd2858874df11d5223','url':'/silent-refresh.html'}]);
53
+ workbox.precaching.precacheAndRoute([{'revision':null,'url':'/1459.bundle.ed7323f44e4ff4ecd69a.js'},{'revision':null,'url':'/147.bundle.173b4a11960d03a3b5b0.js'},{'revision':'e0cfcadcf2c2fbc1f117196b9f62bf3e','url':'/147.css'},{'revision':null,'url':'/1608.bundle.e4aadbf17d38143dacdf.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1608.css'},{'revision':null,'url':'/17dd54813d5acc10bf8f.wasm'},{'revision':null,'url':'/1927.bundle.be67b3aafe238ca9f191.js'},{'revision':null,'url':'/1933.bundle.0055c536e1392867e57c.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/1933.css'},{'revision':null,'url':'/2018.bundle.ab8f9ceeae0e18eb303b.js'},{'revision':null,'url':'/2075.bundle.23265b8e7597c398db4f.js'},{'revision':null,'url':'/2108.bundle.aea8d3b39486dd5ab39e.js'},{'revision':null,'url':'/213.bundle.18a8b5a1e2f00de7feaf.js'},{'revision':null,'url':'/2424.bundle.5e858661a06aa36dd859.js'},{'revision':null,'url':'/2516.bundle.f62228e9a800de8d4b31.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/2591.css'},{'revision':null,'url':'/2701.bundle.b591cf6385ed53ed6093.js'},{'revision':null,'url':'/2851.bundle.c5202066974b96955c28.js'},{'revision':null,'url':'/3138.bundle.5ed994e6e0ff7c720a75.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/3138.css'},{'revision':null,'url':'/31fb9346313fc3740d7b.woff2'},{'revision':null,'url':'/3461.bundle.54f8d64ed1965c14ec4c.js'},{'revision':null,'url':'/4202.bundle.850a7c7c011800b3daea.js'},{'revision':null,'url':'/4287.bundle.b7840e7b94cbbc102236.js'},{'revision':null,'url':'/4406.bundle.573d234b4641d23cf8db.js'},{'revision':null,'url':'/4507.bundle.18379f328211aee3aba5.js'},{'revision':null,'url':'/4579.bundle.0a6b2f49a7e136a79e37.js'},{'revision':null,'url':'/4688.bundle.e23f20a556dca69540fd.js'},{'revision':null,'url':'/4819.bundle.fb82fcc8360f4883691e.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/4819.css'},{'revision':'27c847594562926775c007c401b4fe98','url':'/4972.css'},{'revision':null,'url':'/5004fdc02f329ce53b69.wasm'},{'revision':null,'url':'/5015.bundle.dda760490cf19777b6b3.js'},{'revision':null,'url':'/5028.bundle.494b6ca9e0f5567c26e2.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/5028.css'},{'revision':null,'url':'/5261.bundle.2655560097e9250eac44.js'},{'revision':null,'url':'/5457.bundle.328f29b05df8d287491b.js'},{'revision':null,'url':'/5485.bundle.53614f38e6ee0e052bdc.js'},{'revision':null,'url':'/5491.bundle.4866d2ecb20dd089e071.js'},{'revision':null,'url':'/5802.bundle.41cf74cda9aad21601e8.js'},{'revision':'db90dfc1361c5dfac355bf8067ab4371','url':'/5802.css'},{'revision':null,'url':'/5830.bundle.791019deddd536980a11.js'},{'revision':null,'url':'/5858.bundle.466e58128de344ab53f3.js'},{'revision':null,'url':'/6027.bundle.1bfe806a0cb494dfc265.js'},{'revision':null,'url':'/6354.bundle.929febcf6d326e582e00.js'},{'revision':null,'url':'/6376.bundle.738c873196491232acb6.js'},{'revision':null,'url':'/6386.bundle.5d82d1f41d1c37a0358d.js'},{'revision':null,'url':'/6939.bundle.41fbdef87597b5172ec6.js'},{'revision':null,'url':'/7159.bundle.fb9df255868960f69765.js'},{'revision':'20a92cf14c2d8be6cd580f68780cc7fa','url':'/7159.css'},{'revision':null,'url':'/7190.bundle.3738008038e70525764f.js'},{'revision':null,'url':'/732.bundle.ea6f9d8504e37e01a208.js'},{'revision':null,'url':'/7431.bundle.5e14641f2c71e852abe7.js'},{'revision':null,'url':'/7537.bundle.1726a7f7a4c378296085.js'},{'revision':null,'url':'/7639.bundle.2ec2272d8eb08df56b66.js'},{'revision':null,'url':'/7758.bundle.c8d106364298e7d288f0.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/7829.css'},{'revision':null,'url':'/8094.bundle.148a66619607e37cbf19.js'},{'revision':null,'url':'/8305.bundle.21d4c7deff19f6ce9a6a.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8305.css'},{'revision':null,'url':'/8499.bundle.dbeca38ee1d1471ce4d8.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8499.css'},{'revision':null,'url':'/85.bundle.e426258a9ad5bcf9bb3e.js'},{'revision':null,'url':'/8558.bundle.5c64a061bf4d5d5f6d7a.js'},{'revision':null,'url':'/8583.bundle.a0ccedd0799600ad5fad.js'},{'revision':'27c847594562926775c007c401b4fe98','url':'/8583.css'},{'revision':null,'url':'/9039.bundle.7afa93b103c3b26d4855.js'},{'revision':null,'url':'/9205.bundle.315c3b56464a7590235a.js'},{'revision':null,'url':'/9567.bundle.be350438bed4e656f278.js'},{'revision':null,'url':'/982b0633e475d94949df.wasm'},{'revision':null,'url':'/9845.bundle.267831496ba080d9f8da.js'},{'revision':null,'url':'/9862.bundle.09783830f0cb75a84d2a.js'},{'revision':null,'url':'/9927.bundle.3bdd61e78a710e09cc0b.js'},{'revision':'d41d8cd98f00b204e9800998ecf8427e','url':'/_headers'},{'revision':'e3bf0f3e9c34f51ad59836ae8e8eaf43','url':'/_redirects'},{'revision':null,'url':'/a957c5cd315f89b6feb1.wasm'},{'revision':'2f872a596b09e1b1de398d253a78fba2','url':'/app-config.js'},{'revision':null,'url':'/app.bundle.348a74b1a7aeb7c8d0a8.js'},{'revision':'3040479e6dca754e36429c7138c28fdd','url':'/app.bundle.css'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/android-chrome-144x144.png'},{'revision':'5cde390de8a619ebe55a669d2ac3effd','url':'/assets/android-chrome-192x192.png'},{'revision':'e7466a67e90471de05401e53b8fe20be','url':'/assets/android-chrome-256x256.png'},{'revision':'9bbe9b80156e930d19a4e1725aa9ddae','url':'/assets/android-chrome-36x36.png'},{'revision':'5698b2ac0c82fe06d84521fc5482df04','url':'/assets/android-chrome-384x384.png'},{'revision':'56bef3fceec344d9747f8abe9c0bba27','url':'/assets/android-chrome-48x48.png'},{'revision':'3e8b8a01290992e82c242557417b0596','url':'/assets/android-chrome-512x512.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/android-chrome-72x72.png'},{'revision':'4c3289bc690f8519012686888e08da71','url':'/assets/android-chrome-96x96.png'},{'revision':'cf464289183184df09292f581df0fb4f','url':'/assets/apple-touch-icon-1024x1024.png'},{'revision':'0857c5282c594e4900e8b31e3bade912','url':'/assets/apple-touch-icon-114x114.png'},{'revision':'4208f41a28130a67e9392a9dfcee6011','url':'/assets/apple-touch-icon-120x120.png'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/apple-touch-icon-144x144.png'},{'revision':'977d293982af7e9064ba20806b45cf35','url':'/assets/apple-touch-icon-152x152.png'},{'revision':'6de91b4d2a30600b410758405cb567b4','url':'/assets/apple-touch-icon-167x167.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-180x180.png'},{'revision':'647386c34e75f1213830ea9a38913525','url':'/assets/apple-touch-icon-57x57.png'},{'revision':'0c200fe83953738b330ea431083e7a86','url':'/assets/apple-touch-icon-60x60.png'},{'revision':'517925e91e2ce724432d296b687d25e2','url':'/assets/apple-touch-icon-72x72.png'},{'revision':'c9989a807bb18633f6dcf254b5b56124','url':'/assets/apple-touch-icon-76x76.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon-precomposed.png'},{'revision':'87bff140e3773bd7479a620501c4aa5c','url':'/assets/apple-touch-icon.png'},{'revision':'05fa74ea9c1c0c3931ba96467999081d','url':'/assets/apple-touch-startup-image-1182x2208.png'},{'revision':'9e2cd03e1e6fd0520eea6846f4278018','url':'/assets/apple-touch-startup-image-1242x2148.png'},{'revision':'5591e3a1822cbc8439b99c1a40d53425','url':'/assets/apple-touch-startup-image-1496x2048.png'},{'revision':'337de578c5ca04bd7d2be19d24d83821','url':'/assets/apple-touch-startup-image-1536x2008.png'},{'revision':'cafb4ab4eafe6ef946bd229a1d88e7de','url':'/assets/apple-touch-startup-image-320x460.png'},{'revision':'d9bb9e558d729eeac5efb8be8d6111cc','url':'/assets/apple-touch-startup-image-640x1096.png'},{'revision':'038b5b02bac8b82444bf9a87602ac216','url':'/assets/apple-touch-startup-image-640x920.png'},{'revision':'2177076eb07b1d64d663d7c03268be00','url':'/assets/apple-touch-startup-image-748x1024.png'},{'revision':'4fc097443815fe92503584c4bd73c630','url':'/assets/apple-touch-startup-image-750x1294.png'},{'revision':'2e29914062dce5c5141ab47eea2fc5d9','url':'/assets/apple-touch-startup-image-768x1004.png'},{'revision':'f692ec286b3a332c17985f4ed38b1076','url':'/assets/browserconfig.xml'},{'revision':'f3d9a3b647853c45b0e132e4acd0cc4a','url':'/assets/coast-228x228.png'},{'revision':'ad6e1def5c66193d649a31474bbfe45d','url':'/assets/favicon-16x16.png'},{'revision':'84d1dcdb6cdfa55e2f46be0c80fa5698','url':'/assets/favicon-32x32.png'},{'revision':'95fb44c4998a46109e49d724c060db24','url':'/assets/favicon.ico'},{'revision':'5df2a5b0cee399ac0bc40af74ba3c2cb','url':'/assets/firefox_app_128x128.png'},{'revision':'11fd9098c4b07c8a07e1d2a1e309e046','url':'/assets/firefox_app_512x512.png'},{'revision':'27cddfc922dca3bfa27b4a00fc2f5e36','url':'/assets/firefox_app_60x60.png'},{'revision':'2547879ee2928a5fd56dca483bcbd967','url':'/assets/images/CT-AAA.png'},{'revision':'245628fb9d18d6c5cd529615079f8e86','url':'/assets/images/CT-AAA2.png'},{'revision':'997a9c8b57e7b4e46d8f01fb49d078c6','url':'/assets/images/CT-Air.png'},{'revision':'e7ed89711f63348d49898da3a2b73ab9','url':'/assets/images/CT-Bone.png'},{'revision':'09d1dc6efebb10a60cdf85ed74a10214','url':'/assets/images/CT-Bones.png'},{'revision':'f8ae9bafd3b90ba3efbdcbe8901db187','url':'/assets/images/CT-Cardiac.png'},{'revision':'ed0cc538aba90d6a1c029923ca9b47db','url':'/assets/images/CT-Cardiac2.png'},{'revision':'dfdaf4e4889aefbf09514545f45726bb','url':'/assets/images/CT-Cardiac3.png'},{'revision':'5d4b9a331136a1a5d7ce7ccf7dfcca36','url':'/assets/images/CT-Chest-Contrast-Enhanced.png'},{'revision':'5fb264499a5bb42487663b00e42d1513','url':'/assets/images/CT-Chest-Vessels.png'},{'revision':'ab8f0e569c972388ddaaa61b92449fac','url':'/assets/images/CT-Coronary-Arteries-2.png'},{'revision':'e4e7e2e3cc09bc8c4fb03b6441bd2845','url':'/assets/images/CT-Coronary-Arteries-3.png'},{'revision':'79a2962a2d3cbe4bd3b675b5ca83c659','url':'/assets/images/CT-Coronary-Arteries.png'},{'revision':'6502a6bdab1c70e2188c3bf12ce5d4e4','url':'/assets/images/CT-Cropped-Volume-Bone.png'},{'revision':'e28ad3cf5ed2006fc5a7cffd602736fc','url':'/assets/images/CT-Fat.png'},{'revision':'ca1c5be76053edee27e68ffbf9105101','url':'/assets/images/CT-Liver-Vasculature.png'},{'revision':'d6c9ab857ed2ad19f1ff20bea02b6655','url':'/assets/images/CT-Lung.png'},{'revision':'ddb599c6a163bdf28ece8de1a337470a','url':'/assets/images/CT-MIP.png'},{'revision':'0b0dcf7940a555e2a9a0900f7f84d4d3','url':'/assets/images/CT-Muscle.png'},{'revision':'6082d383f9ce375a5873e2a00fc4d372','url':'/assets/images/CT-Pulmonary-Arteries.png'},{'revision':'b317366149ee2607bec95d63eb4d7661','url':'/assets/images/CT-Soft-Tissue.png'},{'revision':'4b0cd5a673ebb71da22a91ed608d6695','url':'/assets/images/DTI-FA-Brain.png'},{'revision':'3ea1cbee022af5b94710b73726308832','url':'/assets/images/MR-Angio.png'},{'revision':'bd25ca7b166193547f34950eed440e5c','url':'/assets/images/MR-Default.png'},{'revision':'2e50a49b859aeb316a1c23f911fce9ad','url':'/assets/images/MR-MIP.png'},{'revision':'6ba74de6961e08652ff9e2f1871b473d','url':'/assets/images/MR-T2-Brain.png'},{'revision':'42406bb474f0f87cf04a5afbbcd5e389','url':'/assets/images/VolumeRendering.png'},{'revision':'2017d95fae79dcf34b5a5b52586d4763','url':'/assets/manifest.webapp'},{'revision':'cb4f64534cdf8dd88f1d7219d44490db','url':'/assets/mstile-144x144.png'},{'revision':'334895225e16a7777e45d81964725a97','url':'/assets/mstile-150x150.png'},{'revision':'e295cca4af6ed0365cf7b014d91b0e9d','url':'/assets/mstile-310x150.png'},{'revision':'cbefa8c42250e5f2443819fe2c69d91e','url':'/assets/mstile-310x310.png'},{'revision':'aa411a69df2b33a1362fa38d1257fa9d','url':'/assets/mstile-70x70.png'},{'revision':'5609af4f69e40e33471aee770ea1d802','url':'/assets/yandex-browser-50x50.png'},{'revision':'dd001f21b3970d5a7f3e245cc10d21df','url':'/assets/yandex-browser-manifest.json'},{'revision':null,'url':'/c22b37c3488e1d6c3aa4.wasm'},{'revision':null,'url':'/compute.bundle.a41ec0ba4f935200ab93.js'},{'revision':'c377e1f5fe4a207d270c3f7a8dd3e3ca','url':'/dicom-microscopy-viewer/charlswasm_decode.wasm'},{'revision':'9214592a1edd456ad2ef69772201398e','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js'},{'revision':'813dee9adb3a3478dedc6dfe1479e15b','url':'/dicom-microscopy-viewer/dataLoader.worker.min.js.map'},{'revision':'fb088ddc5ec5de63aa6095f70baa2d45','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js'},{'revision':'cdf943673c34e8dd6be85b026bdffc70','url':'/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.map'},{'revision':'52b9a07fe0541fe8c313d9788550bf51','url':'/dicom-microscopy-viewer/dicomiccwasm.wasm'},{'revision':'7edb59d2be7c993050cb31ded36afa31','url':'/dicom-microscopy-viewer/libjpegturbowasm_decode.wasm'},{'revision':'54a25d82a224dfd401569baffc8b478d','url':'/dicom-microscopy-viewer/openjpegwasm_decode.wasm'},{'revision':'4acdd19a35d759ec2669f1ba9490937d','url':'/es6-shim.min.js'},{'revision':'92b01d0a387d59841e02cc3a4c994657','url':'/google.js'},{'revision':null,'url':'/histogram-worker.bundle.a2a50c4674d99c619ca7.js'},{'revision':'1755ada12ca41ed2f78e72bbae7fb615','url':'/index.html'},{'revision':'31c0367ca4160b2c6373e905739c5719','url':'/init-service-worker.js'},{'revision':null,'url':'/interpolation.bundle.2559b710030605fc2bc6.js'},{'revision':'74fc9658b62903be2048c1f82a22b4d4','url':'/manifest.json'},{'revision':'3fa71aa0af3e34b4ebd9a71eee0f4bdd','url':'/ohif-logo-light.svg'},{'revision':'7e81da785c63e75650101db6c5d7560e','url':'/ohif-logo.svg'},{'revision':'eadf8bf1d85032a029e2c0df4b8938b0','url':'/oidc-client.min.js'},{'revision':'242abae066a3d4717e09f218703f1923','url':'/ort/cjs/ort.all.min.js'},{'revision':'039ea411b3b655094035e85bb2e245d4','url':'/ort/cjs/ort.all.min.js.map'},{'revision':'fb509ab752acf788c3cc25459ae72e62','url':'/ort/cjs/ort.min.js'},{'revision':'30087ad61fc31272eb6094962e3a0451','url':'/ort/cjs/ort.min.js.map'},{'revision':'0fad6d8ca65291350ca8a1751659a536','url':'/ort/cjs/ort.training.wasm.min.js'},{'revision':'da692fb2cd7f67223b92a90955b87cb3','url':'/ort/cjs/ort.training.wasm.min.js.map'},{'revision':'f471b605fb03df54c63d5bc77a32226b','url':'/ort/cjs/ort.wasm-core.min.js'},{'revision':'cc4475faebff69233b4fdc1a78eb0399','url':'/ort/cjs/ort.wasm-core.min.js.map'},{'revision':'d228221765171d0a4cf3cb3909dd0be3','url':'/ort/cjs/ort.wasm.min.js'},{'revision':'6d132c02e5eeadf4da54c8bcc0c15200','url':'/ort/cjs/ort.wasm.min.js.map'},{'revision':'9a463e37f9550d7a23f5a47076b6b3d8','url':'/ort/cjs/ort.webgl.min.js'},{'revision':'26e251b6aee08c91a3d6e1af1410659d','url':'/ort/cjs/ort.webgl.min.js.map'},{'revision':'5cd623012201d7c5ddbbdb57224ac26d','url':'/ort/cjs/ort.webgpu.min.js'},{'revision':'e53c54f9663a5d7573b66dd3d25fb93a','url':'/ort/cjs/ort.webgpu.min.js.map'},{'revision':'a6b7eb31b5dcf3835a90ea0d201f21e3','url':'/ort/cjs/package.json'},{'revision':'2ccbe0c4397149108dd0d7ced00b5879','url':'/ort/esm/ort.all.min.js'},{'revision':'2b2ff793ba11a59563a504067aa1e469','url':'/ort/esm/ort.all.min.js.map'},{'revision':'978e978337e66e848c2351da61fd7e8e','url':'/ort/esm/ort.min.js'},{'revision':'add9f88f20194b214c8a97b200c4eac0','url':'/ort/esm/ort.min.js.map'},{'revision':'61471773b94ac06d0d814b49cf619233','url':'/ort/esm/ort.training.wasm.min.js'},{'revision':'60057feb2e9c1d39d7e52b165e450e72','url':'/ort/esm/ort.training.wasm.min.js.map'},{'revision':'12635093e14a67921565de89f678c470','url':'/ort/esm/ort.wasm-core.min.js'},{'revision':'1d2c905465e8b47dc023beaf715bb6ae','url':'/ort/esm/ort.wasm-core.min.js.map'},{'revision':'f2780d73ea108c5728b4c4fb6bd1e8df','url':'/ort/esm/ort.wasm.min.js'},{'revision':'e1af0f0e8befaa973a9192cdc1a882fb','url':'/ort/esm/ort.wasm.min.js.map'},{'revision':'c5a2e8ed939ccfb0211336d8b385d81a','url':'/ort/esm/ort.webgl.min.js'},{'revision':'9e0198bc10517578066aed6c8baef1a3','url':'/ort/esm/ort.webgl.min.js.map'},{'revision':'0c96a22438d8ffdf94f13b1693dbed8b','url':'/ort/esm/ort.webgpu.min.js'},{'revision':'24126f825e1c2dd678b4b85cde6c4e3a','url':'/ort/esm/ort.webgpu.min.js.map'},{'revision':'b305354b5d3207dc798e87449005a1de','url':'/ort/esm/package.json'},{'revision':'10ba4d1a5289405cff7d9b5f453b60b4','url':'/ort/ort-training-wasm-simd.wasm'},{'revision':'f7380fb5928344460bac0e5833ee4a82','url':'/ort/ort-wasm-simd-threaded.jsep.wasm'},{'revision':'068e15f5aba004197782c011a782c500','url':'/ort/ort-wasm-simd-threaded.wasm'},{'revision':'8a468bda81bfb9e375907f0b6da8ffee','url':'/ort/ort-wasm-simd.jsep.wasm'},{'revision':'27a8292511e77fc50ced64326875ca4a','url':'/ort/ort-wasm-simd.wasm'},{'revision':'c9cf2d09cfabe6ea517c87620091a2fb','url':'/ort/ort-wasm-threaded.wasm'},{'revision':'88cb0475e8c4228b29dd201646223f0c','url':'/ort/ort-wasm.wasm'},{'revision':'708def774c211a2b036384d9e14dbfe7','url':'/ort/ort.all.js'},{'revision':'32e292212f5767983e5433f0a88d3425','url':'/ort/ort.all.min.js'},{'revision':'c4a4b66af400491c83591ab732dac868','url':'/ort/ort.all.min.js.map'},{'revision':'5d78ec66bcab8a26756d43b8c63a8f1e','url':'/ort/ort.js'},{'revision':'d552a78742409520bd30fb824a88a266','url':'/ort/ort.min.js'},{'revision':'a1fdb4abef4a6130f72148fe469ca114','url':'/ort/ort.min.js.map'},{'revision':'e3b420cb98f192d8755934dde7c014db','url':'/ort/ort.node.min.js'},{'revision':'9b0c2098e6c9b0f6d6e54e8cb434ed76','url':'/ort/ort.node.min.js.map'},{'revision':'722dabcfbb18772ca80ef96ef9b9a036','url':'/ort/ort.training.wasm.min.js'},{'revision':'de35b3d2e302163bdcb80d3e20c84266','url':'/ort/ort.training.wasm.min.js.map'},{'revision':'f92b62229fc36d346f720b2410e63576','url':'/ort/ort.wasm-core.min.js'},{'revision':'8f56640956155afecadc318d8a32e0f6','url':'/ort/ort.wasm-core.min.js.map'},{'revision':'5ac1ffe964e3bd1f0d2e6a3a18a5a1ba','url':'/ort/ort.wasm.min.js'},{'revision':'9b0a74e48529a07b61428b1a48233b39','url':'/ort/ort.wasm.min.js.map'},{'revision':'4591c9c641ab0151b9a8cdc1ce110286','url':'/ort/ort.webgl.min.js'},{'revision':'77e632e10b98c8d10e17bb3071d5cba4','url':'/ort/ort.webgl.min.js.map'},{'revision':'027aca68552f5081e90a08f7fb064fb7','url':'/ort/ort.webgpu.min.js'},{'revision':'12dc9d5c577bac166f0f74590e4d27dd','url':'/ort/ort.webgpu.min.js.map'},{'revision':null,'url':'/polySeg.bundle.be57af5b834dd833a418.js'},{'revision':'a1aef5311245f5864315443d12246c37','url':'/polyfill.min.js'},{'revision':'981ac7f7543b8330e3826aff72c33382','url':'/serve.json'},{'revision':'b1e488d9955b62bd2858874df11d5223','url':'/silent-refresh.html'}]);
54
54
 
55
55
  // TODO: Cache API
56
56
  // https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/cache-api
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ohif/app",
3
- "version": "3.13.0-beta.59",
3
+ "version": "3.13.0-beta.60",
4
4
  "productVersion": "3.4.0",
5
5
  "description": "OHIF Viewer",
6
6
  "author": "OHIF Contributors",
@@ -56,25 +56,25 @@
56
56
  "@cornerstonejs/codec-openjph": "2.4.7",
57
57
  "@cornerstonejs/dicom-image-loader": "4.21.7",
58
58
  "@emotion/serialize": "1.3.3",
59
- "@ohif/core": "3.13.0-beta.59",
60
- "@ohif/extension-cornerstone": "3.13.0-beta.59",
61
- "@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.59",
62
- "@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.59",
63
- "@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.59",
64
- "@ohif/extension-default": "3.13.0-beta.59",
65
- "@ohif/extension-dicom-microscopy": "3.13.0-beta.59",
66
- "@ohif/extension-dicom-pdf": "3.13.0-beta.59",
67
- "@ohif/extension-dicom-video": "3.13.0-beta.59",
68
- "@ohif/extension-test": "3.13.0-beta.59",
69
- "@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.59",
70
- "@ohif/i18n": "3.13.0-beta.59",
71
- "@ohif/mode-basic-dev-mode": "3.13.0-beta.59",
72
- "@ohif/mode-longitudinal": "3.13.0-beta.59",
73
- "@ohif/mode-microscopy": "3.13.0-beta.59",
74
- "@ohif/mode-test": "3.13.0-beta.59",
75
- "@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.59",
76
- "@ohif/ui": "3.13.0-beta.59",
77
- "@ohif/ui-next": "3.13.0-beta.59",
59
+ "@ohif/core": "3.13.0-beta.60",
60
+ "@ohif/extension-cornerstone": "3.13.0-beta.60",
61
+ "@ohif/extension-cornerstone-dicom-rt": "3.13.0-beta.60",
62
+ "@ohif/extension-cornerstone-dicom-seg": "3.13.0-beta.60",
63
+ "@ohif/extension-cornerstone-dicom-sr": "3.13.0-beta.60",
64
+ "@ohif/extension-default": "3.13.0-beta.60",
65
+ "@ohif/extension-dicom-microscopy": "3.13.0-beta.60",
66
+ "@ohif/extension-dicom-pdf": "3.13.0-beta.60",
67
+ "@ohif/extension-dicom-video": "3.13.0-beta.60",
68
+ "@ohif/extension-test": "3.13.0-beta.60",
69
+ "@ohif/extension-ultrasound-pleura-bline": "3.13.0-beta.60",
70
+ "@ohif/i18n": "3.13.0-beta.60",
71
+ "@ohif/mode-basic-dev-mode": "3.13.0-beta.60",
72
+ "@ohif/mode-longitudinal": "3.13.0-beta.60",
73
+ "@ohif/mode-microscopy": "3.13.0-beta.60",
74
+ "@ohif/mode-test": "3.13.0-beta.60",
75
+ "@ohif/mode-ultrasound-pleura-bline": "3.13.0-beta.60",
76
+ "@ohif/ui": "3.13.0-beta.60",
77
+ "@ohif/ui-next": "3.13.0-beta.60",
78
78
  "@svgr/webpack": "8.1.0",
79
79
  "@types/react": "18.3.23",
80
80
  "classnames": "2.5.1",