@ohif/app 3.13.0-beta.113 → 3.13.0-beta.115
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.
- package/dist/{100.bundle.1e7f2ba6d6ed33e3.js → 100.bundle.035bd530ed70dd3a.js} +2 -2
- package/dist/{1180.bundle.bb27058985d5740b.js → 1180.bundle.cd693bf1778988e5.js} +2 -2
- package/dist/{1206.bundle.79ed23079c78f18d.js → 1206.bundle.ecd5aaaca8466ba5.js} +2 -2
- package/dist/{1602.bundle.8e39d785591d90e6.js → 1602.bundle.fbca1a90e1493555.js} +4 -4
- package/dist/{2779.bundle.7097223e679de243.js → 2779.bundle.37dc7ddc085858b1.js} +2 -2
- package/dist/{3500.bundle.e914b320238105da.js → 3500.bundle.48f2de01d8c645ed.js} +3 -3
- package/dist/{3760.bundle.a879875c6b24ae95.js → 3760.bundle.cfecd5e3a3284c7a.js} +4 -4
- package/dist/419.bundle.19d9788d62569ec7.js +655 -0
- package/dist/{4834.bundle.63b105e0bedff005.js → 4834.bundle.e0e26ec9f1421cb2.js} +2 -2
- package/dist/{5189.bundle.86d3023e7ec28a8f.js → 5189.bundle.bf053e2e1c064914.js} +2 -2
- package/dist/{5448.bundle.8cda5b8e4baea275.js → 5448.bundle.1e50777e4c4e122a.js} +1 -1
- package/dist/{5696.bundle.b7def2862ca04c3e.js → 5696.bundle.04f16de39c05e393.js} +3 -3
- package/dist/{5708.bundle.692571d1d6197715.js → 5708.bundle.11a7422bd81705fc.js} +4 -4
- package/dist/{5910.bundle.c1199bd45e450735.js → 5910.bundle.5561806884c95754.js} +4 -4
- package/dist/{6001.bundle.1e17f446db27ab06.js → 6001.bundle.c3d1d7477b3173c9.js} +4 -4
- package/dist/{7231.bundle.791409f68df0de05.js → 7231.bundle.32e096be83a5dece.js} +8 -6
- package/dist/{7248.bundle.e45e26eeff5bc0ab.js → 7248.bundle.81fd80535e9b7e77.js} +5 -5
- package/dist/{7295.bundle.61edd77d1b86b799.js → 7295.bundle.231040ddfcde9f72.js} +6 -6
- package/dist/{7463.bundle.afe57ad10829df20.js → 7463.bundle.40668aa8d083d077.js} +2 -2
- package/dist/{414.bundle.098d66591e6368f4.js → 7701.bundle.2a0e55d235e87630.js} +665 -17
- package/dist/{8007.bundle.bc2856ea25d6acdd.js → 8007.bundle.3c124044acfcbb0c.js} +18 -12
- package/dist/{8423.bundle.075e8b5b25da4d47.js → 8423.bundle.ea4957f1ce64487a.js} +2 -2
- package/dist/{8832.bundle.1527b17becc2b22b.js → 8832.bundle.7c9292f59d3eb033.js} +3 -3
- package/dist/{899.bundle.6f855ae8df39327e.js → 899.bundle.221329ac8cec3022.js} +2 -2
- package/dist/{9068.bundle.29adebcfccb4bc8e.js → 9068.bundle.cd36fcb4e15a153e.js} +4 -4
- package/dist/{9116.bundle.ee35c08c265f0df3.js → 9116.bundle.164eb4cacb8b0f8f.js} +2 -2
- package/dist/{9415.bundle.f5c741386f7992f2.js → 9415.bundle.4ac6ceb3a8bc509a.js} +4 -4
- package/dist/{9437.bundle.58944991bfee599b.js → 9437.bundle.be34e21e666a7bcc.js} +2 -2
- package/dist/app-config.js +42 -251
- package/dist/{app.bundle.0880918724f7f488.js → app.bundle.9c8087b3a0d9b2ba.js} +2470 -148
- package/dist/customizations/ctPresets.jsonc +21 -0
- package/dist/customizations/measurementLabels.jsonc +23 -0
- package/dist/customizations/patientBirthDate.jsonc +34 -0
- package/dist/customizations/smoothRotate.jsonc +42 -0
- package/dist/customizations/veterinary.jsonc +5 -0
- package/dist/customizations/veterinaryOverlay.jsonc +56 -0
- package/dist/index.html +1 -1
- package/dist/sw.js +2 -2
- package/package.json +5 -5
- package/dist/2666.bundle.ab47b38f402e29c6.js +0 -1271
- /package/dist/{379.bundle.75b0fb722268f037.js → 379.bundle.4b932c0de4372bc3.js} +0 -0
- /package/dist/{4556.bundle.b9c2595d0c6be8a1.js → 4556.bundle.ccdf4244832f50e3.js} +0 -0
- /package/dist/{4683.bundle.d6a79bb4ed36a3a2.js → 4683.bundle.90596a310b9feaad.js} +0 -0
- /package/dist/{6650.bundle.defab1d01ae0dcba.js → 6650.bundle.ac76eb90d6f8a353.js} +0 -0
- /package/dist/{9290.bundle.c9088a82d7624c95.js → 9290.bundle.4fab16e015cc0858.js} +0 -0
|
@@ -6,7 +6,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
6
6
|
});
|
|
7
7
|
/* import */ var react__rspack_import_0 = __webpack_require__(86326);
|
|
8
8
|
/* import */ var _ohif_ui_next__rspack_import_1 = __webpack_require__(39987);
|
|
9
|
-
/* import */ var _ohif_core__rspack_import_2 = __webpack_require__(
|
|
9
|
+
/* import */ var _ohif_core__rspack_import_2 = __webpack_require__(50679);
|
|
10
10
|
function _extends() { return _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; }, _extends.apply(null, arguments); }
|
|
11
11
|
|
|
12
12
|
|
|
@@ -119,8 +119,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
119
119
|
var react = __webpack_require__(86326);
|
|
120
120
|
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 3682 modules
|
|
121
121
|
var src = __webpack_require__(39987);
|
|
122
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
123
|
-
var core_src = __webpack_require__(
|
|
122
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
123
|
+
var core_src = __webpack_require__(50679);
|
|
124
124
|
// EXTERNAL MODULE: ../../../node_modules/react-router-dom/dist/index.js
|
|
125
125
|
var dist = __webpack_require__(4194);
|
|
126
126
|
// EXTERNAL MODULE: ../../../extensions/default/src/Panels/StudyBrowser/PanelStudyBrowserHeader.tsx
|
|
@@ -660,7 +660,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
660
660
|
M: () => (Toolbar)
|
|
661
661
|
});
|
|
662
662
|
/* import */ var react__rspack_import_0 = __webpack_require__(86326);
|
|
663
|
-
/* import */ var _ohif_core__rspack_import_1 = __webpack_require__(
|
|
663
|
+
/* import */ var _ohif_core__rspack_import_1 = __webpack_require__(50679);
|
|
664
664
|
function _extends() { return _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; }, _extends.apply(null, arguments); }
|
|
665
665
|
|
|
666
666
|
|
|
@@ -768,8 +768,8 @@ __webpack_require__.d(utils_namespaceObject, {
|
|
|
768
768
|
|
|
769
769
|
// EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
|
|
770
770
|
var dicomweb_client_es = __webpack_require__(83562);
|
|
771
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
772
|
-
var src = __webpack_require__(
|
|
771
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
772
|
+
var src = __webpack_require__(50679);
|
|
773
773
|
// EXTERNAL MODULE: ../../core/src/utils/sortStudy.ts
|
|
774
774
|
var sortStudy = __webpack_require__(28395);
|
|
775
775
|
;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebDataSource/qido.js
|
|
@@ -831,6 +831,8 @@ function processResults(qidoStudies) {
|
|
|
831
831
|
mrn: getString(qidoStudy['00100020']) || '',
|
|
832
832
|
// medicalRecordNumber
|
|
833
833
|
patientName: src/* .utils.formatPN */.Wp.formatPN(getName(qidoStudy['00100010'])) || '',
|
|
834
|
+
patientBirthDate: getString(qidoStudy['00100030']) || '',
|
|
835
|
+
// YYYYMMDD
|
|
834
836
|
instances: Number(getString(qidoStudy['00201208'])) || 0,
|
|
835
837
|
// number
|
|
836
838
|
description: getString(qidoStudy['00081030']) || '',
|
|
@@ -925,7 +927,9 @@ function mapParams(params, options = {}) {
|
|
|
925
927
|
// Study Description
|
|
926
928
|
'00080060',
|
|
927
929
|
// Modality
|
|
928
|
-
'00080090'
|
|
930
|
+
'00080090',
|
|
931
|
+
// Referring Physician's Name
|
|
932
|
+
'00100030' // Patient's Birth Date
|
|
929
933
|
// Add more fields here if you want them in the result
|
|
930
934
|
].join(',');
|
|
931
935
|
const useWildcard = params?.disableWildcard !== undefined ? !params.disableWildcard : options.supportsWildcard;
|
|
@@ -4256,7 +4260,7 @@ function ViewerHeader({
|
|
|
4256
4260
|
if (dataSourceIdx !== -1 && existingDataSource) {
|
|
4257
4261
|
searchQuery.append('datasources', pathname.substring(dataSourceIdx + 1));
|
|
4258
4262
|
}
|
|
4259
|
-
(0,index_0/* .preserveQueryParameters */.Nn)(searchQuery);
|
|
4263
|
+
(0,index_0/* .preserveQueryParameters */.Nn)(searchQuery, customizationService);
|
|
4260
4264
|
navigate({
|
|
4261
4265
|
pathname: '/',
|
|
4262
4266
|
search: decodeURIComponent(searchQuery.toString())
|
|
@@ -10269,6 +10273,7 @@ const {
|
|
|
10269
10273
|
});
|
|
10270
10274
|
;// CONCATENATED MODULE: ../../../extensions/default/src/customizations/overlayItemCustomization.tsx
|
|
10271
10275
|
|
|
10276
|
+
|
|
10272
10277
|
/* export default */ const overlayItemCustomization = ({
|
|
10273
10278
|
'ohif.overlayItem': function (props) {
|
|
10274
10279
|
if (this.condition && !this.condition(props)) {
|
|
@@ -10278,7 +10283,8 @@ const {
|
|
|
10278
10283
|
instance
|
|
10279
10284
|
} = props;
|
|
10280
10285
|
const value = instance && this.attribute ? instance[this.attribute] : this.contentF && typeof this.contentF === 'function' ? this.contentF(props) : null;
|
|
10281
|
-
|
|
10286
|
+
const displayValue = src/* .utils.formatValue */.Wp.formatValue(value);
|
|
10287
|
+
if (!displayValue) {
|
|
10282
10288
|
return null;
|
|
10283
10289
|
}
|
|
10284
10290
|
return /*#__PURE__*/react.createElement("span", {
|
|
@@ -10291,7 +10297,7 @@ const {
|
|
|
10291
10297
|
className: "mr-1 shrink-0"
|
|
10292
10298
|
}, this.label), /*#__PURE__*/react.createElement("span", {
|
|
10293
10299
|
className: "font-light"
|
|
10294
|
-
},
|
|
10300
|
+
}, displayValue));
|
|
10295
10301
|
}
|
|
10296
10302
|
});
|
|
10297
10303
|
;// CONCATENATED MODULE: ../../../extensions/default/src/customizations/contextMenuCustomization.ts
|
|
@@ -10935,8 +10941,8 @@ function AboutModalDefault() {
|
|
|
10935
10941
|
name
|
|
10936
10942
|
} = (0,browser_detect_es5/* ["default"] */.A)();
|
|
10937
10943
|
const browser = `${name[0].toUpperCase()}${name.substr(1)} ${version}`;
|
|
10938
|
-
const versionNumber = "3.13.0-beta.
|
|
10939
|
-
const commitHash = "
|
|
10944
|
+
const versionNumber = "3.13.0-beta.115";
|
|
10945
|
+
const commitHash = "1b6fa2194e390576f1411d5e6475cb0c8edb241a";
|
|
10940
10946
|
const [main, beta] = versionNumber.split('-');
|
|
10941
10947
|
return /*#__PURE__*/react.createElement(ui_next_src/* .AboutModal */.VTU, {
|
|
10942
10948
|
className: "w-[400px]"
|
|
@@ -484,8 +484,8 @@ function getCustomizationModule() {
|
|
|
484
484
|
/* export default */ const maxNumImageFrames = ((study, extraData) => Math.max(...(extraData?.displaySets?.map?.(ds => ds.numImageFrames ?? 0) || [0])));
|
|
485
485
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
486
486
|
var react = __webpack_require__(86326);
|
|
487
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
488
|
-
var src = __webpack_require__(
|
|
487
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 198 modules
|
|
488
|
+
var src = __webpack_require__(28772);
|
|
489
489
|
;// CONCATENATED MODULE: ../../../extensions/test-extension/src/getPanelModule.tsx
|
|
490
490
|
|
|
491
491
|
|
|
@@ -19,8 +19,8 @@ var react = __webpack_require__(86326);
|
|
|
19
19
|
var src = __webpack_require__(39987);
|
|
20
20
|
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 144 modules
|
|
21
21
|
var default_src = __webpack_require__(61610);
|
|
22
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
23
|
-
var core_src = __webpack_require__(
|
|
22
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
23
|
+
var core_src = __webpack_require__(50679);
|
|
24
24
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 29 modules
|
|
25
25
|
var es = __webpack_require__(75258);
|
|
26
26
|
// EXTERNAL MODULE: ../../../extensions/dicom-microscopy/node_modules/mathjs/lib/esm/index.js + 1009 modules
|
|
@@ -2765,7 +2765,7 @@ const extension = {
|
|
|
2765
2765
|
__webpack_require__.d(__webpack_exports__, {
|
|
2766
2766
|
A: () => (getDicomWebClient)
|
|
2767
2767
|
});
|
|
2768
|
-
/* import */ var _ohif_core__rspack_import_0 = __webpack_require__(
|
|
2768
|
+
/* import */ var _ohif_core__rspack_import_0 = __webpack_require__(50679);
|
|
2769
2769
|
/* import */ var _ohif_extension_default__rspack_import_1 = __webpack_require__(61610);
|
|
2770
2770
|
|
|
2771
2771
|
|
|
@@ -27,8 +27,8 @@ function createSEGToolGroupAndAddTools({
|
|
|
27
27
|
return toolGroupService.createToolGroupAndAddTools(toolGroupId, updatedTools);
|
|
28
28
|
}
|
|
29
29
|
/* export default */ const initSEGToolGroup = (createSEGToolGroupAndAddTools);
|
|
30
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
31
|
-
var cornerstone_src = __webpack_require__(
|
|
30
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 198 modules
|
|
31
|
+
var cornerstone_src = __webpack_require__(28772);
|
|
32
32
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/promptHydrateSEG.ts
|
|
33
33
|
|
|
34
34
|
function promptHydrateSEG({
|
|
@@ -14,14 +14,14 @@ var prop_types = __webpack_require__(97598);
|
|
|
14
14
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
15
15
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
16
16
|
var react = __webpack_require__(86326);
|
|
17
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
18
|
-
var src = __webpack_require__(
|
|
17
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
18
|
+
var src = __webpack_require__(50679);
|
|
19
19
|
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/tools/modules/dicomSRModule.js
|
|
20
20
|
var dicomSRModule = __webpack_require__(91473);
|
|
21
21
|
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-sr/src/utils/createReferencedImageDisplaySet.ts
|
|
22
22
|
var createReferencedImageDisplaySet = __webpack_require__(81444);
|
|
23
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
24
|
-
var cornerstone_src = __webpack_require__(
|
|
23
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 198 modules
|
|
24
|
+
var cornerstone_src = __webpack_require__(28772);
|
|
25
25
|
// EXTERNAL MODULE: ../../ui-next/src/index.ts + 3682 modules
|
|
26
26
|
var ui_next_src = __webpack_require__(39987);
|
|
27
27
|
// EXTERNAL MODULE: ../../core/src/contextProviders/SystemProvider.tsx
|
|
@@ -16,8 +16,8 @@ var package_namespaceObject = JSON.parse('{"UU":"@ohif/extension-dicom-pdf"}')
|
|
|
16
16
|
const id = package_namespaceObject.UU;
|
|
17
17
|
const SOPClassHandlerId = `${id}.sopClassHandlerModule.dicom-pdf`;
|
|
18
18
|
|
|
19
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
20
|
-
var src = __webpack_require__(
|
|
19
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
20
|
+
var src = __webpack_require__(50679);
|
|
21
21
|
// EXTERNAL MODULE: ../../i18n/src/index.js + 300 modules
|
|
22
22
|
var i18n_src = __webpack_require__(90119);
|
|
23
23
|
;// CONCATENATED MODULE: ../../../extensions/dicom-pdf/src/getSopClassHandlerModule.js
|
|
@@ -17,16 +17,16 @@ const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
|
|
|
17
17
|
|
|
18
18
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
19
19
|
var react = __webpack_require__(86326);
|
|
20
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
21
|
-
var src = __webpack_require__(
|
|
20
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
21
|
+
var src = __webpack_require__(50679);
|
|
22
22
|
// EXTERNAL MODULE: ../../i18n/src/index.js + 300 modules
|
|
23
23
|
var i18n_src = __webpack_require__(90119);
|
|
24
24
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
25
25
|
var esm = __webpack_require__(70594);
|
|
26
26
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/esm/index.js + 79 modules
|
|
27
27
|
var dist_esm = __webpack_require__(7526);
|
|
28
|
-
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx +
|
|
29
|
-
var cornerstone_src = __webpack_require__(
|
|
28
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 198 modules
|
|
29
|
+
var cornerstone_src = __webpack_require__(28772);
|
|
30
30
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-pmap/src/getSopClassHandlerModule.ts
|
|
31
31
|
|
|
32
32
|
|
|
@@ -9,8 +9,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
9
9
|
|
|
10
10
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
11
11
|
var esm = __webpack_require__(70594);
|
|
12
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
13
|
-
var src = __webpack_require__(
|
|
12
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
13
|
+
var src = __webpack_require__(50679);
|
|
14
14
|
// EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js + 22 modules
|
|
15
15
|
var i18next = __webpack_require__(26104);
|
|
16
16
|
;// CONCATENATED MODULE: ../../../modes/basic-test-mode/src/toolbarButtons.ts
|
package/dist/app-config.js
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
/** @type {AppTypes.Config} */
|
|
2
2
|
|
|
3
|
+
// Secure, minimal default configuration.
|
|
4
|
+
//
|
|
5
|
+
// This is what a plain production build with no APP_CONFIG produces, so it is
|
|
6
|
+
// deliberately locked down:
|
|
7
|
+
// - The local file data source (`dicomlocal`) and the runtime `?url=` sources
|
|
8
|
+
// (`dicomjson`, `dicomwebproxy`) are NOT enabled — they widen the attack
|
|
9
|
+
// surface of a default deployment.
|
|
10
|
+
// - `?customization=` URL loading is OFF: no `customizationUrlPrefixes` are
|
|
11
|
+
// configured, so any `?customization=` value is rejected (and aborts boot
|
|
12
|
+
// rather than silently loading).
|
|
13
|
+
// - `dangerouslyUseDynamicConfig` (the `configUrl` query parameter) is off.
|
|
14
|
+
//
|
|
15
|
+
// It does not need to "just work" untouched — point the data source below at
|
|
16
|
+
// your own DICOMweb server. For a fully-featured setup with every data source
|
|
17
|
+
// and customization loading enabled, see config/dev.js (local development) and
|
|
18
|
+
// config/netlify.js (the public demo deploy).
|
|
3
19
|
window.config = {
|
|
4
20
|
name: 'config/default.js',
|
|
5
21
|
routerBasename: null,
|
|
@@ -7,6 +23,21 @@ window.config = {
|
|
|
7
23
|
extensions: [],
|
|
8
24
|
modes: [],
|
|
9
25
|
customizationService: {},
|
|
26
|
+
|
|
27
|
+
// --- URL-driven customizations (?customization=) ----------------------------
|
|
28
|
+
// OFF by default. To allow loading customization data files from the URL, set
|
|
29
|
+
// `customizationUrlPrefixes` to a map of allowed prefixes. The `default` prefix
|
|
30
|
+
// (no slashes) is used for values with no leading slash; every other prefix
|
|
31
|
+
// must start AND end with a slash and is matched against the leading
|
|
32
|
+
// `/segment/` of the value. Files are fetched and parsed as JSONC data — they
|
|
33
|
+
// are never executed. Example (left disabled here on purpose):
|
|
34
|
+
//
|
|
35
|
+
// customizationUrlPrefixes: {
|
|
36
|
+
// default: './customizations/', // ?customization=ctPresets
|
|
37
|
+
// '/remote/': 'https://cdn.example.com/ohif-custom/', // ?customization=/remote/siteA
|
|
38
|
+
// },
|
|
39
|
+
// ----------------------------------------------------------------------------
|
|
40
|
+
|
|
10
41
|
showStudyList: true,
|
|
11
42
|
// some windows systems have issues with more than 3 web workers
|
|
12
43
|
maxNumberOfWebWorkers: 3,
|
|
@@ -26,81 +57,13 @@ window.config = {
|
|
|
26
57
|
prefetch: 25,
|
|
27
58
|
},
|
|
28
59
|
showErrorDetails: 'always', // 'always', 'dev', 'production'
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
{
|
|
33
|
-
id: 'split',
|
|
34
|
-
test: ({ multimonitor }) => multimonitor === 'split',
|
|
35
|
-
screens: [
|
|
36
|
-
{
|
|
37
|
-
id: 'ohif0',
|
|
38
|
-
screen: null,
|
|
39
|
-
location: {
|
|
40
|
-
screen: 0,
|
|
41
|
-
width: 0.5,
|
|
42
|
-
height: 1,
|
|
43
|
-
left: 0,
|
|
44
|
-
top: 0,
|
|
45
|
-
},
|
|
46
|
-
options: 'location=no,menubar=no,scrollbars=no,status=no,titlebar=no',
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
id: 'ohif1',
|
|
50
|
-
screen: null,
|
|
51
|
-
location: {
|
|
52
|
-
width: 0.5,
|
|
53
|
-
height: 1,
|
|
54
|
-
left: 0.5,
|
|
55
|
-
top: 0,
|
|
56
|
-
},
|
|
57
|
-
options: 'location=no,menubar=no,scrollbars=no,status=no,titlebar=no',
|
|
58
|
-
},
|
|
59
|
-
],
|
|
60
|
-
},
|
|
61
|
-
|
|
62
|
-
{
|
|
63
|
-
id: '2',
|
|
64
|
-
test: ({ multimonitor }) => multimonitor === '2',
|
|
65
|
-
screens: [
|
|
66
|
-
{
|
|
67
|
-
id: 'ohif0',
|
|
68
|
-
screen: 0,
|
|
69
|
-
location: {
|
|
70
|
-
width: 1,
|
|
71
|
-
height: 1,
|
|
72
|
-
left: 0,
|
|
73
|
-
top: 0,
|
|
74
|
-
},
|
|
75
|
-
options: 'fullscreen=yes,location=no,menubar=no,scrollbars=no,status=no,titlebar=no',
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
id: 'ohif1',
|
|
79
|
-
screen: 1,
|
|
80
|
-
location: {
|
|
81
|
-
width: 1,
|
|
82
|
-
height: 1,
|
|
83
|
-
left: 0,
|
|
84
|
-
top: 0,
|
|
85
|
-
},
|
|
86
|
-
options: 'fullscreen=yes,location=no,menubar=no,scrollbars=no,status=no,titlebar=no',
|
|
87
|
-
},
|
|
88
|
-
],
|
|
89
|
-
},
|
|
90
|
-
],
|
|
60
|
+
// `dangerouslyUseDynamicConfig` (load configuration from a `configUrl` query
|
|
61
|
+
// parameter) is intentionally left OFF in the secure default build. See
|
|
62
|
+
// config/dev.js for the documented shape.
|
|
91
63
|
defaultDataSourceName: 'ohif',
|
|
92
|
-
/* Dynamic config allows user to pass "configUrl" query string this allows to load config without recompiling application. The regex will ensure valid configuration source */
|
|
93
|
-
// dangerouslyUseDynamicConfig: {
|
|
94
|
-
// enabled: true,
|
|
95
|
-
// // regex will ensure valid configuration source and default is /.*/ which matches any character. To use this, setup your own regex to choose a specific source of configuration only.
|
|
96
|
-
// // Example 1, to allow numbers and letters in an absolute or sub-path only.
|
|
97
|
-
// // regex: /(0-9A-Za-z.]+)(\/[0-9A-Za-z.]+)*/
|
|
98
|
-
// // Example 2, to restricts to either hosptial.com or othersite.com.
|
|
99
|
-
// // regex: /(https:\/\/hospital.com(\/[0-9A-Za-z.]+)*)|(https:\/\/othersite.com(\/[0-9A-Za-z.]+)*)/
|
|
100
|
-
// regex: /.*/,
|
|
101
|
-
// },
|
|
102
64
|
dataSources: [
|
|
103
65
|
{
|
|
66
|
+
// Read-only public demo server. Replace with your own DICOMweb server.
|
|
104
67
|
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
|
|
105
68
|
sourceName: 'ohif',
|
|
106
69
|
configuration: {
|
|
@@ -118,9 +81,6 @@ window.config = {
|
|
|
118
81
|
supportsWildcard: true,
|
|
119
82
|
staticWado: true,
|
|
120
83
|
singlepart: 'bulkdata,video',
|
|
121
|
-
// whether the data source should use retrieveBulkData to grab metadata,
|
|
122
|
-
// and in case of relative path, what would it be relative to, options
|
|
123
|
-
// are in the series level or study level (some servers like series some study)
|
|
124
84
|
bulkDataURI: {
|
|
125
85
|
enabled: true,
|
|
126
86
|
relativeResolution: 'studies',
|
|
@@ -130,157 +90,13 @@ window.config = {
|
|
|
130
90
|
},
|
|
131
91
|
},
|
|
132
92
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
qidoRoot: 'https://dd14fa38qiwhyfd.cloudfront.net/dicomweb',
|
|
141
|
-
wadoRoot: 'https://dd14fa38qiwhyfd.cloudfront.net/dicomweb',
|
|
142
|
-
qidoSupportsIncludeField: false,
|
|
143
|
-
supportsReject: false,
|
|
144
|
-
imageRendering: 'wadors',
|
|
145
|
-
thumbnailRendering: 'wadors',
|
|
146
|
-
enableStudyLazyLoad: true,
|
|
147
|
-
supportsFuzzyMatching: false,
|
|
148
|
-
supportsWildcard: true,
|
|
149
|
-
staticWado: true,
|
|
150
|
-
singlepart: 'bulkdata,video',
|
|
151
|
-
// whether the data source should use retrieveBulkData to grab metadata,
|
|
152
|
-
// and in case of relative path, what would it be relative to, options
|
|
153
|
-
// are in the series level or study level (some servers like series some study)
|
|
154
|
-
bulkDataURI: {
|
|
155
|
-
enabled: true,
|
|
156
|
-
relativeResolution: 'studies',
|
|
157
|
-
},
|
|
158
|
-
omitQuotationForMultipartRequest: true,
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
|
|
163
|
-
sourceName: 'ohif3',
|
|
164
|
-
configuration: {
|
|
165
|
-
friendlyName: 'AWS S3 Static wado secondary server',
|
|
166
|
-
name: 'aws',
|
|
167
|
-
wadoUriRoot: 'https://d3t6nz73ql33tx.cloudfront.net/dicomweb',
|
|
168
|
-
qidoRoot: 'https://d3t6nz73ql33tx.cloudfront.net/dicomweb',
|
|
169
|
-
wadoRoot: 'https://d3t6nz73ql33tx.cloudfront.net/dicomweb',
|
|
170
|
-
qidoSupportsIncludeField: false,
|
|
171
|
-
supportsReject: false,
|
|
172
|
-
imageRendering: 'wadors',
|
|
173
|
-
thumbnailRendering: 'wadors',
|
|
174
|
-
enableStudyLazyLoad: true,
|
|
175
|
-
supportsFuzzyMatching: false,
|
|
176
|
-
supportsWildcard: true,
|
|
177
|
-
staticWado: true,
|
|
178
|
-
singlepart: 'bulkdata,video',
|
|
179
|
-
// whether the data source should use retrieveBulkData to grab metadata,
|
|
180
|
-
// and in case of relative path, what would it be relative to, options
|
|
181
|
-
// are in the series level or study level (some servers like series some study)
|
|
182
|
-
bulkDataURI: {
|
|
183
|
-
enabled: true,
|
|
184
|
-
relativeResolution: 'studies',
|
|
185
|
-
},
|
|
186
|
-
omitQuotationForMultipartRequest: true,
|
|
187
|
-
},
|
|
188
|
-
},
|
|
189
|
-
|
|
190
|
-
{
|
|
191
|
-
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
|
|
192
|
-
sourceName: 'local5000',
|
|
193
|
-
configuration: {
|
|
194
|
-
friendlyName: 'Static WADO Local Data',
|
|
195
|
-
name: 'DCM4CHEE',
|
|
196
|
-
qidoRoot: 'http://localhost:5000/dicomweb',
|
|
197
|
-
wadoRoot: 'http://localhost:5000/dicomweb',
|
|
198
|
-
qidoSupportsIncludeField: false,
|
|
199
|
-
supportsReject: true,
|
|
200
|
-
supportsStow: true,
|
|
201
|
-
imageRendering: 'wadors',
|
|
202
|
-
thumbnailRendering: 'wadors',
|
|
203
|
-
enableStudyLazyLoad: true,
|
|
204
|
-
supportsFuzzyMatching: false,
|
|
205
|
-
supportsWildcard: true,
|
|
206
|
-
staticWado: true,
|
|
207
|
-
singlepart: 'video',
|
|
208
|
-
bulkDataURI: {
|
|
209
|
-
enabled: true,
|
|
210
|
-
relativeResolution: 'studies',
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
},
|
|
214
|
-
{
|
|
215
|
-
namespace: '@ohif/extension-default.dataSourcesModule.dicomweb',
|
|
216
|
-
sourceName: 'orthanc',
|
|
217
|
-
configuration: {
|
|
218
|
-
friendlyName: 'local Orthanc DICOMWeb Server',
|
|
219
|
-
name: 'DCM4CHEE',
|
|
220
|
-
wadoUriRoot: 'http://localhost/pacs/dicom-web',
|
|
221
|
-
qidoRoot: 'http://localhost/pacs/dicom-web',
|
|
222
|
-
wadoRoot: 'http://localhost/pacs/dicom-web',
|
|
223
|
-
qidoSupportsIncludeField: true,
|
|
224
|
-
supportsReject: true,
|
|
225
|
-
dicomUploadEnabled: true,
|
|
226
|
-
imageRendering: 'wadors',
|
|
227
|
-
thumbnailRendering: 'wadors',
|
|
228
|
-
enableStudyLazyLoad: true,
|
|
229
|
-
supportsFuzzyMatching: true,
|
|
230
|
-
supportsWildcard: true,
|
|
231
|
-
omitQuotationForMultipartRequest: true,
|
|
232
|
-
bulkDataURI: {
|
|
233
|
-
enabled: true,
|
|
234
|
-
// This is an example config that can be used to fix the retrieve URL
|
|
235
|
-
// where it has the wrong prefix (eg a canned prefix). It is better to
|
|
236
|
-
// just use the correct prefix out of the box, but that is sometimes hard
|
|
237
|
-
// when URLs go through several systems.
|
|
238
|
-
// Example URLS are:
|
|
239
|
-
// "BulkDataURI" : "http://localhost/dicom-web/studies/1.2.276.0.7230010.3.1.2.2344313775.14992.1458058363.6979/series/1.2.276.0.7230010.3.1.3.1901948703.36080.1484835349.617/instances/1.2.276.0.7230010.3.1.4.1901948703.36080.1484835349.618/bulk/00420011",
|
|
240
|
-
// when running on http://localhost:3003 with no server running on localhost. This can be corrected to:
|
|
241
|
-
// /orthanc/dicom-web/studies/1.2.276.0.7230010.3.1.2.2344313775.14992.1458058363.6979/series/1.2.276.0.7230010.3.1.3.1901948703.36080.1484835349.617/instances/1.2.276.0.7230010.3.1.4.1901948703.36080.1484835349.618/bulk/00420011
|
|
242
|
-
// which is a valid relative URL, and will result in using the http://localhost:3003/orthanc/.... path
|
|
243
|
-
// startsWith: 'http://localhost/',
|
|
244
|
-
// prefixWith: '/orthanc/',
|
|
245
|
-
},
|
|
246
|
-
},
|
|
247
|
-
},
|
|
248
|
-
|
|
249
|
-
{
|
|
250
|
-
namespace: '@ohif/extension-default.dataSourcesModule.dicomwebproxy',
|
|
251
|
-
sourceName: 'dicomwebproxy',
|
|
252
|
-
configuration: {
|
|
253
|
-
friendlyName: 'dicomweb delegating proxy',
|
|
254
|
-
name: 'dicomwebproxy',
|
|
255
|
-
// Security controls for runtime ?url=... datasource loading:
|
|
256
|
-
// In authenticated environments, runtime ?url origins must be allowlisted:
|
|
257
|
-
// dangerouslyAllowedOriginsForAuthenticatedEnvironments: [
|
|
258
|
-
// 'https://config.example.com',
|
|
259
|
-
// 'http://localhost:5000',
|
|
260
|
-
// ],
|
|
261
|
-
},
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
namespace: '@ohif/extension-default.dataSourcesModule.dicomjson',
|
|
265
|
-
sourceName: 'dicomjson',
|
|
266
|
-
configuration: {
|
|
267
|
-
friendlyName: 'dicom json',
|
|
268
|
-
name: 'json',
|
|
269
|
-
// Security controls for runtime ?url=... datasource loading:
|
|
270
|
-
// In authenticated environments, runtime ?url origins must be allowlisted:
|
|
271
|
-
// dangerouslyAllowedOriginsForAuthenticatedEnvironments: [
|
|
272
|
-
// 'https://config.example.com',
|
|
273
|
-
// 'http://localhost:5000',
|
|
274
|
-
// ],
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
namespace: '@ohif/extension-default.dataSourcesModule.dicomlocal',
|
|
279
|
-
sourceName: 'dicomlocal',
|
|
280
|
-
configuration: {
|
|
281
|
-
friendlyName: 'dicom local',
|
|
282
|
-
},
|
|
283
|
-
},
|
|
93
|
+
// The following data sources are intentionally NOT enabled in the secure
|
|
94
|
+
// default because they broaden the attack surface of a default deployment.
|
|
95
|
+
// Enable them only in a deployment you control (see config/dev.js):
|
|
96
|
+
// - dicomlocal: loads DICOM files from the user's machine.
|
|
97
|
+
// - dicomjson: loads metadata from an arbitrary `?url=` (gate with
|
|
98
|
+
// `dangerouslyAllowedOriginsForAuthenticatedEnvironments`).
|
|
99
|
+
// - dicomwebproxy: delegating proxy driven by `?url=`.
|
|
284
100
|
],
|
|
285
101
|
httpErrorHandler: error => {
|
|
286
102
|
// This is 429 when rejected from the public idc sandbox too often.
|
|
@@ -289,29 +105,4 @@ window.config = {
|
|
|
289
105
|
// Could use services manager here to bring up a dialog/modal if needed.
|
|
290
106
|
console.warn('test, navigate to https://ohif.org/');
|
|
291
107
|
},
|
|
292
|
-
// segmentation: {
|
|
293
|
-
// segmentLabel: {
|
|
294
|
-
// enabledByDefault: true,
|
|
295
|
-
// labelColor: [255, 255, 0, 1], // must be an array
|
|
296
|
-
// hoverTimeout: 1,
|
|
297
|
-
// background: 'rgba(100, 100, 100, 0.5)', // can be any valid css color
|
|
298
|
-
// },
|
|
299
|
-
// },
|
|
300
|
-
// whiteLabeling: {
|
|
301
|
-
// createLogoComponentFn: function (React) {
|
|
302
|
-
// return React.createElement(
|
|
303
|
-
// 'a',
|
|
304
|
-
// {
|
|
305
|
-
// target: '_self',
|
|
306
|
-
// rel: 'noopener noreferrer',
|
|
307
|
-
// className: 'text-purple-600 line-through',
|
|
308
|
-
// href: '_X___IDC__LOGO__LINK___Y_',
|
|
309
|
-
// },
|
|
310
|
-
// React.createElement('img', {
|
|
311
|
-
// src: './Logo.svg',
|
|
312
|
-
// className: 'w-14 h-14',
|
|
313
|
-
// })
|
|
314
|
-
// );
|
|
315
|
-
// },
|
|
316
|
-
// },
|
|
317
108
|
};
|