@ohif/app 3.12.0 → 3.12.1

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 (68) hide show
  1. package/dist/{1403.bundle.1c9ce804d1e88033e276.js → 1403.bundle.761239eb886a88301851.js} +33 -35
  2. package/dist/{1459.bundle.e8802999a4d7f7edf628.js → 1459.bundle.fcdd0dec6286845179bf.js} +5 -6
  3. package/dist/{147.bundle.37d627289453cb6c3937.js → 147.bundle.47af018b91121924a12c.js} +4 -3
  4. package/dist/{1608.bundle.0687c661f1c9edfb3b8a.js → 1608.bundle.b9abbf4ed6cc2e491dc3.js} +6 -6
  5. package/dist/{1730.bundle.66a5e554ab20dab97b11.js → 1730.bundle.51e69967a025226592cd.js} +34 -35
  6. package/dist/{1927.bundle.3050588e95f43cf57cdd.js → 1927.bundle.be67b3aafe238ca9f191.js} +27 -38
  7. package/dist/{1933.bundle.682f142e3217d4c7fbf7.js → 1933.bundle.e3ba7d4dcbbd75701d8e.js} +12 -14
  8. package/dist/{2018.bundle.c06693143228cc034cb9.js → 2018.bundle.45c44470b4b098aa343f.js} +18 -19
  9. package/dist/{2108.bundle.e84aa8d858d8c4f2413e.js → 2108.bundle.aea8d3b39486dd5ab39e.js} +569 -558
  10. package/dist/{213.bundle.c2d4d7370c26b0823880.js → 213.bundle.863ab5d320fc06043a4e.js} +3 -5
  11. package/dist/{3584.bundle.8cc0750425513433e9cc.js → 2199.bundle.974037f21bfd12c4e8af.js} +241 -2219
  12. package/dist/{2424.bundle.c1e287e752f352b76543.js → 2424.bundle.b070e83baf101dad2121.js} +3 -5
  13. package/dist/{2516.bundle.1ea0988d309a757bb6da.js → 2516.bundle.f62228e9a800de8d4b31.js} +6 -6
  14. package/dist/{2701.bundle.12bd01a80a9f8ea4cd94.js → 2701.bundle.58a6a580073edbb4cc04.js} +5 -5
  15. package/dist/{2842.bundle.860b9f10fcdd9656947a.js → 2816.bundle.838fa4d72921c026083c.js} +827 -2240
  16. package/dist/{9195.bundle.606ca286a0fed8a43f58.js → 2851.bundle.70227d013c1937e846be.js} +174 -79
  17. package/dist/{3081.bundle.41838985e0472851eadb.js → 3081.bundle.930757b1a5aa8549e112.js} +109 -145
  18. package/dist/{3343.bundle.d7578ce8f75d158c0bab.js → 3343.bundle.a4424b8418b8c0c1a9e4.js} +25 -25
  19. package/dist/{3461.bundle.a8fcefd1c6e389d905fc.js → 3461.bundle.ab31c31a5ddc4baa72f7.js} +19 -23
  20. package/dist/{4202.bundle.5a0f8e4004c5d8a68548.js → 4202.bundle.4f76d3a50d6cf819fba0.js} +4 -4
  21. package/dist/{4019.bundle.83a604779f7da0101ced.js → 4287.bundle.87e14e648f2bce5e4176.js} +177 -202
  22. package/dist/{4775.bundle.70bc407db26afaa4331a.js → 4775.bundle.768f00df706f506f3789.js} +33 -35
  23. package/dist/{4819.bundle.47e7aa44747ddab3a39a.js → 4819.bundle.6377aba4cf194120e7d4.js} +27 -28
  24. package/dist/{5028.bundle.274945a9ae69c6b6ad51.js → 5028.bundle.3a086ff61ec8dc1da4b1.js} +7 -9
  25. package/dist/{5261.bundle.6e1a017f8f1027557f5b.js → 5261.bundle.2655560097e9250eac44.js} +412 -345
  26. package/dist/{5457.bundle.f7de73bcfe1012a73b9f.js → 5457.bundle.0063531ed24c06fba48b.js} +16 -23
  27. package/dist/{5462.bundle.21beddaca145b7465c72.js → 5462.bundle.d5bb9b3ddc510fea141f.js} +1106 -1030
  28. package/dist/{5485.bundle.4e0ec03c61ec5cadd9bb.js → 5485.bundle.b523d7015979fc641f7e.js} +14 -29
  29. package/dist/{5491.bundle.2e01dd7ad29e4cc01bc1.js → 5491.bundle.4866d2ecb20dd089e071.js} +54 -51
  30. package/dist/5724.bundle.62ea5c07c7809ab4cd74.js +297 -0
  31. package/dist/5724.css +2 -0
  32. package/dist/{5802.bundle.3bf5e6b3ab330a594a47.js → 5802.bundle.ae4d88742c353de462c2.js} +7 -6
  33. package/dist/{5830.bundle.b073c265c4fcea1afff3.js → 5830.bundle.791019deddd536980a11.js} +3 -3
  34. package/dist/{5858.bundle.ff6b340cf7457db76a1a.js → 5858.bundle.466e58128de344ab53f3.js} +90 -86
  35. package/dist/{6027.bundle.2b12862684b0cb3af4b4.js → 6027.bundle.3cf6c827b4ce9066b426.js} +3 -5
  36. package/dist/{6163.bundle.ca93a4e6501880901f94.js → 6163.bundle.ac77880c970e788c9a07.js} +29 -31
  37. package/dist/{997.bundle.822b33e561263084e18c.js → 6280.bundle.f22f9955eb906e1d7da8.js} +1535 -931
  38. package/dist/{6347.bundle.784c48912700f281de1d.js → 6347.bundle.f8393c20d5159ed41b64.js} +36 -36
  39. package/dist/{6354.bundle.c387737dc09c9cab4ff2.js → 6354.bundle.d8a592b03e9a5b7a66c2.js} +102 -96
  40. package/dist/{6376.bundle.272e755bdcbb5615a44e.js → 6376.bundle.527820a5cb1eece2a8d2.js} +6 -6
  41. package/dist/{6409.bundle.b36048896cb11c8571fb.js → 6409.bundle.24edbaa283b7c521b8f7.js} +73 -73
  42. package/dist/6939.bundle.41fbdef87597b5172ec6.js +3 -3
  43. package/dist/7159.bundle.a5991a5d4f0dd8f1c95f.js +3 -3
  44. package/dist/{7190.bundle.d731ae6cf6e933a2c408.js → 7190.bundle.479332d662ffe08d1f92.js} +1462 -955
  45. package/dist/{732.bundle.6978ac30a1e36abf06db.js → 732.bundle.ea6f9d8504e37e01a208.js} +5 -13
  46. package/dist/{7431.bundle.b01791d10e6cf9f503b0.js → 7431.bundle.b31ebb4a2625e89d864e.js} +28 -28
  47. package/dist/{7639.bundle.32152cacb059089ed7d7.js → 7639.bundle.0147cdd1c23858221b62.js} +3 -5
  48. package/dist/7758.bundle.c8d106364298e7d288f0.js +3 -3
  49. package/dist/{8094.bundle.5c44190a325ac23e3e5c.js → 8094.bundle.148a66619607e37cbf19.js} +3 -4
  50. package/dist/{8305.bundle.2ede68ba3c075928c9f4.js → 8305.bundle.565339762503b9ae4f59.js} +10 -12
  51. package/dist/{85.bundle.05591d5a14d74a502dfe.js → 85.bundle.b2365b2e4c3c6935f453.js} +3 -5
  52. package/dist/{8558.bundle.3e84c4ba2c7ec6fce52c.js → 8558.bundle.9af6d13a22ddb44ea766.js} +28 -30
  53. package/dist/{8583.bundle.2908eee785e7e4595d14.js → 8583.bundle.f51188077125da303398.js} +14 -16
  54. package/dist/{4410.bundle.c5224cd7d6238a7d4660.js → 8665.bundle.dc56c125411422f9f686.js} +3459 -1386
  55. package/dist/{7412.bundle.fab1742191b7fe937330.js → 9205.bundle.2a2f38a4ee23647f5fa4.js} +3162 -1074
  56. package/dist/{9845.bundle.255e7c7f7a88193b4e47.js → 9845.bundle.31f3e7e2d28fa6033ee5.js} +6 -6
  57. package/dist/{9862.bundle.3a8958a82c572015d25d.js → 9862.bundle.73ea2a7703bf1bb96275.js} +6 -4
  58. package/dist/{9927.bundle.e798a347dfe1f241578f.js → 9927.bundle.af31e6ce5cac195607fd.js} +3 -5
  59. package/dist/app-config.js +12 -0
  60. package/dist/{app.bundle.26b7eafdf05b5445414b.js → app.bundle.b2817894afde20b59bdb.js} +91406 -90538
  61. package/dist/app.bundle.css +1 -1
  62. package/dist/{polySeg.bundle.a5aa9130b4191253c410.js → compute.bundle.73440405025831e0e072.js} +8 -20
  63. package/dist/{histogram-worker.bundle.d4e40a8018d2698b072e.js → histogram-worker.bundle.5b679ce4142c803c80a4.js} +11 -23
  64. package/dist/index.html +1 -1
  65. package/dist/{interpolation.bundle.1938b79f9d6db363528a.js → interpolation.bundle.7554483d97f6119414f9.js} +14 -26
  66. package/dist/{compute.bundle.64280c7af19ff567465f.js → polySeg.bundle.6373e24bd578ae0d41eb.js} +10 -22
  67. package/dist/sw.js +1 -1
  68. package/package.json +20 -20
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[9195],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[2851],{
3
3
 
4
- /***/ 52675:
5
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4
+ /***/ 52675
5
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6
6
 
7
7
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8
8
  /* harmony export */ A: () => (/* binding */ MoreDropdownMenu)
@@ -110,10 +110,10 @@ function MoreDropdownMenu(bindProps) {
110
110
  return BoundMoreDropdownMenu;
111
111
  }
112
112
 
113
- /***/ }),
113
+ /***/ },
114
114
 
