@ohif/app 3.8.0 → 3.8.2
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/{117.bundle.77cc4e62d0de5d843e2e.js → 117.bundle.17ae130d2bb21ef9d31f.js} +75 -80
- package/dist/{121.bundle.47f05840a5b3cdf75543.js → 121.bundle.27d181784f24551bc546.js} +2 -1
- package/dist/{164.bundle.b101cb64d04a22453984.js → 164.bundle.e30009bee13acb6967da.js} +554 -311
- package/dist/{236.bundle.f774cdc955890e6cdac9.js → 236.bundle.79a374f5fdf7fde431f4.js} +753 -140
- package/dist/{188.bundle.f2b81ec70ae344f57183.js → 243.bundle.7891b41d969264043783.js} +8 -8
- package/dist/{325.bundle.5012b0285b6baadd1884.js → 325.bundle.bfb7de5a397beae16d24.js} +11 -11
- package/dist/{342.bundle.36ee082163b01284eeba.js → 342.bundle.17f0c50a27c0ba1f3846.js} +7 -0
- package/dist/{203.bundle.3581da3a32a0b720d3a7.js → 370.bundle.e4cd6c20d3496c949374.js} +614 -455
- package/dist/{448.bundle.35b8f8e262fa954026df.js → 448.bundle.375bbf6d00a23e35f229.js} +2 -2
- package/dist/{483.bundle.581b242d7b90866fdfb9.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
- package/dist/{487.bundle.79aff4db7df5f383b423.js → 487.bundle.205821cf073b4d0d2e71.js} +2 -2
- package/dist/{416.bundle.9b0d7559344fd02c9e08.js → 501.bundle.de519580f8ba42802378.js} +1206 -305
- package/dist/{530.bundle.207b38c15c4c01e4db0e.js → 530.bundle.17b9a34fefff133e5379.js} +3 -3
- package/dist/{544.bundle.3542927ec15c3f688c8d.js → 544.bundle.170c67e76a6900a9a644.js} +4 -4
- package/dist/{206.bundle.e1ea316389b21006d3df.js → 545.bundle.c9cc3bd30adc9904cf64.js} +28 -24
- package/dist/{321.bundle.39a76114e54cd9833c43.js → 550.bundle.53604ec87839bd9b4a49.js} +82 -49
- package/dist/{574.bundle.4b059c95cd34efdc9cb3.js → 574.bundle.b369b11b04c3e080f0b3.js} +40 -37
- package/dist/{41.bundle.64e0da470e235cfac4bb.js → 682.bundle.fdd752d2920107f695fb.js} +26 -6
- package/dist/{699.bundle.b9666b1d4ddf7e8577ee.js → 699.bundle.fee3d1c6609ecc557a9a.js} +32 -3
- package/dist/{669.bundle.64309c677c5ca188348c.js → 721.bundle.d01a6829ac9b0abef67d.js} +73 -73
- package/dist/{722.bundle.52eb61926d08a08793fe.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
- package/dist/{724.bundle.72aef9dfca69ae057d37.js → 776.bundle.bb8a64b917ff1e559734.js} +13 -15
- package/dist/{862.bundle.9897a9b748078d53f9ab.js → 862.bundle.59bb164ca7e871a33e44.js} +1 -1
- package/dist/{889.bundle.b6231f995fd098f7e3f9.js → 889.bundle.5b10c495e1442d648ffc.js} +8 -8
- package/dist/{905.bundle.cd3e2b347340dd47a1b0.js → 905.bundle.1ba21a0406473fc92696.js} +2 -2
- package/dist/{907.bundle.723a425dedf8147243d2.js → 907.bundle.b199f25916a94c4ebb97.js} +2 -2
- package/dist/{473.bundle.11f707c8170ade2eb56a.js → 914.bundle.2b3a856b7d41ac8298e6.js} +510 -272
- package/dist/{94.bundle.33ca3bc10aa42716dbbb.js → 94.bundle.ae3ca435b134c95aea2e.js} +38 -8
- package/dist/{961.bundle.2c4663737c970764a41e.js → 961.bundle.d1b25d8f354bde3be17c.js} +2 -2
- package/dist/{7.bundle.94692aed50fe4ba2e2f5.js → 981.bundle.808058a6555d322675e1.js} +15 -15
- package/dist/{594.bundle.c292423defd9581bfbe3.js → 989.bundle.b929ddc23c16980560de.js} +5 -5
- package/dist/{633.bundle.e258ba4843985e67336a.js → 998.bundle.df083f740270855652bd.js} +21 -20
- package/dist/app-config.js +5 -1
- package/dist/{app.bundle.a05edb830ad2ecd67aac.js → app.bundle.7fa3782f7fa236cc53a8.js} +791 -568
- package/dist/app.bundle.css +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/google.js +1 -0
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.4442dd3318266fddf4d0.js → polySeg.bundle.36ddebc98d8b109edf33.js} +3 -3
- package/dist/{suv-peak-worker.bundle.348c016f7f973d05f2d2.js → suv-peak-worker.bundle.f4df597fab47d977d7f3.js} +3 -3
- package/dist/sw.js +1 -1
- package/package.json +18 -18
- /package/dist/{321.css → 550.css} +0 -0
- /package/dist/{783.bundle.11d774eb13ffc74cdca5.js → 783.bundle.f4f09b94ebe4d1a466b1.js} +0 -0
- /package/dist/{633.css → 998.css} +0 -0
|
@@ -103,8 +103,8 @@ Compose.propTypes = {
|
|
|
103
103
|
var ui_src = __webpack_require__(5085);
|
|
104
104
|
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
105
105
|
var state = __webpack_require__(15575);
|
|
106
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
107
|
-
var core_src = __webpack_require__(
|
|
106
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
107
|
+
var core_src = __webpack_require__(8633);
|
|
108
108
|
// EXTERNAL MODULE: ../node_modules/react-router/dist/index.js
|
|
109
109
|
var react_router_dist = __webpack_require__(10971);
|
|
110
110
|
// EXTERNAL MODULE: ./hooks/useSearchParams.ts
|
|
@@ -1004,8 +1004,8 @@ function WorkList({
|
|
|
1004
1004
|
};
|
|
1005
1005
|
});
|
|
1006
1006
|
const hasStudies = numOfStudies > 0;
|
|
1007
|
-
const versionNumber = "3.8.
|
|
1008
|
-
const commitHash = "
|
|
1007
|
+
const versionNumber = "3.8.2\n";
|
|
1008
|
+
const commitHash = "339299113c65b5ce4032b02b5b4043a8968107ed";
|
|
1009
1009
|
const menuOptions = [{
|
|
1010
1010
|
title: t('Header:About'),
|
|
1011
1011
|
icon: 'info',
|
|
@@ -1132,7 +1132,7 @@ WorkList.propTypes = {
|
|
|
1132
1132
|
getConfig: (prop_types_default()).func
|
|
1133
1133
|
}).isRequired,
|
|
1134
1134
|
isLoadingData: (prop_types_default()).bool.isRequired,
|
|
1135
|
-
servicesManager: prop_types_default().
|
|
1135
|
+
servicesManager: (prop_types_default()).object.isRequired
|
|
1136
1136
|
};
|
|
1137
1137
|
const defaultFilterValues = {
|
|
1138
1138
|
patientName: '',
|
|
@@ -1864,7 +1864,7 @@ function ViewerViewportGrid(props) {
|
|
|
1864
1864
|
}
|
|
1865
1865
|
ViewerViewportGrid.propTypes = {
|
|
1866
1866
|
viewportComponents: (prop_types_default()).array.isRequired,
|
|
1867
|
-
servicesManager: prop_types_default().instanceOf(
|
|
1867
|
+
servicesManager: prop_types_default().instanceOf(Object).isRequired
|
|
1868
1868
|
};
|
|
1869
1869
|
ViewerViewportGrid.defaultProps = {
|
|
1870
1870
|
viewportComponents: []
|
|
@@ -1924,27 +1924,27 @@ modes.push("@ohif/mode-preclinical-4d");
|
|
|
1924
1924
|
async function loadModule(module) {
|
|
1925
1925
|
if (typeof module !== 'string') return module;
|
|
1926
1926
|
if (module === "@ohif/extension-default") {
|
|
1927
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1927
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(931), __webpack_require__.e(545), __webpack_require__.e(481)]).then(__webpack_require__.bind(__webpack_require__, 42545));
|
|
1928
1928
|
return imported.default;
|
|
1929
1929
|
}
|
|
1930
1930
|
if (module === "@ohif/extension-cornerstone") {
|
|
1931
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1931
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(722), __webpack_require__.e(445), __webpack_require__.e(550)]).then(__webpack_require__.bind(__webpack_require__, 550));
|
|
1932
1932
|
return imported.default;
|
|
1933
1933
|
}
|
|
1934
1934
|
if (module === "@ohif/extension-measurement-tracking") {
|
|
1935
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1935
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(342), __webpack_require__.e(931), __webpack_require__.e(835), __webpack_require__.e(545), __webpack_require__.e(721), __webpack_require__.e(325)]).then(__webpack_require__.bind(__webpack_require__, 84284));
|
|
1936
1936
|
return imported.default;
|
|
1937
1937
|
}
|
|
1938
1938
|
if (module === "@ohif/extension-cornerstone-dicom-sr") {
|
|
1939
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1939
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(721)]).then(__webpack_require__.bind(__webpack_require__, 14721));
|
|
1940
1940
|
return imported.default;
|
|
1941
1941
|
}
|
|
1942
1942
|
if (module === "@ohif/extension-cornerstone-dicom-seg") {
|
|
1943
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1943
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(342), __webpack_require__.e(931), __webpack_require__.e(726), __webpack_require__.e(545), __webpack_require__.e(998)]).then(__webpack_require__.bind(__webpack_require__, 32009));
|
|
1944
1944
|
return imported.default;
|
|
1945
1945
|
}
|
|
1946
1946
|
if (module === "@ohif/extension-cornerstone-dynamic-volume") {
|
|
1947
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1947
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(722), __webpack_require__.e(487)]).then(__webpack_require__.bind(__webpack_require__, 26487));
|
|
1948
1948
|
return imported.default;
|
|
1949
1949
|
}
|
|
1950
1950
|
if (module === "@ohif/extension-dicom-microscopy") {
|
|
@@ -1960,7 +1960,7 @@ async function loadModule(module) {
|
|
|
1960
1960
|
return imported.default;
|
|
1961
1961
|
}
|
|
1962
1962
|
if (module === "@ohif/extension-tmtv") {
|
|
1963
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1963
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(981)]).then(__webpack_require__.bind(__webpack_require__, 93981));
|
|
1964
1964
|
return imported.default;
|
|
1965
1965
|
}
|
|
1966
1966
|
if (module === "@ohif/extension-test") {
|
|
@@ -1968,11 +1968,11 @@ async function loadModule(module) {
|
|
|
1968
1968
|
return imported.default;
|
|
1969
1969
|
}
|
|
1970
1970
|
if (module === "@ohif/extension-cornerstone-dicom-rt") {
|
|
1971
|
-
const imported = await __webpack_require__.e(/* import() */
|
|
1971
|
+
const imported = await __webpack_require__.e(/* import() */ 243).then(__webpack_require__.bind(__webpack_require__, 5243));
|
|
1972
1972
|
return imported.default;
|
|
1973
1973
|
}
|
|
1974
1974
|
if (module === "@ohif/mode-longitudinal") {
|
|
1975
|
-
const imported = await __webpack_require__.e(/* import() */
|
|
1975
|
+
const imported = await __webpack_require__.e(/* import() */ 682).then(__webpack_require__.bind(__webpack_require__, 82682));
|
|
1976
1976
|
return imported.default;
|
|
1977
1977
|
}
|
|
1978
1978
|
if (module === "@ohif/mode-segmentation") {
|
|
@@ -1980,7 +1980,7 @@ async function loadModule(module) {
|
|
|
1980
1980
|
return imported.default;
|
|
1981
1981
|
}
|
|
1982
1982
|
if (module === "@ohif/mode-tmtv") {
|
|
1983
|
-
const imported = await __webpack_require__.e(/* import() */
|
|
1983
|
+
const imported = await __webpack_require__.e(/* import() */ 776).then(__webpack_require__.bind(__webpack_require__, 40776));
|
|
1984
1984
|
return imported.default;
|
|
1985
1985
|
}
|
|
1986
1986
|
if (module === "@ohif/mode-microscopy") {
|
|
@@ -1996,7 +1996,7 @@ async function loadModule(module) {
|
|
|
1996
1996
|
return imported.default;
|
|
1997
1997
|
}
|
|
1998
1998
|
if (module === "@ohif/mode-basic-dev-mode") {
|
|
1999
|
-
const imported = await __webpack_require__.e(/* import() */
|
|
1999
|
+
const imported = await __webpack_require__.e(/* import() */ 989).then(__webpack_require__.bind(__webpack_require__, 50989));
|
|
2000
2000
|
return imported.default;
|
|
2001
2001
|
}
|
|
2002
2002
|
return (await import( /* webpackIgnore: true */module)).default;
|
|
@@ -6616,7 +6616,7 @@ const detectionOptions = {
|
|
|
6616
6616
|
}
|
|
6617
6617
|
});
|
|
6618
6618
|
;// CONCATENATED MODULE: ../../i18n/package.json
|
|
6619
|
-
const package_namespaceObject =
|
|
6619
|
+
const package_namespaceObject = {"rE":"3.8.1"};
|
|
6620
6620
|
;// CONCATENATED MODULE: ../../i18n/src/utils.js
|
|
6621
6621
|
const languagesMap = {
|
|
6622
6622
|
ar: 'Arabic',
|
|
@@ -19271,8 +19271,8 @@ ViewportDialogProvider.propTypes = {
|
|
|
19271
19271
|
// EXTERNAL MODULE: ../../../node_modules/lodash.merge/index.js
|
|
19272
19272
|
var lodash_merge = __webpack_require__(40592);
|
|
19273
19273
|
var lodash_merge_default = /*#__PURE__*/__webpack_require__.n(lodash_merge);
|
|
19274
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
19275
|
-
var src = __webpack_require__(
|
|
19274
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
19275
|
+
var src = __webpack_require__(8633);
|
|
19276
19276
|
;// CONCATENATED MODULE: ../../ui/src/utils/viewportLabels.ts
|
|
19277
19277
|
const viewportLabels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
|
|
19278
19278
|
/* harmony default export */ const utils_viewportLabels = (viewportLabels);
|
|
@@ -19710,7 +19710,8 @@ const toolboxReducer = (state, action) => {
|
|
|
19710
19710
|
if (!state[toolbarSectionId]) {
|
|
19711
19711
|
state[toolbarSectionId] = {
|
|
19712
19712
|
activeTool: null,
|
|
19713
|
-
toolOptions: {}
|
|
19713
|
+
toolOptions: {},
|
|
19714
|
+
selectedEvent: false
|
|
19714
19715
|
};
|
|
19715
19716
|
}
|
|
19716
19717
|
switch (action.type) {
|
|
@@ -19719,7 +19720,8 @@ const toolboxReducer = (state, action) => {
|
|
|
19719
19720
|
...state,
|
|
19720
19721
|
[toolbarSectionId]: {
|
|
19721
19722
|
...state[toolbarSectionId],
|
|
19722
|
-
activeTool: action.payload.activeTool
|
|
19723
|
+
activeTool: action.payload.activeTool,
|
|
19724
|
+
selectedEvent: true
|
|
19723
19725
|
}
|
|
19724
19726
|
};
|
|
19725
19727
|
case 'UPDATE_TOOL_OPTION':
|
|
@@ -19732,6 +19734,7 @@ const toolboxReducer = (state, action) => {
|
|
|
19732
19734
|
...state,
|
|
19733
19735
|
[toolbarSectionId]: {
|
|
19734
19736
|
...state[toolbarSectionId],
|
|
19737
|
+
selectedEvent: false,
|
|
19735
19738
|
toolOptions: {
|
|
19736
19739
|
...state[toolbarSectionId].toolOptions,
|
|
19737
19740
|
[toolName]: state[toolbarSectionId].toolOptions[toolName].map(option => option.id === optionName ? {
|
|
@@ -19745,6 +19748,7 @@ const toolboxReducer = (state, action) => {
|
|
|
19745
19748
|
// Initialize tool options for each toolbarSectionId
|
|
19746
19749
|
return {
|
|
19747
19750
|
...state,
|
|
19751
|
+
selectedEvent: false,
|
|
19748
19752
|
[action.toolbarSectionId]: {
|
|
19749
19753
|
...state[action.toolbarSectionId],
|
|
19750
19754
|
toolOptions: action.payload
|
|
@@ -31715,6 +31719,14 @@ const Select_Select = ({
|
|
|
31715
31719
|
components: _components,
|
|
31716
31720
|
placeholder: placeholder,
|
|
31717
31721
|
options: options,
|
|
31722
|
+
blurInputOnSelect: true,
|
|
31723
|
+
menuPortalTarget: document.body,
|
|
31724
|
+
styles: {
|
|
31725
|
+
menuPortal: base => ({
|
|
31726
|
+
...base,
|
|
31727
|
+
zIndex: 9999
|
|
31728
|
+
})
|
|
31729
|
+
},
|
|
31718
31730
|
value: value && Array.isArray(value) ? selectedOptions : value,
|
|
31719
31731
|
onChange: (selectedOptions, {
|
|
31720
31732
|
action
|
|
@@ -32886,7 +32898,6 @@ const MeasurementTable = ({
|
|
|
32886
32898
|
onDelete,
|
|
32887
32899
|
servicesManager
|
|
32888
32900
|
}) => {
|
|
32889
|
-
servicesManager = servicesManager;
|
|
32890
32901
|
const {
|
|
32891
32902
|
customizationService,
|
|
32892
32903
|
measurementService
|
|
@@ -59742,7 +59753,6 @@ SwiperSlide.displayName = 'SwiperSlide';
|
|
|
59742
59753
|
|
|
59743
59754
|
|
|
59744
59755
|
|
|
59745
|
-
|
|
59746
59756
|
const LegacySidePanel_borderSize = 4;
|
|
59747
59757
|
const expandedWidth = 248;
|
|
59748
59758
|
const LegacySidePanel_collapsedWidth = 25;
|
|
@@ -59935,7 +59945,7 @@ LegacySidePanel_LegacySidePanel.defaultProps = {
|
|
|
59935
59945
|
defaultComponentOpen: null
|
|
59936
59946
|
};
|
|
59937
59947
|
LegacySidePanel_LegacySidePanel.propTypes = {
|
|
59938
|
-
servicesManager: prop_types_default().
|
|
59948
|
+
servicesManager: (prop_types_default()).object.isRequired,
|
|
59939
59949
|
side: prop_types_default().oneOf(['left', 'right']).isRequired,
|
|
59940
59950
|
className: (prop_types_default()).string,
|
|
59941
59951
|
activeTabIndex: (prop_types_default()).number,
|
|
@@ -62609,20 +62619,26 @@ function ToolboxUI(props) {
|
|
|
62609
62619
|
const {
|
|
62610
62620
|
toolbarButtons,
|
|
62611
62621
|
handleToolSelect,
|
|
62612
|
-
|
|
62622
|
+
toolboxState,
|
|
62613
62623
|
numRows,
|
|
62614
62624
|
servicesManager,
|
|
62615
62625
|
title,
|
|
62616
62626
|
useCollapsedPanel = true
|
|
62617
62627
|
} = props;
|
|
62628
|
+
const {
|
|
62629
|
+
activeTool,
|
|
62630
|
+
toolOptions,
|
|
62631
|
+
selectedEvent
|
|
62632
|
+
} = toolboxState;
|
|
62633
|
+
const activeToolOptions = toolOptions?.[activeTool];
|
|
62618
62634
|
const prevToolOptions = usePrevious(activeToolOptions);
|
|
62619
62635
|
(0,react.useEffect)(() => {
|
|
62620
|
-
if (!activeToolOptions) {
|
|
62636
|
+
if (!activeToolOptions || Array.isArray(activeToolOptions) === false) {
|
|
62621
62637
|
return;
|
|
62622
62638
|
}
|
|
62623
62639
|
activeToolOptions.forEach((option, index) => {
|
|
62624
62640
|
const prevOption = prevToolOptions ? prevToolOptions[index] : undefined;
|
|
62625
|
-
if (!prevOption || option.value !== prevOption.value) {
|
|
62641
|
+
if (!prevOption || option.value !== prevOption.value || selectedEvent) {
|
|
62626
62642
|
const isOptionValid = option.condition ? option.condition({
|
|
62627
62643
|
options: activeToolOptions
|
|
62628
62644
|
}) : true;
|
|
@@ -62634,7 +62650,7 @@ function ToolboxUI(props) {
|
|
|
62634
62650
|
}
|
|
62635
62651
|
}
|
|
62636
62652
|
});
|
|
62637
|
-
}, [activeToolOptions]);
|
|
62653
|
+
}, [activeToolOptions, selectedEvent]);
|
|
62638
62654
|
const render = () => {
|
|
62639
62655
|
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
62640
62656
|
className: "flex flex-col bg-black"
|
|
@@ -62724,8 +62740,8 @@ function Toolbox({
|
|
|
62724
62740
|
servicesManager,
|
|
62725
62741
|
buttonSection: buttonSectionId
|
|
62726
62742
|
});
|
|
62727
|
-
const prevButtonIdsRef = (0,react.useRef)();
|
|
62728
|
-
const prevToolboxStateRef = (0,react.useRef)();
|
|
62743
|
+
const prevButtonIdsRef = (0,react.useRef)('');
|
|
62744
|
+
const prevToolboxStateRef = (0,react.useRef)('');
|
|
62729
62745
|
(0,react.useEffect)(() => {
|
|
62730
62746
|
const currentButtonIdsStr = JSON.stringify(toolbarButtons.map(button => {
|
|
62731
62747
|
const {
|
|
@@ -62820,7 +62836,7 @@ function Toolbox({
|
|
|
62820
62836
|
return accumulator;
|
|
62821
62837
|
}, {});
|
|
62822
62838
|
api.initializeToolOptions(initializeOptionsWithEnhancements);
|
|
62823
|
-
}, [toolbarButtons, api, toolboxState]);
|
|
62839
|
+
}, [toolbarButtons, api, toolboxState, commandsManager, servicesManager]);
|
|
62824
62840
|
const handleToolOptionChange = (toolName, optionName, newValue) => {
|
|
62825
62841
|
api.handleToolOptionChange(toolName, optionName, newValue);
|
|
62826
62842
|
};
|
|
@@ -62832,7 +62848,7 @@ function Toolbox({
|
|
|
62832
62848
|
return /*#__PURE__*/react.createElement(ToolboxUI, Toolbox_extends({}, props, {
|
|
62833
62849
|
title: title,
|
|
62834
62850
|
toolbarButtons: toolbarButtons,
|
|
62835
|
-
|
|
62851
|
+
toolboxState: toolboxState,
|
|
62836
62852
|
handleToolSelect: id => api.handleToolSelect(id),
|
|
62837
62853
|
handleToolOptionChange: handleToolOptionChange,
|
|
62838
62854
|
onInteraction: onInteraction
|
|
@@ -63325,7 +63341,7 @@ function _getImageOrientationPatient(image) {
|
|
|
63325
63341
|
|
|
63326
63342
|
/***/ }),
|
|
63327
63343
|
|
|
63328
|
-
/***/
|
|
63344
|
+
/***/ 8633:
|
|
63329
63345
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
63330
63346
|
|
|
63331
63347
|
"use strict";
|
|
@@ -63353,10 +63369,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
63353
63369
|
CS: () => (/* reexport */ ServicesManager),
|
|
63354
63370
|
wb: () => (/* reexport */ services_StateSyncService),
|
|
63355
63371
|
ToolbarService: () => (/* reexport */ ToolBarService),
|
|
63356
|
-
u$: () => (/* reexport */
|
|
63372
|
+
u$: () => (/* reexport */ services_UIDialogService),
|
|
63357
63373
|
zo: () => (/* reexport */ services_UIModalService),
|
|
63358
63374
|
v4: () => (/* reexport */ services_UINotificationService),
|
|
63359
|
-
A$: () => (/* reexport */
|
|
63375
|
+
A$: () => (/* reexport */ services_UIViewportDialogService),
|
|
63360
63376
|
pS: () => (/* reexport */ services_UserAuthenticationService),
|
|
63361
63377
|
sI: () => (/* reexport */ services_ViewportGridService),
|
|
63362
63378
|
Ai: () => (/* reexport */ services_WorkflowStepsService),
|
|
@@ -64171,142 +64187,89 @@ class ServiceProvidersManager {
|
|
|
64171
64187
|
this.providers[serviceName] = provider;
|
|
64172
64188
|
}
|
|
64173
64189
|
}
|
|
64174
|
-
;// CONCATENATED MODULE: ../../core/src/services/UIDialogService/
|
|
64175
|
-
|
|
64176
|
-
* A UI Element Position
|
|
64177
|
-
*
|
|
64178
|
-
* @typedef {Object} ElementPosition
|
|
64179
|
-
* @property {number} top -
|
|
64180
|
-
* @property {number} left -
|
|
64181
|
-
* @property {number} right -
|
|
64182
|
-
* @property {number} bottom -
|
|
64183
|
-
*/
|
|
64184
|
-
|
|
64185
|
-
/**
|
|
64186
|
-
* UI Dialog
|
|
64187
|
-
*
|
|
64188
|
-
* @typedef {Object} DialogProps
|
|
64189
|
-
* @property {string} id The dialog id.
|
|
64190
|
-
* @property {ReactElement|HTMLElement} content The dialog content.
|
|
64191
|
-
* @property {Object} contentProps The dialog content props.
|
|
64192
|
-
* @property {boolean} [isDraggable=true] Controls if dialog content is draggable or not.
|
|
64193
|
-
* @property {boolean} [showOverlay=false] Controls dialog overlay.
|
|
64194
|
-
* @property {boolean} [centralize=false] Center the dialog on the screen.
|
|
64195
|
-
* @property {boolean} [preservePosition=true] Use last position instead of default.
|
|
64196
|
-
* @property {ElementPosition} defaultPosition Specifies the `x` and `y` that the dragged item should start at.
|
|
64197
|
-
* @property {Function} onStart Called when dragging starts. If `false` is returned any handler, the action will cancel.
|
|
64198
|
-
* @property {Function} onStop Called when dragging stops.
|
|
64199
|
-
* @property {Function} onDrag Called while dragging.
|
|
64200
|
-
*/
|
|
64201
|
-
|
|
64202
|
-
const UIDialogService_name = 'uiDialogService';
|
|
64203
|
-
const publicAPI = {
|
|
64204
|
-
name: UIDialogService_name,
|
|
64205
|
-
dismiss: _dismiss,
|
|
64206
|
-
dismissAll: _dismissAll,
|
|
64207
|
-
create: _create,
|
|
64208
|
-
setServiceImplementation
|
|
64209
|
-
};
|
|
64210
|
-
const serviceImplementation = {
|
|
64211
|
-
_dismiss: () => console.warn('dismiss() NOT IMPLEMENTED'),
|
|
64212
|
-
_dismissAll: () => console.warn('dismissAll() NOT IMPLEMENTED'),
|
|
64213
|
-
_create: () => console.warn('create() NOT IMPLEMENTED')
|
|
64214
|
-
};
|
|
64190
|
+
;// CONCATENATED MODULE: ../../core/src/services/UIDialogService/UIDialogService.ts
|
|
64191
|
+
var _UIDialogService;
|
|
64215
64192
|
|
|
64216
|
-
|
|
64217
|
-
|
|
64218
|
-
|
|
64219
|
-
|
|
64220
|
-
|
|
64221
|
-
|
|
64222
|
-
|
|
64223
|
-
|
|
64224
|
-
|
|
64225
|
-
|
|
64226
|
-
|
|
64227
|
-
|
|
64228
|
-
|
|
64229
|
-
preservePosition = true,
|
|
64230
|
-
isDraggable = true,
|
|
64231
|
-
showOverlay = false,
|
|
64232
|
-
onClickOutside,
|
|
64233
|
-
defaultPosition
|
|
64234
|
-
}) {
|
|
64235
|
-
return serviceImplementation._create({
|
|
64193
|
+
class UIDialogService extends pubSubServiceInterface/* PubSubService */.R {
|
|
64194
|
+
constructor() {
|
|
64195
|
+
super(UIDialogService.EVENTS);
|
|
64196
|
+
this.serviceImplementation = {
|
|
64197
|
+
_dismiss: () => console.warn('dismiss() NOT IMPLEMENTED'),
|
|
64198
|
+
_dismissAll: () => console.warn('dismissAll() NOT IMPLEMENTED'),
|
|
64199
|
+
_create: () => console.warn('create() NOT IMPLEMENTED')
|
|
64200
|
+
};
|
|
64201
|
+
this.serviceImplementation = {
|
|
64202
|
+
...this.serviceImplementation
|
|
64203
|
+
};
|
|
64204
|
+
}
|
|
64205
|
+
create({
|
|
64236
64206
|
id,
|
|
64237
64207
|
content,
|
|
64238
64208
|
contentProps,
|
|
64239
64209
|
onStart,
|
|
64240
64210
|
onDrag,
|
|
64241
64211
|
onStop,
|
|
64242
|
-
centralize,
|
|
64243
|
-
preservePosition,
|
|
64244
|
-
isDraggable,
|
|
64245
|
-
|
|
64246
|
-
showOverlay,
|
|
64212
|
+
centralize = false,
|
|
64213
|
+
preservePosition = true,
|
|
64214
|
+
isDraggable = true,
|
|
64215
|
+
showOverlay = false,
|
|
64247
64216
|
defaultPosition
|
|
64248
|
-
})
|
|
64249
|
-
|
|
64250
|
-
|
|
64251
|
-
|
|
64252
|
-
|
|
64253
|
-
|
|
64254
|
-
|
|
64255
|
-
|
|
64256
|
-
|
|
64257
|
-
|
|
64258
|
-
|
|
64259
|
-
|
|
64260
|
-
|
|
64261
|
-
|
|
64262
|
-
|
|
64263
|
-
|
|
64264
|
-
*/
|
|
64265
|
-
function _dismiss({
|
|
64266
|
-
id
|
|
64267
|
-
}) {
|
|
64268
|
-
return serviceImplementation._dismiss({
|
|
64217
|
+
}) {
|
|
64218
|
+
return this.serviceImplementation._create({
|
|
64219
|
+
id,
|
|
64220
|
+
content,
|
|
64221
|
+
contentProps,
|
|
64222
|
+
onStart,
|
|
64223
|
+
onDrag,
|
|
64224
|
+
onStop,
|
|
64225
|
+
centralize,
|
|
64226
|
+
preservePosition,
|
|
64227
|
+
isDraggable,
|
|
64228
|
+
showOverlay,
|
|
64229
|
+
defaultPosition
|
|
64230
|
+
});
|
|
64231
|
+
}
|
|
64232
|
+
dismiss({
|
|
64269
64233
|
id
|
|
64270
|
-
})
|
|
64271
|
-
|
|
64272
|
-
|
|
64273
|
-
|
|
64274
|
-
*
|
|
64275
|
-
*
|
|
64276
|
-
* @param {*} {
|
|
64277
|
-
* dismiss: dismissImplementation,
|
|
64278
|
-
* dismissAll: dismissAllImplementation,
|
|
64279
|
-
* create: createImplementation,
|
|
64280
|
-
* }
|
|
64281
|
-
*/
|
|
64282
|
-
function setServiceImplementation({
|
|
64283
|
-
dismiss: dismissImplementation,
|
|
64284
|
-
dismissAll: dismissAllImplementation,
|
|
64285
|
-
create: createImplementation
|
|
64286
|
-
}) {
|
|
64287
|
-
if (dismissImplementation) {
|
|
64288
|
-
serviceImplementation._dismiss = dismissImplementation;
|
|
64234
|
+
}) {
|
|
64235
|
+
return this.serviceImplementation._dismiss({
|
|
64236
|
+
id
|
|
64237
|
+
});
|
|
64289
64238
|
}
|
|
64290
|
-
|
|
64291
|
-
serviceImplementation._dismissAll
|
|
64239
|
+
dismissAll() {
|
|
64240
|
+
return this.serviceImplementation._dismissAll();
|
|
64292
64241
|
}
|
|
64293
|
-
|
|
64294
|
-
|
|
64242
|
+
setServiceImplementation({
|
|
64243
|
+
dismiss: dismissImplementation,
|
|
64244
|
+
dismissAll: dismissAllImplementation,
|
|
64245
|
+
create: createImplementation
|
|
64246
|
+
}) {
|
|
64247
|
+
if (dismissImplementation) {
|
|
64248
|
+
this.serviceImplementation._dismiss = dismissImplementation;
|
|
64249
|
+
}
|
|
64250
|
+
if (dismissAllImplementation) {
|
|
64251
|
+
this.serviceImplementation._dismissAll = dismissAllImplementation;
|
|
64252
|
+
}
|
|
64253
|
+
if (createImplementation) {
|
|
64254
|
+
this.serviceImplementation._create = createImplementation;
|
|
64255
|
+
}
|
|
64295
64256
|
}
|
|
64296
64257
|
}
|
|
64297
|
-
|
|
64298
|
-
|
|
64299
|
-
|
|
64300
|
-
|
|
64301
|
-
|
|
64302
|
-
|
|
64303
|
-
|
|
64304
|
-
|
|
64305
|
-
|
|
64306
|
-
return publicAPI;
|
|
64307
|
-
}
|
|
64258
|
+
_UIDialogService = UIDialogService;
|
|
64259
|
+
UIDialogService.EVENTS = {};
|
|
64260
|
+
UIDialogService.REGISTRATION = {
|
|
64261
|
+
name: 'uiDialogService',
|
|
64262
|
+
altName: 'UIDialogService',
|
|
64263
|
+
create: ({
|
|
64264
|
+
configuration = {}
|
|
64265
|
+
}) => {
|
|
64266
|
+
return new _UIDialogService();
|
|
64308
64267
|
}
|
|
64309
|
-
}
|
|
64268
|
+
};
|
|
64269
|
+
/* harmony default export */ const UIDialogService_UIDialogService = (UIDialogService);
|
|
64270
|
+
;// CONCATENATED MODULE: ../../core/src/services/UIDialogService/index.ts
|
|
64271
|
+
|
|
64272
|
+
/* harmony default export */ const services_UIDialogService = (UIDialogService_UIDialogService);
|
|
64310
64273
|
;// CONCATENATED MODULE: ../../core/src/services/UIModalService/index.ts
|
|
64311
64274
|
var _UIModalService;
|
|
64312
64275
|
/**
|
|
@@ -64323,7 +64286,7 @@ var _UIModalService;
|
|
|
64323
64286
|
*/
|
|
64324
64287
|
|
|
64325
64288
|
const UIModalService_name = 'uiModalService';
|
|
64326
|
-
const
|
|
64289
|
+
const serviceImplementation = {
|
|
64327
64290
|
_hide: () => console.warn('hide() NOT IMPLEMENTED'),
|
|
64328
64291
|
_show: () => console.warn('show() NOT IMPLEMENTED')
|
|
64329
64292
|
};
|
|
@@ -64348,7 +64311,7 @@ class UIModalService {
|
|
|
64348
64311
|
containerDimensions = null,
|
|
64349
64312
|
contentDimensions = null
|
|
64350
64313
|
}) {
|
|
64351
|
-
return
|
|
64314
|
+
return serviceImplementation._show({
|
|
64352
64315
|
content,
|
|
64353
64316
|
contentProps,
|
|
64354
64317
|
shouldCloseOnEsc,
|
|
@@ -64368,7 +64331,7 @@ class UIModalService {
|
|
|
64368
64331
|
* @returns void
|
|
64369
64332
|
*/
|
|
64370
64333
|
hide() {
|
|
64371
|
-
return
|
|
64334
|
+
return serviceImplementation._hide();
|
|
64372
64335
|
}
|
|
64373
64336
|
|
|
64374
64337
|
/**
|
|
@@ -64384,10 +64347,10 @@ class UIModalService {
|
|
|
64384
64347
|
show: showImplementation
|
|
64385
64348
|
}) {
|
|
64386
64349
|
if (hideImplementation) {
|
|
64387
|
-
|
|
64350
|
+
serviceImplementation._hide = hideImplementation;
|
|
64388
64351
|
}
|
|
64389
64352
|
if (showImplementation) {
|
|
64390
|
-
|
|
64353
|
+
serviceImplementation._show = showImplementation;
|
|
64391
64354
|
}
|
|
64392
64355
|
}
|
|
64393
64356
|
}
|
|
@@ -64493,44 +64456,21 @@ UINotificationService.REGISTRATION = {
|
|
|
64493
64456
|
}
|
|
64494
64457
|
};
|
|
64495
64458
|
/* harmony default export */ const services_UINotificationService = (UINotificationService);
|
|
64496
|
-
;// CONCATENATED MODULE: ../../core/src/services/UIViewportDialogService/
|
|
64497
|
-
|
|
64498
|
-
* Viewport Dialog
|
|
64499
|
-
*
|
|
64500
|
-
* @typedef {Object} ViewportDialogProps
|
|
64501
|
-
* @property {ReactElement|HTMLElement} [content=null] Modal content.
|
|
64502
|
-
* @property {Object} [contentProps=null] Modal content props.
|
|
64503
|
-
* @property {boolean} [viewportId=false] Modal is dismissible via the esc key.
|
|
64504
|
-
*/
|
|
64459
|
+
;// CONCATENATED MODULE: ../../core/src/services/UIViewportDialogService/UIViewportDialogService.ts
|
|
64460
|
+
var _UIViewportDialogService;
|
|
64505
64461
|
|
|
64506
|
-
|
|
64507
|
-
|
|
64508
|
-
|
|
64509
|
-
|
|
64510
|
-
|
|
64511
|
-
|
|
64512
|
-
};
|
|
64513
|
-
|
|
64514
|
-
|
|
64515
|
-
|
|
64516
|
-
}
|
|
64517
|
-
|
|
64518
|
-
/**
|
|
64519
|
-
* Show a new UI viewport dialog on the specified viewportId;
|
|
64520
|
-
*
|
|
64521
|
-
* @param {ViewportDialogProps} props { content, contentProps, viewportId }
|
|
64522
|
-
*/
|
|
64523
|
-
function _show({
|
|
64524
|
-
viewportId,
|
|
64525
|
-
id,
|
|
64526
|
-
type,
|
|
64527
|
-
message,
|
|
64528
|
-
actions,
|
|
64529
|
-
onSubmit,
|
|
64530
|
-
onOutsideClick,
|
|
64531
|
-
onKeyPress
|
|
64532
|
-
}) {
|
|
64533
|
-
return UIViewportDialogService_serviceImplementation._show({
|
|
64462
|
+
class UIViewportDialogService extends pubSubServiceInterface/* PubSubService */.R {
|
|
64463
|
+
constructor() {
|
|
64464
|
+
super(UIViewportDialogService.EVENTS);
|
|
64465
|
+
this.serviceImplementation = {
|
|
64466
|
+
_hide: () => console.warn('hide() NOT IMPLEMENTED'),
|
|
64467
|
+
_show: () => console.warn('show() NOT IMPLEMENTED')
|
|
64468
|
+
};
|
|
64469
|
+
this.serviceImplementation = {
|
|
64470
|
+
...this.serviceImplementation
|
|
64471
|
+
};
|
|
64472
|
+
}
|
|
64473
|
+
show({
|
|
64534
64474
|
viewportId,
|
|
64535
64475
|
id,
|
|
64536
64476
|
type,
|
|
@@ -64539,47 +64479,48 @@ function _show({
|
|
|
64539
64479
|
onSubmit,
|
|
64540
64480
|
onOutsideClick,
|
|
64541
64481
|
onKeyPress
|
|
64542
|
-
})
|
|
64543
|
-
|
|
64544
|
-
|
|
64545
|
-
|
|
64546
|
-
|
|
64547
|
-
|
|
64548
|
-
|
|
64549
|
-
|
|
64550
|
-
|
|
64551
|
-
|
|
64552
|
-
|
|
64553
|
-
*
|
|
64554
|
-
*
|
|
64555
|
-
* @param {*} {
|
|
64556
|
-
* hide: hideImplementation,
|
|
64557
|
-
* show: showImplementation,
|
|
64558
|
-
* viewportId,
|
|
64559
|
-
* }
|
|
64560
|
-
*/
|
|
64561
|
-
function UIViewportDialogService_setServiceImplementation({
|
|
64562
|
-
hide: hideImplementation,
|
|
64563
|
-
show: showImplementation
|
|
64564
|
-
}) {
|
|
64565
|
-
if (hideImplementation) {
|
|
64566
|
-
UIViewportDialogService_serviceImplementation._hide = hideImplementation;
|
|
64482
|
+
}) {
|
|
64483
|
+
return this.serviceImplementation._show({
|
|
64484
|
+
viewportId,
|
|
64485
|
+
id,
|
|
64486
|
+
type,
|
|
64487
|
+
message,
|
|
64488
|
+
actions,
|
|
64489
|
+
onSubmit,
|
|
64490
|
+
onOutsideClick,
|
|
64491
|
+
onKeyPress
|
|
64492
|
+
});
|
|
64567
64493
|
}
|
|
64568
|
-
|
|
64569
|
-
|
|
64494
|
+
hide() {
|
|
64495
|
+
return this.serviceImplementation._hide();
|
|
64570
64496
|
}
|
|
64571
|
-
|
|
64572
|
-
|
|
64573
|
-
|
|
64574
|
-
|
|
64575
|
-
|
|
64576
|
-
|
|
64577
|
-
|
|
64578
|
-
|
|
64579
|
-
|
|
64497
|
+
setServiceImplementation({
|
|
64498
|
+
hide: hideImplementation,
|
|
64499
|
+
show: showImplementation
|
|
64500
|
+
}) {
|
|
64501
|
+
if (hideImplementation) {
|
|
64502
|
+
this.serviceImplementation._hide = hideImplementation;
|
|
64503
|
+
}
|
|
64504
|
+
if (showImplementation) {
|
|
64505
|
+
this.serviceImplementation._show = showImplementation;
|
|
64580
64506
|
}
|
|
64581
64507
|
}
|
|
64582
|
-
}
|
|
64508
|
+
}
|
|
64509
|
+
_UIViewportDialogService = UIViewportDialogService;
|
|
64510
|
+
UIViewportDialogService.EVENTS = {};
|
|
64511
|
+
UIViewportDialogService.REGISTRATION = {
|
|
64512
|
+
name: 'uiViewportDialogService',
|
|
64513
|
+
altName: 'UIViewportDialogService',
|
|
64514
|
+
create: ({
|
|
64515
|
+
configuration = {}
|
|
64516
|
+
}) => {
|
|
64517
|
+
return new _UIViewportDialogService();
|
|
64518
|
+
}
|
|
64519
|
+
};
|
|
64520
|
+
/* harmony default export */ const UIViewportDialogService_UIViewportDialogService = (UIViewportDialogService);
|
|
64521
|
+
;// CONCATENATED MODULE: ../../core/src/services/UIViewportDialogService/index.ts
|
|
64522
|
+
|
|
64523
|
+
/* harmony default export */ const services_UIViewportDialogService = (UIViewportDialogService_UIViewportDialogService);
|
|
64583
64524
|
// EXTERNAL MODULE: ../../core/src/services/DicomMetadataStore/DicomMetadataStore.ts + 2 modules
|
|
64584
64525
|
var DicomMetadataStore = __webpack_require__(23221);
|
|
64585
64526
|
;// CONCATENATED MODULE: ../../core/src/services/DicomMetadataStore/index.ts
|
|
@@ -67637,6 +67578,8 @@ class HangingProtocolService extends pubSubServiceInterface/* PubSubService */.R
|
|
|
67637
67578
|
if (this.registeredImageLoadStrategies[imageLoadStrategy] instanceof Function) {
|
|
67638
67579
|
this.activeImageLoadStrategyName = imageLoadStrategy;
|
|
67639
67580
|
}
|
|
67581
|
+
} else {
|
|
67582
|
+
this.activeImageLoadStrategyName = null;
|
|
67640
67583
|
}
|
|
67641
67584
|
this._updateStageStatus(options);
|
|
67642
67585
|
}
|
|
@@ -68228,96 +68171,94 @@ HangingProtocolService.REGISTRATION = {
|
|
|
68228
68171
|
;// CONCATENATED MODULE: ../../core/src/services/HangingProtocolService/index.ts
|
|
68229
68172
|
|
|
68230
68173
|
/* harmony default export */ const services_HangingProtocolService = (HangingProtocolService);
|
|
68231
|
-
;// CONCATENATED MODULE: ../../core/src/services/UserAuthenticationService/UserAuthenticationService.
|
|
68232
|
-
|
|
68233
|
-
|
|
68234
|
-
|
|
68235
|
-
|
|
68236
|
-
|
|
68237
|
-
|
|
68238
|
-
|
|
68239
|
-
|
|
68240
|
-
|
|
68241
|
-
|
|
68242
|
-
|
|
68243
|
-
|
|
68244
|
-
|
|
68245
|
-
|
|
68246
|
-
|
|
68247
|
-
|
|
68248
|
-
|
|
68249
|
-
|
|
68250
|
-
//console.warn('_getAuthorizationHeader() NOT IMPLEMENTED'),
|
|
68251
|
-
_handleUnauthenticated: () => console.warn('_handleUnauthenticated() NOT IMPLEMENTED'),
|
|
68252
|
-
_reset: () => console.warn('reset() NOT IMPLEMENTED'),
|
|
68253
|
-
_set: () => console.warn('set() NOT IMPLEMENTED')
|
|
68254
|
-
};
|
|
68255
|
-
function _getState() {
|
|
68256
|
-
return UserAuthenticationService_serviceImplementation._getState();
|
|
68257
|
-
}
|
|
68258
|
-
function _setUser(user) {
|
|
68259
|
-
return UserAuthenticationService_serviceImplementation._setUser(user);
|
|
68260
|
-
}
|
|
68261
|
-
function _getUser() {
|
|
68262
|
-
return UserAuthenticationService_serviceImplementation._getUser();
|
|
68263
|
-
}
|
|
68264
|
-
function _getAuthorizationHeader() {
|
|
68265
|
-
return UserAuthenticationService_serviceImplementation._getAuthorizationHeader();
|
|
68266
|
-
}
|
|
68267
|
-
function _handleUnauthenticated() {
|
|
68268
|
-
return UserAuthenticationService_serviceImplementation._handleUnauthenticated();
|
|
68269
|
-
}
|
|
68270
|
-
function _set(state) {
|
|
68271
|
-
return UserAuthenticationService_serviceImplementation._set(state);
|
|
68272
|
-
}
|
|
68273
|
-
function _reset() {
|
|
68274
|
-
return UserAuthenticationService_serviceImplementation._reset({});
|
|
68275
|
-
}
|
|
68276
|
-
function UserAuthenticationService_setServiceImplementation({
|
|
68277
|
-
getState: getStateImplementation,
|
|
68278
|
-
setUser: setUserImplementation,
|
|
68279
|
-
getUser: getUserImplementation,
|
|
68280
|
-
getAuthorizationHeader: getAuthorizationHeaderImplementation,
|
|
68281
|
-
handleUnauthenticated: handleUnauthenticatedImplementation,
|
|
68282
|
-
reset: resetImplementation,
|
|
68283
|
-
set: setImplementation
|
|
68284
|
-
}) {
|
|
68285
|
-
if (getStateImplementation) {
|
|
68286
|
-
UserAuthenticationService_serviceImplementation._getState = getStateImplementation;
|
|
68174
|
+
;// CONCATENATED MODULE: ../../core/src/services/UserAuthenticationService/UserAuthenticationService.ts
|
|
68175
|
+
var _UserAuthenticationService;
|
|
68176
|
+
|
|
68177
|
+
class UserAuthenticationService extends pubSubServiceInterface/* PubSubService */.R {
|
|
68178
|
+
constructor() {
|
|
68179
|
+
super(UserAuthenticationService.EVENTS);
|
|
68180
|
+
this.serviceImplementation = {
|
|
68181
|
+
_getState: () => console.warn('getState() NOT IMPLEMENTED'),
|
|
68182
|
+
_setUser: () => console.warn('_setUser() NOT IMPLEMENTED'),
|
|
68183
|
+
_getUser: () => console.warn('_getUser() NOT IMPLEMENTED'),
|
|
68184
|
+
_getAuthorizationHeader: () => {},
|
|
68185
|
+
// TODO: Implement this method
|
|
68186
|
+
_handleUnauthenticated: () => console.warn('_handleUnauthenticated() NOT IMPLEMENTED'),
|
|
68187
|
+
_reset: () => console.warn('reset() NOT IMPLEMENTED'),
|
|
68188
|
+
_set: () => console.warn('set() NOT IMPLEMENTED')
|
|
68189
|
+
};
|
|
68190
|
+
this.serviceImplementation = {
|
|
68191
|
+
...this.serviceImplementation
|
|
68192
|
+
};
|
|
68287
68193
|
}
|
|
68288
|
-
|
|
68289
|
-
|
|
68194
|
+
getState() {
|
|
68195
|
+
return this.serviceImplementation._getState();
|
|
68290
68196
|
}
|
|
68291
|
-
|
|
68292
|
-
|
|
68197
|
+
setUser(user) {
|
|
68198
|
+
return this.serviceImplementation._setUser(user);
|
|
68293
68199
|
}
|
|
68294
|
-
|
|
68295
|
-
|
|
68200
|
+
getUser() {
|
|
68201
|
+
return this.serviceImplementation._getUser();
|
|
68296
68202
|
}
|
|
68297
|
-
|
|
68298
|
-
|
|
68203
|
+
getAuthorizationHeader() {
|
|
68204
|
+
return this.serviceImplementation._getAuthorizationHeader();
|
|
68299
68205
|
}
|
|
68300
|
-
|
|
68301
|
-
|
|
68206
|
+
handleUnauthenticated() {
|
|
68207
|
+
return this.serviceImplementation._handleUnauthenticated();
|
|
68302
68208
|
}
|
|
68303
|
-
|
|
68304
|
-
|
|
68209
|
+
reset() {
|
|
68210
|
+
return this.serviceImplementation._reset();
|
|
68305
68211
|
}
|
|
68306
|
-
|
|
68307
|
-
|
|
68308
|
-
|
|
68309
|
-
|
|
68310
|
-
|
|
68311
|
-
|
|
68312
|
-
|
|
68313
|
-
|
|
68314
|
-
|
|
68212
|
+
set(state) {
|
|
68213
|
+
return this.serviceImplementation._set(state);
|
|
68214
|
+
}
|
|
68215
|
+
setServiceImplementation({
|
|
68216
|
+
getState: getStateImplementation,
|
|
68217
|
+
setUser: setUserImplementation,
|
|
68218
|
+
getUser: getUserImplementation,
|
|
68219
|
+
getAuthorizationHeader: getAuthorizationHeaderImplementation,
|
|
68220
|
+
handleUnauthenticated: handleUnauthenticatedImplementation,
|
|
68221
|
+
reset: resetImplementation,
|
|
68222
|
+
set: setImplementation
|
|
68223
|
+
}) {
|
|
68224
|
+
if (getStateImplementation) {
|
|
68225
|
+
this.serviceImplementation._getState = getStateImplementation;
|
|
68226
|
+
}
|
|
68227
|
+
if (setUserImplementation) {
|
|
68228
|
+
this.serviceImplementation._setUser = setUserImplementation;
|
|
68229
|
+
}
|
|
68230
|
+
if (getUserImplementation) {
|
|
68231
|
+
this.serviceImplementation._getUser = getUserImplementation;
|
|
68232
|
+
}
|
|
68233
|
+
if (getAuthorizationHeaderImplementation) {
|
|
68234
|
+
this.serviceImplementation._getAuthorizationHeader = getAuthorizationHeaderImplementation;
|
|
68235
|
+
}
|
|
68236
|
+
if (handleUnauthenticatedImplementation) {
|
|
68237
|
+
this.serviceImplementation._handleUnauthenticated = handleUnauthenticatedImplementation;
|
|
68238
|
+
}
|
|
68239
|
+
if (resetImplementation) {
|
|
68240
|
+
this.serviceImplementation._reset = resetImplementation;
|
|
68241
|
+
}
|
|
68242
|
+
if (setImplementation) {
|
|
68243
|
+
this.serviceImplementation._set = setImplementation;
|
|
68315
68244
|
}
|
|
68316
68245
|
}
|
|
68317
|
-
}
|
|
68318
|
-
|
|
68246
|
+
}
|
|
68247
|
+
_UserAuthenticationService = UserAuthenticationService;
|
|
68248
|
+
UserAuthenticationService.EVENTS = {};
|
|
68249
|
+
UserAuthenticationService.REGISTRATION = {
|
|
68250
|
+
name: 'userAuthenticationService',
|
|
68251
|
+
altName: 'UserAuthenticationService',
|
|
68252
|
+
create: ({
|
|
68253
|
+
configuration = {}
|
|
68254
|
+
}) => {
|
|
68255
|
+
return new _UserAuthenticationService();
|
|
68256
|
+
}
|
|
68257
|
+
};
|
|
68258
|
+
/* harmony default export */ const UserAuthenticationService_UserAuthenticationService = (UserAuthenticationService);
|
|
68259
|
+
;// CONCATENATED MODULE: ../../core/src/services/UserAuthenticationService/index.ts
|
|
68319
68260
|
|
|
68320
|
-
/* harmony default export */ const services_UserAuthenticationService = (
|
|
68261
|
+
/* harmony default export */ const services_UserAuthenticationService = (UserAuthenticationService_UserAuthenticationService);
|
|
68321
68262
|
// EXTERNAL MODULE: ../../../node_modules/lodash.merge/index.js
|
|
68322
68263
|
var lodash_merge = __webpack_require__(40592);
|
|
68323
68264
|
var lodash_merge_default = /*#__PURE__*/__webpack_require__.n(lodash_merge);
|
|
@@ -71593,10 +71534,10 @@ const OHIF = {
|
|
|
71593
71534
|
CineService: services_CineService,
|
|
71594
71535
|
CustomizationService: services_CustomizationService,
|
|
71595
71536
|
StateSyncService: services_StateSyncService,
|
|
71596
|
-
UIDialogService:
|
|
71537
|
+
UIDialogService: services_UIDialogService,
|
|
71597
71538
|
UIModalService: services_UIModalService,
|
|
71598
71539
|
UINotificationService: services_UINotificationService,
|
|
71599
|
-
UIViewportDialogService:
|
|
71540
|
+
UIViewportDialogService: services_UIViewportDialogService,
|
|
71600
71541
|
DisplaySetService: services_DisplaySetService,
|
|
71601
71542
|
MeasurementService: services_MeasurementService,
|
|
71602
71543
|
ToolbarService: ToolBarService,
|
|
@@ -72675,7 +72616,7 @@ webpackContext.id = 64692;
|
|
|
72675
72616
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44753);
|
|
72676
72617
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13320);
|
|
72677
72618
|
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88903);
|
|
72678
|
-
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
72619
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98362);
|
|
72679
72620
|
/* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21432);
|
|
72680
72621
|
/* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(51884);
|
|
72681
72622
|
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(71702);
|
|
@@ -72922,13 +72863,15 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
72922
72863
|
static get useCustomRenderingPipeline() {
|
|
72923
72864
|
return false;
|
|
72924
72865
|
}
|
|
72925
|
-
applyViewOrientation(orientation) {
|
|
72866
|
+
applyViewOrientation(orientation, resetCamera = true) {
|
|
72926
72867
|
const { viewPlaneNormal, viewUp } = this._getOrientationVectors(orientation);
|
|
72927
72868
|
const camera = this.getVtkActiveCamera();
|
|
72928
72869
|
camera.setDirectionOfProjection(-viewPlaneNormal[0], -viewPlaneNormal[1], -viewPlaneNormal[2]);
|
|
72929
72870
|
camera.setViewUpFrom(viewUp);
|
|
72930
72871
|
this.initialViewUp = viewUp;
|
|
72931
|
-
|
|
72872
|
+
if (resetCamera) {
|
|
72873
|
+
this.resetCamera();
|
|
72874
|
+
}
|
|
72932
72875
|
}
|
|
72933
72876
|
initializeVolumeNewImageEventDispatcher() {
|
|
72934
72877
|
const volumeNewImageHandlerBound = volumeNewImageHandler.bind(this);
|
|
@@ -73157,28 +73100,96 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
73157
73100
|
}
|
|
73158
73101
|
getViewReference(viewRefSpecifier = {}) {
|
|
73159
73102
|
const target = super.getViewReference(viewRefSpecifier);
|
|
73103
|
+
const volumeId = this.getVolumeId(viewRefSpecifier);
|
|
73160
73104
|
if (viewRefSpecifier?.forFrameOfReference !== false) {
|
|
73161
|
-
target.volumeId =
|
|
73162
|
-
}
|
|
73163
|
-
|
|
73164
|
-
|
|
73165
|
-
|
|
73166
|
-
};
|
|
73105
|
+
target.volumeId = volumeId;
|
|
73106
|
+
}
|
|
73107
|
+
if (typeof viewRefSpecifier?.sliceIndex !== 'number') {
|
|
73108
|
+
return target;
|
|
73109
|
+
}
|
|
73110
|
+
const { viewPlaneNormal } = target;
|
|
73111
|
+
const delta = viewRefSpecifier.sliceIndex - this.getSliceIndex();
|
|
73112
|
+
const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
73113
|
+
const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
|
|
73114
|
+
const { focalPoint, position } = camera;
|
|
73115
|
+
const { newFocalPoint } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
73116
|
+
target.cameraFocalPoint = newFocalPoint;
|
|
73117
|
+
return target;
|
|
73167
73118
|
}
|
|
73168
73119
|
isReferenceViewable(viewRef, options) {
|
|
73120
|
+
if (!viewRef.FrameOfReferenceUID) {
|
|
73121
|
+
return false;
|
|
73122
|
+
}
|
|
73169
73123
|
if (!super.isReferenceViewable(viewRef, options)) {
|
|
73170
73124
|
return false;
|
|
73171
73125
|
}
|
|
73172
73126
|
if (options?.withNavigation) {
|
|
73173
73127
|
return true;
|
|
73174
73128
|
}
|
|
73175
|
-
const currentSliceIndex = this.
|
|
73129
|
+
const currentSliceIndex = this.getSliceIndex();
|
|
73176
73130
|
const { sliceIndex } = viewRef;
|
|
73177
73131
|
if (Array.isArray(sliceIndex)) {
|
|
73178
73132
|
return (sliceIndex[0] <= currentSliceIndex && currentSliceIndex <= sliceIndex[1]);
|
|
73179
73133
|
}
|
|
73180
73134
|
return sliceIndex === undefined || sliceIndex === currentSliceIndex;
|
|
73181
73135
|
}
|
|
73136
|
+
scroll(delta = 1) {
|
|
73137
|
+
const volumeId = this.getVolumeId();
|
|
73138
|
+
const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
73139
|
+
if (!sliceRangeInfo) {
|
|
73140
|
+
return;
|
|
73141
|
+
}
|
|
73142
|
+
const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
|
|
73143
|
+
const { focalPoint, viewPlaneNormal, position } = camera;
|
|
73144
|
+
const { newFocalPoint, newPosition } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
73145
|
+
this.setCamera({
|
|
73146
|
+
focalPoint: newFocalPoint,
|
|
73147
|
+
position: newPosition,
|
|
73148
|
+
});
|
|
73149
|
+
}
|
|
73150
|
+
setViewReference(viewRef) {
|
|
73151
|
+
if (!viewRef) {
|
|
73152
|
+
return;
|
|
73153
|
+
}
|
|
73154
|
+
const volumeId = this.getVolumeId();
|
|
73155
|
+
const { viewPlaneNormal: refViewPlaneNormal, FrameOfReferenceUID: refFrameOfReference, cameraFocalPoint, viewUp, } = viewRef;
|
|
73156
|
+
let { sliceIndex } = viewRef;
|
|
73157
|
+
const { focalPoint, viewPlaneNormal, position } = this.getCamera();
|
|
73158
|
+
const isNegativeNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqualNegative)(viewPlaneNormal, refViewPlaneNormal);
|
|
73159
|
+
const isSameNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqual)(viewPlaneNormal, refViewPlaneNormal);
|
|
73160
|
+
if (typeof sliceIndex === 'number' &&
|
|
73161
|
+
viewRef.volumeId === volumeId &&
|
|
73162
|
+
(isNegativeNormal || isSameNormal)) {
|
|
73163
|
+
const { currentStepIndex, sliceRangeInfo, numScrollSteps } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
73164
|
+
const { sliceRange, spacingInNormalDirection } = sliceRangeInfo;
|
|
73165
|
+
if (isNegativeNormal) {
|
|
73166
|
+
sliceIndex = numScrollSteps - sliceIndex - 1;
|
|
73167
|
+
}
|
|
73168
|
+
const delta = sliceIndex - currentStepIndex;
|
|
73169
|
+
const { newFocalPoint, newPosition } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
73170
|
+
this.setCamera({ focalPoint: newFocalPoint, position: newPosition });
|
|
73171
|
+
}
|
|
73172
|
+
else if (refFrameOfReference === this.getFrameOfReferenceUID()) {
|
|
73173
|
+
if (refViewPlaneNormal && !isNegativeNormal && !isSameNormal) {
|
|
73174
|
+
this.setOrientation({ viewPlaneNormal: refViewPlaneNormal, viewUp });
|
|
73175
|
+
return this.setViewReference(viewRef);
|
|
73176
|
+
}
|
|
73177
|
+
if (cameraFocalPoint) {
|
|
73178
|
+
const focalDelta = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.subtract */ .eR.subtract([0, 0, 0], cameraFocalPoint, focalPoint);
|
|
73179
|
+
const useNormal = refViewPlaneNormal ?? viewPlaneNormal;
|
|
73180
|
+
const normalDot = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.dot */ .eR.dot(focalDelta, useNormal);
|
|
73181
|
+
if (!(0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqual)(normalDot, 0)) {
|
|
73182
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.scale */ .eR.scale(focalDelta, useNormal, normalDot);
|
|
73183
|
+
}
|
|
73184
|
+
const newFocal = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.add */ .eR.add([0, 0, 0], focalPoint, focalDelta);
|
|
73185
|
+
const newPosition = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.add */ .eR.add([0, 0, 0], position, focalDelta);
|
|
73186
|
+
this.setCamera({ focalPoint: newFocal, position: newPosition });
|
|
73187
|
+
}
|
|
73188
|
+
}
|
|
73189
|
+
else {
|
|
73190
|
+
throw new Error(`Incompatible view refs: ${refFrameOfReference}!==${this.getFrameOfReferenceUID()}`);
|
|
73191
|
+
}
|
|
73192
|
+
}
|
|
73182
73193
|
setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, rotation, } = {}, volumeId, suppressEvents = false) {
|
|
73183
73194
|
if (this.globalDefaultProperties == null) {
|
|
73184
73195
|
this.setDefaultProperties({
|
|
@@ -73337,7 +73348,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
73337
73348
|
this.render();
|
|
73338
73349
|
}
|
|
73339
73350
|
}
|
|
73340
|
-
setOrientation(
|
|
73351
|
+
setOrientation(_orientation, _immediate = true) {
|
|
73341
73352
|
console.warn('Method "setOrientation" needs implementation');
|
|
73342
73353
|
}
|
|
73343
73354
|
initializeColorTransferFunction(volumeInputArray) {
|
|
@@ -73473,14 +73484,15 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
73473
73484
|
return volume.getScalarData()[voxelIndex];
|
|
73474
73485
|
}
|
|
73475
73486
|
getVolumeId(specifier) {
|
|
73487
|
+
const actorEntries = this.getActors();
|
|
73488
|
+
if (!actorEntries) {
|
|
73489
|
+
return;
|
|
73490
|
+
}
|
|
73476
73491
|
if (!specifier?.volumeId) {
|
|
73477
|
-
const actorEntries = this.getActors();
|
|
73478
|
-
if (!actorEntries) {
|
|
73479
|
-
return;
|
|
73480
|
-
}
|
|
73481
73492
|
return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
|
|
73482
73493
|
}
|
|
73483
|
-
return
|
|
73494
|
+
return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume' &&
|
|
73495
|
+
actorEntry.uid === specifier.volumeId)?.uid;
|
|
73484
73496
|
}
|
|
73485
73497
|
getReferenceId(specifier = {}) {
|
|
73486
73498
|
let { volumeId, sliceIndex: sliceIndex } = specifier;
|
|
@@ -73491,7 +73503,8 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
73491
73503
|
}
|
|
73492
73504
|
volumeId = actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
|
|
73493
73505
|
}
|
|
73494
|
-
|
|
73506
|
+
const currentIndex = this.getSliceIndex();
|
|
73507
|
+
sliceIndex ??= currentIndex;
|
|
73495
73508
|
const { viewPlaneNormal, focalPoint } = this.getCamera();
|
|
73496
73509
|
const querySeparator = volumeId.indexOf('?') > -1 ? '&' : '?';
|
|
73497
73510
|
return `volumeId:${volumeId}${querySeparator}sliceIndex=${sliceIndex}&viewPlaneNormal=${viewPlaneNormal.join(',')}&focalPoint=${focalPoint.join(',')}`;
|
|
@@ -74427,8 +74440,8 @@ var Viewport = __webpack_require__(11512);
|
|
|
74427
74440
|
var colors = __webpack_require__(59693);
|
|
74428
74441
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/drawImageSync.js + 22 modules
|
|
74429
74442
|
var drawImageSync = __webpack_require__(49892);
|
|
74430
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js +
|
|
74431
|
-
var enums = __webpack_require__(
|
|
74443
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
74444
|
+
var enums = __webpack_require__(98362);
|
|
74432
74445
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
|
|
74433
74446
|
var imageLoader = __webpack_require__(79220);
|
|
74434
74447
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
|
|
@@ -74630,20 +74643,8 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
74630
74643
|
resize(this._cpuFallbackEnabledElement);
|
|
74631
74644
|
}
|
|
74632
74645
|
};
|
|
74633
|
-
this.getFrameOfReferenceUID = () =>
|
|
74634
|
-
|
|
74635
|
-
if (!imageId) {
|
|
74636
|
-
return;
|
|
74637
|
-
}
|
|
74638
|
-
const imagePlaneModule = metaData.get('imagePlaneModule', imageId);
|
|
74639
|
-
if (!imagePlaneModule) {
|
|
74640
|
-
return;
|
|
74641
|
-
}
|
|
74642
|
-
return imagePlaneModule.frameOfReferenceUID;
|
|
74643
|
-
};
|
|
74644
|
-
this.getCornerstoneImage = () => {
|
|
74645
|
-
return this.csImage;
|
|
74646
|
-
};
|
|
74646
|
+
this.getFrameOfReferenceUID = (sliceIndex) => this.getImagePlaneReferenceData(sliceIndex)?.FrameOfReferenceUID;
|
|
74647
|
+
this.getCornerstoneImage = () => this.csImage;
|
|
74647
74648
|
this.createActorMapper = (imageData) => {
|
|
74648
74649
|
const mapper = vtkImageMapper$1.newInstance();
|
|
74649
74650
|
mapper.setInputData(imageData);
|
|
@@ -75619,6 +75620,25 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
75619
75620
|
imagePixelModule,
|
|
75620
75621
|
};
|
|
75621
75622
|
}
|
|
75623
|
+
getImagePlaneReferenceData(sliceIndex = this.getCurrentImageIdIndex()) {
|
|
75624
|
+
const imageId = this.imageIds[sliceIndex];
|
|
75625
|
+
if (!imageId) {
|
|
75626
|
+
return;
|
|
75627
|
+
}
|
|
75628
|
+
const imagePlaneModule = metaData.get(enums.MetadataModules.IMAGE_PLANE, imageId);
|
|
75629
|
+
const { imagePositionPatient, frameOfReferenceUID: FrameOfReferenceUID } = imagePlaneModule;
|
|
75630
|
+
let { rowCosines, columnCosines } = imagePlaneModule;
|
|
75631
|
+
rowCosines ||= [1, 0, 0];
|
|
75632
|
+
columnCosines ||= [0, 1, 0];
|
|
75633
|
+
const viewPlaneNormal = (esm/* vec3.cross */.eR.cross([0, 0, 0], columnCosines, rowCosines));
|
|
75634
|
+
return {
|
|
75635
|
+
FrameOfReferenceUID,
|
|
75636
|
+
viewPlaneNormal,
|
|
75637
|
+
cameraFocalPoint: imagePositionPatient,
|
|
75638
|
+
referencedImageId: imageId,
|
|
75639
|
+
sliceIndex,
|
|
75640
|
+
};
|
|
75641
|
+
}
|
|
75622
75642
|
_getCameraOrientation(imageDataDirection) {
|
|
75623
75643
|
const viewPlaneNormal = imageDataDirection.slice(6, 9).map((x) => -x);
|
|
75624
75644
|
const viewUp = imageDataDirection.slice(3, 6).map((x) => -x);
|
|
@@ -75934,7 +75954,7 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
75934
75954
|
this.cpuRenderingInvalidated = true;
|
|
75935
75955
|
this._cpuFallbackEnabledElement.transform = (0,calculateTransform/* default */.A)(this._cpuFallbackEnabledElement);
|
|
75936
75956
|
}
|
|
75937
|
-
|
|
75957
|
+
addImages(stackInputs) {
|
|
75938
75958
|
const actors = this.getActors();
|
|
75939
75959
|
stackInputs.forEach((stackInput) => {
|
|
75940
75960
|
const image = cache/* default */.Ay.getImage(stackInput.imageId);
|
|
@@ -76229,24 +76249,39 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
76229
76249
|
return referencedImageId?.endsWith(imageURI);
|
|
76230
76250
|
}
|
|
76231
76251
|
getViewReference(viewRefSpecifier = {}) {
|
|
76232
|
-
const { sliceIndex
|
|
76233
|
-
|
|
76234
|
-
|
|
76235
|
-
|
|
76236
|
-
|
|
76237
|
-
}
|
|
76238
|
-
|
|
76239
|
-
|
|
76240
|
-
|
|
76241
|
-
|
|
76242
|
-
if (viewRef) {
|
|
76243
|
-
const { viewPlaneNormal, sliceIndex } = viewRef;
|
|
76244
|
-
if (viewPlaneNormal &&
|
|
76245
|
-
!(0,utilities.isEqual)(viewPlaneNormal, camera.viewPlaneNormal)) {
|
|
76252
|
+
const { sliceIndex = this.getCurrentImageIdIndex() } = viewRefSpecifier;
|
|
76253
|
+
const reference = super.getViewReference(viewRefSpecifier);
|
|
76254
|
+
const referencedImageId = this.imageIds[sliceIndex];
|
|
76255
|
+
if (!referencedImageId) {
|
|
76256
|
+
return;
|
|
76257
|
+
}
|
|
76258
|
+
reference.referencedImageId = referencedImageId;
|
|
76259
|
+
if (this.getCurrentImageIdIndex() !== sliceIndex) {
|
|
76260
|
+
const referenceData = this.getImagePlaneReferenceData(sliceIndex);
|
|
76261
|
+
if (!referenceData) {
|
|
76246
76262
|
return;
|
|
76247
76263
|
}
|
|
76248
|
-
|
|
76249
|
-
|
|
76264
|
+
Object.assign(reference, referenceData);
|
|
76265
|
+
}
|
|
76266
|
+
return reference;
|
|
76267
|
+
}
|
|
76268
|
+
setViewReference(viewRef) {
|
|
76269
|
+
if (!viewRef) {
|
|
76270
|
+
return;
|
|
76271
|
+
}
|
|
76272
|
+
const { referencedImageId, sliceIndex, volumeId } = viewRef;
|
|
76273
|
+
if (typeof sliceIndex === 'number' &&
|
|
76274
|
+
referencedImageId &&
|
|
76275
|
+
referencedImageId === this.imageIds[sliceIndex]) {
|
|
76276
|
+
this.setImageIdIndex(sliceIndex);
|
|
76277
|
+
}
|
|
76278
|
+
else {
|
|
76279
|
+
const foundIndex = this.imageIds.indexOf(referencedImageId);
|
|
76280
|
+
if (foundIndex !== -1) {
|
|
76281
|
+
this.setImageIdIndex(foundIndex);
|
|
76282
|
+
}
|
|
76283
|
+
else {
|
|
76284
|
+
throw new Error('Unsupported - referenced image id not found');
|
|
76250
76285
|
}
|
|
76251
76286
|
}
|
|
76252
76287
|
}
|
|
@@ -76364,8 +76399,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
76364
76399
|
|
|
76365
76400
|
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js + 1 modules
|
|
76366
76401
|
var esm = __webpack_require__(44753);
|
|
76367
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js +
|
|
76368
|
-
var enums = __webpack_require__(
|
|
76402
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
76403
|
+
var enums = __webpack_require__(98362);
|
|
76369
76404
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/metaData.js
|
|
76370
76405
|
var metaData = __webpack_require__(55692);
|
|
76371
76406
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.js
|
|
@@ -76663,22 +76698,21 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
76663
76698
|
this.worldToCanvas = (worldPos) => {
|
|
76664
76699
|
const pan = this.videoCamera.panWorld;
|
|
76665
76700
|
const worldToCanvasRatio = this.getWorldToCanvasRatio();
|
|
76666
|
-
const
|
|
76701
|
+
const canvasPos = [
|
|
76667
76702
|
(worldPos[0] + pan[0]) * worldToCanvasRatio,
|
|
76668
76703
|
(worldPos[1] + pan[1]) * worldToCanvasRatio,
|
|
76669
76704
|
];
|
|
76670
|
-
const canvasPos = [subCanvasPos[0], subCanvasPos[1]];
|
|
76671
76705
|
return canvasPos;
|
|
76672
76706
|
};
|
|
76673
76707
|
this.getRotation = () => 0;
|
|
76674
76708
|
this.canvasToIndex = (canvasPos) => {
|
|
76675
76709
|
const transform = this.getTransform();
|
|
76676
76710
|
transform.invert();
|
|
76677
|
-
return transform.transformPoint(canvasPos);
|
|
76711
|
+
return transform.transformPoint(canvasPos.map((it) => it * devicePixelRatio));
|
|
76678
76712
|
};
|
|
76679
76713
|
this.indexToCanvas = (indexPos) => {
|
|
76680
76714
|
const transform = this.getTransform();
|
|
76681
|
-
return transform.transformPoint(indexPos);
|
|
76715
|
+
return (transform.transformPoint(indexPos).map((it) => it / devicePixelRatio));
|
|
76682
76716
|
};
|
|
76683
76717
|
this.customRenderViewportToCanvas = () => {
|
|
76684
76718
|
this.renderFrame();
|
|
@@ -76686,8 +76720,10 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
76686
76720
|
this.renderFrame = () => {
|
|
76687
76721
|
const transform = this.getTransform();
|
|
76688
76722
|
const transformationMatrix = transform.getMatrix();
|
|
76689
|
-
this.canvasContext
|
|
76690
|
-
|
|
76723
|
+
const ctx = this.canvasContext;
|
|
76724
|
+
ctx.resetTransform();
|
|
76725
|
+
ctx.transform(transformationMatrix[0], transformationMatrix[1], transformationMatrix[2], transformationMatrix[3], transformationMatrix[4], transformationMatrix[5]);
|
|
76726
|
+
ctx.drawImage(this.videoElement, 0, 0, this.videoWidth, this.videoHeight);
|
|
76691
76727
|
for (const actor of this.getActors()) {
|
|
76692
76728
|
actor.actor.render(this, this.canvasContext);
|
|
76693
76729
|
}
|
|
@@ -77083,7 +77119,7 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
77083
77119
|
}
|
|
77084
77120
|
setCamera(camera) {
|
|
77085
77121
|
const { parallelScale, focalPoint } = camera;
|
|
77086
|
-
if (
|
|
77122
|
+
if (parallelScale) {
|
|
77087
77123
|
this.videoCamera.parallelScale =
|
|
77088
77124
|
this.element.clientHeight / 2 / parallelScale;
|
|
77089
77125
|
}
|
|
@@ -77141,7 +77177,7 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
77141
77177
|
if (options.withNavigation) {
|
|
77142
77178
|
return true;
|
|
77143
77179
|
}
|
|
77144
|
-
const currentIndex = this.
|
|
77180
|
+
const currentIndex = this.getSliceIndex();
|
|
77145
77181
|
if (Array.isArray(sliceIndex)) {
|
|
77146
77182
|
return currentIndex >= sliceIndex[0] && currentIndex <= sliceIndex[1];
|
|
77147
77183
|
}
|
|
@@ -77178,6 +77214,9 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
77178
77214
|
getCurrentImageIdIndex() {
|
|
77179
77215
|
return Math.round(this.videoElement.currentTime * this.fps);
|
|
77180
77216
|
}
|
|
77217
|
+
getSliceIndex() {
|
|
77218
|
+
return this.getCurrentImageIdIndex();
|
|
77219
|
+
}
|
|
77181
77220
|
getCamera() {
|
|
77182
77221
|
const { parallelScale } = this.videoCamera;
|
|
77183
77222
|
const canvasCenter = [
|
|
@@ -77195,19 +77234,18 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
77195
77234
|
};
|
|
77196
77235
|
}
|
|
77197
77236
|
getPan() {
|
|
77198
|
-
const
|
|
77199
|
-
return [
|
|
77237
|
+
const panWorld = this.videoCamera.panWorld;
|
|
77238
|
+
return [panWorld[0], panWorld[1]];
|
|
77200
77239
|
}
|
|
77201
77240
|
refreshRenderValues() {
|
|
77202
|
-
let worldToCanvasRatio = this.canvas.
|
|
77241
|
+
let worldToCanvasRatio = this.canvas.offsetWidth / this.videoWidth;
|
|
77203
77242
|
if (this.videoHeight * worldToCanvasRatio > this.canvas.height) {
|
|
77204
|
-
|
|
77205
|
-
worldToCanvasRatio *= secondWorldToCanvasRatio;
|
|
77243
|
+
worldToCanvasRatio = this.canvas.offsetHeight / this.videoHeight;
|
|
77206
77244
|
}
|
|
77207
77245
|
const drawWidth = Math.floor(this.videoWidth * worldToCanvasRatio);
|
|
77208
77246
|
const drawHeight = Math.floor(this.videoHeight * worldToCanvasRatio);
|
|
77209
|
-
const xOffsetCanvas = this.canvas.
|
|
77210
|
-
const yOffsetCanvas = this.canvas.
|
|
77247
|
+
const xOffsetCanvas = (this.canvas.offsetWidth - drawWidth) / 2;
|
|
77248
|
+
const yOffsetCanvas = (this.canvas.offsetHeight - drawHeight) / 2;
|
|
77211
77249
|
const xOffsetWorld = xOffsetCanvas / worldToCanvasRatio;
|
|
77212
77250
|
const yOffsetWorld = yOffsetCanvas / worldToCanvasRatio;
|
|
77213
77251
|
this.videoCamera.panWorld = [xOffsetWorld, yOffsetWorld];
|
|
@@ -77221,14 +77259,19 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
77221
77259
|
}
|
|
77222
77260
|
getTransform() {
|
|
77223
77261
|
const panWorld = this.videoCamera.panWorld;
|
|
77262
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
77224
77263
|
const worldToCanvasRatio = this.getWorldToCanvasRatio();
|
|
77225
77264
|
const canvasToWorldRatio = this.getCanvasToWorldRatio();
|
|
77226
|
-
const halfCanvas = [
|
|
77265
|
+
const halfCanvas = [
|
|
77266
|
+
this.canvas.offsetWidth / 2,
|
|
77267
|
+
this.canvas.offsetHeight / 2,
|
|
77268
|
+
];
|
|
77227
77269
|
const halfCanvasWorldCoordinates = [
|
|
77228
77270
|
halfCanvas[0] * canvasToWorldRatio,
|
|
77229
77271
|
halfCanvas[1] * canvasToWorldRatio,
|
|
77230
77272
|
];
|
|
77231
77273
|
const transform = new rendering_transform/* Transform */.d();
|
|
77274
|
+
transform.scale(devicePixelRatio, devicePixelRatio);
|
|
77232
77275
|
transform.translate(halfCanvas[0], halfCanvas[1]);
|
|
77233
77276
|
transform.scale(worldToCanvasRatio, worldToCanvasRatio);
|
|
77234
77277
|
transform.translate(panWorld[0], panWorld[1]);
|
|
@@ -77281,7 +77324,7 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
77281
77324
|
/* harmony import */ var _utilities_hasNaNValues__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(73139);
|
|
77282
77325
|
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(88903);
|
|
77283
77326
|
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(71702);
|
|
77284
|
-
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(
|
|
77327
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(98362);
|
|
77285
77328
|
|
|
77286
77329
|
|
|
77287
77330
|
|
|
@@ -77577,7 +77620,7 @@ class Viewport {
|
|
|
77577
77620
|
this.setDisplayAreaScale(displayArea);
|
|
77578
77621
|
}
|
|
77579
77622
|
else {
|
|
77580
|
-
this.setInterpolationType(this.getProperties()
|
|
77623
|
+
this.setInterpolationType(this.getProperties()?.interpolationType || _enums__WEBPACK_IMPORTED_MODULE_13__.InterpolationType.LINEAR);
|
|
77581
77624
|
this.setDisplayAreaFit(displayArea);
|
|
77582
77625
|
}
|
|
77583
77626
|
if (storeAsInitialCamera) {
|
|
@@ -77783,6 +77826,9 @@ class Viewport {
|
|
|
77783
77826
|
getCurrentImageIdIndex() {
|
|
77784
77827
|
throw new Error('Not implemented');
|
|
77785
77828
|
}
|
|
77829
|
+
getSliceIndex() {
|
|
77830
|
+
throw new Error('Not implemented');
|
|
77831
|
+
}
|
|
77786
77832
|
getReferenceId(_specifier) {
|
|
77787
77833
|
return null;
|
|
77788
77834
|
}
|
|
@@ -77806,6 +77852,9 @@ class Viewport {
|
|
|
77806
77852
|
}, storeAsInitialCamera);
|
|
77807
77853
|
}
|
|
77808
77854
|
getZoom(compareCamera = this.initialCamera) {
|
|
77855
|
+
if (!compareCamera) {
|
|
77856
|
+
return 1;
|
|
77857
|
+
}
|
|
77809
77858
|
const activeCamera = this.getVtkActiveCamera();
|
|
77810
77859
|
const { parallelScale: initialParallelScale } = compareCamera;
|
|
77811
77860
|
return initialParallelScale / activeCamera.getParallelScale();
|
|
@@ -78059,12 +78108,13 @@ class Viewport {
|
|
|
78059
78108
|
return { widthWorld: maxX - minX, heightWorld: maxY - minY };
|
|
78060
78109
|
}
|
|
78061
78110
|
getViewReference(viewRefSpecifier = {}) {
|
|
78062
|
-
const { focalPoint: cameraFocalPoint, viewPlaneNormal } = this.getCamera();
|
|
78111
|
+
const { focalPoint: cameraFocalPoint, viewPlaneNormal, viewUp, } = this.getCamera();
|
|
78063
78112
|
const target = {
|
|
78064
78113
|
FrameOfReferenceUID: this.getFrameOfReferenceUID(),
|
|
78065
78114
|
cameraFocalPoint,
|
|
78066
78115
|
viewPlaneNormal,
|
|
78067
|
-
|
|
78116
|
+
viewUp,
|
|
78117
|
+
sliceIndex: viewRefSpecifier.sliceIndex ?? this.getSliceIndex(),
|
|
78068
78118
|
};
|
|
78069
78119
|
return target;
|
|
78070
78120
|
}
|
|
@@ -78078,7 +78128,7 @@ class Viewport {
|
|
|
78078
78128
|
if (viewPlaneNormal &&
|
|
78079
78129
|
!(0,_utilities__WEBPACK_IMPORTED_MODULE_9__.isEqual)(viewPlaneNormal, camera.viewPlaneNormal) &&
|
|
78080
78130
|
!(0,_utilities__WEBPACK_IMPORTED_MODULE_9__.isEqual)(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.negate */ .eR.negate(camera.viewPlaneNormal, camera.viewPlaneNormal), viewPlaneNormal)) {
|
|
78081
|
-
return options?.
|
|
78131
|
+
return options?.withOrientation === true;
|
|
78082
78132
|
}
|
|
78083
78133
|
return true;
|
|
78084
78134
|
}
|
|
@@ -78106,19 +78156,22 @@ class Viewport {
|
|
|
78106
78156
|
}
|
|
78107
78157
|
return target;
|
|
78108
78158
|
}
|
|
78109
|
-
|
|
78110
|
-
|
|
78111
|
-
|
|
78112
|
-
|
|
78113
|
-
|
|
78114
|
-
|
|
78115
|
-
|
|
78116
|
-
|
|
78117
|
-
|
|
78118
|
-
|
|
78119
|
-
|
|
78120
|
-
|
|
78121
|
-
|
|
78159
|
+
setViewReference(viewRef) {
|
|
78160
|
+
}
|
|
78161
|
+
setViewPresentation(viewPres) {
|
|
78162
|
+
if (!viewPres) {
|
|
78163
|
+
return;
|
|
78164
|
+
}
|
|
78165
|
+
const { displayArea, zoom = this.getZoom(), pan, rotation } = viewPres;
|
|
78166
|
+
if (displayArea !== this.getDisplayArea()) {
|
|
78167
|
+
this.setDisplayArea(displayArea);
|
|
78168
|
+
}
|
|
78169
|
+
this.setZoom(zoom);
|
|
78170
|
+
if (pan) {
|
|
78171
|
+
this.setPan(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec2.scale */ .Zc.scale([0, 0], pan, zoom));
|
|
78172
|
+
}
|
|
78173
|
+
if (rotation >= 0) {
|
|
78174
|
+
this.setRotation(rotation);
|
|
78122
78175
|
}
|
|
78123
78176
|
}
|
|
78124
78177
|
_shouldUseNativeDataType() {
|
|
@@ -78207,15 +78260,15 @@ class Viewport {
|
|
|
78207
78260
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
78208
78261
|
/* harmony export */ });
|
|
78209
78262
|
/* harmony import */ var _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84441);
|
|
78210
|
-
/* harmony import */ var
|
|
78211
|
-
/* harmony import */ var
|
|
78212
|
-
/* harmony import */ var
|
|
78213
|
-
/* harmony import */ var
|
|
78214
|
-
/* harmony import */ var
|
|
78215
|
-
/* harmony import */ var
|
|
78216
|
-
/* harmony import */ var
|
|
78217
|
-
/* harmony import */ var
|
|
78218
|
-
/* harmony import */ var
|
|
78263
|
+
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
|
|
78264
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88903);
|
|
78265
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
|
|
78266
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35678);
|
|
78267
|
+
/* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6203);
|
|
78268
|
+
/* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83853);
|
|
78269
|
+
/* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22350);
|
|
78270
|
+
/* harmony import */ var _utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97508);
|
|
78271
|
+
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(44753);
|
|
78219
78272
|
|
|
78220
78273
|
|
|
78221
78274
|
|
|
@@ -78226,18 +78279,14 @@ class Viewport {
|
|
|
78226
78279
|
|
|
78227
78280
|
|
|
78228
78281
|
|
|
78229
|
-
class VolumeViewport extends
|
|
78282
|
+
class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A {
|
|
78230
78283
|
constructor(props) {
|
|
78231
78284
|
super(props);
|
|
78232
78285
|
this._useAcquisitionPlaneForViewPlane = false;
|
|
78233
78286
|
this.getNumberOfSlices = () => {
|
|
78234
|
-
const { numberOfSlices } = (0,
|
|
78287
|
+
const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
|
|
78235
78288
|
return numberOfSlices;
|
|
78236
78289
|
};
|
|
78237
|
-
this.getSliceIndex = () => {
|
|
78238
|
-
const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this);
|
|
78239
|
-
return imageIndex;
|
|
78240
|
-
};
|
|
78241
78290
|
this.getCurrentImageIdIndex = (volumeId) => {
|
|
78242
78291
|
const { viewPlaneNormal, focalPoint } = this.getCamera();
|
|
78243
78292
|
const imageData = this.getImageData(volumeId);
|
|
@@ -78245,24 +78294,28 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78245
78294
|
return;
|
|
78246
78295
|
}
|
|
78247
78296
|
const { origin, direction, spacing } = imageData;
|
|
78248
|
-
const spacingInNormal = (0,
|
|
78249
|
-
const sub =
|
|
78250
|
-
|
|
78251
|
-
const distance =
|
|
78297
|
+
const spacingInNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSpacingInNormalDirection)({ direction, spacing }, viewPlaneNormal);
|
|
78298
|
+
const sub = gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.create */ .eR.create();
|
|
78299
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.sub */ .eR.sub(sub, focalPoint, origin);
|
|
78300
|
+
const distance = gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.dot */ .eR.dot(sub, viewPlaneNormal);
|
|
78252
78301
|
return Math.round(Math.abs(distance) / spacingInNormal);
|
|
78253
78302
|
};
|
|
78303
|
+
this.getSliceIndex = () => {
|
|
78304
|
+
const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
|
|
78305
|
+
return imageIndex;
|
|
78306
|
+
};
|
|
78254
78307
|
this.getCurrentImageId = () => {
|
|
78255
78308
|
const actorEntry = this.getDefaultActor();
|
|
78256
|
-
if (!actorEntry || !(0,
|
|
78309
|
+
if (!actorEntry || !(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
|
|
78257
78310
|
return;
|
|
78258
78311
|
}
|
|
78259
78312
|
const { uid } = actorEntry;
|
|
78260
|
-
const volume =
|
|
78313
|
+
const volume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(uid);
|
|
78261
78314
|
if (!volume) {
|
|
78262
78315
|
return;
|
|
78263
78316
|
}
|
|
78264
78317
|
const { viewPlaneNormal, focalPoint } = this.getCamera();
|
|
78265
|
-
return (0,
|
|
78318
|
+
return (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getClosestImageId)(volume, focalPoint, viewPlaneNormal);
|
|
78266
78319
|
};
|
|
78267
78320
|
this.getSlicePlaneCoordinates = () => {
|
|
78268
78321
|
const actorEntry = this.getDefaultActor();
|
|
@@ -78271,30 +78324,30 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78271
78324
|
return [];
|
|
78272
78325
|
}
|
|
78273
78326
|
const volumeId = actorEntry.uid;
|
|
78274
|
-
const imageVolume =
|
|
78327
|
+
const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeId);
|
|
78275
78328
|
const camera = this.getCamera();
|
|
78276
78329
|
const { focalPoint, position, viewPlaneNormal } = camera;
|
|
78277
|
-
const spacingInNormalDirection = (0,
|
|
78278
|
-
const sliceRange = (0,
|
|
78330
|
+
const spacingInNormalDirection = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSpacingInNormalDirection)(imageVolume, viewPlaneNormal);
|
|
78331
|
+
const sliceRange = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSliceRange)(actorEntry.actor, viewPlaneNormal, focalPoint);
|
|
78279
78332
|
const numSlicesBackward = Math.round((sliceRange.current - sliceRange.min) / spacingInNormalDirection);
|
|
78280
78333
|
const numSlicesForward = Math.round((sliceRange.max - sliceRange.current) / spacingInNormalDirection);
|
|
78281
78334
|
const currentSliceIndex = this.getSliceIndex();
|
|
78282
78335
|
const focalPoints = [];
|
|
78283
78336
|
for (let i = -numSlicesBackward; i <= numSlicesForward; i++) {
|
|
78284
|
-
const { newFocalPoint: point } = (0,
|
|
78337
|
+
const { newFocalPoint: point } = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, i);
|
|
78285
78338
|
focalPoints.push({ sliceIndex: currentSliceIndex + i, point });
|
|
78286
78339
|
}
|
|
78287
78340
|
return focalPoints;
|
|
78288
78341
|
};
|
|
78289
78342
|
const { orientation } = this.options;
|
|
78290
|
-
if (orientation && orientation !==
|
|
78343
|
+
if (orientation && orientation !== _enums__WEBPACK_IMPORTED_MODULE_3__.OrientationAxis.ACQUISITION) {
|
|
78291
78344
|
this.applyViewOrientation(orientation);
|
|
78292
78345
|
return;
|
|
78293
78346
|
}
|
|
78294
78347
|
this._useAcquisitionPlaneForViewPlane = true;
|
|
78295
78348
|
}
|
|
78296
78349
|
async setVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
|
|
78297
|
-
const firstImageVolume =
|
|
78350
|
+
const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
|
|
78298
78351
|
if (!firstImageVolume) {
|
|
78299
78352
|
throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
|
|
78300
78353
|
}
|
|
@@ -78305,7 +78358,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78305
78358
|
return super.setVolumes(volumeInputArray, immediate, suppressEvents);
|
|
78306
78359
|
}
|
|
78307
78360
|
async addVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
|
|
78308
|
-
const firstImageVolume =
|
|
78361
|
+
const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
|
|
78309
78362
|
if (!firstImageVolume) {
|
|
78310
78363
|
throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
|
|
78311
78364
|
}
|
|
@@ -78318,8 +78371,8 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78318
78371
|
setOrientation(orientation, immediate = true) {
|
|
78319
78372
|
let viewPlaneNormal, viewUp;
|
|
78320
78373
|
if (typeof orientation === 'string') {
|
|
78321
|
-
if (
|
|
78322
|
-
({ viewPlaneNormal, viewUp } =
|
|
78374
|
+
if (_constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[orientation]) {
|
|
78375
|
+
({ viewPlaneNormal, viewUp } = _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[orientation]);
|
|
78323
78376
|
}
|
|
78324
78377
|
else if (orientation === 'acquisition') {
|
|
78325
78378
|
({ viewPlaneNormal, viewUp } = this._getAcquisitionPlaneOrientation());
|
|
@@ -78348,7 +78401,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78348
78401
|
return;
|
|
78349
78402
|
}
|
|
78350
78403
|
const volumeId = actorEntry.uid;
|
|
78351
|
-
const imageVolume =
|
|
78404
|
+
const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeId);
|
|
78352
78405
|
if (!imageVolume) {
|
|
78353
78406
|
throw new Error(`imageVolume with id: ${volumeId} does not exist in cache`);
|
|
78354
78407
|
}
|
|
@@ -78393,12 +78446,15 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78393
78446
|
this.render();
|
|
78394
78447
|
}
|
|
78395
78448
|
}
|
|
78396
|
-
resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false) {
|
|
78449
|
+
resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false) {
|
|
78450
|
+
const { orientation } = this.viewportProperties;
|
|
78451
|
+
if (orientation) {
|
|
78452
|
+
this.applyViewOrientation(orientation, false);
|
|
78453
|
+
}
|
|
78397
78454
|
super.resetCamera(resetPan, resetZoom, resetToCenter);
|
|
78398
78455
|
this.resetVolumeViewportClippingRange();
|
|
78399
78456
|
const activeCamera = this.getVtkActiveCamera();
|
|
78400
78457
|
const viewPlaneNormal = activeCamera.getViewPlaneNormal();
|
|
78401
|
-
const viewUp = activeCamera.getViewUp();
|
|
78402
78458
|
const focalPoint = activeCamera.getFocalPoint();
|
|
78403
78459
|
const actorEntries = this.getActors();
|
|
78404
78460
|
actorEntries.forEach((actorEntry) => {
|
|
@@ -78411,7 +78467,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78411
78467
|
const clipPlane1 = _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance();
|
|
78412
78468
|
const clipPlane2 = _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance();
|
|
78413
78469
|
const newVtkPlanes = [clipPlane1, clipPlane2];
|
|
78414
|
-
let slabThickness =
|
|
78470
|
+
let slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
78415
78471
|
if (actorEntry.slabThickness) {
|
|
78416
78472
|
slabThickness = actorEntry.slabThickness;
|
|
78417
78473
|
}
|
|
@@ -78421,13 +78477,22 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78421
78477
|
}
|
|
78422
78478
|
});
|
|
78423
78479
|
if (resetRotation &&
|
|
78424
|
-
|
|
78425
|
-
const viewToReset =
|
|
78480
|
+
_constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[this.viewportProperties.orientation] !== undefined) {
|
|
78481
|
+
const viewToReset = _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[this.viewportProperties.orientation];
|
|
78426
78482
|
this.setCameraNoEvent({
|
|
78427
78483
|
viewUp: viewToReset.viewUp,
|
|
78428
78484
|
viewPlaneNormal: viewToReset.viewPlaneNormal,
|
|
78429
78485
|
});
|
|
78430
78486
|
}
|
|
78487
|
+
if (!supressEvents) {
|
|
78488
|
+
const eventDetail = {
|
|
78489
|
+
viewportId: this.id,
|
|
78490
|
+
camera: this.getCamera(),
|
|
78491
|
+
renderingEngineId: this.renderingEngineId,
|
|
78492
|
+
element: this.element,
|
|
78493
|
+
};
|
|
78494
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.CAMERA_RESET, eventDetail);
|
|
78495
|
+
}
|
|
78431
78496
|
return true;
|
|
78432
78497
|
}
|
|
78433
78498
|
setSlabThickness(slabThickness, filterActorUIDs = []) {
|
|
@@ -78441,7 +78506,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78441
78506
|
});
|
|
78442
78507
|
}
|
|
78443
78508
|
actorEntries.forEach((actorEntry) => {
|
|
78444
|
-
if ((0,
|
|
78509
|
+
if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
|
|
78445
78510
|
actorEntry.slabThickness = slabThickness;
|
|
78446
78511
|
}
|
|
78447
78512
|
});
|
|
@@ -78450,6 +78515,27 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78450
78515
|
this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
|
|
78451
78516
|
this.viewportProperties.slabThickness = slabThickness;
|
|
78452
78517
|
}
|
|
78518
|
+
resetSlabThickness() {
|
|
78519
|
+
const actorEntries = this.getActors();
|
|
78520
|
+
actorEntries.forEach((actorEntry) => {
|
|
78521
|
+
if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
|
|
78522
|
+
actorEntry.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
78523
|
+
}
|
|
78524
|
+
});
|
|
78525
|
+
const currentCamera = this.getCamera();
|
|
78526
|
+
this.updateClippingPlanesForActors(currentCamera);
|
|
78527
|
+
this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
|
|
78528
|
+
this.viewportProperties.slabThickness = undefined;
|
|
78529
|
+
}
|
|
78530
|
+
getViewReference(viewRefSpecifier = {}) {
|
|
78531
|
+
const viewRef = super.getViewReference(viewRefSpecifier);
|
|
78532
|
+
if (!viewRef?.volumeId) {
|
|
78533
|
+
return;
|
|
78534
|
+
}
|
|
78535
|
+
const volume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(viewRef.volumeId);
|
|
78536
|
+
viewRef.referencedImageId = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getClosestImageId)(volume, viewRef.cameraFocalPoint, viewRef.viewPlaneNormal);
|
|
78537
|
+
return viewRef;
|
|
78538
|
+
}
|
|
78453
78539
|
resetProperties(volumeId) {
|
|
78454
78540
|
this._resetProperties(volumeId);
|
|
78455
78541
|
}
|
|
@@ -78461,20 +78547,20 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78461
78547
|
throw new Error(`No actor found for the given volumeId: ${volumeId}`);
|
|
78462
78548
|
}
|
|
78463
78549
|
if (volumeActor.slabThickness) {
|
|
78464
|
-
volumeActor.slabThickness =
|
|
78550
|
+
volumeActor.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
78465
78551
|
this.viewportProperties.slabThickness = undefined;
|
|
78466
78552
|
this.updateClippingPlanesForActors(this.getCamera());
|
|
78467
78553
|
}
|
|
78468
|
-
const imageVolume =
|
|
78554
|
+
const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeActor.uid);
|
|
78469
78555
|
if (!imageVolume) {
|
|
78470
78556
|
throw new Error(`imageVolume with id: ${volumeActor.uid} does not exist in cache`);
|
|
78471
78557
|
}
|
|
78472
|
-
(0,
|
|
78473
|
-
if ((0,
|
|
78558
|
+
(0,_helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)(volumeActor.actor, imageVolume, false);
|
|
78559
|
+
if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.isImageActor)(volumeActor)) {
|
|
78474
78560
|
const transferFunction = volumeActor.actor
|
|
78475
78561
|
.getProperty()
|
|
78476
78562
|
.getRGBTransferFunction(0);
|
|
78477
|
-
(0,
|
|
78563
|
+
(0,_utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__.setTransferFunctionNodes)(transferFunction, this.initialTransferFunctionNodes);
|
|
78478
78564
|
}
|
|
78479
78565
|
const eventDetails = {
|
|
78480
78566
|
...super.getVOIModifiedEventDetail(volumeId),
|
|
@@ -78484,12 +78570,12 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78484
78570
|
const resetToCenter = true;
|
|
78485
78571
|
const resetCameraRotation = true;
|
|
78486
78572
|
this.resetCamera(resetPan, resetZoom, resetToCenter, resetCameraRotation);
|
|
78487
|
-
(0,
|
|
78573
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.VOI_MODIFIED, eventDetails);
|
|
78488
78574
|
}
|
|
78489
78575
|
getSlicesClippingPlanes() {
|
|
78490
78576
|
const focalPoints = this.getSlicePlaneCoordinates();
|
|
78491
78577
|
const { viewPlaneNormal } = this.getCamera();
|
|
78492
|
-
const slabThickness =
|
|
78578
|
+
const slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
78493
78579
|
return focalPoints.map(({ point, sliceIndex }) => {
|
|
78494
78580
|
const vtkPlanes = [_kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance(), _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance()];
|
|
78495
78581
|
this.setOrientationOfClippingPlanes(vtkPlanes, slabThickness, viewPlaneNormal, point);
|
|
@@ -78515,7 +78601,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78515
78601
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
78516
78602
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
78517
78603
|
/* harmony export */ });
|
|
78518
|
-
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
78604
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(98362);
|
|
78519
78605
|
/* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6203);
|
|
78520
78606
|
|
|
78521
78607
|
|
|
@@ -78552,6 +78638,9 @@ class VolumeViewport3D extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__/
|
|
|
78552
78638
|
resetProperties(volumeId) {
|
|
78553
78639
|
return null;
|
|
78554
78640
|
}
|
|
78641
|
+
resetSlabThickness() {
|
|
78642
|
+
return null;
|
|
78643
|
+
}
|
|
78555
78644
|
}
|
|
78556
78645
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VolumeViewport3D);
|
|
78557
78646
|
|
|
@@ -78587,7 +78676,7 @@ function getRenderingEngines() {
|
|
|
78587
78676
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
78588
78677
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
78589
78678
|
/* harmony export */ });
|
|
78590
|
-
async function addImageSlicesToViewports(renderingEngine, stackInputs, viewportIds
|
|
78679
|
+
async function addImageSlicesToViewports(renderingEngine, stackInputs, viewportIds) {
|
|
78591
78680
|
for (const viewportId of viewportIds) {
|
|
78592
78681
|
const viewport = renderingEngine.getViewport(viewportId);
|
|
78593
78682
|
if (!viewport) {
|
|
@@ -78600,7 +78689,7 @@ async function addImageSlicesToViewports(renderingEngine, stackInputs, viewportI
|
|
|
78600
78689
|
}
|
|
78601
78690
|
const addStackPromises = viewportIds.map(async (viewportId) => {
|
|
78602
78691
|
const viewport = renderingEngine.getViewport(viewportId);
|
|
78603
|
-
return viewport.addImages(stackInputs
|
|
78692
|
+
return viewport.addImages(stackInputs);
|
|
78604
78693
|
});
|
|
78605
78694
|
await Promise.all(addStackPromises);
|
|
78606
78695
|
}
|
|
@@ -80908,8 +80997,8 @@ function createVolumeMapper(imageData, vtkOpenGLTexture) {
|
|
|
80908
80997
|
|
|
80909
80998
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
|
|
80910
80999
|
var utilities = __webpack_require__(35678);
|
|
80911
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js +
|
|
80912
|
-
var enums = __webpack_require__(
|
|
81000
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
81001
|
+
var enums = __webpack_require__(98362);
|
|
80913
81002
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js
|
|
80914
81003
|
var setDefaultVolumeVOI = __webpack_require__(83853);
|
|
80915
81004
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/createVolumeActor.js
|
|
@@ -80939,9 +81028,7 @@ async function createVolumeActor(props, element, viewportId, suppressEvents = fa
|
|
|
80939
81028
|
if (numberOfComponents === 3) {
|
|
80940
81029
|
volumeActor.getProperty().setIndependentComponents(false);
|
|
80941
81030
|
}
|
|
80942
|
-
|
|
80943
|
-
await (0,setDefaultVolumeVOI/* default */.A)(volumeActor, imageVolume, useNativeDataType);
|
|
80944
|
-
}
|
|
81031
|
+
await (0,setDefaultVolumeVOI/* default */.A)(volumeActor, imageVolume, useNativeDataType);
|
|
80945
81032
|
if (callback) {
|
|
80946
81033
|
callback({ volumeActor, volumeId });
|
|
80947
81034
|
}
|
|
@@ -81021,7 +81108,7 @@ var addImageSlicesToViewports = __webpack_require__(25271);
|
|
|
81021
81108
|
/* harmony import */ var _loaders_imageLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79220);
|
|
81022
81109
|
/* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55692);
|
|
81023
81110
|
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35678);
|
|
81024
|
-
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
81111
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
|
|
81025
81112
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13320);
|
|
81026
81113
|
|
|
81027
81114
|
|
|
@@ -81032,21 +81119,19 @@ const PRIORITY = 0;
|
|
|
81032
81119
|
const REQUEST_TYPE = _enums__WEBPACK_IMPORTED_MODULE_3__.RequestType.Prefetch;
|
|
81033
81120
|
async function setDefaultVolumeVOI(volumeActor, imageVolume, useNativeDataType) {
|
|
81034
81121
|
let voi = getVOIFromMetadata(imageVolume);
|
|
81035
|
-
if (!voi) {
|
|
81122
|
+
if (!voi && imageVolume?.imageIds?.length) {
|
|
81036
81123
|
voi = await getVOIFromMinMax(imageVolume, useNativeDataType);
|
|
81124
|
+
voi = handlePreScaledVolume(imageVolume, voi);
|
|
81037
81125
|
}
|
|
81038
|
-
if (
|
|
81039
|
-
|
|
81040
|
-
|
|
81041
|
-
voi = handlePreScaledVolume(imageVolume, voi);
|
|
81042
|
-
const { lower, upper } = voi;
|
|
81043
|
-
if (lower === 0 && upper === 0) {
|
|
81126
|
+
if ((voi?.lower === 0 && voi?.upper === 0) ||
|
|
81127
|
+
voi?.lower === undefined ||
|
|
81128
|
+
voi?.upper === undefined) {
|
|
81044
81129
|
return;
|
|
81045
81130
|
}
|
|
81046
81131
|
volumeActor
|
|
81047
81132
|
.getProperty()
|
|
81048
81133
|
.getRGBTransferFunction(0)
|
|
81049
|
-
.setMappingRange(lower, upper);
|
|
81134
|
+
.setMappingRange(voi.lower, voi.upper);
|
|
81050
81135
|
}
|
|
81051
81136
|
function handlePreScaledVolume(imageVolume, voi) {
|
|
81052
81137
|
const imageIds = imageVolume.imageIds;
|
|
@@ -81062,18 +81147,26 @@ function handlePreScaledVolume(imageVolume, voi) {
|
|
|
81062
81147
|
return voi;
|
|
81063
81148
|
}
|
|
81064
81149
|
function getVOIFromMetadata(imageVolume) {
|
|
81065
|
-
const { imageIds } = imageVolume;
|
|
81066
|
-
|
|
81067
|
-
|
|
81068
|
-
|
|
81069
|
-
|
|
81070
|
-
const
|
|
81071
|
-
|
|
81072
|
-
|
|
81073
|
-
|
|
81074
|
-
?
|
|
81075
|
-
: windowCenter
|
|
81076
|
-
|
|
81150
|
+
const { imageIds, metadata } = imageVolume;
|
|
81151
|
+
let voi;
|
|
81152
|
+
if (imageIds.length) {
|
|
81153
|
+
const imageIdIndex = Math.floor(imageIds.length / 2);
|
|
81154
|
+
const imageId = imageIds[imageIdIndex];
|
|
81155
|
+
const voiLutModule = _metaData__WEBPACK_IMPORTED_MODULE_1__.get('voiLutModule', imageId);
|
|
81156
|
+
if (voiLutModule && voiLutModule.windowWidth && voiLutModule.windowCenter) {
|
|
81157
|
+
const { windowWidth, windowCenter } = voiLutModule;
|
|
81158
|
+
voi = {
|
|
81159
|
+
windowWidth: Array.isArray(windowWidth) ? windowWidth[0] : windowWidth,
|
|
81160
|
+
windowCenter: Array.isArray(windowCenter)
|
|
81161
|
+
? windowCenter[0]
|
|
81162
|
+
: windowCenter,
|
|
81163
|
+
};
|
|
81164
|
+
}
|
|
81165
|
+
}
|
|
81166
|
+
else {
|
|
81167
|
+
voi = metadata?.voiLut?.[0];
|
|
81168
|
+
}
|
|
81169
|
+
if (voi) {
|
|
81077
81170
|
const { lower, upper } = _utilities__WEBPACK_IMPORTED_MODULE_2__.windowLevel.toLowHighRange(Number(voi.windowWidth), Number(voi.windowCenter));
|
|
81078
81171
|
return {
|
|
81079
81172
|
lower,
|
|
@@ -81136,13 +81229,13 @@ async function getVOIFromMinMax(imageVolume, useNativeDataType) {
|
|
|
81136
81229
|
}
|
|
81137
81230
|
function _getImageScalarDataFromImageVolume(imageVolume, byteOffset, bytePerPixel, voxelsPerImage) {
|
|
81138
81231
|
const { scalarData } = imageVolume;
|
|
81139
|
-
const {
|
|
81232
|
+
const { buffer } = scalarData;
|
|
81140
81233
|
if (scalarData.BYTES_PER_ELEMENT !== bytePerPixel) {
|
|
81141
81234
|
byteOffset *= scalarData.BYTES_PER_ELEMENT / bytePerPixel;
|
|
81142
81235
|
}
|
|
81143
81236
|
const TypedArray = scalarData.constructor;
|
|
81144
81237
|
const imageScalarData = new TypedArray(voxelsPerImage);
|
|
81145
|
-
const volumeBufferView = new TypedArray(
|
|
81238
|
+
const volumeBufferView = new TypedArray(buffer, byteOffset, voxelsPerImage);
|
|
81146
81239
|
imageScalarData.set(volumeBufferView);
|
|
81147
81240
|
return imageScalarData;
|
|
81148
81241
|
}
|
|
@@ -81169,7 +81262,7 @@ function _isCurrentImagePTPrescaled(modality, imageVolume) {
|
|
|
81169
81262
|
/* harmony export */ g: () => (/* binding */ resetVolumeNewImageState)
|
|
81170
81263
|
/* harmony export */ });
|
|
81171
81264
|
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35678);
|
|
81172
|
-
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
81265
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98362);
|
|
81173
81266
|
/* harmony import */ var _getRenderingEngine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49184);
|
|
81174
81267
|
/* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6203);
|
|
81175
81268
|
|
|
@@ -81279,8 +81372,8 @@ function viewportTypeUsesCustomRenderingPipeline(viewportType) {
|
|
|
81279
81372
|
var getOrCreateCanvas = __webpack_require__(45543);
|
|
81280
81373
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js + 1 modules
|
|
81281
81374
|
var init = __webpack_require__(71702);
|
|
81282
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js +
|
|
81283
|
-
var enums = __webpack_require__(
|
|
81375
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
81376
|
+
var enums = __webpack_require__(98362);
|
|
81284
81377
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/RenderingEngine.js
|
|
81285
81378
|
|
|
81286
81379
|
|
|
@@ -81571,7 +81664,12 @@ class RenderingEngine {
|
|
|
81571
81664
|
const prevCamera = vp.getCamera();
|
|
81572
81665
|
const rotation = vp.getRotation();
|
|
81573
81666
|
const { flipHorizontal } = prevCamera;
|
|
81574
|
-
|
|
81667
|
+
const resetPan = true;
|
|
81668
|
+
const resetZoom = true;
|
|
81669
|
+
const resetToCenter = true;
|
|
81670
|
+
const resetRotation = false;
|
|
81671
|
+
const supressEvents = true;
|
|
81672
|
+
vp.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, supressEvents);
|
|
81575
81673
|
const displayArea = vp.getDisplayArea();
|
|
81576
81674
|
if (keepCamera) {
|
|
81577
81675
|
if (displayArea) {
|
|
@@ -88245,7 +88343,7 @@ class Cache {
|
|
|
88245
88343
|
this._imageCacheSize = 0;
|
|
88246
88344
|
this._volumeCacheSize = 0;
|
|
88247
88345
|
this._maxCacheSize = 3 * ONE_GB;
|
|
88248
|
-
this._maxInstanceSize =
|
|
88346
|
+
this._maxInstanceSize = 4 * ONE_GB - 8;
|
|
88249
88347
|
this.setMaxCacheSize = (newMaxCacheSize) => {
|
|
88250
88348
|
if (!newMaxCacheSize || typeof newMaxCacheSize !== 'number') {
|
|
88251
88349
|
const errorMessage = `New max cacheSize ${this._maxCacheSize} should be defined and should be a number.`;
|
|
@@ -91114,6 +91212,23 @@ const presets = [
|
|
|
91114
91212
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (presets);
|
|
91115
91213
|
|
|
91116
91214
|
|
|
91215
|
+
/***/ }),
|
|
91216
|
+
|
|
91217
|
+
/***/ 99842:
|
|
91218
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
91219
|
+
|
|
91220
|
+
"use strict";
|
|
91221
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
91222
|
+
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
91223
|
+
/* harmony export */ });
|
|
91224
|
+
var ContourType;
|
|
91225
|
+
(function (ContourType) {
|
|
91226
|
+
ContourType["CLOSED_PLANAR"] = "CLOSED_PLANAR";
|
|
91227
|
+
ContourType["OPEN_PLANAR"] = "OPEN_PLANAR";
|
|
91228
|
+
})(ContourType || (ContourType = {}));
|
|
91229
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ContourType);
|
|
91230
|
+
|
|
91231
|
+
|
|
91117
91232
|
/***/ }),
|
|
91118
91233
|
|
|
91119
91234
|
/***/ 11731:
|
|
@@ -91370,7 +91485,7 @@ var ViewportType;
|
|
|
91370
91485
|
|
|
91371
91486
|
/***/ }),
|
|
91372
91487
|
|
|
91373
|
-
/***/
|
|
91488
|
+
/***/ 98362:
|
|
91374
91489
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
91375
91490
|
|
|
91376
91491
|
"use strict";
|
|
@@ -91381,7 +91496,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
91381
91496
|
__webpack_require__.d(__webpack_exports__, {
|
|
91382
91497
|
BlendModes: () => (/* reexport */ enums_BlendModes),
|
|
91383
91498
|
CalibrationTypes: () => (/* reexport */ enums_CalibrationTypes),
|
|
91384
|
-
ContourType: () => (/* reexport */
|
|
91499
|
+
ContourType: () => (/* reexport */ ContourType/* default */.A),
|
|
91385
91500
|
DynamicOperatorType: () => (/* reexport */ enums_DynamicOperatorType),
|
|
91386
91501
|
Events: () => (/* reexport */ Events/* default */.A),
|
|
91387
91502
|
GeometryType: () => (/* reexport */ enums_GeometryType),
|
|
@@ -91431,14 +91546,8 @@ var GeometryType;
|
|
|
91431
91546
|
})(GeometryType || (GeometryType = {}));
|
|
91432
91547
|
/* harmony default export */ const enums_GeometryType = (GeometryType);
|
|
91433
91548
|
|
|
91434
|
-
|
|
91435
|
-
var ContourType;
|
|
91436
|
-
(function (ContourType) {
|
|
91437
|
-
ContourType["CLOSED_PLANAR"] = "CLOSED_PLANAR";
|
|
91438
|
-
ContourType["OPEN_PLANAR"] = "OPEN_PLANAR";
|
|
91439
|
-
})(ContourType || (ContourType = {}));
|
|
91440
|
-
/* harmony default export */ const enums_ContourType = (ContourType);
|
|
91441
|
-
|
|
91549
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ContourType.js
|
|
91550
|
+
var ContourType = __webpack_require__(99842);
|
|
91442
91551
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/VOILUTFunctionType.js
|
|
91443
91552
|
var VOILUTFunctionType = __webpack_require__(15381);
|
|
91444
91553
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/DynamicOperatorType.js
|
|
@@ -91724,8 +91833,8 @@ __webpack_require__.d(geometryLoader_namespaceObject, {
|
|
|
91724
91833
|
createAndCacheGeometry: () => (createAndCacheGeometry)
|
|
91725
91834
|
});
|
|
91726
91835
|
|
|
91727
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js +
|
|
91728
|
-
var enums = __webpack_require__(
|
|
91836
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
91837
|
+
var enums = __webpack_require__(98362);
|
|
91729
91838
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js + 2 modules
|
|
91730
91839
|
var constants = __webpack_require__(88903);
|
|
91731
91840
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/index.js + 3 modules
|
|
@@ -96711,7 +96820,7 @@ function createContourSet(geometryId, contourSetData) {
|
|
|
96711
96820
|
data: contourSetData.data,
|
|
96712
96821
|
color: contourSetData.color,
|
|
96713
96822
|
frameOfReferenceUID: contourSetData.frameOfReferenceUID,
|
|
96714
|
-
segmentIndex: 1,
|
|
96823
|
+
segmentIndex: contourSetData.segmentIndex ?? 1,
|
|
96715
96824
|
});
|
|
96716
96825
|
const geometry = {
|
|
96717
96826
|
id: geometryId,
|
|
@@ -96851,8 +96960,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
96851
96960
|
;// CONCATENATED MODULE: ../../../node_modules/detect-gpu/dist/detect-gpu.esm.js
|
|
96852
96961
|
function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{d(n.next(e))}catch(e){a(e)}}function c(e){try{d(n.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}d((n=n.apply(e,t||[])).next())}))}const t=["geforce 320m","geforce 8600","geforce 8600m gt","geforce 8800 gs","geforce 8800 gt","geforce 9400","geforce 9400m g","geforce 9400m","geforce 9600m gt","geforce 9600m","geforce fx go5200","geforce gt 120","geforce gt 130","geforce gt 330m","geforce gtx 285","google swiftshader","intel g41","intel g45","intel gma 4500mhd","intel gma x3100","intel hd 3000","intel q45","legacy","mali-2","mali-3","mali-4","quadro fx 1500","quadro fx 4","quadro fx 5","radeon hd 2400","radeon hd 2600","radeon hd 4670","radeon hd 4850","radeon hd 4870","radeon hd 5670","radeon hd 5750","radeon hd 6290","radeon hd 6300","radeon hd 6310","radeon hd 6320","radeon hd 6490m","radeon hd 6630m","radeon hd 6750m","radeon hd 6770m","radeon hd 6970m","sgx 543","sgx543"];function r(e){return e=e.toLowerCase().replace(/^angle ?\((.+)\)*$/,"$1").replace(/\s(\d{1,2}gb|direct3d.+$)|\(r\)| \([^)]+\)$/g,"").replace(/(?:vulkan|opengl) \d+\.\d+(?:\.\d+)?(?: \((.*)\))?/,"$1")}const n="undefined"==typeof window,o=(()=>{if(n)return;const{userAgent:e,platform:t,maxTouchPoints:r}=window.navigator,o=/(iphone|ipod|ipad)/i.test(e),a="iPad"===t||"MacIntel"===t&&r>0&&!window.MSStream;return{isIpad:a,isMobile:/android/i.test(e)||o||a,isSafari12:/Version\/12.+Safari/.test(e)}})();function a(e,t,r){if(!r)return[t];const n=function(e){const t="\n precision highp float;\n attribute vec3 aPosition;\n varying float vvv;\n void main() {\n vvv = 0.31622776601683794;\n gl_Position = vec4(aPosition, 1.0);\n }\n ",r="\n precision highp float;\n varying float vvv;\n void main() {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * vvv;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n gl_FragColor = enc;\n }\n ",n=e.createShader(35633),o=e.createShader(35632),a=e.createProgram();if(!(o&&n&&a))return;e.shaderSource(n,t),e.shaderSource(o,r),e.compileShader(n),e.compileShader(o),e.attachShader(a,n),e.attachShader(a,o),e.linkProgram(a),e.detachShader(a,n),e.detachShader(a,o),e.deleteShader(n),e.deleteShader(o),e.useProgram(a);const i=e.createBuffer();e.bindBuffer(34962,i),e.bufferData(34962,new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),35044);const c=e.getAttribLocation(a,"aPosition");e.vertexAttribPointer(c,3,5126,!1,0,0),e.enableVertexAttribArray(c),e.clearColor(1,1,1,1),e.clear(16384),e.viewport(0,0,1,1),e.drawArrays(4,0,3);const d=new Uint8Array(4);return e.readPixels(0,0,1,1,6408,5121,d),e.deleteProgram(a),e.deleteBuffer(i),d.join("")}(e),a="801621810",i="8016218135",c="80162181161",d=(null==o?void 0:o.isIpad)?[["a7",c,12],["a8",i,15],["a8x",i,15],["a9",i,15],["a9x",i,15],["a10",i,15],["a10x",i,15],["a12",a,15],["a12x",a,15],["a12z",a,15],["a14",a,15],["m1",a,15]]:[["a7",c,12],["a8",i,12],["a9",i,15],["a10",i,15],["a11",a,15],["a12",a,15],["a13",a,15],["a14",a,15]];let l;"80162181255"===n?l=d.filter((([,,e])=>e>=14)):(l=d.filter((([,e])=>e===n)),l.length||(l=d));return l.map((([e])=>`apple ${e} gpu`))}const i=[],c=[];function d(e,t){if(e===t)return 0;const r=e;e.length>t.length&&(e=t,t=r);let n=e.length,o=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-o);)n--,o--;let a,d=0;for(;d<n&&e.charCodeAt(d)===t.charCodeAt(d);)d++;if(n-=d,o-=d,0===n)return o;let l,s,f=0,u=0,h=0;for(;u<n;)c[u]=e.charCodeAt(d+u),i[u]=++u;for(;h<o;)for(a=t.charCodeAt(d+h),l=h++,f=h,u=0;u<n;u++)s=a===c[u]?l:l+1,l=i[u],f=i[u]=l>f?s>f?f+1:s:s>l?l+1:s;return f}function l(e){return null!=e}class s extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}const f=({mobileTiers:i=[0,15,30,60],desktopTiers:c=[0,15,30,60],override:f={},glContext:u,failIfMajorPerformanceCaveat:h=!1,benchmarksURL:g="https://unpkg.com/detect-gpu@4.0.50/dist/benchmarks"}={})=>e(void 0,void 0,void 0,(function*(){const p={};if(n)return{tier:0,type:"SSR"};const{isIpad:m=!!(null==o?void 0:o.isIpad),isMobile:v=!!(null==o?void 0:o.isMobile),screenSize:w=window.screen,loadBenchmarks:x=(t=>e(void 0,void 0,void 0,(function*(){const e=yield fetch(`${g}/${t}`).then((e=>e.json()));if(parseInt(e.shift().split(".")[0],10)<4)throw new s("Detect GPU benchmark data is out of date. Please update to version 4x");return e})))}=f;let{renderer:A}=f;const P=(e,t,r,n,o)=>({device:o,fps:n,gpu:r,isMobile:v,tier:e,type:t});let b,S="";if(A)A=r(A),b=[A];else{const e=u||function(e,t=!1){const r={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:t,powerPreference:"high-performance",stencil:!1};e&&delete r.powerPreference;const n=window.document.createElement("canvas"),o=n.getContext("webgl",r)||n.getContext("experimental-webgl",r);return null!=o?o:void 0}(null==o?void 0:o.isSafari12,h);if(!e)return P(0,"WEBGL_UNSUPPORTED");const t=e.getExtension("WEBGL_debug_renderer_info");if(t&&(A=e.getParameter(t.UNMASKED_RENDERER_WEBGL)),!A)return P(1,"FALLBACK");S=A,A=r(A),b=function(e,t,r){return"apple gpu"===t?a(e,t,r):[t]}(e,A,v)}const y=(yield Promise.all(b.map((function(t){var r;return e(this,void 0,void 0,(function*(){const e=(e=>{const t=v?["adreno","apple","mali-t","mali","nvidia","powervr"]:["intel","apple","amd","radeon","nvidia","geforce"];for(const r of t)if(e.includes(r))return r})(t);if(!e)return;const n=`${v?"m":"d"}-${e}${m?"-ipad":""}.json`,o=p[n]=null!==(r=p[n])&&void 0!==r?r:x(n);let a;try{a=yield o}catch(e){if(e instanceof s)throw e;return}const i=function(e){var t;const r=(e=e.replace(/\([^)]+\)/,"")).match(/\d+/)||e.match(/(\W|^)([A-Za-z]{1,3})(\W|$)/g);return null!==(t=null==r?void 0:r.join("").replace(/\W|amd/g,""))&&void 0!==t?t:""}(t);let c=a.filter((([,e])=>e===i));c.length||(c=a.filter((([e])=>e.includes(t))));const l=c.length;if(0===l)return;let f,[u,,,h]=l>1?c.map((e=>[e,d(t,e[0])])).sort((([,e],[,t])=>e-t))[0][0]:c[0],g=Number.MAX_VALUE;const{devicePixelRatio:A}=window,P=w.width*A*w.height*A;for(const e of h){const[t,r]=e,n=t*r,o=Math.abs(P-n);o<g&&(g=o,f=e)}if(!f)return;const[,,b,S]=f;return[g,b,u,S]}))})))).filter(l).sort((([e=Number.MAX_VALUE,t],[r=Number.MAX_VALUE,n])=>e===r?t-n:e-r));if(!y.length){const e=t.find((e=>A.includes(e)));return e?P(0,"BLOCKLISTED",e):P(1,"FALLBACK",`${A} (${S})`)}const[,C,E,L]=y[0];if(-1===C)return P(0,"BLOCKLISTED",E,C,L);const M=v?i:c;let $=0;for(let e=0;e<M.length;e++)C>=M[e]&&($=e);return P($,"BENCHMARK",E,C,L)}));
|
|
96853
96962
|
|
|
96854
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js +
|
|
96855
|
-
var enums = __webpack_require__(
|
|
96963
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
96964
|
+
var enums = __webpack_require__(98362);
|
|
96856
96965
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
|
|
96857
96966
|
var getRenderingEngine = __webpack_require__(49184);
|
|
96858
96967
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
|
|
@@ -97096,8 +97205,8 @@ const sequentialRetrieveStages = [
|
|
|
97096
97205
|
];
|
|
97097
97206
|
/* harmony default export */ const sequentialRetrieve = (sequentialRetrieveStages);
|
|
97098
97207
|
|
|
97099
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js +
|
|
97100
|
-
var enums = __webpack_require__(
|
|
97208
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
97209
|
+
var enums = __webpack_require__(98362);
|
|
97101
97210
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/interleavedRetrieve.js
|
|
97102
97211
|
|
|
97103
97212
|
const nearbyFrames = [
|
|
@@ -97578,12 +97687,24 @@ function createAndCacheDerivedImage(referencedImageId, options = {}, preventCach
|
|
|
97578
97687
|
const { TypedArrayConstructor } = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getBufferConfiguration)(options.targetBufferType, length);
|
|
97579
97688
|
const imageScalarData = new TypedArrayConstructor(skipCreateBuffer ? 1 : length);
|
|
97580
97689
|
const derivedImageId = imageId;
|
|
97581
|
-
['
|
|
97690
|
+
['imagePlaneModule', 'generalSeriesModule'].forEach((type) => {
|
|
97582
97691
|
_utilities__WEBPACK_IMPORTED_MODULE_4__.genericMetadataProvider.add(derivedImageId, {
|
|
97583
97692
|
type,
|
|
97584
97693
|
metadata: ___WEBPACK_IMPORTED_MODULE_6__.metaData.get(type, referencedImageId),
|
|
97585
97694
|
});
|
|
97586
97695
|
});
|
|
97696
|
+
const imagePixelModule = ___WEBPACK_IMPORTED_MODULE_6__.metaData.get('imagePixelModule', referencedImageId);
|
|
97697
|
+
_utilities__WEBPACK_IMPORTED_MODULE_4__.genericMetadataProvider.add(derivedImageId, {
|
|
97698
|
+
type: 'imagePixelModule',
|
|
97699
|
+
metadata: {
|
|
97700
|
+
...imagePixelModule,
|
|
97701
|
+
bitsAllocated: 8,
|
|
97702
|
+
bitsStored: 8,
|
|
97703
|
+
highBit: 7,
|
|
97704
|
+
samplesPerPixel: 1,
|
|
97705
|
+
pixelRepresentation: 0,
|
|
97706
|
+
},
|
|
97707
|
+
});
|
|
97587
97708
|
const localImage = createAndCacheLocalImage({ scalarData: imageScalarData, onCacheAdd, skipCreateBuffer }, imageId, true);
|
|
97588
97709
|
const imageLoadObject = {
|
|
97589
97710
|
promise: Promise.resolve(localImage),
|
|
@@ -98046,9 +98167,23 @@ function generateVolumeScalarData(targetBuffer, scalarLength) {
|
|
|
98046
98167
|
throw new Error(_enums_Events__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A.CACHE_SIZE_EXCEEDED);
|
|
98047
98168
|
}
|
|
98048
98169
|
let volumeScalarData;
|
|
98049
|
-
if (targetBuffer?.sharedArrayBuffer) {
|
|
98050
|
-
|
|
98051
|
-
|
|
98170
|
+
if (targetBuffer?.sharedArrayBuffer ?? (0,_init__WEBPACK_IMPORTED_MODULE_10__/* .getShouldUseSharedArrayBuffer */ .TB)()) {
|
|
98171
|
+
switch (targetBuffer.type) {
|
|
98172
|
+
case 'Float32Array':
|
|
98173
|
+
volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createFloat32SharedArray)(scalarLength);
|
|
98174
|
+
break;
|
|
98175
|
+
case 'Uint8Array':
|
|
98176
|
+
volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint8SharedArray)(scalarLength);
|
|
98177
|
+
break;
|
|
98178
|
+
case 'Uint16Array':
|
|
98179
|
+
volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint16SharedArray)(scalarLength);
|
|
98180
|
+
break;
|
|
98181
|
+
case 'Int16Array':
|
|
98182
|
+
volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint16SharedArray)(scalarLength);
|
|
98183
|
+
break;
|
|
98184
|
+
default:
|
|
98185
|
+
throw new Error('generateVolumeScalarData: SharedArrayBuffer is not supported for the specified target buffer type');
|
|
98186
|
+
}
|
|
98052
98187
|
}
|
|
98053
98188
|
else {
|
|
98054
98189
|
volumeScalarData = new TypedArrayConstructor(scalarLength);
|
|
@@ -98327,7 +98462,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
98327
98462
|
/* harmony export */ setupCacheOptimizationEventListener: () => (/* binding */ setupCacheOptimizationEventListener)
|
|
98328
98463
|
/* harmony export */ });
|
|
98329
98464
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13320);
|
|
98330
|
-
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
98465
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98362);
|
|
98331
98466
|
/* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51884);
|
|
98332
98467
|
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71702);
|
|
98333
98468
|
|
|
@@ -98449,7 +98584,7 @@ function findMatchingColormap(rgbPoints, actor) {
|
|
|
98449
98584
|
return false;
|
|
98450
98585
|
}
|
|
98451
98586
|
for (let i = 0; i < presetRGBPoints.length; i += 4) {
|
|
98452
|
-
if (!(0,_isEqual__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .
|
|
98587
|
+
if (!(0,_isEqual__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay)(presetRGBPoints.slice(i + 1, i + 4), rgbPoints.slice(i + 1, i + 4))) {
|
|
98453
98588
|
return false;
|
|
98454
98589
|
}
|
|
98455
98590
|
}
|
|
@@ -98478,6 +98613,7 @@ function findMatchingColormap(rgbPoints, actor) {
|
|
|
98478
98613
|
}
|
|
98479
98614
|
return {
|
|
98480
98615
|
name: matchedColormap.Name,
|
|
98616
|
+
opacity,
|
|
98481
98617
|
};
|
|
98482
98618
|
}
|
|
98483
98619
|
|
|
@@ -98812,6 +98948,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
98812
98948
|
__webpack_require__.d(__webpack_exports__, {
|
|
98813
98949
|
PointsManager: () => (/* reexport */ PointsManager),
|
|
98814
98950
|
ProgressiveIterator: () => (/* reexport */ ProgressiveIterator),
|
|
98951
|
+
RLEVoxelMap: () => (/* reexport */ RLEVoxelMap),
|
|
98815
98952
|
VoxelManager: () => (/* reexport */ VoxelManager),
|
|
98816
98953
|
actorIsA: () => (/* reexport */ actorCheck/* actorIsA */.N),
|
|
98817
98954
|
applyPreset: () => (/* reexport */ applyPreset),
|
|
@@ -98867,7 +99004,9 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
98867
99004
|
imageToWorldCoords: () => (/* reexport */ imageToWorldCoords),
|
|
98868
99005
|
indexWithinDimensions: () => (/* reexport */ indexWithinDimensions),
|
|
98869
99006
|
invertRgbTransferFunction: () => (/* reexport */ invertRgbTransferFunction),
|
|
98870
|
-
isEqual: () => (/* reexport */ isEqual/*
|
|
99007
|
+
isEqual: () => (/* reexport */ isEqual/* isEqual */.n4),
|
|
99008
|
+
isEqualAbs: () => (/* reexport */ isEqual/* isEqualAbs */.Ph),
|
|
99009
|
+
isEqualNegative: () => (/* reexport */ isEqual/* isEqualNegative */.WC),
|
|
98871
99010
|
isImageActor: () => (/* reexport */ actorCheck/* isImageActor */.e),
|
|
98872
99011
|
isOpposite: () => (/* reexport */ isOpposite),
|
|
98873
99012
|
isPTPrescaledWithSUV: () => (/* reexport */ utilities_isPTPrescaledWithSUV),
|
|
@@ -99298,6 +99437,9 @@ function createUint8SharedArray(length) {
|
|
|
99298
99437
|
|
|
99299
99438
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/createFloat32SharedArray.js
|
|
99300
99439
|
|
|
99440
|
+
const SMALL_MEMORY_LIMIT = 2 * 1024 * 1024 * 1024 - 2;
|
|
99441
|
+
const BIG_MEMORY_LIMIT = SMALL_MEMORY_LIMIT * 2;
|
|
99442
|
+
const PAGE_SIZE = 65536;
|
|
99301
99443
|
function createFloat32SharedArray(length) {
|
|
99302
99444
|
if (!(0,init/* getShouldUseSharedArrayBuffer */.TB)()) {
|
|
99303
99445
|
throw new Error('Your page is NOT cross-origin isolated, see https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated');
|
|
@@ -99305,8 +99447,20 @@ function createFloat32SharedArray(length) {
|
|
|
99305
99447
|
if (window.SharedArrayBuffer === undefined) {
|
|
99306
99448
|
throw new Error('SharedArrayBuffer is NOT supported in your browser see https://developer.chrome.com/blog/enabling-shared-array-buffer/');
|
|
99307
99449
|
}
|
|
99308
|
-
const
|
|
99309
|
-
|
|
99450
|
+
const byteLength = length * 4;
|
|
99451
|
+
if (byteLength < SMALL_MEMORY_LIMIT) {
|
|
99452
|
+
const sharedArrayBuffer = new SharedArrayBuffer(byteLength);
|
|
99453
|
+
return new Float32Array(sharedArrayBuffer);
|
|
99454
|
+
}
|
|
99455
|
+
else if (byteLength < BIG_MEMORY_LIMIT) {
|
|
99456
|
+
const pages = Math.ceil(byteLength / PAGE_SIZE);
|
|
99457
|
+
const memory = new WebAssembly.Memory({
|
|
99458
|
+
initial: pages,
|
|
99459
|
+
maximum: pages,
|
|
99460
|
+
shared: true,
|
|
99461
|
+
});
|
|
99462
|
+
return new Float32Array(memory.buffer, 0, length);
|
|
99463
|
+
}
|
|
99310
99464
|
}
|
|
99311
99465
|
/* harmony default export */ const utilities_createFloat32SharedArray = (createFloat32SharedArray);
|
|
99312
99466
|
|
|
@@ -99474,8 +99628,8 @@ function transformIndexToWorld(imageData, voxelPos) {
|
|
|
99474
99628
|
|
|
99475
99629
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
|
|
99476
99630
|
var imageLoader = __webpack_require__(79220);
|
|
99477
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js +
|
|
99478
|
-
var enums = __webpack_require__(
|
|
99631
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
99632
|
+
var enums = __webpack_require__(98362);
|
|
99479
99633
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
|
|
99480
99634
|
var imageLoadPoolManager = __webpack_require__(775);
|
|
99481
99635
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/getOrCreateCanvas.js
|
|
@@ -99494,23 +99648,28 @@ const isPTPrescaledWithSUV = (image) => {
|
|
|
99494
99648
|
|
|
99495
99649
|
|
|
99496
99650
|
|
|
99497
|
-
function renderToCanvasGPU(canvas,
|
|
99651
|
+
function renderToCanvasGPU(canvas, imageOrVolume, modality = undefined, renderingEngineId = '_thumbnails', viewportOptions = {
|
|
99652
|
+
displayArea: { imageArea: [1, 1] },
|
|
99653
|
+
}) {
|
|
99498
99654
|
if (!canvas || !(canvas instanceof HTMLCanvasElement)) {
|
|
99499
99655
|
throw new Error('canvas element is required');
|
|
99500
99656
|
}
|
|
99501
|
-
const
|
|
99657
|
+
const isVolume = !imageOrVolume.imageId;
|
|
99658
|
+
const image = !isVolume && imageOrVolume;
|
|
99659
|
+
const volume = isVolume && imageOrVolume;
|
|
99660
|
+
const imageIdToPrint = image?.imageId || volume?.volumeId;
|
|
99502
99661
|
const viewportId = `renderGPUViewport-${imageIdToPrint}`;
|
|
99503
|
-
const imageId = image.imageId;
|
|
99504
99662
|
const element = document.createElement('div');
|
|
99505
99663
|
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
99664
|
+
if (!viewportOptions.displayArea) {
|
|
99665
|
+
viewportOptions.displayArea = { imageArea: [1, 1] };
|
|
99666
|
+
}
|
|
99506
99667
|
const originalWidth = canvas.width;
|
|
99507
99668
|
const originalHeight = canvas.height;
|
|
99508
|
-
element.style.width = `${originalWidth + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
99509
|
-
element.style.height = `${originalHeight + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
99669
|
+
element.style.width = `${originalWidth / devicePixelRatio + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
99670
|
+
element.style.height = `${originalHeight / devicePixelRatio + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
99510
99671
|
element.style.visibility = 'hidden';
|
|
99511
99672
|
element.style.position = 'absolute';
|
|
99512
|
-
canvas.width = originalWidth * devicePixelRatio;
|
|
99513
|
-
canvas.height = originalHeight * devicePixelRatio;
|
|
99514
99673
|
document.body.appendChild(element);
|
|
99515
99674
|
const uniqueId = viewportId.split(':').join('-');
|
|
99516
99675
|
element.setAttribute('viewport-id-for-remove', uniqueId);
|
|
@@ -99519,26 +99678,44 @@ function renderToCanvasGPU(canvas, image, modality = undefined, renderingEngineI
|
|
|
99519
99678
|
new RenderingEngine/* default */.Ay(renderingEngineId);
|
|
99520
99679
|
let viewport = renderingEngine.getViewport(viewportId);
|
|
99521
99680
|
if (!viewport) {
|
|
99522
|
-
const
|
|
99681
|
+
const viewportInput = {
|
|
99523
99682
|
viewportId,
|
|
99524
|
-
type: enums.ViewportType.STACK,
|
|
99683
|
+
type: isVolume ? enums.ViewportType.ORTHOGRAPHIC : enums.ViewportType.STACK,
|
|
99525
99684
|
element,
|
|
99526
99685
|
defaultOptions: {
|
|
99527
99686
|
...viewportOptions,
|
|
99528
99687
|
suppressEvents: true,
|
|
99529
99688
|
},
|
|
99530
99689
|
};
|
|
99531
|
-
renderingEngine.enableElement(
|
|
99690
|
+
renderingEngine.enableElement(viewportInput);
|
|
99532
99691
|
viewport = renderingEngine.getViewport(viewportId);
|
|
99533
99692
|
}
|
|
99534
99693
|
return new Promise((resolve) => {
|
|
99535
99694
|
let elementRendered = false;
|
|
99695
|
+
let { viewReference } = viewportOptions;
|
|
99536
99696
|
const onImageRendered = (eventDetail) => {
|
|
99537
99697
|
if (elementRendered) {
|
|
99538
99698
|
return;
|
|
99539
99699
|
}
|
|
99700
|
+
if (viewReference) {
|
|
99701
|
+
const useViewRef = viewReference;
|
|
99702
|
+
viewReference = null;
|
|
99703
|
+
viewport.setViewReference(useViewRef);
|
|
99704
|
+
viewport.render();
|
|
99705
|
+
return;
|
|
99706
|
+
}
|
|
99540
99707
|
const context = canvas.getContext('2d');
|
|
99541
99708
|
context.drawImage(temporaryCanvas, 0, 0, temporaryCanvas.width, temporaryCanvas.height, 0, 0, canvas.width, canvas.height);
|
|
99709
|
+
const origin = viewport.canvasToWorld([0, 0]);
|
|
99710
|
+
const topRight = viewport.canvasToWorld([
|
|
99711
|
+
temporaryCanvas.width / devicePixelRatio,
|
|
99712
|
+
0,
|
|
99713
|
+
]);
|
|
99714
|
+
const bottomLeft = viewport.canvasToWorld([
|
|
99715
|
+
0,
|
|
99716
|
+
temporaryCanvas.height / devicePixelRatio,
|
|
99717
|
+
]);
|
|
99718
|
+
const thicknessMm = 1;
|
|
99542
99719
|
elementRendered = true;
|
|
99543
99720
|
element.removeEventListener(enums.Events.IMAGE_RENDERED, onImageRendered);
|
|
99544
99721
|
setTimeout(() => {
|
|
@@ -99548,10 +99725,20 @@ function renderToCanvasGPU(canvas, image, modality = undefined, renderingEngineI
|
|
|
99548
99725
|
element.remove();
|
|
99549
99726
|
});
|
|
99550
99727
|
}, 0);
|
|
99551
|
-
resolve(
|
|
99728
|
+
resolve({
|
|
99729
|
+
origin,
|
|
99730
|
+
bottomLeft,
|
|
99731
|
+
topRight,
|
|
99732
|
+
thicknessMm,
|
|
99733
|
+
});
|
|
99552
99734
|
};
|
|
99553
99735
|
element.addEventListener(enums.Events.IMAGE_RENDERED, onImageRendered);
|
|
99554
|
-
|
|
99736
|
+
if (isVolume) {
|
|
99737
|
+
viewport.setVolumes([volume], false, true);
|
|
99738
|
+
}
|
|
99739
|
+
else {
|
|
99740
|
+
viewport.renderImageObject(imageOrVolume);
|
|
99741
|
+
}
|
|
99555
99742
|
viewport.resetCamera();
|
|
99556
99743
|
if (modality === 'PT' && !utilities_isPTPrescaledWithSUV(image)) {
|
|
99557
99744
|
viewport.setProperties({
|
|
@@ -99575,7 +99762,12 @@ var drawImageSync = __webpack_require__(49892);
|
|
|
99575
99762
|
|
|
99576
99763
|
|
|
99577
99764
|
|
|
99578
|
-
function renderToCanvasCPU(canvas,
|
|
99765
|
+
function renderToCanvasCPU(canvas, imageOrVolume, modality, _renderingEngineId, _viewportOptions) {
|
|
99766
|
+
const volume = imageOrVolume;
|
|
99767
|
+
if (volume.volumeId) {
|
|
99768
|
+
throw new Error('Unsupported volume rendering for CPU');
|
|
99769
|
+
}
|
|
99770
|
+
const image = imageOrVolume;
|
|
99579
99771
|
const viewport = (0,getDefaultViewport/* default */.A)(canvas, image, modality);
|
|
99580
99772
|
const enabledElement = {
|
|
99581
99773
|
canvas,
|
|
@@ -99587,7 +99779,7 @@ function renderToCanvasCPU(canvas, image, modality, _renderingEngineId, _viewpor
|
|
|
99587
99779
|
const invalidated = true;
|
|
99588
99780
|
return new Promise((resolve, reject) => {
|
|
99589
99781
|
(0,drawImageSync/* default */.A)(enabledElement, invalidated);
|
|
99590
|
-
resolve(
|
|
99782
|
+
resolve(null);
|
|
99591
99783
|
});
|
|
99592
99784
|
}
|
|
99593
99785
|
|
|
@@ -99599,28 +99791,36 @@ function renderToCanvasCPU(canvas, image, modality, _renderingEngineId, _viewpor
|
|
|
99599
99791
|
|
|
99600
99792
|
|
|
99601
99793
|
|
|
99794
|
+
|
|
99602
99795
|
function loadImageToCanvas(options) {
|
|
99603
|
-
const { canvas, imageId, requestType = enums.RequestType.Thumbnail, priority = -5, renderingEngineId = '_thumbnails', useCPURendering = false, thumbnail = false, imageAspect = false,
|
|
99604
|
-
const
|
|
99796
|
+
const { canvas, imageId, viewReference, requestType = enums.RequestType.Thumbnail, priority = -5, renderingEngineId = '_thumbnails', useCPURendering = false, thumbnail = false, imageAspect = false, viewportOptions: baseViewportOptions, } = options;
|
|
99797
|
+
const volumeId = viewReference?.volumeId;
|
|
99798
|
+
const isVolume = volumeId && !imageId;
|
|
99799
|
+
const viewportOptions = viewReference && baseViewportOptions
|
|
99800
|
+
? { ...baseViewportOptions, viewReference }
|
|
99801
|
+
: baseViewportOptions;
|
|
99605
99802
|
const renderFn = useCPURendering ? renderToCanvasCPU : renderToCanvasGPU;
|
|
99606
99803
|
return new Promise((resolve, reject) => {
|
|
99607
|
-
function successCallback(
|
|
99804
|
+
function successCallback(imageOrVolume, imageId) {
|
|
99608
99805
|
const { modality } = metaData.get('generalSeriesModule', imageId) || {};
|
|
99609
|
-
image
|
|
99806
|
+
const image = !isVolume && imageOrVolume;
|
|
99807
|
+
const volume = isVolume && imageOrVolume;
|
|
99808
|
+
if (image) {
|
|
99809
|
+
image.isPreScaled = image.isPreScaled || image.preScale?.scaled;
|
|
99810
|
+
}
|
|
99610
99811
|
if (thumbnail) {
|
|
99611
99812
|
canvas.height = 256;
|
|
99612
99813
|
canvas.width = 256;
|
|
99613
99814
|
}
|
|
99614
|
-
if (
|
|
99615
|
-
canvas.width = canvas.
|
|
99616
|
-
canvas.height = canvas.offsetHeight * devicePixelRatio;
|
|
99815
|
+
if (imageAspect && image) {
|
|
99816
|
+
canvas.width = image && (canvas.height * image.width) / image.height;
|
|
99617
99817
|
}
|
|
99618
|
-
|
|
99619
|
-
|
|
99818
|
+
canvas.style.width = `${canvas.width / devicePixelRatio}px`;
|
|
99819
|
+
canvas.style.height = `${canvas.height / devicePixelRatio}px`;
|
|
99820
|
+
if (volume && useCPURendering) {
|
|
99821
|
+
reject(new Error('CPU rendering of volume not supported'));
|
|
99620
99822
|
}
|
|
99621
|
-
renderFn(canvas,
|
|
99622
|
-
resolve(imageId);
|
|
99623
|
-
});
|
|
99823
|
+
renderFn(canvas, imageOrVolume, modality, renderingEngineId, viewportOptions).then(resolve);
|
|
99624
99824
|
}
|
|
99625
99825
|
function errorCallback(error, imageId) {
|
|
99626
99826
|
console.error(error, imageId);
|
|
@@ -99633,20 +99833,28 @@ function loadImageToCanvas(options) {
|
|
|
99633
99833
|
errorCallback.call(this, error, imageId);
|
|
99634
99834
|
});
|
|
99635
99835
|
}
|
|
99636
|
-
const { useNorm16Texture
|
|
99637
|
-
const useNativeDataType = useNorm16Texture || preferSizeOverAccuracy;
|
|
99836
|
+
const { useNorm16Texture } = (0,init/* getConfiguration */.D0)().rendering;
|
|
99638
99837
|
const options = {
|
|
99639
99838
|
targetBuffer: {
|
|
99640
|
-
type:
|
|
99839
|
+
type: useNorm16Texture ? undefined : 'Float32Array',
|
|
99641
99840
|
},
|
|
99642
99841
|
preScale: {
|
|
99643
99842
|
enabled: true,
|
|
99644
99843
|
},
|
|
99645
|
-
useNativeDataType,
|
|
99646
99844
|
useRGBA: !!useCPURendering,
|
|
99647
99845
|
requestType,
|
|
99648
99846
|
};
|
|
99649
|
-
|
|
99847
|
+
if (volumeId) {
|
|
99848
|
+
const volume = cache/* default */.Ay.getVolume(volumeId);
|
|
99849
|
+
if (!volume) {
|
|
99850
|
+
reject(new Error(`Volume id ${volumeId} not found in cache`));
|
|
99851
|
+
}
|
|
99852
|
+
const useImageId = volume.imageIds[0];
|
|
99853
|
+
successCallback(volume, useImageId);
|
|
99854
|
+
}
|
|
99855
|
+
else {
|
|
99856
|
+
imageLoadPoolManager/* default */.A.addRequest(sendRequest.bind(null, imageId, null, options), requestType, { imageId }, priority);
|
|
99857
|
+
}
|
|
99650
99858
|
});
|
|
99651
99859
|
}
|
|
99652
99860
|
|
|
@@ -100414,8 +100622,8 @@ function getScalingParameters(imageId) {
|
|
|
100414
100622
|
const generalSeriesModule = (0,metaData.get)('generalSeriesModule', imageId) || {};
|
|
100415
100623
|
const { modality } = generalSeriesModule;
|
|
100416
100624
|
const scalingParameters = {
|
|
100417
|
-
rescaleSlope: modalityLutModule.rescaleSlope,
|
|
100418
|
-
rescaleIntercept: modalityLutModule.rescaleIntercept,
|
|
100625
|
+
rescaleSlope: modalityLutModule.rescaleSlope || 1,
|
|
100626
|
+
rescaleIntercept: modalityLutModule.rescaleIntercept ?? 0,
|
|
100419
100627
|
modality,
|
|
100420
100628
|
};
|
|
100421
100629
|
const suvFactor = (0,metaData.get)('scalingModule', imageId) || {};
|
|
@@ -100528,11 +100736,15 @@ function sortImageIdsAndGetSpacing(imageIds, scanAxisNormal) {
|
|
|
100528
100736
|
Math.abs(distanceBetweenFirstAndMiddleImages) /
|
|
100529
100737
|
Math.floor(imageIds.length / 2);
|
|
100530
100738
|
}
|
|
100531
|
-
const { imagePositionPatient: origin, sliceThickness } = dist_esm.metaData.get('imagePlaneModule', sortedImageIds[0]);
|
|
100739
|
+
const { imagePositionPatient: origin, sliceThickness, spacingBetweenSlices, } = dist_esm.metaData.get('imagePlaneModule', sortedImageIds[0]);
|
|
100532
100740
|
const { strictZSpacingForVolumeViewport } = (0,dist_esm.getConfiguration)().rendering;
|
|
100533
100741
|
if (zSpacing === 0 && !strictZSpacingForVolumeViewport) {
|
|
100534
|
-
if (sliceThickness) {
|
|
100535
|
-
console.log('Could not calculate zSpacing. Using
|
|
100742
|
+
if (sliceThickness && spacingBetweenSlices) {
|
|
100743
|
+
console.log('Could not calculate zSpacing. Using spacingBetweenSlices');
|
|
100744
|
+
zSpacing = spacingBetweenSlices;
|
|
100745
|
+
}
|
|
100746
|
+
else if (sliceThickness) {
|
|
100747
|
+
console.log('Could not calculate zSpacing and no spacingBetweenSlices. Using sliceThickness');
|
|
100536
100748
|
zSpacing = sliceThickness;
|
|
100537
100749
|
}
|
|
100538
100750
|
else {
|
|
@@ -100645,8 +100857,8 @@ function isValidVolume(imageIds) {
|
|
|
100645
100857
|
modality === baseMetadata.modality &&
|
|
100646
100858
|
columns === baseMetadata.columns &&
|
|
100647
100859
|
rows === baseMetadata.rows &&
|
|
100648
|
-
(0,isEqual/* default */.
|
|
100649
|
-
(0,isEqual/* default */.
|
|
100860
|
+
(0,isEqual/* default */.Ay)(imageOrientationPatient, baseMetadata.imageOrientationPatient) &&
|
|
100861
|
+
(0,isEqual/* default */.Ay)(pixelSpacing, baseMetadata.pixelSpacing));
|
|
100650
100862
|
});
|
|
100651
100863
|
return validVolume;
|
|
100652
100864
|
}
|
|
@@ -101090,9 +101302,11 @@ async function convertStackToVolumeViewport({ viewport, options, }) {
|
|
|
101090
101302
|
},
|
|
101091
101303
|
], [viewportId]);
|
|
101092
101304
|
const volumeViewportNewVolumeHandler = () => {
|
|
101093
|
-
|
|
101094
|
-
|
|
101095
|
-
|
|
101305
|
+
if (!options.orientation) {
|
|
101306
|
+
volumeViewport.setCamera({
|
|
101307
|
+
...prevCamera,
|
|
101308
|
+
});
|
|
101309
|
+
}
|
|
101096
101310
|
volumeViewport.render();
|
|
101097
101311
|
element.removeEventListener(enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, volumeViewportNewVolumeHandler);
|
|
101098
101312
|
};
|
|
@@ -101479,7 +101693,7 @@ class VoxelManager {
|
|
|
101479
101693
|
return [scalarData[index++], scalarData[index++], scalarData[index++]];
|
|
101480
101694
|
}, (index, v) => {
|
|
101481
101695
|
index *= 3;
|
|
101482
|
-
const isChanged = !(0,isEqual/* default */.
|
|
101696
|
+
const isChanged = !(0,isEqual/* default */.Ay)(scalarData[index], v);
|
|
101483
101697
|
scalarData[index++] = v[0];
|
|
101484
101698
|
scalarData[index++] = v[1];
|
|
101485
101699
|
scalarData[index++] = v[2];
|
|
@@ -101833,6 +102047,7 @@ function hexToRgb(hex) {
|
|
|
101833
102047
|
|
|
101834
102048
|
|
|
101835
102049
|
|
|
102050
|
+
|
|
101836
102051
|
|
|
101837
102052
|
|
|
101838
102053
|
/***/ }),
|
|
@@ -101842,7 +102057,10 @@ function hexToRgb(hex) {
|
|
|
101842
102057
|
|
|
101843
102058
|
"use strict";
|
|
101844
102059
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
101845
|
-
/* harmony export */
|
|
102060
|
+
/* harmony export */ Ay: () => (/* binding */ isEqual),
|
|
102061
|
+
/* harmony export */ Ph: () => (/* binding */ isEqualAbs),
|
|
102062
|
+
/* harmony export */ WC: () => (/* binding */ isEqualNegative),
|
|
102063
|
+
/* harmony export */ n4: () => (/* binding */ isEqual)
|
|
101846
102064
|
/* harmony export */ });
|
|
101847
102065
|
function areNumbersEqualWithTolerance(num1, num2, tolerance) {
|
|
101848
102066
|
return Math.abs(num1 - num2) <= tolerance;
|
|
@@ -101876,6 +102094,11 @@ function isEqual(v1, v2, tolerance = 1e-5) {
|
|
|
101876
102094
|
}
|
|
101877
102095
|
return false;
|
|
101878
102096
|
}
|
|
102097
|
+
const negative = (v) => typeof v === 'number' ? -v : v?.map ? v.map(negative) : !v;
|
|
102098
|
+
const abs = (v) => typeof v === 'number' ? Math.abs(v) : v?.map ? v.map(abs) : v;
|
|
102099
|
+
const isEqualNegative = (v1, v2, tolerance = undefined) => isEqual(v1, negative(v2), tolerance);
|
|
102100
|
+
const isEqualAbs = (v1, v2, tolerance = undefined) => isEqual(abs(v1), abs(v2), tolerance);
|
|
102101
|
+
|
|
101879
102102
|
|
|
101880
102103
|
|
|
101881
102104
|
/***/ }),
|
|
@@ -101960,7 +102183,7 @@ function triggerEvent(el = _eventTarget__WEBPACK_IMPORTED_MODULE_0__/* ["default
|
|
|
101960
102183
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
101961
102184
|
/* harmony export */ });
|
|
101962
102185
|
/* harmony import */ var comlink__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99178);
|
|
101963
|
-
/* harmony import */ var _enums___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
102186
|
+
/* harmony import */ var _enums___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98362);
|
|
101964
102187
|
/* harmony import */ var _requestPool_requestPoolManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79927);
|
|
101965
102188
|
|
|
101966
102189
|
|
|
@@ -102115,7 +102338,7 @@ class CentralizedWorkerManager {
|
|
|
102115
102338
|
/***/ 54578:
|
|
102116
102339
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
102117
102340
|
|
|
102118
|
-
!function(e,t){ true?module.exports=t(__webpack_require__(92136),__webpack_require__(45561)):0}(this,((e,t)=>(()=>{"use strict";var r={578:(e,t,r)=>{const n=r(823),a=r(187),o=r(592),i=r(604),s=r(249),l=r(968),c=Object.prototype.toString,{Z_NO_FLUSH:u,Z_FINISH:f,Z_OK:d,Z_STREAM_END:m,Z_NEED_DICT:g,Z_STREAM_ERROR:p,Z_DATA_ERROR:h,Z_MEM_ERROR:x}=r(684);function b(e){this.options=a.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let r=n.inflateInit2(this.strm,t.windowBits);if(r!==d)throw new Error(i[r]);if(this.header=new l,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=o.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary),r!==d)))throw new Error(i[r])}function w(e,t){const r=new b(t);if(r.push(e),r.err)throw r.msg||i[r.err];return r.result}b.prototype.push=function(e,t){const r=this.strm,a=this.options.chunkSize,i=this.options.dictionary;let s,l,b;if(this.ended)return!1;for(l=t===~~t?t:!0===t?f:u,"[object ArrayBuffer]"===c.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(a),r.next_out=0,r.avail_out=a),s=n.inflate(r,l),s===g&&i&&(s=n.inflateSetDictionary(r,i),s===d?s=n.inflate(r,l):s===h&&(s=g));r.avail_in>0&&s===m&&r.state.wrap>0&&0!==e[r.next_in];)n.inflateReset(r),s=n.inflate(r,l);switch(s){case p:case h:case g:case x:return this.onEnd(s),this.ended=!0,!1}if(b=r.avail_out,r.next_out&&(0===r.avail_out||s===m))if("string"===this.options.to){let e=o.utf8border(r.output,r.next_out),t=r.next_out-e,n=o.buf2string(r.output,e);r.next_out=t,r.avail_out=a-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(n)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(s!==d||0!==b){if(s===m)return s=n.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},b.prototype.onData=function(e){this.chunks.push(e)},b.prototype.onEnd=function(e){e===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Hq=function(e,t){return(t=t||{}).raw=!0,w(e,t)},r(684)},187:e=>{const t=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);e.exports.assign=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const n=r.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const r in n)t(n,r)&&(e[r]=n[r])}}return e},e.exports.flattenChunks=e=>{let t=0;for(let r=0,n=e.length;r<n;r++)t+=e[r].length;const r=new Uint8Array(t);for(let t=0,n=0,a=e.length;t<a;t++){let a=e[t];r.set(a,n),n+=a.length}return r}},592:e=>{let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){t=!1}const r=new Uint8Array(256);for(let e=0;e<256;e++)r[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;r[254]=r[254]=1,e.exports.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,n,a,o,i=e.length,s=0;for(a=0;a<i;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),s+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(s),o=0,a=0;o<s;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),r<128?t[o++]=r:r<2048?(t[o++]=192|r>>>6,t[o++]=128|63&r):r<65536?(t[o++]=224|r>>>12,t[o++]=128|r>>>6&63,t[o++]=128|63&r):(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63,t[o++]=128|r>>>6&63,t[o++]=128|63&r);return t};e.exports.buf2string=(e,n)=>{const a=n||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,n));let o,i;const s=new Array(2*a);for(i=0,o=0;o<a;){let t=e[o++];if(t<128){s[i++]=t;continue}let n=r[t];if(n>4)s[i++]=65533,o+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&o<a;)t=t<<6|63&e[o++],n--;n>1?s[i++]=65533:t<65536?s[i++]=t:(t-=65536,s[i++]=55296|t>>10&1023,s[i++]=56320|1023&t)}}return((e,r)=>{if(r<65534&&e.subarray&&t)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let n="";for(let t=0;t<r;t++)n+=String.fromCharCode(e[t]);return n})(s,i)},e.exports.utf8border=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+r[e[n]]>t?n:t}},693:e=>{e.exports=(e,t,r,n)=>{let a=65535&e|0,o=e>>>16&65535|0,i=0;for(;0!==r;){i=r>2e3?2e3:r,r-=i;do{a=a+t[n++]|0,o=o+a|0}while(--i);a%=65521,o%=65521}return a|o<<16|0}},684:e=>{e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},863:e=>{const t=new Uint32Array((()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t})());e.exports=(e,r,n,a)=>{const o=t,i=a+n;e^=-1;for(let t=a;t<i;t++)e=e>>>8^o[255&(e^r[t])];return-1^e}},968:e=>{e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},365:e=>{const t=16209;e.exports=function(e,r){let n,a,o,i,s,l,c,u,f,d,m,g,p,h,x,b,w,y,k,T,D,S,I,P;const v=e.state;n=e.next_in,I=e.input,a=n+(e.avail_in-5),o=e.next_out,P=e.output,i=o-(r-e.avail_out),s=o+(e.avail_out-257),l=v.dmax,c=v.wsize,u=v.whave,f=v.wnext,d=v.window,m=v.hold,g=v.bits,p=v.lencode,h=v.distcode,x=(1<<v.lenbits)-1,b=(1<<v.distbits)-1;e:do{g<15&&(m+=I[n++]<<g,g+=8,m+=I[n++]<<g,g+=8),w=p[m&x];t:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,0===y)P[o++]=65535&w;else{if(!(16&y)){if(0==(64&y)){w=p[(65535&w)+(m&(1<<y)-1)];continue t}if(32&y){v.mode=16191;break e}e.msg="invalid literal/length code",v.mode=t;break e}k=65535&w,y&=15,y&&(g<y&&(m+=I[n++]<<g,g+=8),k+=m&(1<<y)-1,m>>>=y,g-=y),g<15&&(m+=I[n++]<<g,g+=8,m+=I[n++]<<g,g+=8),w=h[m&b];r:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,!(16&y)){if(0==(64&y)){w=h[(65535&w)+(m&(1<<y)-1)];continue r}e.msg="invalid distance code",v.mode=t;break e}if(T=65535&w,y&=15,g<y&&(m+=I[n++]<<g,g+=8,g<y&&(m+=I[n++]<<g,g+=8)),T+=m&(1<<y)-1,T>l){e.msg="invalid distance too far back",v.mode=t;break e}if(m>>>=y,g-=y,y=o-i,T>y){if(y=T-y,y>u&&v.sane){e.msg="invalid distance too far back",v.mode=t;break e}if(D=0,S=d,0===f){if(D+=c-y,y<k){k-=y;do{P[o++]=d[D++]}while(--y);D=o-T,S=P}}else if(f<y){if(D+=c+f-y,y-=f,y<k){k-=y;do{P[o++]=d[D++]}while(--y);if(D=0,f<k){y=f,k-=y;do{P[o++]=d[D++]}while(--y);D=o-T,S=P}}}else if(D+=f-y,y<k){k-=y;do{P[o++]=d[D++]}while(--y);D=o-T,S=P}for(;k>2;)P[o++]=S[D++],P[o++]=S[D++],P[o++]=S[D++],k-=3;k&&(P[o++]=S[D++],k>1&&(P[o++]=S[D++]))}else{D=o-T;do{P[o++]=P[D++],P[o++]=P[D++],P[o++]=P[D++],k-=3}while(k>2);k&&(P[o++]=P[D++],k>1&&(P[o++]=P[D++]))}break}}break}}while(n<a&&o<s);k=g>>3,n-=k,g-=k<<3,m&=(1<<g)-1,e.next_in=n,e.next_out=o,e.avail_in=n<a?a-n+5:5-(n-a),e.avail_out=o<s?s-o+257:257-(o-s),v.hold=m,v.bits=g}},823:(e,t,r)=>{const n=r(693),a=r(863),o=r(365),i=r(446),{Z_FINISH:s,Z_BLOCK:l,Z_TREES:c,Z_OK:u,Z_STREAM_END:f,Z_NEED_DICT:d,Z_STREAM_ERROR:m,Z_DATA_ERROR:g,Z_MEM_ERROR:p,Z_BUF_ERROR:h,Z_DEFLATED:x}=r(684),b=16180,w=16190,y=16191,k=16192,T=16194,D=16199,S=16200,I=16206,P=16209,v=16210,E=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function A(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const _=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<b||t.mode>16211?1:0},L=e=>{if(_(e))return m;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=b,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,u},C=e=>{if(_(e))return m;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,L(e)},O=(e,t)=>{let r;if(_(e))return m;const n=e.state;return t<0?(r=0,t=-t):(r=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?m:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,C(e))},R=(e,t)=>{if(!e)return m;const r=new A;e.state=r,r.strm=e,r.window=null,r.mode=b;const n=O(e,t);return n!==u&&(e.state=null),n};let M,F,U=!0;const B=e=>{if(U){M=new Int32Array(512),F=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(i(1,e.lens,0,288,M,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;i(2,e.lens,0,32,F,0,e.work,{bits:5}),U=!1}e.lencode=M,e.lenbits=9,e.distcode=F,e.distbits=5},N=(e,t,r,n)=>{let a;const o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),n>=o.wsize?(o.window.set(t.subarray(r-o.wsize,r),0),o.wnext=0,o.whave=o.wsize):(a=o.wsize-o.wnext,a>n&&(a=n),o.window.set(t.subarray(r-n,r-n+a),o.wnext),(n-=a)?(o.window.set(t.subarray(r-n,r),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=a))),0};e.exports.inflateReset=C,e.exports.inflateReset2=O,e.exports.inflateResetKeep=L,e.exports.inflateInit=e=>R(e,15),e.exports.inflateInit2=R,e.exports.inflate=(e,t)=>{let r,A,L,C,O,R,M,F,U,j,G,V,$,W,q,Z,Y,z,H,Q,X,K,J=0;const ee=new Uint8Array(4);let te,re;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(_(e)||!e.output||!e.input&&0!==e.avail_in)return m;r=e.state,r.mode===y&&(r.mode=k),O=e.next_out,L=e.output,M=e.avail_out,C=e.next_in,A=e.input,R=e.avail_in,F=r.hold,U=r.bits,j=R,G=M,K=u;e:for(;;)switch(r.mode){case b:if(0===r.wrap){r.mode=k;break}for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(2&r.wrap&&35615===F){0===r.wbits&&(r.wbits=15),r.check=0,ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0),F=0,U=0,r.mode=16181;break}if(r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&F)<<8)+(F>>8))%31){e.msg="incorrect header check",r.mode=P;break}if((15&F)!==x){e.msg="unknown compression method",r.mode=P;break}if(F>>>=4,U-=4,X=8+(15&F),0===r.wbits&&(r.wbits=X),X>15||X>r.wbits){e.msg="invalid window size",r.mode=P;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=512&F?16189:y,F=0,U=0;break;case 16181:for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(r.flags=F,(255&r.flags)!==x){e.msg="unknown compression method",r.mode=P;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=P;break}r.head&&(r.head.text=F>>8&1),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,U=0,r.mode=16182;case 16182:for(;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.head&&(r.head.time=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,ee[2]=F>>>16&255,ee[3]=F>>>24&255,r.check=a(r.check,ee,4,0)),F=0,U=0,r.mode=16183;case 16183:for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.head&&(r.head.xflags=255&F,r.head.os=F>>8),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,U=0,r.mode=16184;case 16184:if(1024&r.flags){for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.length=F,r.head&&(r.head.extra_len=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,U=0}else r.head&&(r.head.extra=null);r.mode=16185;case 16185:if(1024&r.flags&&(V=r.length,V>R&&(V=R),V&&(r.head&&(X=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(A.subarray(C,C+V),X)),512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,V,C)),R-=V,C+=V,r.length-=V),r.length))break e;r.length=0,r.mode=16186;case 16186:if(2048&r.flags){if(0===R)break e;V=0;do{X=A[C+V++],r.head&&X&&r.length<65536&&(r.head.name+=String.fromCharCode(X))}while(X&&V<R);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,V,C)),R-=V,C+=V,X)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=16187;case 16187:if(4096&r.flags){if(0===R)break e;V=0;do{X=A[C+V++],r.head&&X&&r.length<65536&&(r.head.comment+=String.fromCharCode(X))}while(X&&V<R);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,V,C)),R-=V,C+=V,X)break e}else r.head&&(r.head.comment=null);r.mode=16188;case 16188:if(512&r.flags){for(;U<16;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(4&r.wrap&&F!==(65535&r.check)){e.msg="header crc mismatch",r.mode=P;break}F=0,U=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=y;break;case 16189:for(;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}e.adler=r.check=E(F),F=0,U=0,r.mode=w;case w:if(0===r.havedict)return e.next_out=O,e.avail_out=M,e.next_in=C,e.avail_in=R,r.hold=F,r.bits=U,d;e.adler=r.check=1,r.mode=y;case y:if(t===l||t===c)break e;case k:if(r.last){F>>>=7&U,U-=7&U,r.mode=I;break}for(;U<3;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}switch(r.last=1&F,F>>>=1,U-=1,3&F){case 0:r.mode=16193;break;case 1:if(B(r),r.mode=D,t===c){F>>>=2,U-=2;break e}break;case 2:r.mode=16196;break;case 3:e.msg="invalid block type",r.mode=P}F>>>=2,U-=2;break;case 16193:for(F>>>=7&U,U-=7&U;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if((65535&F)!=(F>>>16^65535)){e.msg="invalid stored block lengths",r.mode=P;break}if(r.length=65535&F,F=0,U=0,r.mode=T,t===c)break e;case T:r.mode=16195;case 16195:if(V=r.length,V){if(V>R&&(V=R),V>M&&(V=M),0===V)break e;L.set(A.subarray(C,C+V),O),R-=V,C+=V,M-=V,O+=V,r.length-=V;break}r.mode=y;break;case 16196:for(;U<14;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(r.nlen=257+(31&F),F>>>=5,U-=5,r.ndist=1+(31&F),F>>>=5,U-=5,r.ncode=4+(15&F),F>>>=4,U-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=P;break}r.have=0,r.mode=16197;case 16197:for(;r.have<r.ncode;){for(;U<3;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.lens[ne[r.have++]]=7&F,F>>>=3,U-=3}for(;r.have<19;)r.lens[ne[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,te={bits:r.lenbits},K=i(0,r.lens,0,19,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid code lengths set",r.mode=P;break}r.have=0,r.mode=16198;case 16198:for(;r.have<r.nlen+r.ndist;){for(;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(Y<16)F>>>=q,U-=q,r.lens[r.have++]=Y;else{if(16===Y){for(re=q+2;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(F>>>=q,U-=q,0===r.have){e.msg="invalid bit length repeat",r.mode=P;break}X=r.lens[r.have-1],V=3+(3&F),F>>>=2,U-=2}else if(17===Y){for(re=q+3;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=q,U-=q,X=0,V=3+(7&F),F>>>=3,U-=3}else{for(re=q+7;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=q,U-=q,X=0,V=11+(127&F),F>>>=7,U-=7}if(r.have+V>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=P;break}for(;V--;)r.lens[r.have++]=X}}if(r.mode===P)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=P;break}if(r.lenbits=9,te={bits:r.lenbits},K=i(1,r.lens,0,r.nlen,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid literal/lengths set",r.mode=P;break}if(r.distbits=6,r.distcode=r.distdyn,te={bits:r.distbits},K=i(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,te),r.distbits=te.bits,K){e.msg="invalid distances set",r.mode=P;break}if(r.mode=D,t===c)break e;case D:r.mode=S;case S:if(R>=6&&M>=258){e.next_out=O,e.avail_out=M,e.next_in=C,e.avail_in=R,r.hold=F,r.bits=U,o(e,G),O=e.next_out,L=e.output,M=e.avail_out,C=e.next_in,A=e.input,R=e.avail_in,F=r.hold,U=r.bits,r.mode===y&&(r.back=-1);break}for(r.back=0;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(Z&&0==(240&Z)){for(z=q,H=Z,Q=Y;J=r.lencode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=z,U-=z,r.back+=z}if(F>>>=q,U-=q,r.back+=q,r.length=Y,0===Z){r.mode=16205;break}if(32&Z){r.back=-1,r.mode=y;break}if(64&Z){e.msg="invalid literal/length code",r.mode=P;break}r.extra=15&Z,r.mode=16201;case 16201:if(r.extra){for(re=r.extra;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.length+=F&(1<<r.extra)-1,F>>>=r.extra,U-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=16202;case 16202:for(;J=r.distcode[F&(1<<r.distbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(0==(240&Z)){for(z=q,H=Z,Q=Y;J=r.distcode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=U);){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}F>>>=z,U-=z,r.back+=z}if(F>>>=q,U-=q,r.back+=q,64&Z){e.msg="invalid distance code",r.mode=P;break}r.offset=Y,r.extra=15&Z,r.mode=16203;case 16203:if(r.extra){for(re=r.extra;U<re;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}r.offset+=F&(1<<r.extra)-1,F>>>=r.extra,U-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=P;break}r.mode=16204;case 16204:if(0===M)break e;if(V=G-M,r.offset>V){if(V=r.offset-V,V>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=P;break}V>r.wnext?(V-=r.wnext,$=r.wsize-V):$=r.wnext-V,V>r.length&&(V=r.length),W=r.window}else W=L,$=O-r.offset,V=r.length;V>M&&(V=M),M-=V,r.length-=V;do{L[O++]=W[$++]}while(--V);0===r.length&&(r.mode=S);break;case 16205:if(0===M)break e;L[O++]=r.length,M--,r.mode=S;break;case I:if(r.wrap){for(;U<32;){if(0===R)break e;R--,F|=A[C++]<<U,U+=8}if(G-=M,e.total_out+=G,r.total+=G,4&r.wrap&&G&&(e.adler=r.check=r.flags?a(r.check,L,G,O-G):n(r.check,L,G,O-G)),G=M,4&r.wrap&&(r.flags?F:E(F))!==r.check){e.msg="incorrect data check",r.mode=P;break}F=0,U=0}r.mode=16207;case 16207:if(r.wrap&&r.flags){for(;U<32;){if(0===R)break e;R--,F+=A[C++]<<U,U+=8}if(4&r.wrap&&F!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=P;break}F=0,U=0}r.mode=16208;case 16208:K=f;break e;case P:K=g;break e;case v:return p;default:return m}return e.next_out=O,e.avail_out=M,e.next_in=C,e.avail_in=R,r.hold=F,r.bits=U,(r.wsize||G!==e.avail_out&&r.mode<P&&(r.mode<I||t!==s))&&N(e,e.output,e.next_out,G-e.avail_out)?(r.mode=v,p):(j-=e.avail_in,G-=e.avail_out,e.total_in+=j,e.total_out+=G,r.total+=G,4&r.wrap&&G&&(e.adler=r.check=r.flags?a(r.check,L,G,e.next_out-G):n(r.check,L,G,e.next_out-G)),e.data_type=r.bits+(r.last?64:0)+(r.mode===y?128:0)+(r.mode===D||r.mode===T?256:0),(0===j&&0===G||t===s)&&K===u&&(K=h),K)},e.exports.inflateEnd=e=>{if(_(e))return m;let t=e.state;return t.window&&(t.window=null),e.state=null,u},e.exports.inflateGetHeader=(e,t)=>{if(_(e))return m;const r=e.state;return 0==(2&r.wrap)?m:(r.head=t,t.done=!1,u)},e.exports.inflateSetDictionary=(e,t)=>{const r=t.length;let a,o,i;return _(e)?m:(a=e.state,0!==a.wrap&&a.mode!==w?m:a.mode===w&&(o=1,o=n(o,t,r,0),o!==a.check)?g:(i=N(e,t,r,r),i?(a.mode=v,p):(a.havedict=1,u)))},e.exports.inflateInfo="pako inflate (from Nodeca project)"},446:e=>{const t=15,r=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),a=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);e.exports=(e,i,s,l,c,u,f,d)=>{const m=d.bits;let g,p,h,x,b,w,y=0,k=0,T=0,D=0,S=0,I=0,P=0,v=0,E=0,A=0,_=null;const L=new Uint16Array(16),C=new Uint16Array(16);let O,R,M,F=null;for(y=0;y<=t;y++)L[y]=0;for(k=0;k<l;k++)L[i[s+k]]++;for(S=m,D=t;D>=1&&0===L[D];D--);if(S>D&&(S=D),0===D)return c[u++]=20971520,c[u++]=20971520,d.bits=1,0;for(T=1;T<D&&0===L[T];T++);for(S<T&&(S=T),v=1,y=1;y<=t;y++)if(v<<=1,v-=L[y],v<0)return-1;if(v>0&&(0===e||1!==D))return-1;for(C[1]=0,y=1;y<t;y++)C[y+1]=C[y]+L[y];for(k=0;k<l;k++)0!==i[s+k]&&(f[C[i[s+k]]++]=k);if(0===e?(_=F=f,w=20):1===e?(_=r,F=n,w=257):(_=a,F=o,w=0),A=0,k=0,y=T,b=u,I=S,P=0,h=-1,E=1<<S,x=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){O=y-P,f[k]+1<w?(R=0,M=f[k]):f[k]>=w?(R=F[f[k]-w],M=_[f[k]-w]):(R=96,M=0),g=1<<y-P,p=1<<I,T=p;do{p-=g,c[b+(A>>P)+p]=O<<24|R<<16|M|0}while(0!==p);for(g=1<<y-1;A&g;)g>>=1;if(0!==g?(A&=g-1,A+=g):A=0,k++,0==--L[y]){if(y===D)break;y=i[s+f[k]]}if(y>S&&(A&x)!==h){for(0===P&&(P=S),b+=T,I=y-P,v=1<<I;I+P<D&&(v-=L[I+P],!(v<=0));)I++,v<<=1;if(E+=1<<I,1===e&&E>852||2===e&&E>592)return 1;h=A&x,c[h]=S<<24|I<<16|b-u|0}}return 0!==A&&(c[b+A]=y-P<<24|64<<16|0),d.bits=S,0}},604:e=>{e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},249:e=>{e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},464:t=>{t.exports=e},713:e=>{e.exports=t}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})();var o={};return(()=>{function e(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: rgbBuffer length must be divisible by 3");const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++)t[o++]=e[a++],t[o++]=e[a++],t[o++]=e[a++],t[o++]=255;else t.set(e)}function t(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: rgbBuffer length must be divisible by 3");const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++],t[a++]=255;else for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++]}function r(e,t,r){if(void 0===e)throw new Error("decodeRGB: ybrBuffer must not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: ybrBuffer length must be divisble by 3");const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128),t[o++]=255}else for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128)}}function n(e,t,r){if(void 0===e)throw new Error("decodeRGB: ybrBuffer must not be undefined");if(e.length%3!=0)throw new Error("decodeRGB: ybrBuffer length must be divisble by 3");const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128),t[a++]=255}else for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128)}}a.r(o),a.d(o,{configure:()=>kt,convertColorSpace:()=>X,convertPALETTECOLOR:()=>yt,convertRGBColorByPixel:()=>e,convertRGBColorByPlane:()=>t,convertYBRFullByPixel:()=>r,convertYBRFullByPlane:()=>n,createImage:()=>ke,decodeImageFrame:()=>pe,decodeJPEGBaseline8BitColor:()=>J,default:()=>Dt,external:()=>bt,getImageFrame:()=>he,getMinMax:()=>H,getPixelData:()=>z,internal:()=>B,isColorImage:()=>xe,isJPEGBaseline8BitColor:()=>Tt,wadors:()=>Ee,wadouri:()=>mt,webWorkerManager:()=>de});const i=function(e,t,r){return t=t||0,e&&e.Value?e.Value.length<=t?r:e.Value[t]:r};const s=function(e,t,r){const n=i(e,t,r);if(void 0!==n)return parseFloat(n)};const l=function(e,t){const r=i(e,t);if(void 0!==r)return parseFloat(r)};const c=function(e,t){if(!e)return;if(!e.Value)return;if(!Array.isArray(e.Value))return;if(t&&e.Value.length<t)return;const r=[];for(let t=0;t<e.Value.length;t++)r.push(parseFloat(e.Value[t]));return r};function u(e){const t=e.indexOf(":");return e.substring(t+1)}function f(e,t=!0){return e&&e.Value?e.Value[0]&&t?e.Value[0]:e.Value:e}function d(e,t,r){return{shared:(t?Object.values(t[0]):[]).map((e=>e[0])).filter((e=>void 0!==e&&"object"==typeof e)),perFrame:(e?Object.values(e[r-1]):[]).map((e=>e.Value[0])).filter((e=>void 0!==e&&"object"==typeof e))}}function m(e){let{52009230:t,52009229:r,"00280008":n,...a}=e;return t=f(t,!1),r=f(r,!1),n=f(n),{PerFrameFunctionalGroupsSequence:t,SharedFunctionalGroupsSequence:r,NumberOfFrames:n,rest:a}}function g(e){const t=e.indexOf("/frames/")+8,r=e.slice(0,t),n=parseInt(e.slice(t),10);return{metadata:h[`${r}1`],frame:n}}const p={_retrieveMultiframeMetadata:g,retrieveMultiframeMetadata:function(e){return g(u(e))},isMultiframe:function(e){const t=i(e["00280008"]);return t&&t>1}};let h=[],x={};const b={add:function(e,t){const r=u(e);t.isMultiframe=p.isMultiframe(t),h[r]=t},get:function(e){const t=u(e),r=h[t];if(r&&!r?.isMultiframe)return r;const n=x[t];if(n)return n;const a=p._retrieveMultiframeMetadata(t);if(!a||!a.metadata)return;const{metadata:o,frame:i}=a;if(o){const e=function(e,t){const{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:a,rest:o}=m(t);if(r||a>1){const{shared:i,perFrame:s}=d(r,n,e),l=Object.assign(t,{frameNumber:e});return[...i,...s].forEach((e=>{Object.entries(e).forEach((([e,t])=>{l[e]=t}))})),Object.assign(o,{"00280008":a},l)}return t}(i,o);return x[t]=e,e}},remove:function(e){const t=u(e);h[t]=void 0,x[t]=void 0},purge:function(){h=[],x={}}};function w(e){return"RECON TOMO"===e||"RECON GATED TOMO"===e}function y(e){return i(e["00080060"]).includes("NM")}function k(e,t){const r=f(e["00080008"],!1);if(r)return r[t]}function T(e){let t=c(e["00200037"],6);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200037"],6))}return t}(e)),t}function D(e){let t=c(e["00200032"],3);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200032"],3))}return t}(e)),t}function S(e,t,r){const n={};for(const a of r)try{const r=t(a,e);if(r){const e={};for(const t in r)if(t in r){e[I(t)]=r[t]}Object.assign(n,e)}}catch(e){console.error(`Error retrieving ${a} data:`,e)}return n}const I=e=>e.charAt(0).toUpperCase()+e.slice(1),P=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function v(e,t){const r=c(e[t]);return r?r[0]:null}const E=function(e){return e?.Value?.length?Array.isArray(e.Value)?e.Value:"object"==typeof e.Value?(console.warn("Warning: Value should be an array, but an object was found. Encapsulating the object in an array."),[e.Value]):[]:[]};function A(e){const t=E(e["00186011"]);if(!t||!t.length)return null;return t.map((e=>{const t=v(e,"0018602C"),r=v(e,"0018602E"),n=v(e,"00186024"),a=v(e,"00186026");return{regionLocationMinY0:v(e,"0018601A"),regionLocationMaxY1:v(e,"0018601E"),regionLocationMinX0:v(e,"00186018"),regionLocationMaxX1:v(e,"0018601C"),referencePixelX0:v(e,"00186020"),referencePixelY0:v(e,"00186022"),physicalDeltaX:t,physicalDeltaY:r,physicalUnitsXDirection:n,physicalUnitsYDirection:a,referencePhysicalPixelValueY:v(e,"0018602A"),referencePhysicalPixelValueX:v(e,"00186028"),regionSpatialFormat:v(e,"00186012"),regionDataType:v(e,"00186014"),regionFlags:v(e,"00186016"),transducerFrequency:v(e,"00186030")}}))}function _(e,t){return{transferSyntaxUID:i(t["00020010"])||i(t["00083002"])}}const L=function e(t,r){const{MetadataModules:n}=bt.cornerstone.Enums,{dicomParser:a}=bt;if(t===n.MULTIFRAME){const{metadata:e,frame:t}=p.retrieveMultiframeMetadata(r);if(!e)return;const{PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,NumberOfFrames:o}=m(e);if(n||o>1){const{shared:e,perFrame:r}=d(n,a,t);return{NumberOfFrames:o,PerFrameFunctionalInformation:r,SharedFunctionalInformation:e}}return{NumberOfFrames:o}}const o=b.get(r);if(o){if(t===n.GENERAL_STUDY)return{studyDescription:i(o["00081030"]),studyDate:a.parseDA(i(o["00080020"])),studyTime:a.parseTM(i(o["00080030"],0,"")),accessionNumber:i(o["00080050"])};if(t===n.GENERAL_SERIES)return{modality:i(o["00080060"]),seriesInstanceUID:i(o["0020000E"]),seriesNumber:l(o["00200011"]),studyInstanceUID:i(o["0020000D"]),seriesDate:a.parseDA(i(o["00080021"])),seriesTime:a.parseTM(i(o["00080031"],0,"")),acquisitionDate:a.parseDA(i(o["00080022"])),acquisitionTime:a.parseTM(i(o["00080032"],0,""))};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:i(o["00080018"]),instanceNumber:l(o["00200013"]),lossyImageCompression:i(o["00282110"]),lossyImageCompressionRatio:l(o["00282112"]),lossyImageCompressionMethod:i(o["00282114"])};if(t===n.PATIENT)return{patientID:i(o["00100020"]),patientName:i(o["00100010"])};if(t===n.PATIENT_STUDY)return{patientAge:l(o["00101010"]),patientSize:l(o["00101020"]),patientSex:i(o["00100040"]),patientWeight:l(o["00101030"])};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=i(o["00080060"]),t=k(o,2);return{modality:e,imageType:i(o["00080008"]),imageSubType:t,imageOrientationPatient:T(o),imagePositionPatient:D(o),sliceThickness:l(o["00180050"]),pixelSpacing:c(o["00280030"],2),numberOfFrames:l(o["00280008"]),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=T(o),t=D(o),r=c(o["00280030"],2);let n=null,a=null;r&&(a=r[0],n=r[1]);let s=null,u=null;return e&&(s=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],u=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:i(o["00200052"]),rows:l(o["00280010"]),columns:l(o["00280011"]),imageOrientationPatient:e,rowCosines:s,columnCosines:u,imagePositionPatient:t,sliceThickness:l(o["00180050"]),sliceLocation:l(o["00201041"]),pixelSpacing:r,rowPixelSpacing:a,columnPixelSpacing:n}}if(t===n.ULTRASOUND_ENHANCED_REGION)return A(o);if(t===n.CALIBRATION){if("US"===i(o["00080060"])){return{sequenceOfUltrasoundRegions:A(o)}}}if(t===n.IMAGE_URL)return function(e,t){const{transferSyntaxUID:r}=_(e,t),n=bt.cornerstone.utilities.isVideoTransferSyntax(r),a=e.substring(7),o=a.replace("/frames/","/thumbnail/");let i=a.replace("/frames/","/rendered/");n&&(i=i.replace("/rendered/1","/rendered"));return{isVideo:n,rendered:i,thumbnail:o}}(r,o);if(t===n.CINE)return function(e,t){const r=i(t["00180040"]);return{cineRate:r,numberOfFrames:l(t["00280008"])}}(0,o);if(t===n.IMAGE_PIXEL)return{samplesPerPixel:l(o["00280002"]),photometricInterpretation:i(o["00280004"]),rows:l(o["00280010"]),columns:l(o["00280011"]),bitsAllocated:l(o["00280100"]),bitsStored:l(o["00280101"]),highBit:i(o["00280102"]),pixelRepresentation:l(o["00280103"]),planarConfiguration:l(o["00280006"]),pixelAspectRatio:i(o["00280034"]),smallestPixelValue:l(o["00280106"]),largestPixelValue:l(o["00280107"]),redPaletteColorLookupTableDescriptor:c(o["00281101"]),greenPaletteColorLookupTableDescriptor:c(o["00281102"]),bluePaletteColorLookupTableDescriptor:c(o["00281103"]),redPaletteColorLookupTableData:c(o["00281201"]),greenPaletteColorLookupTableData:c(o["00281202"]),bluePaletteColorLookupTableData:c(o["00281203"])};if(t===n.VOI_LUT)return{windowCenter:c(o["00281050"],1),windowWidth:c(o["00281051"],1)};if(t===n.MODALITY_LUT)return{rescaleIntercept:l(o["00281052"]),rescaleSlope:l(o["00281053"]),rescaleType:i(o["00281054"])};if(t===n.SOP_COMMON)return{sopClassUID:i(o["00080016"]),sopInstanceUID:i(o["00080018"])};if(t===n.PET_ISOTOPE){const e=i(o["00540016"]);if(void 0===e)return;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(i(e["00181072"],0,"")),radiopharmaceuticalStartDateTime:i(e["00181078"],0,""),radionuclideTotalDose:l(e["00181074"]),radionuclideHalfLife:l(e["00181075"])}}}return t===n.OVERLAY_PLANE?function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=i(e[`${n}3000`]);if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.Value[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:l(e[`${n}0010`]),columns:l(e[`${n}0011`]),type:i(e[`${n}0040`]),x:l(e[`${n}0050`],1)-1,y:l(e[`${n}0050`],0)-1,pixelData:o,description:i(e[`${n}0022`]),label:i(e[`${n}1500`]),roiArea:i(e[`${n}1301`]),roiMean:i(e[`${n}1302`]),roiStandardDeviation:i(e[`${n}1303`])})}return{overlays:t}}(o):"transferSyntax"===t?_(r,o):t===n.PET_SERIES?{correctedImage:i(o["00280051"]),units:i(o["00541001"]),decayCorrection:i(o["00541102"])}:t===n.PET_IMAGE?{frameReferenceTime:l(o["00541300"]),actualFrameDuration:l(o["00181242"])}:"instance"===t?S(r,e,P):void 0}};function C(e,t,r){if(r+e.length>t.length)return!1;let n=r;for(let r=0;r<e.length;r++)if(e[r]!==t[n++])return!1;return!0}const O=function(e,t,r){r=r||0;const n=function(e){const t=new Uint8Array(e.length);for(let r=0,n=e.length;r<n;r++)t[r]=e.charCodeAt(r);return t}(t);for(let t=r;t<e.length;t++)if(n[0]===e[t]&&C(n,e,t))return t;return-1};let R={open(e,t){e.open("get",t,!0)},beforeSend(){},beforeProcessing:e=>Promise.resolve(e.response),imageCreated(){},strict:!1,decodeConfig:{convertFloatPixelDataToInt:!0,use16BitDataType:!1}};function M(e){R=Object.assign(R,e)}function F(){return R}const U=function(e,t,r={},n={}){const{cornerstone:a}=bt,o=F(),i=e=>{if("function"==typeof o.errorInterceptor){const t=new Error("request failed");t.request=e,t.response=e.response,t.status=e.status,o.errorInterceptor(t)}},s=new XMLHttpRequest,l=new Promise(((l,c)=>{o.open(s,e,r,n);const u=o.beforeSend(s,t,r,n);s.responseType="arraybuffer";const f=Object.assign({},r,u);Object.keys(f).forEach((function(t){null!==f[t]&&("Accept"===t&&-1!==e.indexOf("accept=")||s.setRequestHeader(t,f[t]))})),n.deferred={resolve:l,reject:c},n.url=e,n.imageId=t,s.onloadstart=function(r){o.onloadstart&&o.onloadstart(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadstart",i)},s.onloadend=function(r){o.onloadend&&o.onloadend(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadend",i)},s.onreadystatechange=function(e){o.onreadystatechange?o.onreadystatechange(e,n):4===s.readyState&&(200===s.status||206===s.status?o.beforeProcessing(s).then(l).catch((()=>{i(s),c(s)})):(i(s),c(s)))},s.onprogress=function(e){const t=e.loaded;let r,a;e.lengthComputable&&(r=e.total,a=Math.round(t/r*100)),o.onprogress&&o.onprogress(e,n)},s.onerror=function(){i(s),c(s)},s.onabort=function(){i(s),c(s)},s.send()}));return l.xhr=s,l},B={xhrRequest:U,setOptions:M,getOptions:F};var N=a(464);const{ImageQualityStatus:j}=N.Enums;function G(e,t,r){r||={};const n=new Uint8Array(t),a=!!r?.isPartial;if(-1===e.indexOf("multipart"))return{contentType:e,imageQualityStatus:a?j.SUBRESOLUTION:j.FULL_RESOLUTION,pixelData:n};let{tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l}=r;if(o||=O(n,"\r\n\r\n"),-1===o)throw new Error("invalid response - no multipart mime header");if(!s){const e=function(e,t,r){t=t||0,r=r||e.length-t;let n="";for(let a=t;a<t+r;a++)n+=String.fromCharCode(e[a]);return n}(n,0,o);if(i=e.split("\r\n"),s=function(e){for(let t=0;t<e.length;t++)if("--"===e[t].substr(0,2))return e[t]}(i),!s)throw new Error("invalid response - no boundary marker")}const c=o+4,u=O(n,s,c);if(-1===u&&!a)throw new Error("invalid response - terminating boundary not found");return l||=function(e){for(let t=0;t<e.length;t++)if("Content-Type:"===e[t].substr(0,13))return e[t].substr(13).trim()}(i),r.tokenIndex=o,r.boundary=s,r.responseHeaders=i,r.multipartContentType=l,r.isPartial=-1===u,{contentType:l,extractDone:!a||-1!==u,tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l,pixelData:t.slice(c,u-2)}}const{ImageQualityStatus:V}=N.Enums;function $(e,t=!0){return t?e.imageQualityStatus??V.FULL_RESOLUTION:V.SUBRESOLUTION}const{ProgressiveIterator:W}=N.utilities;function q(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i={}}=n,s=o.minChunkSize||131072,l=new W("streamRequest");return l.generate((async(n,l)=>{const c=Object.assign({},r);Object.keys(c).forEach((function(t){null===c[t]&&(c[t]=void 0),"Accept"===t&&-1!==e.indexOf("accept=")&&(c[t]=void 0)}));try{const a=await fetch(e,{headers:r,signal:void 0});if(200!==a.status)throw new Error(`Couldn't retrieve ${e} got status ${a.status}`);const l=a.body.getReader(),c=a.headers,u=c.get("content-type"),f=Number(c.get("Content-Length"));let d=!1,m=i.encodedData,g=i.lastSize||0;for(i.isPartial=!0;!d;){const{done:r,value:a}=await l.read();if(m=Z(m,a),!m){if(d)throw new Error(`Done but no image frame available ${t}`);continue}if(d=r||m.byteLength===f,!d&&m.length<g+s)continue;g=m.length,i.isPartial=!r;const c=G(u,m,i),p=$(o,d),h={url:e,imageId:t,...c,percentComplete:r?100:100*c.pixelData?.length/f,imageQualityStatus:p,done:d};n.add(h,d)}}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}})(),console.error(e),l(e)}})),l.getNextPromise()}function Z(e,t){if(!e)return t;if(!t)return e;const r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}function Y(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i}=n,s=i.chunkSize||function(e,t,r){const n=t[r];if("function"!=typeof n)return n;const a=b.get(e);return n(a,e)}(t,o,"chunkSize")||65536,l=new Promise((async(t,n)=>{const l=Object.assign({},r);Object.keys(l).forEach((function(e){null!==l[e]&&void 0!==l[e]||delete l[e]}));try{i.encodedData||(i.chunkSize=s,i.rangesFetched=0);const r=function(e,t){const{totalBytes:r,encodedData:n,chunkSize:a=65536}=e,{rangeIndex:o=0}=t;if(!(-1!==o||r&&n))return[0,""];if(-1===o||n?.byteLength>r-a)return[n?.byteLength||0,""];return[n?.byteLength||0,a*(o+1)-1]}(i,o),{encodedData:n,responseHeaders:a}=await async function(e,t,r,n){r&&(t=Object.assign(t,{Range:`bytes=${r[0]}-${r[1]}`}));let{encodedData:a}=n;if(r[1]&&a?.byteLength>r[1])return n;const o=await fetch(e,{headers:t,signal:void 0}),i=await o.arrayBuffer(),s=new Uint8Array(i),{status:l}=o;let c;a?(c=new Uint8Array(a.length+s.length),c.set(a,0),c.set(s,a.length),n.rangesFetched=1):(c=new Uint8Array(s.length),c.set(s,0),n.rangesFetched++);n.encodedData=a=c,n.responseHeaders=o.headers;const u=o.headers.get("Content-Range");u?n.totalBytes=Number(u.split("/")[1]):206===l&&r?""===r[1]||a?.length<r[1]?n.totalBytes=a.byteLength:n.totalBytes=Number.MAX_SAFE_INTEGER:n.totalBytes=a?.byteLength;return n}(e,l,r,i),c=a.get("content-type"),{totalBytes:u}=i,f=u===n.byteLength,d=G(c,n,{isPartial:!0}),m=$(o,f||d.extractDone);t({...d,imageQualityStatus:m,percentComplete:d.extractDone?100:100*s/u})}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}else console.warn("rangeRequest:Caught",e)})(e),console.error(e),n(e)}}));return l}const z=function(e,t,r="application/octet-stream",n){const{streamingData:a,retrieveOptions:o={}}=n||{},i={Accept:r};let s=o.urlArguments?`${e}${-1===e.indexOf("?")?"?":"&"}${o.urlArguments}`:e;if(o.framesPath&&(s=s.replace("/frames/",o.framesPath)),a?.url!==s&&(n.streamingData={url:s}),void 0!==o.rangeIndex)return Y(s,t,i,n);if(o.streaming)return q(s,t,i,n);const l=U(s,t,i),{xhr:c}=l;return l.then((function(e){const t=G(c.getResponseHeader("Content-Type")||"application/octet-stream",new Uint8Array(e));return t.imageQualityStatus=$(o,!0),t}))};const H=function(e){let t,r=e[0],n=e[0];const a=e.length;for(let o=1;o<a;o++)t=e[o],r=Math.min(r,t),n=Math.max(n,t);return{min:r,max:n}};function Q(r,n,a){0===r.planarConfiguration?e(r.pixelData,n,a):t(r.pixelData,n,a)}function X(e,t,a){if("RGB"===e.photometricInterpretation)Q(e,t,a);else if("YBR_RCT"===e.photometricInterpretation)Q(e,t,a);else if("YBR_ICT"===e.photometricInterpretation)Q(e,t,a);else if("PALETTE COLOR"===e.photometricInterpretation)yt(e,t,a);else if("YBR_FULL_422"===e.photometricInterpretation)!function(e,t,r){if(void 0===e)throw new Error("decodeRGB: ybrBuffer must not be undefined");if(e.length%2!=0)throw new Error("decodeRGB: ybrBuffer length must be divisble by 2");const n=e.length/2;let a=0,o=0;if(r)for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=255,t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128),t[o++]=255}else for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128)}}(e.pixelData,t,a);else{if("YBR_FULL"!==e.photometricInterpretation)throw new Error(`No color space conversion for photometric interpretation ${e.photometricInterpretation}`);!function(e,t,a){0===e.planarConfiguration?r(e.pixelData,t,a):n(e.pixelData,t,a)}(e,t,a)}}function K(e){return function(e){let t;try{return decodeURIComponent(escape(e))}catch(r){if(t=r,t instanceof URIError)return e;throw t}}(String.fromCharCode.apply(null,Array.prototype.slice.apply(new Uint8Array(e))))}const J=function(e,t,r){const n=(new Date).getTime(),a=new Blob([t],{type:"image/jpeg"});return new Promise(((t,o)=>{const i=new FileReader;void 0===i.readAsBinaryString?i.readAsArrayBuffer(a):i.readAsBinaryString(a),i.onload=function(){const a=new Image;a.onload=function(){r.height=a.height,r.width=a.width,e.rows=a.height,e.columns=a.width;const o=r.getContext("2d");o.drawImage(this,0,0);const i=o.getImageData(0,0,a.width,a.height),s=(new Date).getTime();e.pixelData=new Uint8Array(i.data.buffer),e.imageData=i,e.decodeTimeInMS=s-n;const l=H(e.pixelData);e.smallestPixelValue=l.min,e.largestPixelValue=l.max,e.pixelDataLength=e.pixelData.length,t(e)},a.onerror=function(e){o(e)},void 0===i.readAsBinaryString?a.src=`data:image/jpeg;base64,${window.btoa(K(i.result))}`:a.src=`data:image/jpeg;base64,${window.btoa(i.result)}`},i.onerror=e=>{o(e)}}))};function ee(){return new Worker(a.p+"index.worker.f4bda803c15bc6359d5f.worker.js")}let te=0;const re=[],ne=[],ae=F(),oe={maxWebWorkers:navigator.hardwareConcurrency||1,startWebWorkersOnDemand:!0,webWorkerTaskPaths:[],taskConfiguration:{decodeTask:{initializeCodecsOnStartup:!1,strict:ae.strict}}};let ie;const se={maxWebWorkers:0,numWebWorkers:0,numTasksQueued:0,numTasksExecuting:0,numTasksCompleted:0,totalTaskTimeInMS:0,totalTimeDelayedInMS:0};function le(){if(re.length){for(let e=0;e<ne.length;e++)if("ready"===ne[e].status){ne[e].status="busy";const t=re.shift();t.start=(new Date).getTime();const r=(new Date).getTime();return se.totalTimeDelayedInMS+=r-t.added,ne[e].task=t,ne[e].worker.postMessage({taskType:t.taskType,workerIndex:e,data:t.data},t.transferList),void se.numTasksExecuting++}ne.length<ie.maxWebWorkers&&ue()}}function ce(e){if("initialize"===e.data.taskType)ne[e.data.workerIndex].status="ready",le();else{const t=ne[e.data.workerIndex].task.start,r="success"===e.data.status?"resolve":"reject";try{ne[e.data.workerIndex].task.deferred[r](e.data.result)}catch(e){console.warn("Caught error delivering response",e)}ne[e.data.workerIndex].task=void 0,se.numTasksExecuting--,ne[e.data.workerIndex].status="ready",se.numTasksCompleted++;const n=(new Date).getTime();se.totalTaskTimeInMS+=n-t,le()}}function ue(){if(ne.length>=ie.maxWebWorkers)return;const e=new ee;ne.push({worker:e,status:"initializing"}),e.addEventListener("message",ce),e.postMessage({taskType:"initialize",workerIndex:ne.length-1,config:ie})}function fe(e){if(ie=e=e||oe,ie.maxWebWorkers=ie.maxWebWorkers||navigator.hardwareConcurrency||1,!ie.startWebWorkersOnDemand)for(let e=0;e<ie.maxWebWorkers;e++)ue()}const de={initialize:fe,loadWebWorkerTask:function(e,t){ie.webWorkerTaskPaths.push(e),t&&(ie.taskConfiguration=Object.assign(ie.taskConfiguration,t));for(let t=0;t<ne.length;t++)ne[t].worker.postMessage({taskType:"loadWebWorkerTask",workerIndex:ne.length-1,sourcePath:e,config:ie})},addTask:function(e,t,r=0,n){ie||fe();let a={resolve:void 0,reject:void 0};const o=new Promise(((e,t)=>{a={resolve:e,reject:t}}));let i;for(i=0;i<re.length&&!(re[i].priority<r);i++);const s=te++;return re.splice(i,0,{taskId:s,taskType:e,status:"ready",added:(new Date).getTime(),data:t,deferred:a,priority:r,transferList:n}),le(),{taskId:s,promise:o}},getStatistics:function(){return se.maxWebWorkers=ie.maxWebWorkers,se.numWebWorkers=ne.length,se.numTasksQueued=re.length,se},setTaskPriority:function(e,t=0){for(let r=0;r<re.length;r++)if(re[r].taskId===e){const e=re.splice(r,1)[0];for(e.priority=t,r=0;r<re.length&&!(re[r].priority<t);r++);return re.splice(r,0,e),!0}return!1},cancelTask:function(e,t){for(let r=0;r<re.length;r++)if(re[r].taskId===e){return re.splice(r,1).deferred.reject(t),!0}return!1},webWorkers:ne,terminate:function(){for(let e=0;e<ne.length;e++)ne[e].worker.terminate();ne.length=0,ie=void 0}};var me=a(578);function ge(e,t,r,n,a){const o={...n};delete o.loader,delete o.streamingData;const i=o.priority||void 0,s=o.transferPixelData?[r.buffer]:void 0;return de.addTask("decodeTask",{imageFrame:e,transferSyntax:t,pixelData:r,options:o,decodeConfig:a},i,s).promise}window.pako={inflateRaw:me.Hq};const pe=function(e,t,r,n,a={},o){switch(t){case"1.2.840.10008.1.2":case"1.2.840.10008.1.2.1":case"1.2.840.10008.1.2.2":case"1.2.840.10008.1.2.1.99":case"1.2.840.10008.1.2.5":case"1.2.840.10008.1.2.4.51":case"1.2.840.10008.1.2.4.57":case"1.2.840.10008.1.2.4.70":case"1.2.840.10008.1.2.4.80":case"1.2.840.10008.1.2.4.81":case"1.2.840.10008.1.2.4.90":case"1.2.840.10008.1.2.4.91":case"3.2.840.10008.1.2.4.96":case"1.2.840.10008.1.2.4.201":case"1.2.840.10008.1.2.4.202":case"1.2.840.10008.1.2.4.203":return ge(e,t,r,a,o);case"1.2.840.10008.1.2.4.50":return 8!==e.bitsAllocated||3!==e.samplesPerPixel&&4!==e.samplesPerPixel?ge(e,t,r,a,o):J(e,r,n)}return Promise.reject(new Error(`No decoder for transfer syntax ${t}`))};const he=function(e){const{cornerstone:t}=bt,r=t.metaData.get("imagePixelModule",e);return{samplesPerPixel:r.samplesPerPixel,photometricInterpretation:r.photometricInterpretation,planarConfiguration:r.planarConfiguration,rows:r.rows,columns:r.columns,bitsAllocated:r.bitsAllocated,bitsStored:r.bitsStored,pixelRepresentation:r.pixelRepresentation,smallestPixelValue:r.smallestPixelValue,largestPixelValue:r.largestPixelValue,redPaletteColorLookupTableDescriptor:r.redPaletteColorLookupTableDescriptor,greenPaletteColorLookupTableDescriptor:r.greenPaletteColorLookupTableDescriptor,bluePaletteColorLookupTableDescriptor:r.bluePaletteColorLookupTableDescriptor,redPaletteColorLookupTableData:r.redPaletteColorLookupTableData,greenPaletteColorLookupTableData:r.greenPaletteColorLookupTableData,bluePaletteColorLookupTableData:r.bluePaletteColorLookupTableData,pixelData:void 0,imageId:e}};function xe(e){return"RGB"===e||"PALETTE COLOR"===e||"YBR_FULL"===e||"YBR_FULL_422"===e||"YBR_PARTIAL_422"===e||"YBR_PARTIAL_420"===e||"YBR_RCT"===e||"YBR_ICT"===e}const be={"1.2.840.10008.1.2.1":"application/octet-stream","1.2.840.10008.1.2":"application/octet-stream","1.2.840.10008.1.2.2":"application/octet-stream","1.2.840.10008.1.2.5":"image/dicom-rle"};let we="";function ye(e){const t=function(e,t){let r;return Number.isInteger(e)&&Number.isInteger(t)&&(e>=0?t<=255?r=Uint8Array:t<=65535&&(r=Uint16Array):e>=-128&&t<=127?r=Int8Array:e>=-32768&&t<=32767&&(r=Int16Array)),r||Float32Array}(e.smallestPixelValue,e.largestPixelValue);if(!t)throw new Error("Could not apply a typed array to the pixel data");{const r=new t(e.pixelData);e.pixelData=r}}const ke=function(e,t,r,n={}){const a=n.useRGBA;if(n.preScale={enabled:!(!n.preScale||void 0===n.preScale.enabled)&&n.preScale.enabled},!t?.length)return Promise.reject(new Error("The pixel data is missing"));const{cornerstone:o}=bt,{MetadataModules:i}=o.Enums,s=document.createElement("canvas"),l=he(e);if(l.decodeLevel=n.decodeLevel,n.allowFloatRendering=o.canRenderFloatTextures(),n.preScale.enabled){const t=function(e,t){const r=e.get("modalityLutModule",t)||{},n=e.get("generalSeriesModule",t)||{},{modality:a}=n,o={rescaleSlope:r.rescaleSlope,rescaleIntercept:r.rescaleIntercept,modality:a},i=e.get("scalingModule",t)||{};return{...o,..."PT"===a&&{suvbw:i.suvbw}}}(o.metaData,e);t&&(n.preScale={...n.preScale,scalingParameters:t})}n.isSharedArrayBuffer=n.targetBuffer?.arrayBuffer&&n.targetBuffer.arrayBuffer instanceof SharedArrayBuffer;const{decodeConfig:c}=F();c.use16BitDataType=!!(n&&"Uint16Array"===n.targetBuffer?.type||"Int16Array"===n.targetBuffer?.type)||(n.useNativeDataType||c.use16BitDataType);const u=pe(l,r,t,s,n,c),{use16BitDataType:f}=c,d=xe(l.photometricInterpretation);return new Promise(((t,l)=>{u.then((function(l){if(n.skipCreateImage)return t(l);let c=!1;if(n.targetBuffer&&n.targetBuffer.type&&!d){const{arrayBuffer:e,type:t,offset:r=0,length:a}=n.targetBuffer,o=l.pixelDataLength,i=r,s=null!=a?a:o-i,u={Uint8Array,Uint16Array:f?Uint16Array:void 0,Int16Array:f?Int16Array:void 0,Float32Array};if(s!==l.pixelDataLength)throw new Error(`target array for image does not have the same length (${s}) as the decoded image length (${l.pixelDataLength}).`);const d=u[t],m=e?new d(e,i,s):new d(l.pixelData);if(s!==l.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");l.pixelData=m,c=!0}c||ye(l);const u=o.metaData.get(i.IMAGE_PLANE,e)||{},m=o.metaData.get(i.VOI_LUT,e)||{},g=o.metaData.get(i.MODALITY_LUT,e)||{},p=o.metaData.get(i.SOP_COMMON,e)||{},h=o.metaData.get(i.CALIBRATION,e)||{};if(d){const{rows:e,columns:t}=l;if(be[r]){s.height=l.rows,s.width=l.columns;let e=s.getContext("2d").createImageData(l.columns,l.rows);a||(e={...e,data:new Uint8ClampedArray(l.samplesPerPixel*l.columns*l.rows)}),X(l,e.data,a),l.imageData=e,l.pixelData=e.data,l.pixelDataLength=e.data.length}else if(!a&&l.pixelDataLength===4*e*t){const e=new Uint8Array(l.pixelData.length/4*3);l.pixelData=function(e,t){const r=e.length/4;let n=0,a=0;for(let o=0;o<r;o++)t[a++]=e[n++],t[a++]=e[n++],t[a++]=e[n++],n++;return t}(l.pixelData,e),l.pixelDataLength=l.pixelData.length}const n=H(l.pixelData);l.smallestPixelValue=n.min,l.largestPixelValue=n.max}const x={imageId:e,color:d,calibration:h,columnPixelSpacing:u.columnPixelSpacing,columns:l.columns,height:l.rows,preScale:l.preScale,intercept:g.rescaleIntercept?g.rescaleIntercept:0,slope:g.rescaleSlope?g.rescaleSlope:1,invert:"MONOCHROME1"===l.photometricInterpretation,minPixelValue:l.smallestPixelValue,maxPixelValue:l.largestPixelValue,rowPixelSpacing:u.rowPixelSpacing,rows:l.rows,sizeInBytes:l.pixelData.byteLength,width:l.columns,windowCenter:m.windowCenter?m.windowCenter[0]:void 0,windowWidth:m.windowWidth?m.windowWidth[0]:void 0,voiLUTFunction:m.voiLUTFunction?m.voiLUTFunction:void 0,decodeTimeInMS:l.decodeTimeInMS,floatPixelData:void 0,imageFrame:l,rgba:d&&a,getPixelData:()=>l.pixelData,getCanvas:void 0,numComps:void 0};var b;if(x.color&&(x.getCanvas=function(){if(we===e)return s;const t=x.columns,r=x.rows;s.height=r,s.width=t;const n=s.getContext("2d"),a=n.createImageData(t,r),o=l.pixelData;if(o.length===t*r*4)for(let e=0;e<o.length;e++)a.data[e]=o[e];else if(o.length===t*r*3){let e=0;for(let t=0;t<o.length;t+=3)a.data[e++]=o[t],a.data[e++]=o[t+1],a.data[e++]=o[t+2],a.data[e++]=255}return l.pixelData=a.data,l.pixelDataLength=a.data.length,l.imageData=a,n.putImageData(l.imageData,0,0),we=e,s}),g.modalityLUTSequence&&g.modalityLUTSequence.length>0&&("1.2.840.10008.5.1.4.1.1.12.1"!==(b=p.sopClassUID)&&"1.2.840.10008.5.1.4.1.1.12.2.1"!==b)&&(x.modalityLUT=g.modalityLUTSequence[0]),m.voiLUTSequence&&m.voiLUTSequence.length>0&&(x.voiLUT=m.voiLUTSequence[0]),x.color&&(x.windowWidth=256,x.windowCenter=128),void 0===x.windowCenter||void 0===x.windowWidth){const e=x.imageFrame.minAfterScale,t=x.imageFrame.maxAfterScale;x.windowWidth=t-e,x.windowCenter=(t+e)/2}t(x)}),l)}))},{ProgressiveIterator:Te}=N.utilities,{ImageQualityStatus:De}=N.Enums,Se=new Set(["3.2.840.10008.1.2.4.96","1.2.840.10008.1.2.4.202","1.2.840.10008.1.2.4.203"]);function Ie(e){const t="1.2.840.10008.1.2";if(!e)return t;const r=e.split(";"),n={};r.forEach((e=>{const t=e.split("=");if(2!==t.length)return;const r=t[1].trim().replace(/"/g,"");n[t[0].trim()]=r}));const a={"image/jpeg":"1.2.840.10008.1.2.4.50","image/x-dicom-rle":"1.2.840.10008.1.2.5","image/x-jls":"1.2.840.10008.1.2.4.80","image/jls":"1.2.840.10008.1.2.4.80","image/jll":"1.2.840.10008.1.2.4.70","image/jp2":"1.2.840.10008.1.2.4.90","image/jpx":"1.2.840.10008.1.2.4.92","image/jphc":"3.2.840.10008.1.2.4.96","image/jxl":"1.2.840.10008.1.2.4.140"};return n["transfer-syntax"]?n["transfer-syntax"]:e&&!Object.keys(n).length&&a[e]?a[e]:n.type&&a[n.type]?a[n.type]:a[e]?a[e]:t}function Pe(e,t=4){const r=e/100-.02;return r>1/4?Math.min(t,0):r>1/16?Math.min(t,1):r>1/64?Math.min(t,2):Math.min(t,3)}const ve=function(e,t={}){const r=bt.cornerstone.imageRetrievalPoolManager,n=(new Date).getTime(),a=new Te("decompress"),o=t.requestType||"interaction",i=t.additionalDetails||{imageId:e},s=void 0===t.priority?5:t.priority,l=t.addToBeginning||!1,c=e.substring(7);return r.addRequest(async function(e,r,o){a.generate((async a=>{const i=Te.as(z(e,r,o,t));let s=10;for await(const e of i){const{pixelData:o,imageQualityStatus:i=De.FULL_RESOLUTION,percentComplete:l,done:c=!0,extractDone:u=!0}=e,f=Ie(e.contentType);if(!u&&!Se.has(f))continue;const d=e.decodeLevel??(i===De.FULL_RESOLUTION?0:Pe(l,t.retrieveOptions?.decodeLevel));if(c||!(s<=d))try{const e={...t,decodeLevel:d},l=await ke(r,o,f,e),u=(new Date).getTime();l.loadTimeInMS=u-n,l.transferSyntaxUID=f,l.imageQualityStatus=i,a.add(l,c),s=d}catch(e){if(u)throw console.warn("Couldn't decode",e),e}}}))}.bind(this,c,e,"multipart/related; type=application/octet-stream; transfer-syntax=*"),o,i,s,l),{promise:a.getDonePromise(),cancelFn:void 0}};const Ee={metaData:{getNumberString:s,getNumberValue:l,getNumberValues:c,getValue:i,metaDataProvider:L},findIndexOfString:O,getPixelData:z,loadImage:ve,metaDataManager:b,register:function(e){e.registerImageLoader("wadors",ve),e.metaData.addProvider(L)}};function Ae(e,t){if(e.elements[t]&&6===e.elements[t].length)return[e.uint16(t,0),e.uint16(t,1),e.uint16(t,2)]}function _e(e,t,r){const n=[],a=e.elements[t];for(let o=0;o<r[0];o++)16===r[2]?n[o]=e.uint16(t,o):n[o]=e.byteArray[o+a.dataOffset];return n}const Le=function(e){const t={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return function(e,t){0===e.uint16("x00280103")?(t.smallestPixelValue=e.uint16("x00280106"),t.largestPixelValue=e.uint16("x00280107")):(t.smallestPixelValue=e.int16("x00280106"),t.largestPixelValue=e.int16("x00280107"))}(e,t),"PALETTE COLOR"===t.photometricInterpretation&&e.elements.x00281101&&function(e,t){t.redPaletteColorLookupTableDescriptor=Ae(e,"x00281101"),t.greenPaletteColorLookupTableDescriptor=Ae(e,"x00281102"),t.bluePaletteColorLookupTableDescriptor=Ae(e,"x00281103"),0===t.redPaletteColorLookupTableDescriptor[0]&&(t.redPaletteColorLookupTableDescriptor[0]=65536,t.greenPaletteColorLookupTableDescriptor[0]=65536,t.bluePaletteColorLookupTableDescriptor[0]=65536);const r=t.redPaletteColorLookupTableDescriptor[0],n=e.elements.x00281201.length===r?8:16;t.redPaletteColorLookupTableDescriptor[2]!==n&&(t.redPaletteColorLookupTableDescriptor[2]=n,t.greenPaletteColorLookupTableDescriptor[2]=n,t.bluePaletteColorLookupTableDescriptor[2]=n),t.redPaletteColorLookupTableData=_e(e,"x00281201",t.redPaletteColorLookupTableDescriptor),t.greenPaletteColorLookupTableData=_e(e,"x00281202",t.greenPaletteColorLookupTableDescriptor),t.bluePaletteColorLookupTableData=_e(e,"x00281203",t.bluePaletteColorLookupTableDescriptor)}(e,t),t};function Ce(e,t){let r=t.uint16("x00283002",0);0===r&&(r=65535);let n=0;n=0===e?t.uint16("x00283002",1):t.int16("x00283002",1);const a={id:"1",firstValueMapped:n,numBitsPerEntry:t.uint16("x00283002",2),lut:[]};for(let n=0;n<r;n++)a.lut[n]=0===e?t.uint16("x00283006",n):t.int16("x00283006",n);return a}const Oe=function(e,t){if(!t||!t.items||!t.items.length)return;const r=[];for(let n=0;n<t.items.length;n++){const a=Ce(e,t.items[n].dataSet);a&&r.push(a)}return r};const Re=function(e){const t=e.string("x00080016");if("1.2.840.10008.5.1.4.1.1.2"===t||"1.2.840.10008.5.1.4.1.1.2.1"===t)return 1;const r=e.floatString("x00281052"),n=e.floatString("x00281053");if(void 0!==r&&void 0!==n){const t=function(e){const t=e.uint16("x00280103"),r=e.uint16("x00280101");return 0===t?0:-1<<r-1}(e);return t*n+r<0?1:0}return e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")};const Me=function(e,t,r){const n=[],a=e.string(t);if(!a)return;const o=a.split("\\");if(!(r&&o.length<r)){for(let e=0;e<o.length;e++)n.push(parseFloat(o[e]));return n}};const Fe=function(e){const t=e.indexOf(":");let r=e.substring(t+1);const n=r.indexOf("frame=");let a;if(-1!==n){const e=r.substring(n+6);a=parseInt(e,10),r=r.substring(0,n-1)}return{scheme:e.substring(0,t),url:r,frame:a,pixelDataFrame:void 0!==a?a-1:void 0}};function Ue(e){const{dicomParser:t}=bt;let r,n=t.parseDicom(e,{untilTag:"x7fe00010"});n.elements.x7fe00010||console.warn("Pixel data not found!");try{r=t.parseDicom(e)}catch(e){console.error(e),console.log("pixel data dataset:",e.dataSet),r=e.dataSet}return n.elements.x7fe00010=r.elements.x7fe00010,n=function(e){const t=e.elements.x7fe00010.fragments,r=e.byteArray.length;for(const e of t){const{position:t,length:n}=e;n>r-t&&(console.log(`Truncated fragment, changing fragment length from ${e.length} to ${r-t}`),e.length=r-t)}return e}(n),n}async function Be(e,t,r){const n=Ue(e),{uri:a,imageId:o,fileTotalLength:i}=r;return n.fetchMore=async function(s){const l=Object.assign({uri:a,imageId:o,fetchedLength:e.length,lengthToFetch:i-e.length},s),{fetchedLength:c,lengthToFetch:u}=l,{arrayBuffer:f}=await t(a,o,{byteRange:`${c}-${c+u}`}),d=new Uint8Array(f),m=new Uint8Array(n.byteArray.length+d.length);return m.set(n.byteArray),m.set(d,n.byteArray.length),Be(m,t,r)},n}function Ne(e,t,r){const n={};(t?Object.values(t.items[0].dataSet.elements):[]).map((e=>n[e.tag]=e));const a={};return(e?Object.values(e.items[r-1].dataSet.elements):[]).map((e=>a[e.tag]=e)),{shared:n,perFrame:a}}function je(e){if(!e)return;const{elements:t,...r}=e,{x52009230:n,x52009229:a,...o}=t;return{NumberOfFrames:e.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o,otherAttributtes:r}}function Ge(e){if(qe[e])return qe[e]}function Ve(e){if(!e)return!1;const t=e.intString("x00280008");return t&&t>1}const $e={_get:Ge,generateMultiframeWADOURIs:function(e){const t=[],r=Ge(e);if(Ve(r)){const n=r.intString("x00280008");for(let r=1;r<=n;r++)t.push(`${e}&frame=${r}`)}else t.push(e);return t},retrieveMultiframeDataset:function(e){const t=function(e){return e.indexOf("&frame=")}(e),r=-1===t?e:e.slice(0,t),n=parseInt(e.slice(t+7),10)||1;let a;return a=qe[r]?qe[r].dataSet:void 0,{dataSet:a,frame:n}},isMultiframeDataset:function(e){return Ve(Ge(e))}};let We=0,qe={},Ze={};function Ye(){return{cacheSizeInBytes:We,numberOfDataSetsCached:Object.keys(qe).length}}const ze={isLoaded:function(e){return void 0!==qe[e]},load:function(e,t=U,r){const{cornerstone:n,dicomParser:a}=bt;if(qe[e])return new Promise((t=>{qe[e].cacheCount++,t(qe[e].dataSet)}));if(Ze[e])return Ze[e].cacheCount++,Ze[e];const o=t(e,r),i=new Promise(((s,l)=>{o.then((async function(o){const c={isPartialContent:!1,fileTotalLength:null};if(!(o instanceof ArrayBuffer)){if(!o.arrayBuffer)return l(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));c.isPartialContent=o.flags.isPartialContent,c.fileTotalLength=o.flags.fileTotalLength,o=o.arrayBuffer}const u=new Uint8Array(o);let f;try{f=c.isPartialContent?await Be(u,t,{uri:e,imageId:r,fileTotalLength:c.fileTotalLength}):a.parseDicom(u)}catch(e){return l(e)}qe[e]={dataSet:f,cacheCount:i.cacheCount},We+=f.byteArray.length,s(f),n.triggerEvent(n.events,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Ye()})}),l).then((()=>{delete Ze[e]}),(()=>{delete Ze[e]}))}));return i.cacheCount=1,Ze[e]=i,i},unload:function(e){const{cornerstone:t}=bt;qe[e]&&(qe[e].cacheCount--,0===qe[e].cacheCount&&(We-=qe[e].dataSet.byteArray.length,delete qe[e],t.triggerEvent(t.events,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Ye()})))},getInfo:Ye,purge:function(){qe={},Ze={},We=0},get:function(e){let t;if(e.includes("&frame=")){const{frame:r,dataSet:n}=$e.retrieveMultiframeDataset(e);t=function(e,t){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o}=je(t);if(n||r>1){const{shared:r,perFrame:i}=Ne(n,a,e),s={elements:{...o,...r,...i}},l=Object.create(t);return Object.assign(l,s)}return t}(r,n)}else qe[e]&&(t=qe[e].dataSet);return t},update:function(e,t){const r=qe[e];r?(We-=r.dataSet.byteArray.length,r.dataSet=t,We+=t.byteArray.length,bt.cornerstone.triggerEvent(bt.cornerstone.events,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Ye()})):console.error(`No loaded dataSet for uri ${e}`)}};function He(e,t){const r=e.string("x00080008");if(r){const e=r.split("\\");if(e.length>t)return e[t]}}function Qe(e){let t=Me(e,"x00200037",6);return!t&&e.elements.x00209116&&(t=Me(e.elements.x00209116.items[0].dataSet,"x00200037",6)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=He(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return t}(e)),t}function Xe(e){let t=Me(e,"x00200032",3);return!t&&e.elements.x00209113&&(t=Me(e.elements.x00209113.items[0].dataSet,"x00200032",3)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=He(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return t}(e)),t}function Ke(e){let t=Me(e,"x00280030",2);return!t&&e.elements.x00289110&&(t=Me(e.elements.x00289110.items[0].dataSet,"x00280030",2)),t}function Je(e){let t;return e.elements.x00180050?t=e.floatString("x00180050"):e.elements.x00289110&&e.elements.x00289110.items.length&&e.elements.x00289110.items[0].dataSet.elements.x00180050&&(t=e.elements.x00289110.items[0].dataSet.floatString("x00180050")),t}const et=function e(t,r){const{MetadataModules:n}=bt.cornerstone.Enums,{dicomParser:a}=bt;if(Array.isArray(r))return;const o=Fe(r);if(t===n.MULTIFRAME){const e=$e.retrieveMultiframeDataset(o.url);if(!e.dataSet)return;const t=function(e,t){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a}=je(e);if(n||r>1){const{shared:e,perFrame:o}=Ne(n,a,t);return{NumberOfFrames:r,PerFrameFunctionalInformation:o,SharedFunctionalInformation:e}}return{NumberOfFrames:r}}(e.dataSet,e.frame);return t}let i=o.url;o.frame&&(i=`${i}&frame=${o.frame}`);const s=ze.get(i);if(s){if(t===n.GENERAL_STUDY)return{studyDescription:s.string("x00081030"),studyDate:a.parseDA(s.string("x00080020")),studyTime:a.parseTM(s.string("x00080030")||""),accessionNumber:s.string("x00080050")};if(t===n.GENERAL_SERIES)return{modality:s.string("x00080060"),seriesInstanceUID:s.string("x0020000e"),seriesNumber:s.intString("x00200011"),studyInstanceUID:s.string("x0020000d"),seriesDate:a.parseDA(s.string("x00080021")),seriesTime:a.parseTM(s.string("x00080031")||""),acquisitionDate:a.parseDA(s.string("x00080022")),acquisitionTime:a.parseTM(s.string("x00080032")||"")};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:s.string("x00080018"),instanceNumber:s.intString("x00200013"),lossyImageCompression:s.string("x00282110"),lossyImageCompressionRatio:s.floatString("x00282112"),lossyImageCompressionMethod:s.string("x00282114")};if(t===n.PATIENT)return{patientID:s.string("x00100020"),patientName:s.string("x00100010")};if(t===n.PATIENT_STUDY)return{patientAge:s.intString("x00101010"),patientSize:s.floatString("x00101020"),patientSex:s.string("x00100040"),patientWeight:s.floatString("x00101030")};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=s.string("x00080060"),t=He(s,2);return{modality:e,imageType:s.string("x00080008"),imageSubType:t,imageOrientationPatient:Qe(s),imagePositionPatient:Xe(s),sliceThickness:Je(s),pixelSpacing:Ke(s),numberOfFrames:s.uint16("x00280008"),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=Qe(s),t=Xe(s),r=Ke(s),n=Je(s);let a=null,o=null;r&&(o=r[0],a=r[1]);let i=null,l=null;return e&&(i=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],l=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:s.string("x00200052"),rows:s.uint16("x00280010"),columns:s.uint16("x00280011"),imageOrientationPatient:e,rowCosines:i,columnCosines:l,imagePositionPatient:t,sliceThickness:n,sliceLocation:s.floatString("x00201041"),pixelSpacing:r,rowPixelSpacing:o,columnPixelSpacing:a}}if(t===n.CINE)return{frameTime:s.floatString("x00181063")};if(t===n.IMAGE_PIXEL)return Le(s);if(t===n.VOI_LUT){const e=Re(s);return{windowCenter:Me(s,"x00281050",1),windowWidth:Me(s,"x00281051",1),voiLUTSequence:Oe(e,s.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:s.floatString("x00281052"),rescaleSlope:s.floatString("x00281053"),rescaleType:s.string("x00281054"),modalityLUTSequence:Oe(s.uint16("x00280103"),s.elements.x00283000)};if(t===n.SOP_COMMON)return{sopClassUID:s.string("x00080016"),sopInstanceUID:s.string("x00080018")};if(t===n.PET_ISOTOPE){const e=s.elements.x00540016;if(void 0===e)return;const t=e.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(t.string("x00181072")||""),radionuclideTotalDose:t.floatString("x00181074"),radionuclideHalfLife:t.floatString("x00181075")}}}return t===n.OVERLAY_PLANE?function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=e.elements[`${n}3000`];if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.byteArray[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:e.uint16(`${n}0010`),columns:e.uint16(`${n}0011`),type:e.string(`${n}0040`),x:e.int16(`${n}0050`,1)-1,y:e.int16(`${n}0050`,0)-1,pixelData:o,description:e.string(`${n}0022`),label:e.string(`${n}1500`),roiArea:e.string(`${n}1301`),roiMean:e.string(`${n}1302`),roiStandardDeviation:e.string(`${n}1303`)})}return{overlays:t}}(s):"transferSyntax"===t?{transferSyntaxUID:s.string("x00020010")}:t===n.PET_SERIES?{correctedImage:s.string("x00280051"),units:s.string("x00541001"),decayCorrection:s.string("x00541102")}:t===n.PET_IMAGE?{frameReferenceTime:s.floatString(s.string("x00541300")||""),actualFrameDuration:s.intString(s.string("x00181242"))}:"instance"===t?S(r,e,P):void 0}};let tt=[];const rt={add:function(e){return"dicomfile:"+(tt.push(e)-1)},get:function(e){return tt[e]},remove:function(e){tt[e]=void 0},purge:function(){tt=[]}};var nt=a(713);function at(e,t){const{dicomParser:r}=bt;if(e.elements.x7fe00010&&e.elements.x7fe00010.basicOffsetTable.length)return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t);if(function(e){return e.intString("x00280008")!==e.elements.x7fe00010.fragments.length}(e)){const n=r.createJPEGBasicOffsetTable(e,e.elements.x7fe00010);return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t,n)}const n=e.elements.x7fe00010.fragments,a=new nt.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),o=(0,nt.readSequenceItem)(a);if("xfffee000"!==o.tag)throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";a.seek(o.length);const i=a.position;if(t+1>n.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const s=i+n[t].offset+8,l=n[t].length;return new Uint8Array(a.byteArray.buffer.slice(a.byteArray.byteOffset+s,a.byteArray.byteOffset+s+l))}function ot(e,t){return e&1<<t}const it=function(e,t,r){const n=new Uint8Array(r);for(let a=0;a<r;a++){const r=e[Math.floor(a/8)+t],o=a%8;n[a]=ot(r,o)?1:0}return n};const st=function(e,t){const r=e.elements.x7fe00010||e.elements.x7fe00008,n=e.uint16("x00280100"),a=e.uint16("x00280010"),o=e.uint16("x00280011");let i=e.uint16("x00280002");"YBR_FULL_422"===e.string("x00280004")&&(i=2,console.warn("Using SamplesPerPixel of 2 for YBR_FULL_422 photometric interpretation.\n See http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.3.html for more information."));const s=r.dataOffset,l=a*o*i;let c;if(8===n){if(c=s+t*l,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+l))}if(16===n){if(c=s+t*l*2,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+2*l))}if(1===n){if(c=s+t*l*.125,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return it(e.byteArray,c,l)}if(32===n){if(c=s+t*l*4,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+4*l))}throw new Error("unsupported pixel format")};const lt=function(e){const t=Fe(e),r=parseInt(t.url,10),n=rt.get(r);return new Promise(((e,t)=>{const r=new FileReader;r.onload=t=>{const r=t.target.result;e(r)},r.onerror=t,r.readAsArrayBuffer(n)}))};const ct=function(e,t=0){const r=e.elements.x7fe00010||e.elements.x7fe00008;return r?r.encapsulatedPixelData?at(e,t):st(e,t):null};function ut(e,t,r=0,n,a,o){const i=(new Date).getTime(),s={cancelFn:void 0,promise:void 0};return s.promise=new Promise(((l,c)=>{e.then((e=>{const u=ct(e,r),f=e.string("x00020010"),d=(new Date).getTime(),m=ke(t,u,f,a);!function(e,t){e.decache=function(){const e=Fe(t);ze.unload(e.url)}}(s,t),m.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=d-i,t.totalTimeInMS=r-i,void 0!==o&&void 0!==o.imageDoneCallback&&o.imageDoneCallback(t),l(t)}),(function(t){c({error:t,dataSet:e})}))}),(function(e){c({error:e})}))})),s}function ft(e){return"dicomweb"===e||"wadouri"===e?U:"dicomfile"===e?lt:void 0}function dt(e,t={}){const r=Fe(e);delete(t=Object.assign({},t)).loader;const n=ft(r.scheme);if(ze.isLoaded(r.url)){return function(e,t,r=0,n,a){const o=(new Date).getTime();return{promise:new Promise(((i,s)=>{const l=(new Date).getTime();let c;try{const n=ct(e,r),o=e.string("x00020010");c=ke(t,n,o,a)}catch(t){return void s({error:t,dataSet:e})}c.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=l-o,t.totalTimeInMS=r-o,i(t)}),s)})),cancelFn:void 0}}(ze.get(r.url,n,e),e,r.pixelDataFrame,r.url,t)}return ut(ze.load(r.url,n,e),e,r.frame,r.url,t)}const mt={metaData:{getImagePixelModule:Le,getLUTs:Oe,getModalityLUTOutputPixelRepresentation:Re,getNumberValues:Me,metaDataProvider:et},dataSetCacheManager:ze,fileManager:rt,getEncapsulatedImageFrame:at,getUncompressedImageFrame:st,loadFileRequest:lt,loadImageFromPromise:ut,getLoaderForScheme:ft,loadImage:dt,parseImageId:Fe,unpackBinaryFrame:it,register:function(e){e.registerImageLoader("dicomweb",dt),e.registerImageLoader("wadouri",dt),e.registerImageLoader("dicomfile",dt),e.metaData.addProvider(et)}};const gt=function(e){Ee.register(e),mt.register(e)};let pt,ht;const xt={set cornerstone(e){pt=e,gt(pt)},get cornerstone(){if(!pt){if(pt=window&&window.cornerstone,!pt)throw new Error("cornerstoneDICOMImageLoader requires a copy of Cornerstone to work properly. Please add cornerstoneDICOMImageLoader.external.cornerstone = cornerstone; to your application.");gt(pt)}return pt},set dicomParser(e){ht=e},get dicomParser(){if(!ht){if(!window||!window.dicomParser)throw new Error("cornerstoneDICOMImageLoader requires a copy of dicomParser to work properly. Please add cornerstoneDICOMImageLoader.external.dicomParser = dicomParser; to your application.");ht=window.dicomParser}return ht}},bt=xt;function wt(e,t){const r=e.length,n=new Uint8ClampedArray(r);for(let a=0;a<r;++a)n[a]=e[a]>>t;return n}function yt(e,t,r){const n=e.columns*e.rows,a=e.pixelData;let o=e.redPaletteColorLookupTableData;o||(o=bt.cornerstone.metaData.get("imagePixelModule",e.imageId)?.redPaletteColorLookupTableData);let i=e.greenPaletteColorLookupTableData;i||(i=bt.cornerstone.metaData.get("imagePixelModule",e.imageId)?.greenPaletteColorLookupTableData);let s=e.bluePaletteColorLookupTableData;if(s||(s=bt.cornerstone.metaData.get("imagePixelModule",e.imageId)?.bluePaletteColorLookupTableData),!o||!i||!s)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const l=e.redPaletteColorLookupTableData.length;let c=0,u=0;const f=e.redPaletteColorLookupTableDescriptor[1],d=8===e.redPaletteColorLookupTableDescriptor[2]?0:8,m=wt(o,d),g=wt(i,d),p=wt(s,d);if(r)for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=p[e],t[u++]=255}else for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=p[e]}}const kt=function(e){M(e)};const Tt=function(e,t){if(t=t||e.transferSyntax,8===e.bitsAllocated&&"1.2.840.10008.1.2.4.50"===t&&(3===e.samplesPerPixel||4===e.samplesPerPixel))return!0},Dt={convertRGBColorByPixel:e,convertRGBColorByPlane:t,convertYBRFullByPixel:r,convertYBRFullByPlane:n,convertPALETTECOLOR:yt,wadouri:mt,wadors:Ee,configure:kt,convertColorSpace:X,createImage:ke,decodeImageFrame:pe,decodeJPEGBaseline8BitColor:J,getImageFrame:he,getPixelData:z,getMinMax:H,isColorImage:xe,isJPEGBaseline8BitColor:Tt,webWorkerManager:de,internal:B,external:xt}})(),o})()));
|
|
102341
|
+
!function(e,t){ true?module.exports=t(__webpack_require__(92136),__webpack_require__(45561)):0}(this,((e,t)=>(()=>{"use strict";var r={578:(e,t,r)=>{const n=r(823),a=r(187),o=r(592),i=r(604),s=r(249),l=r(968),c=Object.prototype.toString,{Z_NO_FLUSH:u,Z_FINISH:f,Z_OK:d,Z_STREAM_END:m,Z_NEED_DICT:g,Z_STREAM_ERROR:h,Z_DATA_ERROR:p,Z_MEM_ERROR:x}=r(684);function b(e){this.options=a.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let r=n.inflateInit2(this.strm,t.windowBits);if(r!==d)throw new Error(i[r]);if(this.header=new l,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=o.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary),r!==d)))throw new Error(i[r])}function w(e,t){const r=new b(t);if(r.push(e),r.err)throw r.msg||i[r.err];return r.result}b.prototype.push=function(e,t){const r=this.strm,a=this.options.chunkSize,i=this.options.dictionary;let s,l,b;if(this.ended)return!1;for(l=t===~~t?t:!0===t?f:u,"[object ArrayBuffer]"===c.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(a),r.next_out=0,r.avail_out=a),s=n.inflate(r,l),s===g&&i&&(s=n.inflateSetDictionary(r,i),s===d?s=n.inflate(r,l):s===p&&(s=g));r.avail_in>0&&s===m&&r.state.wrap>0&&0!==e[r.next_in];)n.inflateReset(r),s=n.inflate(r,l);switch(s){case h:case p:case g:case x:return this.onEnd(s),this.ended=!0,!1}if(b=r.avail_out,r.next_out&&(0===r.avail_out||s===m))if("string"===this.options.to){let e=o.utf8border(r.output,r.next_out),t=r.next_out-e,n=o.buf2string(r.output,e);r.next_out=t,r.avail_out=a-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(n)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(s!==d||0!==b){if(s===m)return s=n.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},b.prototype.onData=function(e){this.chunks.push(e)},b.prototype.onEnd=function(e){e===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Hq=function(e,t){return(t=t||{}).raw=!0,w(e,t)},r(684)},187:e=>{const t=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);e.exports.assign=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const n=r.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const r in n)t(n,r)&&(e[r]=n[r])}}return e},e.exports.flattenChunks=e=>{let t=0;for(let r=0,n=e.length;r<n;r++)t+=e[r].length;const r=new Uint8Array(t);for(let t=0,n=0,a=e.length;t<a;t++){let a=e[t];r.set(a,n),n+=a.length}return r}},592:e=>{let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){t=!1}const r=new Uint8Array(256);for(let e=0;e<256;e++)r[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;r[254]=r[254]=1,e.exports.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,n,a,o,i=e.length,s=0;for(a=0;a<i;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),s+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(s),o=0,a=0;o<s;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),r<128?t[o++]=r:r<2048?(t[o++]=192|r>>>6,t[o++]=128|63&r):r<65536?(t[o++]=224|r>>>12,t[o++]=128|r>>>6&63,t[o++]=128|63&r):(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63,t[o++]=128|r>>>6&63,t[o++]=128|63&r);return t};e.exports.buf2string=(e,n)=>{const a=n||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,n));let o,i;const s=new Array(2*a);for(i=0,o=0;o<a;){let t=e[o++];if(t<128){s[i++]=t;continue}let n=r[t];if(n>4)s[i++]=65533,o+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&o<a;)t=t<<6|63&e[o++],n--;n>1?s[i++]=65533:t<65536?s[i++]=t:(t-=65536,s[i++]=55296|t>>10&1023,s[i++]=56320|1023&t)}}return((e,r)=>{if(r<65534&&e.subarray&&t)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let n="";for(let t=0;t<r;t++)n+=String.fromCharCode(e[t]);return n})(s,i)},e.exports.utf8border=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+r[e[n]]>t?n:t}},693:e=>{e.exports=(e,t,r,n)=>{let a=65535&e|0,o=e>>>16&65535|0,i=0;for(;0!==r;){i=r>2e3?2e3:r,r-=i;do{a=a+t[n++]|0,o=o+a|0}while(--i);a%=65521,o%=65521}return a|o<<16|0}},684:e=>{e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},863:e=>{const t=new Uint32Array((()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t})());e.exports=(e,r,n,a)=>{const o=t,i=a+n;e^=-1;for(let t=a;t<i;t++)e=e>>>8^o[255&(e^r[t])];return-1^e}},968:e=>{e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},365:e=>{const t=16209;e.exports=function(e,r){let n,a,o,i,s,l,c,u,f,d,m,g,h,p,x,b,w,y,k,T,S,D,v,P;const I=e.state;n=e.next_in,v=e.input,a=n+(e.avail_in-5),o=e.next_out,P=e.output,i=o-(r-e.avail_out),s=o+(e.avail_out-257),l=I.dmax,c=I.wsize,u=I.whave,f=I.wnext,d=I.window,m=I.hold,g=I.bits,h=I.lencode,p=I.distcode,x=(1<<I.lenbits)-1,b=(1<<I.distbits)-1;e:do{g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=h[m&x];t:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,0===y)P[o++]=65535&w;else{if(!(16&y)){if(0==(64&y)){w=h[(65535&w)+(m&(1<<y)-1)];continue t}if(32&y){I.mode=16191;break e}e.msg="invalid literal/length code",I.mode=t;break e}k=65535&w,y&=15,y&&(g<y&&(m+=v[n++]<<g,g+=8),k+=m&(1<<y)-1,m>>>=y,g-=y),g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=p[m&b];r:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,!(16&y)){if(0==(64&y)){w=p[(65535&w)+(m&(1<<y)-1)];continue r}e.msg="invalid distance code",I.mode=t;break e}if(T=65535&w,y&=15,g<y&&(m+=v[n++]<<g,g+=8,g<y&&(m+=v[n++]<<g,g+=8)),T+=m&(1<<y)-1,T>l){e.msg="invalid distance too far back",I.mode=t;break e}if(m>>>=y,g-=y,y=o-i,T>y){if(y=T-y,y>u&&I.sane){e.msg="invalid distance too far back",I.mode=t;break e}if(S=0,D=d,0===f){if(S+=c-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}else if(f<y){if(S+=c+f-y,y-=f,y<k){k-=y;do{P[o++]=d[S++]}while(--y);if(S=0,f<k){y=f,k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}}else if(S+=f-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}for(;k>2;)P[o++]=D[S++],P[o++]=D[S++],P[o++]=D[S++],k-=3;k&&(P[o++]=D[S++],k>1&&(P[o++]=D[S++]))}else{S=o-T;do{P[o++]=P[S++],P[o++]=P[S++],P[o++]=P[S++],k-=3}while(k>2);k&&(P[o++]=P[S++],k>1&&(P[o++]=P[S++]))}break}}break}}while(n<a&&o<s);k=g>>3,n-=k,g-=k<<3,m&=(1<<g)-1,e.next_in=n,e.next_out=o,e.avail_in=n<a?a-n+5:5-(n-a),e.avail_out=o<s?s-o+257:257-(o-s),I.hold=m,I.bits=g}},823:(e,t,r)=>{const n=r(693),a=r(863),o=r(365),i=r(446),{Z_FINISH:s,Z_BLOCK:l,Z_TREES:c,Z_OK:u,Z_STREAM_END:f,Z_NEED_DICT:d,Z_STREAM_ERROR:m,Z_DATA_ERROR:g,Z_MEM_ERROR:h,Z_BUF_ERROR:p,Z_DEFLATED:x}=r(684),b=16180,w=16190,y=16191,k=16192,T=16194,S=16199,D=16200,v=16206,P=16209,I=16210,E=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function A(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const _=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<b||t.mode>16211?1:0},L=e=>{if(_(e))return m;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=b,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,u},C=e=>{if(_(e))return m;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,L(e)},O=(e,t)=>{let r;if(_(e))return m;const n=e.state;return t<0?(r=0,t=-t):(r=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?m:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,C(e))},M=(e,t)=>{if(!e)return m;const r=new A;e.state=r,r.strm=e,r.window=null,r.mode=b;const n=O(e,t);return n!==u&&(e.state=null),n};let R,F,B=!0;const U=e=>{if(B){R=new Int32Array(512),F=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(i(1,e.lens,0,288,R,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;i(2,e.lens,0,32,F,0,e.work,{bits:5}),B=!1}e.lencode=R,e.lenbits=9,e.distcode=F,e.distbits=5},N=(e,t,r,n)=>{let a;const o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),n>=o.wsize?(o.window.set(t.subarray(r-o.wsize,r),0),o.wnext=0,o.whave=o.wsize):(a=o.wsize-o.wnext,a>n&&(a=n),o.window.set(t.subarray(r-n,r-n+a),o.wnext),(n-=a)?(o.window.set(t.subarray(r-n,r),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=a))),0};e.exports.inflateReset=C,e.exports.inflateReset2=O,e.exports.inflateResetKeep=L,e.exports.inflateInit=e=>M(e,15),e.exports.inflateInit2=M,e.exports.inflate=(e,t)=>{let r,A,L,C,O,M,R,F,B,j,$,G,V,W,q,Z,Y,z,H,Q,X,K,J=0;const ee=new Uint8Array(4);let te,re;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(_(e)||!e.output||!e.input&&0!==e.avail_in)return m;r=e.state,r.mode===y&&(r.mode=k),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,j=M,$=R,K=u;e:for(;;)switch(r.mode){case b:if(0===r.wrap){r.mode=k;break}for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(2&r.wrap&&35615===F){0===r.wbits&&(r.wbits=15),r.check=0,ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0),F=0,B=0,r.mode=16181;break}if(r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&F)<<8)+(F>>8))%31){e.msg="incorrect header check",r.mode=P;break}if((15&F)!==x){e.msg="unknown compression method",r.mode=P;break}if(F>>>=4,B-=4,X=8+(15&F),0===r.wbits&&(r.wbits=X),X>15||X>r.wbits){e.msg="invalid window size",r.mode=P;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=512&F?16189:y,F=0,B=0;break;case 16181:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.flags=F,(255&r.flags)!==x){e.msg="unknown compression method",r.mode=P;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=P;break}r.head&&(r.head.text=F>>8&1),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16182;case 16182:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.time=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,ee[2]=F>>>16&255,ee[3]=F>>>24&255,r.check=a(r.check,ee,4,0)),F=0,B=0,r.mode=16183;case 16183:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.xflags=255&F,r.head.os=F>>8),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16184;case 16184:if(1024&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length=F,r.head&&(r.head.extra_len=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0}else r.head&&(r.head.extra=null);r.mode=16185;case 16185:if(1024&r.flags&&(G=r.length,G>M&&(G=M),G&&(r.head&&(X=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(A.subarray(C,C+G),X)),512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,r.length-=G),r.length))break e;r.length=0,r.mode=16186;case 16186:if(2048&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.name+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=16187;case 16187:if(4096&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.comment+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.comment=null);r.mode=16188;case 16188:if(512&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(65535&r.check)){e.msg="header crc mismatch",r.mode=P;break}F=0,B=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=y;break;case 16189:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}e.adler=r.check=E(F),F=0,B=0,r.mode=w;case w:if(0===r.havedict)return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,d;e.adler=r.check=1,r.mode=y;case y:if(t===l||t===c)break e;case k:if(r.last){F>>>=7&B,B-=7&B,r.mode=v;break}for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}switch(r.last=1&F,F>>>=1,B-=1,3&F){case 0:r.mode=16193;break;case 1:if(U(r),r.mode=S,t===c){F>>>=2,B-=2;break e}break;case 2:r.mode=16196;break;case 3:e.msg="invalid block type",r.mode=P}F>>>=2,B-=2;break;case 16193:for(F>>>=7&B,B-=7&B;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if((65535&F)!=(F>>>16^65535)){e.msg="invalid stored block lengths",r.mode=P;break}if(r.length=65535&F,F=0,B=0,r.mode=T,t===c)break e;case T:r.mode=16195;case 16195:if(G=r.length,G){if(G>M&&(G=M),G>R&&(G=R),0===G)break e;L.set(A.subarray(C,C+G),O),M-=G,C+=G,R-=G,O+=G,r.length-=G;break}r.mode=y;break;case 16196:for(;B<14;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.nlen=257+(31&F),F>>>=5,B-=5,r.ndist=1+(31&F),F>>>=5,B-=5,r.ncode=4+(15&F),F>>>=4,B-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=P;break}r.have=0,r.mode=16197;case 16197:for(;r.have<r.ncode;){for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.lens[ne[r.have++]]=7&F,F>>>=3,B-=3}for(;r.have<19;)r.lens[ne[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,te={bits:r.lenbits},K=i(0,r.lens,0,19,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid code lengths set",r.mode=P;break}r.have=0,r.mode=16198;case 16198:for(;r.have<r.nlen+r.ndist;){for(;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Y<16)F>>>=q,B-=q,r.lens[r.have++]=Y;else{if(16===Y){for(re=q+2;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(F>>>=q,B-=q,0===r.have){e.msg="invalid bit length repeat",r.mode=P;break}X=r.lens[r.have-1],G=3+(3&F),F>>>=2,B-=2}else if(17===Y){for(re=q+3;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=3+(7&F),F>>>=3,B-=3}else{for(re=q+7;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=11+(127&F),F>>>=7,B-=7}if(r.have+G>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=P;break}for(;G--;)r.lens[r.have++]=X}}if(r.mode===P)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=P;break}if(r.lenbits=9,te={bits:r.lenbits},K=i(1,r.lens,0,r.nlen,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid literal/lengths set",r.mode=P;break}if(r.distbits=6,r.distcode=r.distdyn,te={bits:r.distbits},K=i(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,te),r.distbits=te.bits,K){e.msg="invalid distances set",r.mode=P;break}if(r.mode=S,t===c)break e;case S:r.mode=D;case D:if(M>=6&&R>=258){e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,o(e,$),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,r.mode===y&&(r.back=-1);break}for(r.back=0;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Z&&0==(240&Z)){for(z=q,H=Z,Q=Y;J=r.lencode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,r.length=Y,0===Z){r.mode=16205;break}if(32&Z){r.back=-1,r.mode=y;break}if(64&Z){e.msg="invalid literal/length code",r.mode=P;break}r.extra=15&Z,r.mode=16201;case 16201:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=16202;case 16202:for(;J=r.distcode[F&(1<<r.distbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(0==(240&Z)){for(z=q,H=Z,Q=Y;J=r.distcode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,64&Z){e.msg="invalid distance code",r.mode=P;break}r.offset=Y,r.extra=15&Z,r.mode=16203;case 16203:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.offset+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=P;break}r.mode=16204;case 16204:if(0===R)break e;if(G=$-R,r.offset>G){if(G=r.offset-G,G>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=P;break}G>r.wnext?(G-=r.wnext,V=r.wsize-G):V=r.wnext-G,G>r.length&&(G=r.length),W=r.window}else W=L,V=O-r.offset,G=r.length;G>R&&(G=R),R-=G,r.length-=G;do{L[O++]=W[V++]}while(--G);0===r.length&&(r.mode=D);break;case 16205:if(0===R)break e;L[O++]=r.length,R--,r.mode=D;break;case v:if(r.wrap){for(;B<32;){if(0===M)break e;M--,F|=A[C++]<<B,B+=8}if($-=R,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,O-$):n(r.check,L,$,O-$)),$=R,4&r.wrap&&(r.flags?F:E(F))!==r.check){e.msg="incorrect data check",r.mode=P;break}F=0,B=0}r.mode=16207;case 16207:if(r.wrap&&r.flags){for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=P;break}F=0,B=0}r.mode=16208;case 16208:K=f;break e;case P:K=g;break e;case I:return h;default:return m}return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,(r.wsize||$!==e.avail_out&&r.mode<P&&(r.mode<v||t!==s))&&N(e,e.output,e.next_out,$-e.avail_out)?(r.mode=I,h):(j-=e.avail_in,$-=e.avail_out,e.total_in+=j,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,e.next_out-$):n(r.check,L,$,e.next_out-$)),e.data_type=r.bits+(r.last?64:0)+(r.mode===y?128:0)+(r.mode===S||r.mode===T?256:0),(0===j&&0===$||t===s)&&K===u&&(K=p),K)},e.exports.inflateEnd=e=>{if(_(e))return m;let t=e.state;return t.window&&(t.window=null),e.state=null,u},e.exports.inflateGetHeader=(e,t)=>{if(_(e))return m;const r=e.state;return 0==(2&r.wrap)?m:(r.head=t,t.done=!1,u)},e.exports.inflateSetDictionary=(e,t)=>{const r=t.length;let a,o,i;return _(e)?m:(a=e.state,0!==a.wrap&&a.mode!==w?m:a.mode===w&&(o=1,o=n(o,t,r,0),o!==a.check)?g:(i=N(e,t,r,r),i?(a.mode=I,h):(a.havedict=1,u)))},e.exports.inflateInfo="pako inflate (from Nodeca project)"},446:e=>{const t=15,r=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),a=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);e.exports=(e,i,s,l,c,u,f,d)=>{const m=d.bits;let g,h,p,x,b,w,y=0,k=0,T=0,S=0,D=0,v=0,P=0,I=0,E=0,A=0,_=null;const L=new Uint16Array(16),C=new Uint16Array(16);let O,M,R,F=null;for(y=0;y<=t;y++)L[y]=0;for(k=0;k<l;k++)L[i[s+k]]++;for(D=m,S=t;S>=1&&0===L[S];S--);if(D>S&&(D=S),0===S)return c[u++]=20971520,c[u++]=20971520,d.bits=1,0;for(T=1;T<S&&0===L[T];T++);for(D<T&&(D=T),I=1,y=1;y<=t;y++)if(I<<=1,I-=L[y],I<0)return-1;if(I>0&&(0===e||1!==S))return-1;for(C[1]=0,y=1;y<t;y++)C[y+1]=C[y]+L[y];for(k=0;k<l;k++)0!==i[s+k]&&(f[C[i[s+k]]++]=k);if(0===e?(_=F=f,w=20):1===e?(_=r,F=n,w=257):(_=a,F=o,w=0),A=0,k=0,y=T,b=u,v=D,P=0,p=-1,E=1<<D,x=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){O=y-P,f[k]+1<w?(M=0,R=f[k]):f[k]>=w?(M=F[f[k]-w],R=_[f[k]-w]):(M=96,R=0),g=1<<y-P,h=1<<v,T=h;do{h-=g,c[b+(A>>P)+h]=O<<24|M<<16|R|0}while(0!==h);for(g=1<<y-1;A&g;)g>>=1;if(0!==g?(A&=g-1,A+=g):A=0,k++,0==--L[y]){if(y===S)break;y=i[s+f[k]]}if(y>D&&(A&x)!==p){for(0===P&&(P=D),b+=T,v=y-P,I=1<<v;v+P<S&&(I-=L[v+P],!(I<=0));)v++,I<<=1;if(E+=1<<v,1===e&&E>852||2===e&&E>592)return 1;p=A&x,c[p]=D<<24|v<<16|b-u|0}}return 0!==A&&(c[b+A]=y-P<<24|64<<16|0),d.bits=D,0}},604:e=>{e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},249:e=>{e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},464:t=>{t.exports=e},713:e=>{e.exports=t}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})();var o={};return(()=>{function e(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++)t[o++]=e[a++],t[o++]=e[a++],t[o++]=e[a++],t[o++]=255;else t.set(e)}function t(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++],t[a++]=255;else for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++]}function r(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128),t[o++]=255}else for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128)}}function n(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128),t[a++]=255}else for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128)}}a.r(o),a.d(o,{configure:()=>kt,convertColorSpace:()=>X,convertPALETTECOLOR:()=>yt,convertRGBColorByPixel:()=>e,convertRGBColorByPlane:()=>t,convertYBRFullByPixel:()=>r,convertYBRFullByPlane:()=>n,createImage:()=>ye,decodeImageFrame:()=>he,decodeJPEGBaseline8BitColor:()=>J,default:()=>St,external:()=>xt,getImageFrame:()=>pe,getMinMax:()=>H,getPixelData:()=>z,internal:()=>U,isColorImage:()=>xe,isJPEGBaseline8BitColor:()=>Tt,wadors:()=>Ie,wadouri:()=>dt,webWorkerManager:()=>de});const i=function(e,t,r){return t=t||0,e&&e.Value?e.Value.length<=t?r:e.Value[t]:r};const s=function(e,t,r){const n=i(e,t,r);if(void 0!==n)return parseFloat(n)};const l=function(e,t){const r=i(e,t);if(void 0!==r)return parseFloat(r)};const c=function(e,t){if(!e)return;if(!e.Value)return;if(!Array.isArray(e.Value))return;if(t&&e.Value.length<t)return;const r=[];for(let t=0;t<e.Value.length;t++)r.push(parseFloat(e.Value[t]));return r};function u(e){const t=e.indexOf(":");return e.substring(t+1)}function f(e,t=!0){return e&&e.Value?e.Value[0]&&t?e.Value[0]:e.Value:e}function d(e,t,r){return{shared:(t?Object.values(t[0]):[]).map((e=>e[0])).filter((e=>void 0!==e&&"object"==typeof e)),perFrame:(e?Object.values(e[r-1]):[]).map((e=>e.Value[0])).filter((e=>void 0!==e&&"object"==typeof e))}}function m(e){let{52009230:t,52009229:r,"00280008":n,...a}=e;return t=f(t,!1),r=f(r,!1),n=f(n),{PerFrameFunctionalGroupsSequence:t,SharedFunctionalGroupsSequence:r,NumberOfFrames:n,rest:a}}function g(e){const t=e.indexOf("/frames/")+8,r=e.slice(0,t),n=parseInt(e.slice(t),10);return{metadata:p[`${r}1`],frame:n}}const h={_retrieveMultiframeMetadata:g,retrieveMultiframeMetadata:function(e){return g(u(e))},isMultiframe:function(e){const t=i(e["00280008"]);return t&&t>1}};let p=[],x={};const b={add:function(e,t){const r=u(e);t.isMultiframe=h.isMultiframe(t),p[r]=t},get:function(e){const t=u(e),r=p[t];if(r&&!r?.isMultiframe)return r;const n=x[t];if(n)return n;const a=h._retrieveMultiframeMetadata(t);if(!a||!a.metadata)return;const{metadata:o,frame:i}=a;if(o){const e=function(e,t){const{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:a,rest:o}=m(t);if(r||a>1){const{shared:i,perFrame:s}=d(r,n,e),l=Object.assign(t,{frameNumber:e});return[...i,...s].forEach((e=>{Object.entries(e).forEach((([e,t])=>{l[e]=t}))})),Object.assign(o,{"00280008":a},l)}return t}(i,o);return x[t]=e,e}},remove:function(e){const t=u(e);p[t]=void 0,x[t]=void 0},purge:function(){p=[],x={}}};function w(e){return"RECON TOMO"===e||"RECON GATED TOMO"===e}function y(e){return i(e["00080060"]).includes("NM")}function k(e,t){const r=f(e["00080008"],!1);if(r)return r[t]}function T(e){let t=c(e["00200037"],6);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200037"],6))}return t}(e)),t}function S(e){let t=c(e["00200032"],3);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200032"],3))}return t}(e)),t}function D(e,t,r){const n={};for(const a of r)try{const r=t(a,e);if(r){const e={};for(const t in r)if(t in r){e[v(t)]=r[t]}Object.assign(n,e)}}catch(e){console.error(`Error retrieving ${a} data:`,e)}return n}const v=e=>e.charAt(0).toUpperCase()+e.slice(1),P=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function I(e,t){const r=c(e[t]);return r?r[0]:null}const E=function(e){return e?.Value?.length?Array.isArray(e.Value)?e.Value:"object"==typeof e.Value?(console.warn("Warning: Value should be an array, but an object was found. Encapsulating the object in an array."),[e.Value]):[]:[]};function A(e){const t=E(e["00186011"]);if(!t||!t.length)return null;return t.map((e=>{const t=I(e,"0018602C"),r=I(e,"0018602E"),n=I(e,"00186024"),a=I(e,"00186026");return{regionLocationMinY0:I(e,"0018601A"),regionLocationMaxY1:I(e,"0018601E"),regionLocationMinX0:I(e,"00186018"),regionLocationMaxX1:I(e,"0018601C"),referencePixelX0:I(e,"00186020"),referencePixelY0:I(e,"00186022"),physicalDeltaX:t,physicalDeltaY:r,physicalUnitsXDirection:n,physicalUnitsYDirection:a,referencePhysicalPixelValueY:I(e,"0018602A"),referencePhysicalPixelValueX:I(e,"00186028"),regionSpatialFormat:I(e,"00186012"),regionDataType:I(e,"00186014"),regionFlags:I(e,"00186016"),transducerFrequency:I(e,"00186030")}}))}function _(e,t){return{transferSyntaxUID:i(t["00020010"])||i(t["00083002"])}}const L=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(t===n.MULTIFRAME){const{metadata:e,frame:t}=h.retrieveMultiframeMetadata(r);if(!e)return;const{PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,NumberOfFrames:o}=m(e);if(n||o>1){const{shared:e,perFrame:r}=d(n,a,t);return{NumberOfFrames:o,PerFrameFunctionalInformation:r,SharedFunctionalInformation:e}}return{NumberOfFrames:o}}const o=b.get(r);if(o){if(t===n.GENERAL_STUDY)return{studyDescription:i(o["00081030"]),studyDate:a.parseDA(i(o["00080020"])),studyTime:a.parseTM(i(o["00080030"],0,"")),accessionNumber:i(o["00080050"])};if(t===n.GENERAL_SERIES)return{modality:i(o["00080060"]),seriesInstanceUID:i(o["0020000E"]),seriesNumber:l(o["00200011"]),studyInstanceUID:i(o["0020000D"]),seriesDate:a.parseDA(i(o["00080021"])),seriesTime:a.parseTM(i(o["00080031"],0,"")),acquisitionDate:a.parseDA(i(o["00080022"])),acquisitionTime:a.parseTM(i(o["00080032"],0,""))};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:i(o["00080018"]),instanceNumber:l(o["00200013"]),lossyImageCompression:i(o["00282110"]),lossyImageCompressionRatio:l(o["00282112"]),lossyImageCompressionMethod:i(o["00282114"])};if(t===n.PATIENT)return{patientID:i(o["00100020"]),patientName:i(o["00100010"])};if(t===n.PATIENT_STUDY)return{patientAge:l(o["00101010"]),patientSize:l(o["00101020"]),patientSex:i(o["00100040"]),patientWeight:l(o["00101030"])};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=i(o["00080060"]),t=k(o,2);return{modality:e,imageType:i(o["00080008"]),imageSubType:t,imageOrientationPatient:T(o),imagePositionPatient:S(o),sliceThickness:l(o["00180050"]),spacingBetweenSlices:l(o["00180088"]),pixelSpacing:c(o["00280030"],2),numberOfFrames:l(o["00280008"]),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=T(o),t=S(o),r=c(o["00280030"],2);let n=null,a=null;r&&(a=r[0],n=r[1]);let s=null,u=null;return e&&(s=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],u=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:i(o["00200052"]),rows:l(o["00280010"]),columns:l(o["00280011"]),imageOrientationPatient:e,rowCosines:s,columnCosines:u,imagePositionPatient:t,sliceThickness:l(o["00180050"]),sliceLocation:l(o["00201041"]),pixelSpacing:r,rowPixelSpacing:a,columnPixelSpacing:n}}if(t===n.ULTRASOUND_ENHANCED_REGION)return A(o);if(t===n.CALIBRATION){if("US"===i(o["00080060"])){return{sequenceOfUltrasoundRegions:A(o)}}}if(t===n.IMAGE_URL)return function(e,t){const{transferSyntaxUID:r}=_(e,t),n=xt.cornerstone.utilities.isVideoTransferSyntax(r),a=e.substring(7),o=a.replace("/frames/","/thumbnail/");let i=a.replace("/frames/","/rendered/");n&&(i=i.replace("/rendered/1","/rendered"));return{isVideo:n,rendered:i,thumbnail:o}}(r,o);if(t===n.CINE)return function(e,t){const r=i(t["00180040"]);return{cineRate:r,numberOfFrames:l(t["00280008"])}}(0,o);if(t===n.IMAGE_PIXEL)return{samplesPerPixel:l(o["00280002"]),photometricInterpretation:i(o["00280004"]),rows:l(o["00280010"]),columns:l(o["00280011"]),bitsAllocated:l(o["00280100"]),bitsStored:l(o["00280101"]),highBit:i(o["00280102"]),pixelRepresentation:l(o["00280103"]),planarConfiguration:l(o["00280006"]),pixelAspectRatio:i(o["00280034"]),smallestPixelValue:l(o["00280106"]),largestPixelValue:l(o["00280107"]),redPaletteColorLookupTableDescriptor:c(o["00281101"]),greenPaletteColorLookupTableDescriptor:c(o["00281102"]),bluePaletteColorLookupTableDescriptor:c(o["00281103"]),redPaletteColorLookupTableData:c(o["00281201"]),greenPaletteColorLookupTableData:c(o["00281202"]),bluePaletteColorLookupTableData:c(o["00281203"])};if(t===n.VOI_LUT)return{windowCenter:c(o["00281050"],1),windowWidth:c(o["00281051"],1)};if(t===n.MODALITY_LUT)return{rescaleIntercept:l(o["00281052"]),rescaleSlope:l(o["00281053"]),rescaleType:i(o["00281054"])};if(t===n.SOP_COMMON)return{sopClassUID:i(o["00080016"]),sopInstanceUID:i(o["00080018"])};if(t===n.PET_ISOTOPE){const e=i(o["00540016"]);if(void 0===e)return;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(i(e["00181072"],0,"")),radiopharmaceuticalStartDateTime:i(e["00181078"],0,""),radionuclideTotalDose:l(e["00181074"]),radionuclideHalfLife:l(e["00181075"])}}}return t===n.OVERLAY_PLANE?function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=i(e[`${n}3000`]);if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.Value[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:l(e[`${n}0010`]),columns:l(e[`${n}0011`]),type:i(e[`${n}0040`]),x:l(e[`${n}0050`],1)-1,y:l(e[`${n}0050`],0)-1,pixelData:o,description:i(e[`${n}0022`]),label:i(e[`${n}1500`]),roiArea:i(e[`${n}1301`]),roiMean:i(e[`${n}1302`]),roiStandardDeviation:i(e[`${n}1303`])})}return{overlays:t}}(o):"transferSyntax"===t?_(r,o):t===n.PET_SERIES?{correctedImage:i(o["00280051"]),units:i(o["00541001"]),decayCorrection:i(o["00541102"])}:t===n.PET_IMAGE?{frameReferenceTime:l(o["00541300"]),actualFrameDuration:l(o["00181242"])}:"instance"===t?D(r,e,P):void 0}};function C(e,t,r){if(r+e.length>t.length)return!1;let n=r;for(let r=0;r<e.length;r++)if(e[r]!==t[n++])return!1;return!0}const O=function(e,t,r){r=r||0;const n=function(e){const t=new Uint8Array(e.length);for(let r=0,n=e.length;r<n;r++)t[r]=e.charCodeAt(r);return t}(t);for(let t=r;t<e.length;t++)if(n[0]===e[t]&&C(n,e,t))return t;return-1};let M={open(e,t){e.open("get",t,!0)},beforeSend(){},beforeProcessing:e=>Promise.resolve(e.response),imageCreated(){},strict:!1,decodeConfig:{convertFloatPixelDataToInt:!0,use16BitDataType:!1}};function R(e){M=Object.assign(M,e)}function F(){return M}const B=function(e,t,r={},n={}){const{cornerstone:a}=xt,o=F(),i=e=>{if("function"==typeof o.errorInterceptor){const t=new Error("request failed");t.request=e,t.response=e.response,t.status=e.status,o.errorInterceptor(t)}},s=new XMLHttpRequest,l=new Promise(((l,c)=>{o.open(s,e,r,n);const u=o.beforeSend(s,t,r,n);s.responseType="arraybuffer";const f=Object.assign({},r,u);Object.keys(f).forEach((function(t){null!==f[t]&&("Accept"===t&&-1!==e.indexOf("accept=")||s.setRequestHeader(t,f[t]))})),n.deferred={resolve:l,reject:c},n.url=e,n.imageId=t,s.onloadstart=function(r){o.onloadstart&&o.onloadstart(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadstart",i)},s.onloadend=function(r){o.onloadend&&o.onloadend(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadend",i)},s.onreadystatechange=function(e){o.onreadystatechange?o.onreadystatechange(e,n):4===s.readyState&&(200===s.status||206===s.status?o.beforeProcessing(s).then(l).catch((()=>{i(s),c(s)})):(i(s),c(s)))},s.onprogress=function(e){const t=e.loaded;let r,a;e.lengthComputable&&(r=e.total,a=Math.round(t/r*100)),o.onprogress&&o.onprogress(e,n)},s.onerror=function(){i(s),c(s)},s.onabort=function(){i(s),c(s)},s.send()}));return l.xhr=s,l},U={xhrRequest:B,setOptions:R,getOptions:F};var N=a(464);const{ImageQualityStatus:j}=N.Enums;function $(e,t,r){r||={};const n=new Uint8Array(t),a=!!r?.isPartial;if(-1===e.indexOf("multipart"))return{contentType:e,imageQualityStatus:a?j.SUBRESOLUTION:j.FULL_RESOLUTION,pixelData:n};let{tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l}=r;if(o||=O(n,"\r\n\r\n"),-1===o)throw new Error("invalid response - no multipart mime header");if(!s){const e=function(e,t,r){t=t||0,r=r||e.length-t;let n="";for(let a=t;a<t+r;a++)n+=String.fromCharCode(e[a]);return n}(n,0,o);if(i=e.split("\r\n"),s=function(e){for(let t=0;t<e.length;t++)if("--"===e[t].substr(0,2))return e[t]}(i),!s)throw new Error("invalid response - no boundary marker")}const c=o+4,u=O(n,s,c);if(-1===u&&!a)throw new Error("invalid response - terminating boundary not found");return l||=function(e){for(let t=0;t<e.length;t++)if("Content-Type:"===e[t].substr(0,13))return e[t].substr(13).trim()}(i),r.tokenIndex=o,r.boundary=s,r.responseHeaders=i,r.multipartContentType=l,r.isPartial=-1===u,{contentType:l,extractDone:!a||-1!==u,tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l,pixelData:t.slice(c,u-2)}}const{ImageQualityStatus:G}=N.Enums;function V(e,t=!0){return t?e.imageQualityStatus??G.FULL_RESOLUTION:G.SUBRESOLUTION}const{ProgressiveIterator:W}=N.utilities;function q(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i={}}=n,s=o.minChunkSize||131072,l=new W("streamRequest");return l.generate((async(n,l)=>{const c=Object.assign({},r);Object.keys(c).forEach((function(t){null===c[t]&&(c[t]=void 0),"Accept"===t&&-1!==e.indexOf("accept=")&&(c[t]=void 0)}));try{const a=await fetch(e,{headers:r,signal:void 0});if(200!==a.status)throw new Error(`Couldn't retrieve ${e} got status ${a.status}`);const l=a.body.getReader(),c=a.headers,u=c.get("content-type"),f=Number(c.get("Content-Length"));let d=!1,m=i.encodedData,g=i.lastSize||0;for(i.isPartial=!0;!d;){const{done:r,value:a}=await l.read();if(m=Z(m,a),!m){if(d)throw new Error(`Done but no image frame available ${t}`);continue}if(d=r||m.byteLength===f,!d&&m.length<g+s)continue;g=m.length,i.isPartial=!r;const c=$(u,m,i),h=V(o,d),p={url:e,imageId:t,...c,percentComplete:r?100:100*c.pixelData?.length/f,imageQualityStatus:h,done:d};n.add(p,d)}}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}})(),console.error(e),l(e)}})),l.getNextPromise()}function Z(e,t){if(!e)return t;if(!t)return e;const r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}function Y(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i}=n,s=i.chunkSize||function(e,t,r){const n=t[r];if("function"!=typeof n)return n;const a=b.get(e);return n(a,e)}(t,o,"chunkSize")||65536,l=new Promise((async(t,n)=>{const l=Object.assign({},r);Object.keys(l).forEach((function(e){null!==l[e]&&void 0!==l[e]||delete l[e]}));try{i.encodedData||(i.chunkSize=s,i.rangesFetched=0);const r=function(e,t){const{totalBytes:r,encodedData:n,chunkSize:a=65536}=e,{rangeIndex:o=0}=t;if(!(-1!==o||r&&n))return[0,""];if(-1===o||n?.byteLength>r-a)return[n?.byteLength||0,""];return[n?.byteLength||0,a*(o+1)-1]}(i,o),{encodedData:n,responseHeaders:a}=await async function(e,t,r,n){r&&(t=Object.assign(t,{Range:`bytes=${r[0]}-${r[1]}`}));let{encodedData:a}=n;if(r[1]&&a?.byteLength>r[1])return n;const o=await fetch(e,{headers:t,signal:void 0}),i=await o.arrayBuffer(),s=new Uint8Array(i),{status:l}=o;let c;a?(c=new Uint8Array(a.length+s.length),c.set(a,0),c.set(s,a.length),n.rangesFetched=1):(c=new Uint8Array(s.length),c.set(s,0),n.rangesFetched++);n.encodedData=a=c,n.responseHeaders=o.headers;const u=o.headers.get("Content-Range");u?n.totalBytes=Number(u.split("/")[1]):206===l&&r?""===r[1]||a?.length<r[1]?n.totalBytes=a.byteLength:n.totalBytes=Number.MAX_SAFE_INTEGER:n.totalBytes=a?.byteLength;return n}(e,l,r,i),c=a.get("content-type"),{totalBytes:u}=i,f=u===n.byteLength,d=$(c,n,{isPartial:!0}),m=V(o,f||d.extractDone);t({...d,imageQualityStatus:m,percentComplete:d.extractDone?100:100*s/u})}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}else console.warn("rangeRequest:Caught",e)})(e),console.error(e),n(e)}}));return l}const z=function(e,t,r="application/octet-stream",n){const{streamingData:a,retrieveOptions:o={}}=n||{},i={Accept:r};let s=o.urlArguments?`${e}${-1===e.indexOf("?")?"?":"&"}${o.urlArguments}`:e;if(o.framesPath&&(s=s.replace("/frames/",o.framesPath)),a?.url!==s&&(n.streamingData={url:s}),void 0!==o.rangeIndex)return Y(s,t,i,n);if(o.streaming)return q(s,t,i,n);const l=B(s,t,i),{xhr:c}=l;return l.then((function(e){const t=$(c.getResponseHeader("Content-Type")||"application/octet-stream",new Uint8Array(e));return t.imageQualityStatus=V(o,!0),t}))};const H=function(e){let t,r=e[0],n=e[0];const a=e.length;for(let o=1;o<a;o++)t=e[o],r=Math.min(r,t),n=Math.max(n,t);return{min:r,max:n}};function Q(r,n,a){0===r.planarConfiguration?e(r.pixelData,n,a):t(r.pixelData,n,a)}function X(e,t,a){if("RGB"===e.photometricInterpretation)Q(e,t,a);else if("YBR_RCT"===e.photometricInterpretation)Q(e,t,a);else if("YBR_ICT"===e.photometricInterpretation)Q(e,t,a);else if("PALETTE COLOR"===e.photometricInterpretation)yt(e,t,a);else if("YBR_FULL_422"===e.photometricInterpretation)!function(e,t,r){if(void 0===e)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!=0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let a=0,o=0;if(r)for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=255,t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128),t[o++]=255}else for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128)}}(e.pixelData,t,a);else{if("YBR_FULL"!==e.photometricInterpretation)throw new Error(`No color space conversion for photometric interpretation ${e.photometricInterpretation}`);!function(e,t,a){0===e.planarConfiguration?r(e.pixelData,t,a):n(e.pixelData,t,a)}(e,t,a)}}function K(e){return function(e){let t;try{return decodeURIComponent(escape(e))}catch(r){if(t=r,t instanceof URIError)return e;throw t}}(String.fromCharCode.apply(null,Array.prototype.slice.apply(new Uint8Array(e))))}const J=function(e,t,r){const n=(new Date).getTime(),a=new Blob([t],{type:"image/jpeg"});return new Promise(((t,o)=>{const i=new FileReader;void 0===i.readAsBinaryString?i.readAsArrayBuffer(a):i.readAsBinaryString(a),i.onload=function(){const a=new Image;a.onload=function(){r.height=a.height,r.width=a.width,e.rows=a.height,e.columns=a.width;const o=r.getContext("2d");o.drawImage(this,0,0);const i=o.getImageData(0,0,a.width,a.height),s=(new Date).getTime();e.pixelData=new Uint8Array(i.data.buffer),e.imageData=i,e.decodeTimeInMS=s-n;const l=H(e.pixelData);e.smallestPixelValue=l.min,e.largestPixelValue=l.max,e.pixelDataLength=e.pixelData.length,t(e)},a.onerror=function(e){o(e)},void 0===i.readAsBinaryString?a.src=`data:image/jpeg;base64,${window.btoa(K(i.result))}`:a.src=`data:image/jpeg;base64,${window.btoa(i.result)}`},i.onerror=e=>{o(e)}}))};function ee(){return new Worker(a.p+"index.worker.f4bda803c15bc6359d5f.worker.js")}let te=0;const re=[],ne=[],ae=F(),oe={maxWebWorkers:navigator.hardwareConcurrency||1,startWebWorkersOnDemand:!0,webWorkerTaskPaths:[],taskConfiguration:{decodeTask:{initializeCodecsOnStartup:!1,strict:ae.strict}}};let ie;const se={maxWebWorkers:0,numWebWorkers:0,numTasksQueued:0,numTasksExecuting:0,numTasksCompleted:0,totalTaskTimeInMS:0,totalTimeDelayedInMS:0};function le(){if(re.length){for(let e=0;e<ne.length;e++)if("ready"===ne[e].status){ne[e].status="busy";const t=re.shift();t.start=(new Date).getTime();const r=(new Date).getTime();return se.totalTimeDelayedInMS+=r-t.added,ne[e].task=t,ne[e].worker.postMessage({taskType:t.taskType,workerIndex:e,data:t.data},t.transferList),void se.numTasksExecuting++}ne.length<ie.maxWebWorkers&&ue()}}function ce(e){if("initialize"===e.data.taskType)ne[e.data.workerIndex].status="ready",le();else{const t=ne[e.data.workerIndex].task.start,r="success"===e.data.status?"resolve":"reject";try{ne[e.data.workerIndex].task.deferred[r](e.data.result)}catch(e){console.warn("Caught error delivering response",e)}ne[e.data.workerIndex].task=void 0,se.numTasksExecuting--,ne[e.data.workerIndex].status="ready",se.numTasksCompleted++;const n=(new Date).getTime();se.totalTaskTimeInMS+=n-t,le()}}function ue(){if(ne.length>=ie.maxWebWorkers)return;const e=new ee;ne.push({worker:e,status:"initializing"}),e.addEventListener("message",ce),e.postMessage({taskType:"initialize",workerIndex:ne.length-1,config:ie})}function fe(e){if(ie=e=e||oe,ie.maxWebWorkers=ie.maxWebWorkers||navigator.hardwareConcurrency||1,!ie.startWebWorkersOnDemand)for(let e=0;e<ie.maxWebWorkers;e++)ue()}const de={initialize:fe,loadWebWorkerTask:function(e,t){ie.webWorkerTaskPaths.push(e),t&&(ie.taskConfiguration=Object.assign(ie.taskConfiguration,t));for(let t=0;t<ne.length;t++)ne[t].worker.postMessage({taskType:"loadWebWorkerTask",workerIndex:ne.length-1,sourcePath:e,config:ie})},addTask:function(e,t,r=0,n){ie||fe();let a={resolve:void 0,reject:void 0};const o=new Promise(((e,t)=>{a={resolve:e,reject:t}}));let i;for(i=0;i<re.length&&!(re[i].priority<r);i++);const s=te++;return re.splice(i,0,{taskId:s,taskType:e,status:"ready",added:(new Date).getTime(),data:t,deferred:a,priority:r,transferList:n}),le(),{taskId:s,promise:o}},getStatistics:function(){return se.maxWebWorkers=ie.maxWebWorkers,se.numWebWorkers=ne.length,se.numTasksQueued=re.length,se},setTaskPriority:function(e,t=0){for(let r=0;r<re.length;r++)if(re[r].taskId===e){const e=re.splice(r,1)[0];for(e.priority=t,r=0;r<re.length&&!(re[r].priority<t);r++);return re.splice(r,0,e),!0}return!1},cancelTask:function(e,t){for(let r=0;r<re.length;r++)if(re[r].taskId===e){return re.splice(r,1).deferred.reject(t),!0}return!1},webWorkers:ne,terminate:function(){for(let e=0;e<ne.length;e++)ne[e].worker.terminate();ne.length=0,ie=void 0}};var me=a(578);function ge(e,t,r,n,a){const o={...n};delete o.loader,delete o.streamingData;const i=o.priority||void 0,s=o.transferPixelData?[r.buffer]:void 0;return de.addTask("decodeTask",{imageFrame:e,transferSyntax:t,pixelData:r,options:o,decodeConfig:a},i,s).promise}window.pako={inflateRaw:me.Hq};const he=function(e,t,r,n,a={},o){switch(t){case"1.2.840.10008.1.2":case"1.2.840.10008.1.2.1":case"1.2.840.10008.1.2.2":case"1.2.840.10008.1.2.1.99":case"1.2.840.10008.1.2.5":case"1.2.840.10008.1.2.4.51":case"1.2.840.10008.1.2.4.57":case"1.2.840.10008.1.2.4.70":case"1.2.840.10008.1.2.4.80":case"1.2.840.10008.1.2.4.81":case"1.2.840.10008.1.2.4.90":case"1.2.840.10008.1.2.4.91":case"3.2.840.10008.1.2.4.96":case"1.2.840.10008.1.2.4.201":case"1.2.840.10008.1.2.4.202":case"1.2.840.10008.1.2.4.203":return ge(e,t,r,a,o);case"1.2.840.10008.1.2.4.50":return 8!==e.bitsAllocated||3!==e.samplesPerPixel&&4!==e.samplesPerPixel?ge(e,t,r,a,o):J(e,r,n)}return Promise.reject(new Error(`No decoder for transfer syntax ${t}`))};const pe=function(e){const{cornerstone:t}=xt,r=t.metaData.get("imagePixelModule",e);return{samplesPerPixel:r.samplesPerPixel,photometricInterpretation:r.photometricInterpretation,planarConfiguration:r.planarConfiguration,rows:r.rows,columns:r.columns,bitsAllocated:r.bitsAllocated,bitsStored:r.bitsStored,pixelRepresentation:r.pixelRepresentation,smallestPixelValue:r.smallestPixelValue,largestPixelValue:r.largestPixelValue,redPaletteColorLookupTableDescriptor:r.redPaletteColorLookupTableDescriptor,greenPaletteColorLookupTableDescriptor:r.greenPaletteColorLookupTableDescriptor,bluePaletteColorLookupTableDescriptor:r.bluePaletteColorLookupTableDescriptor,redPaletteColorLookupTableData:r.redPaletteColorLookupTableData,greenPaletteColorLookupTableData:r.greenPaletteColorLookupTableData,bluePaletteColorLookupTableData:r.bluePaletteColorLookupTableData,pixelData:void 0,imageId:e}};function xe(e){return"RGB"===e||"PALETTE COLOR"===e||"YBR_FULL"===e||"YBR_FULL_422"===e||"YBR_PARTIAL_422"===e||"YBR_PARTIAL_420"===e||"YBR_RCT"===e||"YBR_ICT"===e}let be="";function we(e){const t=function(e,t){let r;return Number.isInteger(e)&&Number.isInteger(t)&&(e>=0?t<=255?r=Uint8Array:t<=65535&&(r=Uint16Array):e>=-128&&t<=127?r=Int8Array:e>=-32768&&t<=32767&&(r=Int16Array)),r||Float32Array}(e.smallestPixelValue,e.largestPixelValue);if(!t)throw new Error("Could not apply a typed array to the pixel data");{const r=new t(e.pixelData);e.pixelData=r}}const ye=function(e,t,r,n={}){const a=n.useRGBA;if(n.preScale={enabled:!(!n.preScale||void 0===n.preScale.enabled)&&n.preScale.enabled},!t?.length)return Promise.reject(new Error("The pixel data is missing"));const{cornerstone:o}=xt,{MetadataModules:i}=o.Enums,s=document.createElement("canvas"),l=pe(e);if(l.decodeLevel=n.decodeLevel,n.allowFloatRendering=o.canRenderFloatTextures(),n.preScale.enabled){const t=function(e,t){const r=e.get("modalityLutModule",t)||{},n=e.get("generalSeriesModule",t)||{},{modality:a}=n,o={rescaleSlope:r.rescaleSlope,rescaleIntercept:r.rescaleIntercept,modality:a},i=e.get("scalingModule",t)||{};return{...o,..."PT"===a&&{suvbw:i.suvbw}}}(o.metaData,e);t&&(n.preScale={...n.preScale,scalingParameters:t})}n.isSharedArrayBuffer=n.targetBuffer?.arrayBuffer&&n.targetBuffer.arrayBuffer instanceof SharedArrayBuffer;const{decodeConfig:c}=F();c.use16BitDataType=!!(n&&"Uint16Array"===n.targetBuffer?.type||"Int16Array"===n.targetBuffer?.type)||(n.useNativeDataType||c.use16BitDataType),Object.keys(l).forEach((e=>{("function"==typeof l[e]||l[e]instanceof Promise)&&delete l[e]}));const u=he(l,r,t,s,n,c),{use16BitDataType:f}=c,d=xe(l.photometricInterpretation);return new Promise(((t,r)=>{u.then((function(r){if(n.skipCreateImage)return t(r);let l=!1;if(n.targetBuffer&&n.targetBuffer.type&&!d){const{arrayBuffer:e,type:t,offset:a=0,length:o}=n.targetBuffer,i=r.pixelDataLength,s=a,c=null!=o?o:i-s,u={Uint8Array,Uint16Array:f?Uint16Array:void 0,Int16Array:f?Int16Array:void 0,Float32Array};if(c!==r.pixelDataLength)throw new Error(`target array for image does not have the same length (${c}) as the decoded image length (${r.pixelDataLength}).`);const d=u[t],m=e?new d(e,s,c):new d(r.pixelData);if(c!==r.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");r.pixelData=m,l=!0}l||we(r);const c=o.metaData.get(i.IMAGE_PLANE,e)||{},u=o.metaData.get(i.VOI_LUT,e)||{},m=o.metaData.get(i.MODALITY_LUT,e)||{},g=o.metaData.get(i.SOP_COMMON,e)||{},h=o.metaData.get(i.CALIBRATION,e)||{},{rows:p,columns:x}=r;if(d){if(function(e){if(void 0===e)return!1;const{rows:t,columns:r,photometricInterpretation:n,pixelDataLength:a}=e;return a!==4*r*t&&(n.endsWith("420")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*t:n.endsWith("422")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*Math.ceil(t/2)+Math.floor(t/2)*r:"RGB"!==n)}(r)){s.height=r.rows,s.width=r.columns;let e=s.getContext("2d").createImageData(r.columns,r.rows);a||(e={...e,data:new Uint8ClampedArray(r.samplesPerPixel*r.columns*r.rows)}),X(r,e.data,a),r.imageData=e,r.pixelData=e.data,r.pixelDataLength=e.data.length}else if(!a&&r.pixelDataLength===4*p*x){const e=new Uint8Array(r.pixelData.length/4*3);r.pixelData=function(e,t){const r=e.length/4;let n=0,a=0;for(let o=0;o<r;o++)t[a++]=e[n++],t[a++]=e[n++],t[a++]=e[n++],n++;return t}(r.pixelData,e),r.pixelDataLength=r.pixelData.length}const e=H(r.pixelData);r.smallestPixelValue=e.min,r.largestPixelValue=e.max}const b={imageId:e,color:d,calibration:h,columnPixelSpacing:c.columnPixelSpacing,columns:r.columns,height:r.rows,preScale:r.preScale,intercept:m.rescaleIntercept?m.rescaleIntercept:0,slope:m.rescaleSlope?m.rescaleSlope:1,invert:"MONOCHROME1"===r.photometricInterpretation,minPixelValue:r.smallestPixelValue,maxPixelValue:r.largestPixelValue,rowPixelSpacing:c.rowPixelSpacing,rows:r.rows,sizeInBytes:r.pixelData.byteLength,width:r.columns,windowCenter:u.windowCenter?u.windowCenter[0]:void 0,windowWidth:u.windowWidth?u.windowWidth[0]:void 0,voiLUTFunction:u.voiLUTFunction?u.voiLUTFunction:void 0,decodeTimeInMS:r.decodeTimeInMS,floatPixelData:void 0,imageFrame:r,rgba:d&&a,getPixelData:()=>r.pixelData,getCanvas:void 0,numComps:void 0};var w;if(b.color&&(b.getCanvas=function(){if(be===e)return s;const t=b.columns,n=b.rows;s.height=n,s.width=t;const a=s.getContext("2d"),o=a.createImageData(t,n),i=r.pixelData;if(i.length===t*n*4)for(let e=0;e<i.length;e++)o.data[e]=i[e];else if(i.length===t*n*3){let e=0;for(let t=0;t<i.length;t+=3)o.data[e++]=i[t],o.data[e++]=i[t+1],o.data[e++]=i[t+2],o.data[e++]=255}return r.pixelData=o.data,r.pixelDataLength=o.data.length,r.imageData=o,a.putImageData(r.imageData,0,0),be=e,s}),m.modalityLUTSequence&&m.modalityLUTSequence.length>0&&("1.2.840.10008.5.1.4.1.1.12.1"!==(w=g.sopClassUID)&&"1.2.840.10008.5.1.4.1.1.12.2.1"!==w)&&(b.modalityLUT=m.modalityLUTSequence[0]),u.voiLUTSequence&&u.voiLUTSequence.length>0&&(b.voiLUT=u.voiLUTSequence[0]),b.color&&(b.windowWidth=256,b.windowCenter=128),void 0===b.windowCenter||void 0===b.windowWidth){const e=b.imageFrame.minAfterScale,t=b.imageFrame.maxAfterScale;b.windowWidth=t-e,b.windowCenter=(t+e)/2}t(b)}),r)}))},{ProgressiveIterator:ke}=N.utilities,{ImageQualityStatus:Te}=N.Enums,Se=new Set(["3.2.840.10008.1.2.4.96","1.2.840.10008.1.2.4.202","1.2.840.10008.1.2.4.203"]);function De(e){const t="1.2.840.10008.1.2";if(!e)return t;const r=e.split(";"),n={};r.forEach((e=>{const t=e.split("=");if(2!==t.length)return;const r=t[1].trim().replace(/"/g,"");n[t[0].trim()]=r}));const a={"image/jpeg":"1.2.840.10008.1.2.4.50","image/x-dicom-rle":"1.2.840.10008.1.2.5","image/x-jls":"1.2.840.10008.1.2.4.80","image/jls":"1.2.840.10008.1.2.4.80","image/jll":"1.2.840.10008.1.2.4.70","image/jp2":"1.2.840.10008.1.2.4.90","image/jpx":"1.2.840.10008.1.2.4.92","image/jphc":"3.2.840.10008.1.2.4.96","image/jxl":"1.2.840.10008.1.2.4.140"};return n["transfer-syntax"]?n["transfer-syntax"]:e&&!Object.keys(n).length&&a[e]?a[e]:n.type&&a[n.type]?a[n.type]:a[e]?a[e]:t}function ve(e,t=4){const r=e/100-.02;return r>1/4?Math.min(t,0):r>1/16?Math.min(t,1):r>1/64?Math.min(t,2):Math.min(t,3)}const Pe=function(e,t={}){const r=xt.cornerstone.imageRetrievalPoolManager,n=(new Date).getTime(),a=new ke("decompress"),o=t.requestType||"interaction",i=t.additionalDetails||{imageId:e},s=void 0===t.priority?5:t.priority,l=t.addToBeginning||!1,c=e.substring(7);return r.addRequest(async function(e,r,o){a.generate((async a=>{const i=ke.as(z(e,r,o,t));let s=10;for await(const e of i){const{pixelData:o,imageQualityStatus:i=Te.FULL_RESOLUTION,percentComplete:l,done:c=!0,extractDone:u=!0}=e,f=De(e.contentType);if(!u&&!Se.has(f))continue;const d=e.decodeLevel??(i===Te.FULL_RESOLUTION?0:ve(l,t.retrieveOptions?.decodeLevel));if(c||!(s<=d))try{const e={...t,decodeLevel:d},l=await ye(r,o,f,e),u=(new Date).getTime();l.loadTimeInMS=u-n,l.transferSyntaxUID=f,l.imageQualityStatus=i,a.add(l,c),s=d}catch(e){if(u)throw console.warn("Couldn't decode",e),e}}}))}.bind(this,c,e,"multipart/related; type=application/octet-stream; transfer-syntax=*"),o,i,s,l),{promise:a.getDonePromise(),cancelFn:void 0}};const Ie={metaData:{getNumberString:s,getNumberValue:l,getNumberValues:c,getValue:i,metaDataProvider:L},findIndexOfString:O,getPixelData:z,loadImage:Pe,metaDataManager:b,register:function(e){e.registerImageLoader("wadors",Pe),e.metaData.addProvider(L)}};function Ee(e,t){if(e.elements[t]&&6===e.elements[t].length)return[e.uint16(t,0),e.uint16(t,1),e.uint16(t,2)]}function Ae(e,t,r){const n=[],a=e.elements[t];for(let o=0;o<r[0];o++)16===r[2]?n[o]=e.uint16(t,o):n[o]=e.byteArray[o+a.dataOffset];return n}const _e=function(e){const t={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return function(e,t){0===e.uint16("x00280103")?(t.smallestPixelValue=e.uint16("x00280106"),t.largestPixelValue=e.uint16("x00280107")):(t.smallestPixelValue=e.int16("x00280106"),t.largestPixelValue=e.int16("x00280107"))}(e,t),"PALETTE COLOR"===t.photometricInterpretation&&e.elements.x00281101&&function(e,t){t.redPaletteColorLookupTableDescriptor=Ee(e,"x00281101"),t.greenPaletteColorLookupTableDescriptor=Ee(e,"x00281102"),t.bluePaletteColorLookupTableDescriptor=Ee(e,"x00281103"),0===t.redPaletteColorLookupTableDescriptor[0]&&(t.redPaletteColorLookupTableDescriptor[0]=65536,t.greenPaletteColorLookupTableDescriptor[0]=65536,t.bluePaletteColorLookupTableDescriptor[0]=65536);const r=t.redPaletteColorLookupTableDescriptor[0],n=e.elements.x00281201.length===r?8:16;t.redPaletteColorLookupTableDescriptor[2]!==n&&(t.redPaletteColorLookupTableDescriptor[2]=n,t.greenPaletteColorLookupTableDescriptor[2]=n,t.bluePaletteColorLookupTableDescriptor[2]=n),t.redPaletteColorLookupTableData=Ae(e,"x00281201",t.redPaletteColorLookupTableDescriptor),t.greenPaletteColorLookupTableData=Ae(e,"x00281202",t.greenPaletteColorLookupTableDescriptor),t.bluePaletteColorLookupTableData=Ae(e,"x00281203",t.bluePaletteColorLookupTableDescriptor)}(e,t),t};function Le(e,t){let r=t.uint16("x00283002",0);0===r&&(r=65535);let n=0;n=0===e?t.uint16("x00283002",1):t.int16("x00283002",1);const a={id:"1",firstValueMapped:n,numBitsPerEntry:t.uint16("x00283002",2),lut:[]};for(let n=0;n<r;n++)a.lut[n]=0===e?t.uint16("x00283006",n):t.int16("x00283006",n);return a}const Ce=function(e,t){if(!t||!t.items||!t.items.length)return;const r=[];for(let n=0;n<t.items.length;n++){const a=Le(e,t.items[n].dataSet);a&&r.push(a)}return r};const Oe=function(e){const t=e.string("x00080016");if("1.2.840.10008.5.1.4.1.1.2"===t||"1.2.840.10008.5.1.4.1.1.2.1"===t)return 1;const r=e.floatString("x00281052"),n=e.floatString("x00281053");if(void 0!==r&&void 0!==n){const t=function(e){const t=e.uint16("x00280103"),r=e.uint16("x00280101");return 0===t?0:-1<<r-1}(e);return t*n+r<0?1:0}return e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")};const Me=function(e,t,r){const n=[],a=e.string(t);if(!a)return;const o=a.split("\\");if(!(r&&o.length<r)){for(let e=0;e<o.length;e++)n.push(parseFloat(o[e]));return n}};const Re=function(e){const t=e.indexOf(":");let r=e.substring(t+1);const n=r.indexOf("frame=");let a;if(-1!==n){const e=r.substring(n+6);a=parseInt(e,10),r=r.substring(0,n-1)}return{scheme:e.substring(0,t),url:r,frame:a,pixelDataFrame:void 0!==a?a-1:void 0}};function Fe(e){const{dicomParser:t}=xt;let r,n=t.parseDicom(e,{untilTag:"x7fe00010"});n.elements.x7fe00010||console.warn("Pixel data not found!");try{r=t.parseDicom(e)}catch(e){console.error(e),console.log("pixel data dataset:",e.dataSet),r=e.dataSet}return n.elements.x7fe00010=r.elements.x7fe00010,n=function(e){const t=e.elements.x7fe00010.fragments,r=e.byteArray.length;for(const e of t){const{position:t,length:n}=e;n>r-t&&(console.log(`Truncated fragment, changing fragment length from ${e.length} to ${r-t}`),e.length=r-t)}return e}(n),n}async function Be(e,t,r){const n=Fe(e),{uri:a,imageId:o,fileTotalLength:i}=r;return n.fetchMore=async function(s){const l=Object.assign({uri:a,imageId:o,fetchedLength:e.length,lengthToFetch:i-e.length},s),{fetchedLength:c,lengthToFetch:u}=l,{arrayBuffer:f}=await t(a,o,{byteRange:`${c}-${c+u}`}),d=new Uint8Array(f),m=new Uint8Array(n.byteArray.length+d.length);return m.set(n.byteArray),m.set(d,n.byteArray.length),Be(m,t,r)},n}function Ue(e,t,r){const n={};(t?Object.values(t.items[0].dataSet.elements):[]).map((e=>n[e.tag]=e));const a={};return(e?Object.values(e.items[r-1].dataSet.elements):[]).map((e=>a[e.tag]=e)),{shared:n,perFrame:a}}function Ne(e){if(!e)return;const{elements:t,...r}=e,{x52009230:n,x52009229:a,...o}=t;return{NumberOfFrames:e.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o,otherAttributtes:r}}function je(e){if(We[e])return We[e]}function $e(e){if(!e)return!1;const t=e.intString("x00280008");return t&&t>1}const Ge={_get:je,generateMultiframeWADOURIs:function(e){const t=[],r=je(e);if($e(r)){const n=r.intString("x00280008");for(let r=1;r<=n;r++)t.push(`${e}&frame=${r}`)}else t.push(e);return t},retrieveMultiframeDataset:function(e){const t=function(e){return e.indexOf("&frame=")}(e),r=-1===t?e:e.slice(0,t),n=parseInt(e.slice(t+7),10)||1;let a;return a=We[r]?We[r].dataSet:void 0,{dataSet:a,frame:n}},isMultiframeDataset:function(e){return $e(je(e))}};let Ve=0,We={},qe={};function Ze(){return{cacheSizeInBytes:Ve,numberOfDataSetsCached:Object.keys(We).length}}const Ye={isLoaded:function(e){return void 0!==We[e]},load:function(e,t=B,r){const{cornerstone:n,dicomParser:a}=xt;if(We[e])return new Promise((t=>{We[e].cacheCount++,t(We[e].dataSet)}));if(qe[e])return qe[e].cacheCount++,qe[e];const o=t(e,r),i=new Promise(((s,l)=>{o.then((async function(o){const c={isPartialContent:!1,fileTotalLength:null};if(!(o instanceof ArrayBuffer)){if(!o.arrayBuffer)return l(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));c.isPartialContent=o.flags.isPartialContent,c.fileTotalLength=o.flags.fileTotalLength,o=o.arrayBuffer}const u=new Uint8Array(o);let f;try{f=c.isPartialContent?await Be(u,t,{uri:e,imageId:r,fileTotalLength:c.fileTotalLength}):a.parseDicom(u)}catch(e){return l(e)}We[e]={dataSet:f,cacheCount:i.cacheCount},Ve+=f.byteArray.length,s(f),n.triggerEvent(n.events,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Ze()})}),l).then((()=>{delete qe[e]}),(()=>{delete qe[e]}))}));return i.cacheCount=1,qe[e]=i,i},unload:function(e){const{cornerstone:t}=xt;We[e]&&(We[e].cacheCount--,0===We[e].cacheCount&&(Ve-=We[e].dataSet.byteArray.length,delete We[e],t.triggerEvent(t.events,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Ze()})))},getInfo:Ze,purge:function(){We={},qe={},Ve=0},get:function(e){let t;if(e.includes("&frame=")){const{frame:r,dataSet:n}=Ge.retrieveMultiframeDataset(e);t=function(e,t){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o}=Ne(t);if(n||r>1){const{shared:r,perFrame:i}=Ue(n,a,e),s={elements:{...o,...r,...i}},l=Object.create(t);return Object.assign(l,s)}return t}(r,n)}else We[e]&&(t=We[e].dataSet);return t},update:function(e,t){const r=We[e];r?(Ve-=r.dataSet.byteArray.length,r.dataSet=t,Ve+=t.byteArray.length,xt.cornerstone.triggerEvent(xt.cornerstone.events,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Ze()})):console.error(`No loaded dataSet for uri ${e}`)}};function ze(e,t){const r=e.string("x00080008");if(r){const e=r.split("\\");if(e.length>t)return e[t]}}function He(e){let t=Me(e,"x00200037",6);return!t&&e.elements.x00209116&&(t=Me(e.elements.x00209116.items[0].dataSet,"x00200037",6)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return t}(e)),t}function Qe(e){let t=Me(e,"x00200032",3);return!t&&e.elements.x00209113&&(t=Me(e.elements.x00209113.items[0].dataSet,"x00200032",3)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return t}(e)),t}function Xe(e){let t=Me(e,"x00280030",2);return!t&&e.elements.x00289110&&(t=Me(e.elements.x00289110.items[0].dataSet,"x00280030",2)),t}function Ke(e){let t;return e.elements.x00180050?t=e.floatString("x00180050"):e.elements.x00289110&&e.elements.x00289110.items.length&&e.elements.x00289110.items[0].dataSet.elements.x00180050&&(t=e.elements.x00289110.items[0].dataSet.floatString("x00180050")),t}const Je=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(Array.isArray(r))return;const o=Re(r);if(t===n.MULTIFRAME){const e=Ge.retrieveMultiframeDataset(o.url);if(!e.dataSet)return;const t=function(e,t){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a}=Ne(e);if(n||r>1){const{shared:e,perFrame:o}=Ue(n,a,t);return{NumberOfFrames:r,PerFrameFunctionalInformation:o,SharedFunctionalInformation:e}}return{NumberOfFrames:r}}(e.dataSet,e.frame);return t}let i=o.url;o.frame&&(i=`${i}&frame=${o.frame}`);const s=Ye.get(i);if(s){if(t===n.GENERAL_STUDY)return{studyDescription:s.string("x00081030"),studyDate:a.parseDA(s.string("x00080020")),studyTime:a.parseTM(s.string("x00080030")||""),accessionNumber:s.string("x00080050")};if(t===n.GENERAL_SERIES)return{modality:s.string("x00080060"),seriesInstanceUID:s.string("x0020000e"),seriesNumber:s.intString("x00200011"),studyInstanceUID:s.string("x0020000d"),seriesDate:a.parseDA(s.string("x00080021")),seriesTime:a.parseTM(s.string("x00080031")||""),acquisitionDate:a.parseDA(s.string("x00080022")),acquisitionTime:a.parseTM(s.string("x00080032")||"")};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:s.string("x00080018"),instanceNumber:s.intString("x00200013"),lossyImageCompression:s.string("x00282110"),lossyImageCompressionRatio:s.floatString("x00282112"),lossyImageCompressionMethod:s.string("x00282114")};if(t===n.PATIENT)return{patientID:s.string("x00100020"),patientName:s.string("x00100010")};if(t===n.PATIENT_STUDY)return{patientAge:s.intString("x00101010"),patientSize:s.floatString("x00101020"),patientSex:s.string("x00100040"),patientWeight:s.floatString("x00101030")};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=s.string("x00080060"),t=ze(s,2);return{modality:e,imageType:s.string("x00080008"),imageSubType:t,imageOrientationPatient:He(s),imagePositionPatient:Qe(s),sliceThickness:Ke(s),pixelSpacing:Xe(s),numberOfFrames:s.uint16("x00280008"),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=He(s),t=Qe(s),r=Xe(s),n=Ke(s);let a=null,o=null;r&&(o=r[0],a=r[1]);let i=null,l=null;return e&&(i=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],l=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:s.string("x00200052"),rows:s.uint16("x00280010"),columns:s.uint16("x00280011"),imageOrientationPatient:e,rowCosines:i,columnCosines:l,imagePositionPatient:t,sliceThickness:n,sliceLocation:s.floatString("x00201041"),pixelSpacing:r,rowPixelSpacing:o,columnPixelSpacing:a}}if(t===n.CINE)return{frameTime:s.floatString("x00181063")};if(t===n.IMAGE_PIXEL)return _e(s);if(t===n.VOI_LUT){const e=Oe(s);return{windowCenter:Me(s,"x00281050",1),windowWidth:Me(s,"x00281051",1),voiLUTSequence:Ce(e,s.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:s.floatString("x00281052"),rescaleSlope:s.floatString("x00281053"),rescaleType:s.string("x00281054"),modalityLUTSequence:Ce(s.uint16("x00280103"),s.elements.x00283000)};if(t===n.SOP_COMMON)return{sopClassUID:s.string("x00080016"),sopInstanceUID:s.string("x00080018")};if(t===n.PET_ISOTOPE){const e=s.elements.x00540016;if(void 0===e)return;const t=e.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(t.string("x00181072")||""),radionuclideTotalDose:t.floatString("x00181074"),radionuclideHalfLife:t.floatString("x00181075")}}}if(t===n.OVERLAY_PLANE)return function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=e.elements[`${n}3000`];if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.byteArray[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:e.uint16(`${n}0010`),columns:e.uint16(`${n}0011`),type:e.string(`${n}0040`),x:e.int16(`${n}0050`,1)-1,y:e.int16(`${n}0050`,0)-1,pixelData:o,description:e.string(`${n}0022`),label:e.string(`${n}1500`),roiArea:e.string(`${n}1301`),roiMean:e.string(`${n}1302`),roiStandardDeviation:e.string(`${n}1303`)})}return{overlays:t}}(s);if("transferSyntax"===t){let e;try{e=s.string("x00020010")}catch(e){}return{transferSyntaxUID:e}}return t===n.PET_SERIES?{correctedImage:s.string("x00280051"),units:s.string("x00541001"),decayCorrection:s.string("x00541102")}:t===n.PET_IMAGE?{frameReferenceTime:s.floatString(s.string("x00541300")||""),actualFrameDuration:s.intString(s.string("x00181242"))}:"instance"===t?D(r,e,P):void 0}};let et=[];const tt={add:function(e){return"dicomfile:"+(et.push(e)-1)},get:function(e){return et[e]},remove:function(e){et[e]=void 0},purge:function(){et=[]}};var rt=a(713);function nt(e,t){const{dicomParser:r}=xt;if(e.elements.x7fe00010&&e.elements.x7fe00010.basicOffsetTable.length)return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t);if(function(e){return e.intString("x00280008")!==e.elements.x7fe00010.fragments.length}(e)){const n=r.createJPEGBasicOffsetTable(e,e.elements.x7fe00010);return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t,n)}const n=e.elements.x7fe00010.fragments,a=new rt.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),o=(0,rt.readSequenceItem)(a);if("xfffee000"!==o.tag)throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";a.seek(o.length);const i=a.position;if(t+1>n.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const s=i+n[t].offset+8,l=n[t].length;return new Uint8Array(a.byteArray.buffer.slice(a.byteArray.byteOffset+s,a.byteArray.byteOffset+s+l))}function at(e,t){return e&1<<t}const ot=function(e,t,r){const n=new Uint8Array(r);for(let a=0;a<r;a++){const r=e[Math.floor(a/8)+t],o=a%8;n[a]=at(r,o)?1:0}return n};const it=function(e,t){const r=e.elements.x7fe00010||e.elements.x7fe00008,n=e.uint16("x00280100"),a=e.uint16("x00280010"),o=e.uint16("x00280011");let i=e.uint16("x00280002");"YBR_FULL_422"===e.string("x00280004")&&(i=2,console.warn("Using SamplesPerPixel of 2 for YBR_FULL_422 photometric interpretation.\n See http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.3.html for more information."));const s=r.dataOffset,l=a*o*i;let c;if(8===n){if(c=s+t*l,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+l))}if(16===n){if(c=s+t*l*2,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+2*l))}if(1===n){if(c=s+t*l*.125,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return ot(e.byteArray,c,l)}if(32===n){if(c=s+t*l*4,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+4*l))}throw new Error("unsupported pixel format")};const st=function(e){const t=Re(e),r=parseInt(t.url,10),n=tt.get(r);return new Promise(((e,t)=>{const r=new FileReader;r.onload=t=>{const r=t.target.result;e(r)},r.onerror=t,r.readAsArrayBuffer(n)}))};const lt=function(e,t=0){const r=e.elements.x7fe00010||e.elements.x7fe00008;return r?r.encapsulatedPixelData?nt(e,t):it(e,t):null};function ct(e,t,r=0,n,a,o){const i=(new Date).getTime(),s={cancelFn:void 0,promise:void 0};return s.promise=new Promise(((l,c)=>{e.then((e=>{const u=lt(e,r),f=e.string("x00020010"),d=(new Date).getTime(),m=ye(t,u,f,a);!function(e,t){e.decache=function(){const e=Re(t);Ye.unload(e.url)}}(s,t),m.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=d-i,t.totalTimeInMS=r-i,void 0!==o&&void 0!==o.imageDoneCallback&&o.imageDoneCallback(t),l(t)}),(function(t){c({error:t,dataSet:e})}))}),(function(e){c({error:e})}))})),s}function ut(e){return"dicomweb"===e||"wadouri"===e?B:"dicomfile"===e?st:void 0}function ft(e,t={}){const r=Re(e);delete(t=Object.assign({},t)).loader;const n=ut(r.scheme);if(Ye.isLoaded(r.url)){return function(e,t,r=0,n,a){const o=(new Date).getTime();return{promise:new Promise(((i,s)=>{const l=(new Date).getTime();let c;try{const n=lt(e,r),o=e.string("x00020010");c=ye(t,n,o,a)}catch(t){return void s({error:t,dataSet:e})}c.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=l-o,t.totalTimeInMS=r-o,i(t)}),s)})),cancelFn:void 0}}(Ye.get(r.url,n,e),e,r.pixelDataFrame,r.url,t)}return ct(Ye.load(r.url,n,e),e,r.frame,r.url,t)}const dt={metaData:{getImagePixelModule:_e,getLUTs:Ce,getModalityLUTOutputPixelRepresentation:Oe,getNumberValues:Me,metaDataProvider:Je},dataSetCacheManager:Ye,fileManager:tt,getEncapsulatedImageFrame:nt,getUncompressedImageFrame:it,loadFileRequest:st,loadImageFromPromise:ct,getLoaderForScheme:ut,loadImage:ft,parseImageId:Re,unpackBinaryFrame:ot,register:function(e){e.registerImageLoader("dicomweb",ft),e.registerImageLoader("wadouri",ft),e.registerImageLoader("dicomfile",ft),e.metaData.addProvider(Je)}};const mt=function(e){Ie.register(e),dt.register(e)};let gt,ht;const pt={set cornerstone(e){gt=e,mt(gt)},get cornerstone(){if(!gt){if(gt=window&&window.cornerstone,!gt)throw new Error("cornerstoneDICOMImageLoader requires a copy of Cornerstone to work properly. Please add cornerstoneDICOMImageLoader.external.cornerstone = cornerstone; to your application.");mt(gt)}return gt},set dicomParser(e){ht=e},get dicomParser(){if(!ht){if(!window||!window.dicomParser)throw new Error("cornerstoneDICOMImageLoader requires a copy of dicomParser to work properly. Please add cornerstoneDICOMImageLoader.external.dicomParser = dicomParser; to your application.");ht=window.dicomParser}return ht}},xt=pt;function bt(e,t){const r=e.length,n=new Uint8ClampedArray(r);for(let a=0;a<r;++a)n[a]=e[a]>>t;return n}function wt(e,t,r){const n=e[`${t}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const a=xt.cornerstone.metaData.get("imagePixelModule",e.imageId);return a&&"function"==typeof a.then?a.then((e=>e?e[`${t}PaletteColorLookupTableData`]:r)):Promise.resolve(a?a[`${t}PaletteColorLookupTableData`]:r)}function yt(e,t,r){const n=e.columns*e.rows,a=e.pixelData;Promise.all([wt(e,"red",null),wt(e,"green",null),wt(e,"blue",null)]).then((([o,i,s])=>{if(!o||!i||!s)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const l=o.length;let c=0,u=0;const f=e.redPaletteColorLookupTableDescriptor[1],d=8===e.redPaletteColorLookupTableDescriptor[2]?0:8,m=bt(o,d),g=bt(i,d),h=bt(s,d);if(r)for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e],t[u++]=255}else for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e]}}))}const kt=function(e){R(e)};const Tt=function(e,t){if(t=t||e.transferSyntax,8===e.bitsAllocated&&"1.2.840.10008.1.2.4.50"===t&&(3===e.samplesPerPixel||4===e.samplesPerPixel))return!0},St={convertRGBColorByPixel:e,convertRGBColorByPlane:t,convertYBRFullByPixel:r,convertYBRFullByPlane:n,convertPALETTECOLOR:yt,wadouri:dt,wadors:Ie,configure:kt,convertColorSpace:X,createImage:ye,decodeImageFrame:he,decodeJPEGBaseline8BitColor:J,getImageFrame:pe,getPixelData:z,getMinMax:H,isColorImage:xe,isJPEGBaseline8BitColor:Tt,webWorkerManager:de,internal:U,external:pt}})(),o})()));
|
|
102119
102342
|
|
|
102120
102343
|
|
|
102121
102344
|
/***/ }),
|
|
@@ -258042,7 +258265,7 @@ var selectOrdinal = function selectOrdinal() {
|
|
|
258042
258265
|
/******/ // This function allow to reference async chunks
|
|
258043
258266
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
258044
258267
|
/******/ // return url for filenames based on template
|
|
258045
|
-
/******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg","584":"suv-peak-worker"}[chunkId] || chunkId) + ".bundle." + {"
|
|
258268
|
+
/******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg","584":"suv-peak-worker"}[chunkId] || chunkId) + ".bundle." + {"54":"829e14ec12c2b41a4323","94":"ae3ca435b134c95aea2e","109":"b4fee2a22b622839baf5","121":"27d181784f24551bc546","236":"79a374f5fdf7fde431f4","243":"7891b41d969264043783","295":"c935ed0430aa026f7591","297":"194d8985ab974839b5b6","325":"bfb7de5a397beae16d24","342":"17f0c50a27c0ba1f3846","370":"e4cd6c20d3496c949374","445":"38c6d2af64e41cd7c614","448":"375bbf6d00a23e35f229","481":"a2b01ffe06a262fa9375","483":"016de3c3ec209d9fa42a","487":"205821cf073b4d0d2e71","525":"d3a56dc9f62df5e11019","530":"17b9a34fefff133e5379","544":"170c67e76a6900a9a644","545":"c9cc3bd30adc9904cf64","550":"53604ec87839bd9b4a49","572":"36ddebc98d8b109edf33","574":"b369b11b04c3e080f0b3","584":"f4df597fab47d977d7f3","644":"1e77691d2eeb96a423b0","682":"fdd752d2920107f695fb","699":"fee3d1c6609ecc557a9a","721":"d01a6829ac9b0abef67d","722":"1242e0348afc63ca4f5e","726":"c8de818cf1a3ff0cf7d2","776":"bb8a64b917ff1e559734","783":"f4f09b94ebe4d1a466b1","835":"4c0eaa2c1a427ee41817","862":"59bb164ca7e871a33e44","889":"5b10c495e1442d648ffc","905":"1ba21a0406473fc92696","907":"b199f25916a94c4ebb97","914":"2b3a856b7d41ac8298e6","931":"d270a1fda9a2836c3cc5","939":"9d93b2e47c52338747a2","961":"d1b25d8f354bde3be17c","981":"808058a6555d322675e1","989":"b929ddc23c16980560de","998":"df083f740270855652bd"}[chunkId] + ".js";
|
|
258046
258269
|
/******/ };
|
|
258047
258270
|
/******/ })();
|
|
258048
258271
|
/******/
|
|
@@ -258213,7 +258436,7 @@ var selectOrdinal = function selectOrdinal() {
|
|
|
258213
258436
|
/******/ };
|
|
258214
258437
|
/******/
|
|
258215
258438
|
/******/ __webpack_require__.f.miniCss = (chunkId, promises) => {
|
|
258216
|
-
/******/ var cssChunks = {"
|
|
258439
|
+
/******/ var cssChunks = {"325":1,"481":1,"544":1,"550":1,"574":1,"998":1};
|
|
258217
258440
|
/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
|
|
258218
258441
|
/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
|
|
258219
258442
|
/******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {
|
|
@@ -258337,20 +258560,17 @@ var selectOrdinal = function selectOrdinal() {
|
|
|
258337
258560
|
/******/ /* webpack/runtime/chunk prefetch trigger */
|
|
258338
258561
|
/******/ (() => {
|
|
258339
258562
|
/******/ var chunkToChildrenMap = {
|
|
258340
|
-
/******/ "
|
|
258563
|
+
/******/ "243": [
|
|
258341
258564
|
/******/ 121
|
|
258342
258565
|
/******/ ],
|
|
258343
|
-
/******/ "321": [
|
|
258344
|
-
/******/ 574
|
|
258345
|
-
/******/ ],
|
|
258346
258566
|
/******/ "325": [
|
|
258347
258567
|
/******/ 530,
|
|
258348
258568
|
/******/ 862
|
|
258349
258569
|
/******/ ],
|
|
258350
|
-
/******/ "
|
|
258351
|
-
/******/
|
|
258570
|
+
/******/ "550": [
|
|
258571
|
+
/******/ 574
|
|
258352
258572
|
/******/ ],
|
|
258353
|
-
/******/ "
|
|
258573
|
+
/******/ "721": [
|
|
258354
258574
|
/******/ 530
|
|
258355
258575
|
/******/ ],
|
|
258356
258576
|
/******/ "907": [
|
|
@@ -258358,6 +258578,9 @@ var selectOrdinal = function selectOrdinal() {
|
|
|
258358
258578
|
/******/ ],
|
|
258359
258579
|
/******/ "961": [
|
|
258360
258580
|
/******/ 939
|
|
258581
|
+
/******/ ],
|
|
258582
|
+
/******/ "998": [
|
|
258583
|
+
/******/ 295
|
|
258361
258584
|
/******/ ]
|
|
258362
258585
|
/******/ };
|
|
258363
258586
|
/******/ __webpack_require__.f.prefetch = (chunkId, promises) => (Promise.all(promises).then(() => {
|