115
- /***/ 40565:
116
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
115
+ /***/ 40565
116
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
117
117
 
118
118
 
119
119
  // EXPORTS
@@ -613,10 +613,10 @@ function _findTabAndStudyOfDisplaySet(displaySetInstanceUID, tabs, currentTabNam
613
613
  }
614
614
  }
615
615
 
616
- /***/ }),
616
+ /***/ },
617
617
 
618
- /***/ 3329:
619
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
618
+ /***/ 3329
619
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
620
620
 
621
621
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
622
622
  /* harmony export */ T: () => (/* binding */ PanelStudyBrowserHeader)
@@ -665,10 +665,10 @@ function PanelStudyBrowserHeader({
665
665
  }
666
666
 
667
667
 
668
- /***/ }),
668
+ /***/ },
669
669
 
670
- /***/ 20528:
671
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
670
+ /***/ 20528
671
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
672
672
 
673
673
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
674
674
  /* harmony export */ M: () => (/* binding */ Toolbar)
@@ -747,66 +747,41 @@ function Toolbar({
747
747
  }));
748
748
  }
749
749
 
750
- /***/ }),
750
+ /***/ },
751
751
 
752
- /***/ 39195:
753
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
752
+ /***/ 62851
753
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
754
754
 
755
- // ESM COMPAT FLAG
756
- __webpack_require__.r(__webpack_exports__);
757
755
 
758
756
  // EXPORTS
759
757
  __webpack_require__.d(__webpack_exports__, {
760
- ContextMenuController: () => (/* reexport */ ContextMenuController),
761
- CustomizableContextMenuTypes: () => (/* reexport */ types_namespaceObject),
762
- MoreDropdownMenu: () => (/* reexport */ MoreDropdownMenu/* default */.A),
763
- PanelStudyBrowserHeader: () => (/* reexport */ PanelStudyBrowserHeader/* PanelStudyBrowserHeader */.T),
764
- StaticWadoClient: () => (/* reexport */ StaticWadoClient),
765
- Toolbar: () => (/* reexport */ Toolbar/* Toolbar */.M),
766
- Toolbox: () => (/* reexport */ Toolbox),
767
- callInputDialog: () => (/* reexport */ callInputDialog),
768
- callInputDialogAutoComplete: () => (/* reexport */ callInputDialogAutoComplete),
769
- cleanDenaturalizedDataset: () => (/* reexport */ cleanDenaturalizedDataset),
770
- colorPickerDialog: () => (/* reexport */ colorPickerDialog),
771
- createReportAsync: () => (/* reexport */ Actions_createReportAsync),
772
- createReportDialogPrompt: () => (/* reexport */ CreateReportDialogPrompt),
758
+ tm: () => (/* reexport */ StaticWadoClient),
759
+ M7: () => (/* reexport */ Toolbar/* Toolbar */.M),
760
+ OO: () => (/* reexport */ Toolbox),
761
+ l5: () => (/* reexport */ callInputDialog),
762
+ fq: () => (/* reexport */ callInputDialogAutoComplete),
763
+ wZ: () => (/* reexport */ cleanDenaturalizedDataset),
764
+ wS: () => (/* reexport */ colorPickerDialog),
765
+ Vy: () => (/* reexport */ Actions_createReportAsync),
766
+ tc: () => (/* reexport */ CreateReportDialogPrompt),
773
767
  "default": () => (/* binding */ default_src),
774
- dicomWebUtils: () => (/* reexport */ utils_namespaceObject),
775
- getStudiesForPatientByMRN: () => (/* reexport */ Panels_getStudiesForPatientByMRN),
776
- promptLabelAnnotation: () => (/* reexport */ utils_promptLabelAnnotation),
777
- promptSaveReport: () => (/* reexport */ utils_promptSaveReport),
778
- requestDisplaySetCreationForStudy: () => (/* reexport */ Panels_requestDisplaySetCreationForStudy),
779
- useDisplaySetSelectorStore: () => (/* reexport */ useDisplaySetSelectorStore),
780
- useHangingProtocolStageIndexStore: () => (/* reexport */ useHangingProtocolStageIndexStore),
781
- usePatientInfo: () => (/* reexport */ hooks_usePatientInfo),
782
- useToggleHangingProtocolStore: () => (/* reexport */ useToggleHangingProtocolStore),
783
- useToggleOneUpViewportGridStore: () => (/* reexport */ useToggleOneUpViewportGridStore),
784
- useUIStateStore: () => (/* reexport */ useUIStateStore),
785
- useViewportGridStore: () => (/* reexport */ useViewportGridStore),
786
- useViewportsByPositionStore: () => (/* reexport */ useViewportsByPositionStore),
787
- utils: () => (/* reexport */ src_utils_namespaceObject)
768
+ CA: () => (/* reexport */ utils_namespaceObject),
769
+ uR: () => (/* reexport */ utils_promptLabelAnnotation),
770
+ MP: () => (/* reexport */ utils_promptSaveReport),
771
+ Z: () => (/* reexport */ Panels_requestDisplaySetCreationForStudy),
772
+ Yd: () => (/* reexport */ useToggleOneUpViewportGridStore),
773
+ FS: () => (/* reexport */ useUIStateStore)
788
774
  });
789
775
 
790
- // NAMESPACE OBJECT: ../../../extensions/default/src/CustomizableContextMenu/types.ts
791
- var types_namespaceObject = {};
792
- __webpack_require__.r(types_namespaceObject);
776
+ // UNUSED EXPORTS: ContextMenuController, CustomizableContextMenuTypes, MoreDropdownMenu, PanelStudyBrowserHeader, getStudiesForPatientByMRN, useDisplaySetSelectorStore, useHangingProtocolStageIndexStore, usePatientInfo, useToggleHangingProtocolStore, useViewportGridStore, useViewportsByPositionStore, utils
793
777
 
794
778
  // NAMESPACE OBJECT: ../../../extensions/default/src/DicomWebDataSource/utils/index.ts
795
779
  var utils_namespaceObject = {};
796
780
  __webpack_require__.r(utils_namespaceObject);
797
781
  __webpack_require__.d(utils_namespaceObject, {
798
- cleanDenaturalizedDataset: () => (cleanDenaturalizedDataset),
799
- fixBulkDataURI: () => (fixBulkDataURI),
800
- fixMultiValueKeys: () => (fixMultiValueKeys),
801
- transferDenaturalizedDataset: () => (transferDenaturalizedDataset)
802
- });
803
-
804
- // NAMESPACE OBJECT: ../../../extensions/default/src/utils/index.ts
805
- var src_utils_namespaceObject = {};
806
- __webpack_require__.r(src_utils_namespaceObject);
807
- __webpack_require__.d(src_utils_namespaceObject, {
808
- Toolbox: () => (Toolbox),
809
- addIcon: () => (addIcon)
782
+ wZ: () => (cleanDenaturalizedDataset),
783
+ Uk: () => (fixMultiValueKeys),
784
+ If: () => (transferDenaturalizedDataset)
810
785
  });
811
786
 
812
787
  // EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
@@ -2739,12 +2714,97 @@ function retrieveBulkData(value, options = {}) {
2739
2714
 
2740
2715
  // EXTERNAL MODULE: ../../../node_modules/query-string/index.js
2741
2716
  var query_string = __webpack_require__(98985);
2717
+ ;// ../../../extensions/default/src/utils/secureConfigFetch.js
2718
+ // @ts-nocheck
2719
+
2720
+ function normalizeAllowedOrigins(allowedOrigins = []) {
2721
+ if (!Array.isArray(allowedOrigins)) {
2722
+ return [];
2723
+ }
2724
+ const configuredOrigins = allowedOrigins.filter(origin => typeof origin === 'string').map(origin => origin.trim()).filter(Boolean);
2725
+ return configuredOrigins.map(origin => {
2726
+ try {
2727
+ const parsedOrigin = new URL(origin);
2728
+ if (!['http:', 'https:'].includes(parsedOrigin.protocol)) {
2729
+ console.error(`[secureConfigFetch] Ignoring misconfigured allowed origin "${origin}". ` + 'Entries must use http:// or https://.');
2730
+ return null;
2731
+ }
2732
+ if (parsedOrigin.username || parsedOrigin.password || parsedOrigin.pathname !== '/' || parsedOrigin.search || parsedOrigin.hash) {
2733
+ 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.');
2734
+ return null;
2735
+ }
2736
+ return parsedOrigin.origin;
2737
+ } catch {
2738
+ console.error(`[secureConfigFetch] Ignoring misconfigured allowed origin "${origin}". Entry is not a valid URL.`);
2739
+ return null;
2740
+ }
2741
+ }).filter(Boolean);
2742
+ }
2743
+ function resolveConfigUrl(rawUrl) {
2744
+ if (!rawUrl || typeof rawUrl !== 'string') {
2745
+ throw new Error('Missing required "url" query parameter');
2746
+ }
2747
+ try {
2748
+ return new URL(rawUrl, window.location.href);
2749
+ } catch {
2750
+ throw new Error('Invalid URL in "url" query parameter');
2751
+ }
2752
+ }
2753
+ function resolveConfigFetchPolicy(rawUrl, policy = {}) {
2754
+ const {
2755
+ allowedOrigins = [],
2756
+ userAuthenticationService
2757
+ } = policy;
2758
+ const parsedUrl = resolveConfigUrl(rawUrl);
2759
+ const protocol = parsedUrl.protocol.toLowerCase();
2760
+ const isSameOrigin = parsedUrl.origin === window.location.origin;
2761
+ if (!['http:', 'https:'].includes(protocol)) {
2762
+ throw new Error('Only HTTP(S) URLs are allowed for dynamic datasource configuration');
2763
+ }
2764
+ if (parsedUrl.hash) {
2765
+ throw new Error('URL fragments are not allowed for dynamic datasource configuration');
2766
+ }
2767
+ if (parsedUrl.username || parsedUrl.password) {
2768
+ throw new Error('URL userinfo is not allowed for dynamic datasource configuration');
2769
+ }
2770
+ const isAuthenticated = Boolean(userAuthenticationService?.getAuthorizationHeader?.()?.Authorization);
2771
+ if (isAuthenticated && !isSameOrigin) {
2772
+ const normalizedAllowedOrigins = normalizeAllowedOrigins(allowedOrigins);
2773
+ if (!normalizedAllowedOrigins.length || !normalizedAllowedOrigins.includes(parsedUrl.origin)) {
2774
+ throw new Error(`Blocked remote configuration origin "${parsedUrl.origin}" in authenticated environment`);
2775
+ }
2776
+ }
2777
+ return {
2778
+ parsedUrl,
2779
+ normalizedUrl: parsedUrl.toString(),
2780
+ isAuthenticated,
2781
+ isSameOrigin
2782
+ };
2783
+ }
2784
+ async function fetchConfigJson(normalizedPolicy) {
2785
+ const {
2786
+ normalizedUrl
2787
+ } = normalizedPolicy;
2788
+ const response = await fetch(normalizedUrl, {
2789
+ method: 'GET',
2790
+ mode: 'cors',
2791
+ credentials: 'same-origin',
2792
+ redirect: 'error',
2793
+ referrerPolicy: 'no-referrer'
2794
+ });
2795
+ if (!response.ok) {
2796
+ throw new Error(`Failed to fetch dynamic datasource configuration (${response.status})`);
2797
+ }
2798
+ return response.json();
2799
+ }
2800
+
2742
2801
  ;// ../../../extensions/default/src/DicomJSONDataSource/index.js
2743
2802
 
2744
2803
 
2745
2804
 
2746
2805
 
2747
2806
 
2807
+
2748
2808
  const DicomJSONDataSource_metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
2749
2809
  const mappings = {
2750
2810
  studyInstanceUid: 'StudyInstanceUID',
@@ -2791,7 +2851,10 @@ const findStudies = (key, value) => {
2791
2851
  });
2792
2852
  return studies;
2793
2853
  };
2794
- function createDicomJSONApi(dicomJsonConfig) {
2854
+ function createDicomJSONApi(dicomJsonConfig, servicesManager) {
2855
+ const {
2856
+ userAuthenticationService
2857
+ } = servicesManager.services;
2795
2858
  const implementation = {
2796
2859
  initialize: async ({
2797
2860
  query,
@@ -2800,7 +2863,11 @@ function createDicomJSONApi(dicomJsonConfig) {
2800
2863
  if (!url) {
2801
2864
  url = query.get('url');
2802
2865
  }
2803
- let metaData = getMetaDataByURL(url);
2866
+ const evaluatedUrl = resolveConfigFetchPolicy(url, {
2867
+ allowedOrigins: dicomJsonConfig.dangerouslyAllowedOriginsForAuthenticatedEnvironments,
2868
+ userAuthenticationService
2869
+ });
2870
+ let metaData = getMetaDataByURL(evaluatedUrl.normalizedUrl);
2804
2871
 
2805
2872
  // if we have already cached the data from this specific url
2806
2873
  // We are only handling one StudyInstanceUID to run; however,
@@ -2810,8 +2877,7 @@ function createDicomJSONApi(dicomJsonConfig) {
2810
2877
  return aStudy.StudyInstanceUID;
2811
2878
  });
2812
2879
  }
2813
- const response = await fetch(url);
2814
- const data = await response.json();
2880
+ const data = await fetchConfigJson(evaluatedUrl);
2815
2881
  let StudyInstanceUID;
2816
2882
  let SeriesInstanceUID;
2817
2883
  data.studies.forEach(study => {
@@ -2841,10 +2907,10 @@ function createDicomJSONApi(dicomJsonConfig) {
2841
2907
  });
2842
2908
  });
2843
2909
  _store.urls.push({
2844
- url,
2910
+ url: evaluatedUrl.normalizedUrl,
2845
2911
  studies: [...data.studies]
2846
2912
  });
2847
- _store.studyInstanceUIDMap.set(url, data.studies.map(study => study.StudyInstanceUID));
2913
+ _store.studyInstanceUIDMap.set(evaluatedUrl.normalizedUrl, data.studies.map(study => study.StudyInstanceUID));
2848
2914
  },
2849
2915
  query: {
2850
2916
  studies: {
@@ -2979,6 +3045,8 @@ function createDicomJSONApi(dicomJsonConfig) {
2979
3045
  console.warn(' DICOMJson store dicom not implemented');
2980
3046
  }
2981
3047
  },
3048
+ reject: {},
3049
+ deleteStudyMetadataPromise: () => {},
2982
3050
  getImageIdsForDisplaySet(displaySet) {
2983
3051
  const images = displaySet.images;
2984
3052
  const imageIds = [];
@@ -3037,8 +3105,20 @@ function createDicomJSONApi(dicomJsonConfig) {
3037
3105
  query
3038
3106
  }) => {
3039
3107
  const url = query.get('url');
3040
- return _store.studyInstanceUIDMap.get(url);
3041
- }
3108
+ if (!url) {
3109
+ return;
3110
+ }
3111
+ try {
3112
+ const evaluatedUrl = resolveConfigFetchPolicy(url, {
3113
+ allowedOrigins: dicomJsonConfig.dangerouslyAllowedOriginsForAuthenticatedEnvironments,
3114
+ userAuthenticationService
3115
+ });
3116
+ return _store.studyInstanceUIDMap.get(evaluatedUrl.normalizedUrl);
3117
+ } catch {
3118
+ return;
3119
+ }
3120
+ },
3121
+ getConfig: () => dicomJsonConfig
3042
3122
  };
3043
3123
  return src/* IWebApiDataSource */.pt.create(implementation);
3044
3124
  }
@@ -3307,6 +3387,7 @@ function createDicomLocalApi(dicomLocalConfig) {
3307
3387
 
3308
3388
 
3309
3389
 
3390
+
3310
3391
  /**
3311
3392
  * This datasource is initialized with a url that returns a JSON object with a
3312
3393
  * dicomWeb datasource configuration array present in a "servers" object.
@@ -3319,6 +3400,9 @@ function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager) {
3319
3400
  const {
3320
3401
  name
3321
3402
  } = dicomWebProxyConfig;
3403
+ const {
3404
+ userAuthenticationService
3405
+ } = servicesManager.services;
3322
3406
  let dicomWebDelegate = undefined;
3323
3407
  const implementation = {
3324
3408
  initialize: async ({
@@ -3329,8 +3413,11 @@ function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager) {
3329
3413
  if (!url) {
3330
3414
  throw new Error(`No url for '${name}'`);
3331
3415
  } else {
3332
- const response = await fetch(url);
3333
- const data = await response.json();
3416
+ const evaluatedUrl = resolveConfigFetchPolicy(url, {
3417
+ allowedOrigins: dicomWebProxyConfig.dangerouslyAllowedOriginsForAuthenticatedEnvironments,
3418
+ userAuthenticationService
3419
+ });
3420
+ const data = await fetchConfigJson(evaluatedUrl);
3334
3421
  if (!data.servers?.dicomWeb?.[0]) {
3335
3422
  throw new Error('Invalid configuration returned by url');
3336
3423
  }
@@ -3361,9 +3448,15 @@ function createDicomWebProxyApi(dicomWebProxyConfig, servicesManager) {
3361
3448
  store: {
3362
3449
  dicom: (...args) => dicomWebDelegate.store.dicom(...args)
3363
3450
  },
3364
- deleteStudyMetadataPromise: (...args) => dicomWebDelegate.deleteStudyMetadataPromise(...args),
3365
- getImageIdsForDisplaySet: (...args) => dicomWebDelegate.getImageIdsForDisplaySet(...args),
3366
- getImageIdsForInstance: (...args) => dicomWebDelegate.getImageIdsForInstance(...args),
3451
+ reject: {
3452
+ series: (...args) => dicomWebDelegate?.reject?.series?.(...args)
3453
+ },
3454
+ deleteStudyMetadataPromise: (...args) => dicomWebDelegate?.deleteStudyMetadataPromise?.(...args),
3455
+ getImageIdsForDisplaySet: (...args) => dicomWebDelegate?.getImageIdsForDisplaySet?.(...args),
3456
+ getImageIdsForInstance: (...args) => dicomWebDelegate?.getImageIdsForInstance?.(...args),
3457
+ getConfig: (...args) => dicomWebDelegate?.getConfig?.(...args) ?? {
3458
+ dicomUploadEnabled: false
3459
+ },
3367
3460
  getStudyInstanceUIDs({
3368
3461
  params,
3369
3462
  query
@@ -5847,6 +5940,7 @@ function ToolButtonWrapper(props) {
5847
5940
  }
5848
5941
 
5849
5942
  ;// ../../../extensions/default/src/Toolbar/ToolbarDivider.tsx
5943
+ /* unused harmony import specifier */ var React;
5850
5944
 
5851
5945
  function ToolbarDivider() {
5852
5946
  return /*#__PURE__*/React.createElement("span", {
@@ -10422,8 +10516,8 @@ function AboutModalDefault() {
10422
10516
  name
10423
10517
  } = (0,browser_detect_es5/* default */.A)();
10424
10518
  const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`;
10425
- const versionNumber = "3.12.0";
10426
- const commitHash = "27b1afe040061c6afc15bf131e28cdff3a5f0ec7";
10519
+ const versionNumber = "3.12.1";
10520
+ const commitHash = "647fd025cf7212acc03b66807974f5d0f8ba0708";
10427
10521
  const [main, beta] = versionNumber.split('-');
10428
10522
  return /*#__PURE__*/react.createElement(ui_next_src/* AboutModal */.VTU, {
10429
10523
  className: "w-[400px]"
@@ -11615,11 +11709,12 @@ function promptLabelAnnotation({
11615
11709
  // EXTERNAL MODULE: ../../../extensions/default/src/Panels/StudyBrowser/PanelStudyBrowserHeader.tsx
11616
11710
  var PanelStudyBrowserHeader = __webpack_require__(3329);
11617
11711
  ;// ../../../extensions/default/src/utils/addIcon.ts
11712
+ /* unused harmony import specifier */ var Icons;
11618
11713
 
11619
11714
 
11620
11715
  /** Adds the icon to both ui and ui-next */
11621
11716
  function addIcon(name, icon) {
11622
- ui_next_src/* Icons */.FI1.addIcon(name, icon);
11717
+ Icons.addIcon(name, icon);
11623
11718
  }
11624
11719
  ;// ../../../extensions/default/src/utils/Toolbox.tsx
11625
11720
  function Toolbox_extends() { return Toolbox_extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, Toolbox_extends.apply(null, arguments); }
@@ -11811,10 +11906,10 @@ const defaultExtension = {
11811
11906
  /* harmony default export */ const default_src = (defaultExtension);
11812
11907
 
11813
11908
 
11814
- /***/ }),
11909
+ /***/ },
11815
11910
 
11816
- /***/ 96357:
11817
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11911
+ /***/ 96357
11912
+ (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11818
11913
 
11819
11914
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11820
11915
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
@@ -11829,6 +11924,6 @@ const RESPONSE = {
11829
11924
  };
11830
11925
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RESPONSE);
11831
11926
 
11832
- /***/ })
11927
+ /***/ }
11833
11928
 
11834
11929
  }]);