@ohif/app 3.9.0-beta.2 → 3.9.0-beta.21
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.a80b1511ef4b302fb7cc.js → 117.bundle.772ce244eee25d9b7316.js} +50 -15
- package/dist/{121.bundle.a6063e0272df61cefccc.js → 121.bundle.b582314ec0024fdf2d15.js} +1 -0
- package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.3221590f5e6855086889.js} +318 -41
- package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.d3a631d79ee8952e3c60.js} +388 -55
- package/dist/{188.bundle.b31173cb165eb21c3ec6.js → 243.bundle.866dc990219240efa81f.js} +8 -8
- package/dist/{325.bundle.47f5b8a085837ee6b512.js → 325.bundle.d8bf863ddebb832dcaab.js} +10 -11
- package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.67c49f2e52829a5696a4.js} +7 -0
- package/dist/{473.bundle.6cd4be953853f35b29c3.js → 367.bundle.6a0746aeca702ae6eba6.js} +279 -29
- package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.baa389d217c390b0e92b.js} +81 -10
- package/dist/{206.bundle.e98e6ba9bfd9f36dc508.js → 390.bundle.504391bda56219cc9ef9.js} +37 -26
- package/dist/{448.bundle.94a6da9fac68fc69f8c2.js → 448.bundle.67539d1552db51aaca85.js} +2 -2
- package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
- package/dist/{487.bundle.71a2893d94d214741e13.js → 487.bundle.3f0e64e16189f92fcebc.js} +2 -2
- package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.7d5003758fa3ffbb344b.js} +750 -247
- package/dist/{530.bundle.207b38c15c4c01e4db0e.js → 530.bundle.17b9a34fefff133e5379.js} +3 -3
- package/dist/{544.bundle.b005b8c8b9b08aaa3324.js → 544.bundle.4d1fb477b572f50f4220.js} +3 -3
- package/dist/{321.bundle.07e853e559665d6e15b6.js → 550.bundle.41e6a1eacc49db2358c5.js} +50 -19
- package/dist/{574.bundle.88b619217339b5e93d3e.js → 574.bundle.0bcd9d70f4b1eea48082.js} +35 -32
- package/dist/{41.bundle.faaf3b05d1083e3c8831.js → 682.bundle.066197792e6a0d01b669.js} +26 -6
- package/dist/{699.bundle.8210579412d62beafa91.js → 699.bundle.428f20dd60662f1e5edd.js} +32 -3
- package/dist/{669.bundle.84745782e36f25eb05bc.js → 721.bundle.d21827d733e8811e0b18.js} +73 -73
- package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
- package/dist/{724.bundle.519141a0c4d0d1a3192a.js → 776.bundle.981d8227b59f97f11dd8.js} +17 -12
- package/dist/{862.bundle.4a0bd82b803ba158018f.js → 862.bundle.7a102f04ef4d12686894.js} +1 -1
- package/dist/{889.bundle.9fbab4f0bbf643306879.js → 889.bundle.ed8937ba0c5455ed894d.js} +8 -8
- package/dist/{905.bundle.7e940707e10096970ca1.js → 905.bundle.b101088a20887c27945d.js} +2 -2
- package/dist/{907.bundle.f5aa0414d0f77e575a1f.js → 907.bundle.e8d22a858051cd255c9c.js} +2 -2
- package/dist/{94.bundle.ecaaba845625d93bad6b.js → 94.bundle.b4f45b237188a8550a35.js} +38 -8
- package/dist/{961.bundle.ff7da8afd7d8495d0bbe.js → 961.bundle.b86b71c712fa83e526d3.js} +2 -2
- package/dist/{7.bundle.3a17fe8266b2149334a6.js → 981.bundle.7b03f5a200c7dbcbaf1d.js} +10 -9
- package/dist/{594.bundle.01b124740b2b3f8a6d20.js → 989.bundle.e81da55a6954a12e5ea1.js} +5 -5
- package/dist/{633.bundle.ff1a1d0bdb0d1ef143af.js → 998.bundle.37015da90e590043cda0.js} +7 -7
- package/dist/app-config.js +5 -1
- package/dist/{app.bundle.c53b289734d5f7178a39.js → app.bundle.a6bfec031243c17f92e9.js} +686 -555
- 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.1799686b019040500219.js → polySeg.bundle.b0392069f29e128b4efa.js} +3 -3
- package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.f823d84fae4ce6865f9a.js} +3 -3
- package/dist/sw.js +1 -1
- package/package.json +20 -19
- /package/dist/{321.css → 550.css} +0 -0
- /package/dist/{783.bundle.86c38ee55f4d01b111ca.js → 783.bundle.c5b7e2433ecb9d8e2541.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
|
|
@@ -879,6 +879,7 @@ function WorkList({
|
|
|
879
879
|
const studyTime = time && moment_default()(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).isValid() && moment_default()(time, ['HH', 'HHmm', 'HHmmss', 'HHmmss.SSS']).format(t('Common:localTimeFormat', 'hh:mm A'));
|
|
880
880
|
return {
|
|
881
881
|
dataCY: `studyRow-${studyInstanceUid}`,
|
|
882
|
+
clickableCY: studyInstanceUid,
|
|
882
883
|
row: [{
|
|
883
884
|
key: 'patientName',
|
|
884
885
|
content: patientName ? /*#__PURE__*/react.createElement(ui_src/* TooltipClipboard */.ax, null, patientName) : /*#__PURE__*/react.createElement("span", {
|
|
@@ -1004,8 +1005,8 @@ function WorkList({
|
|
|
1004
1005
|
};
|
|
1005
1006
|
});
|
|
1006
1007
|
const hasStudies = numOfStudies > 0;
|
|
1007
|
-
const versionNumber = "3.9.0-beta.
|
|
1008
|
-
const commitHash = "
|
|
1008
|
+
const versionNumber = "3.9.0-beta.21";
|
|
1009
|
+
const commitHash = "8960b89911a9342d93bf1a62bec97a696f101fd4";
|
|
1009
1010
|
const menuOptions = [{
|
|
1010
1011
|
title: t('Header:About'),
|
|
1011
1012
|
icon: 'info',
|
|
@@ -1132,7 +1133,7 @@ WorkList.propTypes = {
|
|
|
1132
1133
|
getConfig: (prop_types_default()).func
|
|
1133
1134
|
}).isRequired,
|
|
1134
1135
|
isLoadingData: (prop_types_default()).bool.isRequired,
|
|
1135
|
-
servicesManager: prop_types_default().
|
|
1136
|
+
servicesManager: (prop_types_default()).object.isRequired
|
|
1136
1137
|
};
|
|
1137
1138
|
const defaultFilterValues = {
|
|
1138
1139
|
patientName: '',
|
|
@@ -1174,7 +1175,7 @@ function WorkList_getQueryFilterValues(params) {
|
|
|
1174
1175
|
sortBy: params.get('sortby'),
|
|
1175
1176
|
sortDirection: params.get('sortdirection'),
|
|
1176
1177
|
pageNumber: _tryParseInt(params.get('pagenumber'), undefined),
|
|
1177
|
-
resultsPerPage: _tryParseInt(params.get('
|
|
1178
|
+
resultsPerPage: _tryParseInt(params.get('resultsPerPage'), undefined),
|
|
1178
1179
|
datasources: params.get('datasources'),
|
|
1179
1180
|
configUrl: params.get('configurl')
|
|
1180
1181
|
};
|
|
@@ -1864,7 +1865,7 @@ function ViewerViewportGrid(props) {
|
|
|
1864
1865
|
}
|
|
1865
1866
|
ViewerViewportGrid.propTypes = {
|
|
1866
1867
|
viewportComponents: (prop_types_default()).array.isRequired,
|
|
1867
|
-
servicesManager: prop_types_default().instanceOf(
|
|
1868
|
+
servicesManager: prop_types_default().instanceOf(Object).isRequired
|
|
1868
1869
|
};
|
|
1869
1870
|
ViewerViewportGrid.defaultProps = {
|
|
1870
1871
|
viewportComponents: []
|
|
@@ -1924,27 +1925,27 @@ modes.push("@ohif/mode-preclinical-4d");
|
|
|
1924
1925
|
async function loadModule(module) {
|
|
1925
1926
|
if (typeof module !== 'string') return module;
|
|
1926
1927
|
if (module === "@ohif/extension-default") {
|
|
1927
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1928
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(931), __webpack_require__.e(390), __webpack_require__.e(481)]).then(__webpack_require__.bind(__webpack_require__, 47390));
|
|
1928
1929
|
return imported.default;
|
|
1929
1930
|
}
|
|
1930
1931
|
if (module === "@ohif/extension-cornerstone") {
|
|
1931
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1932
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __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
1933
|
return imported.default;
|
|
1933
1934
|
}
|
|
1934
1935
|
if (module === "@ohif/extension-measurement-tracking") {
|
|
1935
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1936
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __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(390), __webpack_require__.e(721), __webpack_require__.e(325)]).then(__webpack_require__.bind(__webpack_require__, 84284));
|
|
1936
1937
|
return imported.default;
|
|
1937
1938
|
}
|
|
1938
1939
|
if (module === "@ohif/extension-cornerstone-dicom-sr") {
|
|
1939
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1940
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(721)]).then(__webpack_require__.bind(__webpack_require__, 14721));
|
|
1940
1941
|
return imported.default;
|
|
1941
1942
|
}
|
|
1942
1943
|
if (module === "@ohif/extension-cornerstone-dicom-seg") {
|
|
1943
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1944
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __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(390), __webpack_require__.e(998)]).then(__webpack_require__.bind(__webpack_require__, 32009));
|
|
1944
1945
|
return imported.default;
|
|
1945
1946
|
}
|
|
1946
1947
|
if (module === "@ohif/extension-cornerstone-dynamic-volume") {
|
|
1947
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1948
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(722), __webpack_require__.e(487)]).then(__webpack_require__.bind(__webpack_require__, 26487));
|
|
1948
1949
|
return imported.default;
|
|
1949
1950
|
}
|
|
1950
1951
|
if (module === "@ohif/extension-dicom-microscopy") {
|
|
@@ -1960,7 +1961,7 @@ async function loadModule(module) {
|
|
|
1960
1961
|
return imported.default;
|
|
1961
1962
|
}
|
|
1962
1963
|
if (module === "@ohif/extension-tmtv") {
|
|
1963
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1964
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(981)]).then(__webpack_require__.bind(__webpack_require__, 93981));
|
|
1964
1965
|
return imported.default;
|
|
1965
1966
|
}
|
|
1966
1967
|
if (module === "@ohif/extension-test") {
|
|
@@ -1968,11 +1969,11 @@ async function loadModule(module) {
|
|
|
1968
1969
|
return imported.default;
|
|
1969
1970
|
}
|
|
1970
1971
|
if (module === "@ohif/extension-cornerstone-dicom-rt") {
|
|
1971
|
-
const imported = await __webpack_require__.e(/* import() */
|
|
1972
|
+
const imported = await __webpack_require__.e(/* import() */ 243).then(__webpack_require__.bind(__webpack_require__, 5243));
|
|
1972
1973
|
return imported.default;
|
|
1973
1974
|
}
|
|
1974
1975
|
if (module === "@ohif/mode-longitudinal") {
|
|
1975
|
-
const imported = await __webpack_require__.e(/* import() */
|
|
1976
|
+
const imported = await __webpack_require__.e(/* import() */ 682).then(__webpack_require__.bind(__webpack_require__, 82682));
|
|
1976
1977
|
return imported.default;
|
|
1977
1978
|
}
|
|
1978
1979
|
if (module === "@ohif/mode-segmentation") {
|
|
@@ -1980,7 +1981,7 @@ async function loadModule(module) {
|
|
|
1980
1981
|
return imported.default;
|
|
1981
1982
|
}
|
|
1982
1983
|
if (module === "@ohif/mode-tmtv") {
|
|
1983
|
-
const imported = await __webpack_require__.e(/* import() */
|
|
1984
|
+
const imported = await __webpack_require__.e(/* import() */ 776).then(__webpack_require__.bind(__webpack_require__, 40776));
|
|
1984
1985
|
return imported.default;
|
|
1985
1986
|
}
|
|
1986
1987
|
if (module === "@ohif/mode-microscopy") {
|
|
@@ -1996,7 +1997,7 @@ async function loadModule(module) {
|
|
|
1996
1997
|
return imported.default;
|
|
1997
1998
|
}
|
|
1998
1999
|
if (module === "@ohif/mode-basic-dev-mode") {
|
|
1999
|
-
const imported = await __webpack_require__.e(/* import() */
|
|
2000
|
+
const imported = await __webpack_require__.e(/* import() */ 989).then(__webpack_require__.bind(__webpack_require__, 50989));
|
|
2000
2001
|
return imported.default;
|
|
2001
2002
|
}
|
|
2002
2003
|
return (await import( /* webpackIgnore: true */module)).default;
|
|
@@ -2488,20 +2489,18 @@ function ModeRoute({
|
|
|
2488
2489
|
*/
|
|
2489
2490
|
const filters = Array.from(query.keys()).reduce((acc, val) => {
|
|
2490
2491
|
const lowerVal = val.toLowerCase();
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
const seriesUIDs = Mode_getSplitParam(lowerVal, query);
|
|
2495
|
-
return {
|
|
2496
|
-
...acc,
|
|
2497
|
-
seriesInstanceUID: seriesUIDs
|
|
2498
|
-
};
|
|
2499
|
-
}
|
|
2492
|
+
// Not sure why the case matters here - it doesn't in the URL
|
|
2493
|
+
if (lowerVal === 'seriesinstanceuids') {
|
|
2494
|
+
const seriesUIDs = Mode_getSplitParam(lowerVal, query);
|
|
2500
2495
|
return {
|
|
2501
2496
|
...acc,
|
|
2502
|
-
|
|
2497
|
+
seriesInstanceUID: seriesUIDs
|
|
2503
2498
|
};
|
|
2504
2499
|
}
|
|
2500
|
+
return {
|
|
2501
|
+
...acc,
|
|
2502
|
+
[val]: Mode_getSplitParam(lowerVal, query)
|
|
2503
|
+
};
|
|
2505
2504
|
}, {}) ?? {};
|
|
2506
2505
|
let unsubs;
|
|
2507
2506
|
if (route.init) {
|
|
@@ -2842,7 +2841,7 @@ const createRoutes = ({
|
|
|
2842
2841
|
exact: true,
|
|
2843
2842
|
path: route.path,
|
|
2844
2843
|
element: /*#__PURE__*/react.createElement(routes_PrivateRoute, {
|
|
2845
|
-
handleUnauthenticated: userAuthenticationService.handleUnauthenticated
|
|
2844
|
+
handleUnauthenticated: () => userAuthenticationService.handleUnauthenticated()
|
|
2846
2845
|
}, /*#__PURE__*/react.createElement(RouteWithErrorBoundary, {
|
|
2847
2846
|
route: route
|
|
2848
2847
|
}))
|
|
@@ -4706,8 +4705,8 @@ const progressTrackingUtils = {
|
|
|
4706
4705
|
removeObserver
|
|
4707
4706
|
};
|
|
4708
4707
|
/* harmony default export */ const utils_progressTrackingUtils = (progressTrackingUtils);
|
|
4709
|
-
// EXTERNAL MODULE: ../../core/src/utils/isLowPriorityModality.
|
|
4710
|
-
var isLowPriorityModality = __webpack_require__(
|
|
4708
|
+
// EXTERNAL MODULE: ../../core/src/utils/isLowPriorityModality.ts
|
|
4709
|
+
var isLowPriorityModality = __webpack_require__(74420);
|
|
4711
4710
|
// EXTERNAL MODULE: ../../core/src/utils/isImage.js
|
|
4712
4711
|
var isImage = __webpack_require__(8094);
|
|
4713
4712
|
// EXTERNAL MODULE: ../../core/src/utils/isDisplaySetReconstructable.js
|
|
@@ -5348,20 +5347,6 @@ const isImage = SOPClassUID => {
|
|
|
5348
5347
|
|
|
5349
5348
|
/***/ }),
|
|
5350
5349
|
|
|
5351
|
-
/***/ 17610:
|
|
5352
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5353
|
-
|
|
5354
|
-
"use strict";
|
|
5355
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
5356
|
-
/* harmony export */ A: () => (/* binding */ isLowPriorityModality)
|
|
5357
|
-
/* harmony export */ });
|
|
5358
|
-
const LOW_PRIORITY_MODALITIES = Object.freeze(['SEG', 'KO', 'PR', 'SR', 'RTSTRUCT']);
|
|
5359
|
-
function isLowPriorityModality(Modality) {
|
|
5360
|
-
return LOW_PRIORITY_MODALITIES.includes(Modality);
|
|
5361
|
-
}
|
|
5362
|
-
|
|
5363
|
-
/***/ }),
|
|
5364
|
-
|
|
5365
5350
|
/***/ 48085:
|
|
5366
5351
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5367
5352
|
|
|
@@ -6616,7 +6601,7 @@ const detectionOptions = {
|
|
|
6616
6601
|
}
|
|
6617
6602
|
});
|
|
6618
6603
|
;// CONCATENATED MODULE: ../../i18n/package.json
|
|
6619
|
-
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.9.0-beta.
|
|
6604
|
+
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.9.0-beta.20"}');
|
|
6620
6605
|
;// CONCATENATED MODULE: ../../i18n/src/utils.js
|
|
6621
6606
|
const languagesMap = {
|
|
6622
6607
|
ar: 'Arabic',
|
|
@@ -19271,8 +19256,8 @@ ViewportDialogProvider.propTypes = {
|
|
|
19271
19256
|
// EXTERNAL MODULE: ../../../node_modules/lodash.merge/index.js
|
|
19272
19257
|
var lodash_merge = __webpack_require__(40592);
|
|
19273
19258
|
var lodash_merge_default = /*#__PURE__*/__webpack_require__.n(lodash_merge);
|
|
19274
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
19275
|
-
var src = __webpack_require__(
|
|
19259
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
|
|
19260
|
+
var src = __webpack_require__(8633);
|
|
19276
19261
|
;// CONCATENATED MODULE: ../../ui/src/utils/viewportLabels.ts
|
|
19277
19262
|
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
19263
|
/* harmony default export */ const utils_viewportLabels = (viewportLabels);
|
|
@@ -31716,6 +31701,13 @@ const Select_Select = ({
|
|
|
31716
31701
|
placeholder: placeholder,
|
|
31717
31702
|
options: options,
|
|
31718
31703
|
blurInputOnSelect: true,
|
|
31704
|
+
menuPortalTarget: document.body,
|
|
31705
|
+
styles: {
|
|
31706
|
+
menuPortal: base => ({
|
|
31707
|
+
...base,
|
|
31708
|
+
zIndex: 9999
|
|
31709
|
+
})
|
|
31710
|
+
},
|
|
31719
31711
|
value: value && Array.isArray(value) ? selectedOptions : value,
|
|
31720
31712
|
onChange: (selectedOptions, {
|
|
31721
31713
|
action
|
|
@@ -32887,7 +32879,6 @@ const MeasurementTable = ({
|
|
|
32887
32879
|
onDelete,
|
|
32888
32880
|
servicesManager
|
|
32889
32881
|
}) => {
|
|
32890
|
-
servicesManager = servicesManager;
|
|
32891
32882
|
const {
|
|
32892
32883
|
customizationService,
|
|
32893
32884
|
measurementService
|
|
@@ -35232,7 +35223,10 @@ const ListMenu = ({
|
|
|
35232
35223
|
}));
|
|
35233
35224
|
};
|
|
35234
35225
|
return /*#__PURE__*/react.createElement("div", {
|
|
35235
|
-
className: "bg-secondary-dark flex flex-col gap-[4px] rounded-md p-1"
|
|
35226
|
+
className: "bg-secondary-dark flex flex-col gap-[4px] overflow-auto rounded-md p-1",
|
|
35227
|
+
style: {
|
|
35228
|
+
maxHeight: 'calc(100vh - 5rem)'
|
|
35229
|
+
}
|
|
35236
35230
|
}, items.map((item, index) => {
|
|
35237
35231
|
return /*#__PURE__*/react.createElement(ListItem, {
|
|
35238
35232
|
key: `ListItem${index}`,
|
|
@@ -37141,7 +37135,8 @@ const StudyListTableRow = props => {
|
|
|
37141
37135
|
expandedContent,
|
|
37142
37136
|
onClickRow,
|
|
37143
37137
|
isExpanded,
|
|
37144
|
-
dataCY
|
|
37138
|
+
dataCY,
|
|
37139
|
+
clickableCY
|
|
37145
37140
|
} = tableData;
|
|
37146
37141
|
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("tr", {
|
|
37147
37142
|
className: "select-none",
|
|
@@ -37164,7 +37159,8 @@ const StudyListTableRow = props => {
|
|
|
37164
37159
|
}, {
|
|
37165
37160
|
'bg-secondary-dark': isExpanded
|
|
37166
37161
|
}),
|
|
37167
|
-
onClick: onClickRow
|
|
37162
|
+
onClick: onClickRow,
|
|
37163
|
+
"data-cy": clickableCY
|
|
37168
37164
|
}, row.map((cell, index) => {
|
|
37169
37165
|
const {
|
|
37170
37166
|
content,
|
|
@@ -37212,7 +37208,8 @@ StudyListTableRow.propTypes = {
|
|
|
37212
37208
|
expandedContent: (prop_types_default()).node.isRequired,
|
|
37213
37209
|
onClickRow: (prop_types_default()).func.isRequired,
|
|
37214
37210
|
isExpanded: (prop_types_default()).bool.isRequired,
|
|
37215
|
-
dataCY: (prop_types_default()).string
|
|
37211
|
+
dataCY: (prop_types_default()).string,
|
|
37212
|
+
clickableCY: (prop_types_default()).string
|
|
37216
37213
|
})
|
|
37217
37214
|
};
|
|
37218
37215
|
/* harmony default export */ const StudyListTable_StudyListTableRow = (StudyListTableRow);
|
|
@@ -59743,7 +59740,6 @@ SwiperSlide.displayName = 'SwiperSlide';
|
|
|
59743
59740
|
|
|
59744
59741
|
|
|
59745
59742
|
|
|
59746
|
-
|
|
59747
59743
|
const LegacySidePanel_borderSize = 4;
|
|
59748
59744
|
const expandedWidth = 248;
|
|
59749
59745
|
const LegacySidePanel_collapsedWidth = 25;
|
|
@@ -59936,7 +59932,7 @@ LegacySidePanel_LegacySidePanel.defaultProps = {
|
|
|
59936
59932
|
defaultComponentOpen: null
|
|
59937
59933
|
};
|
|
59938
59934
|
LegacySidePanel_LegacySidePanel.propTypes = {
|
|
59939
|
-
servicesManager: prop_types_default().
|
|
59935
|
+
servicesManager: (prop_types_default()).object.isRequired,
|
|
59940
59936
|
side: prop_types_default().oneOf(['left', 'right']).isRequired,
|
|
59941
59937
|
className: (prop_types_default()).string,
|
|
59942
59938
|
activeTabIndex: (prop_types_default()).number,
|
|
@@ -62929,7 +62925,8 @@ const InvestigationalUseDialog = ({
|
|
|
62929
62925
|
}, "Learn more about OHIF Viewer")))), /*#__PURE__*/react.createElement(components_Button, {
|
|
62930
62926
|
type: type.primary,
|
|
62931
62927
|
onClick: handleConfirmAndHide,
|
|
62932
|
-
className: "bg-primary-main"
|
|
62928
|
+
className: "bg-primary-main",
|
|
62929
|
+
dataCY: "confirm-and-hide-button"
|
|
62933
62930
|
}, "Confirm and Hide")));
|
|
62934
62931
|
};
|
|
62935
62932
|
InvestigationalUseDialog.propTypes = {
|
|
@@ -63326,7 +63323,7 @@ function _getImageOrientationPatient(image) {
|
|
|
63326
63323
|
|
|
63327
63324
|
/***/ }),
|
|
63328
63325
|
|
|
63329
|
-
/***/
|
|
63326
|
+
/***/ 8633:
|
|
63330
63327
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
63331
63328
|
|
|
63332
63329
|
"use strict";
|
|
@@ -63354,10 +63351,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
63354
63351
|
CS: () => (/* reexport */ ServicesManager),
|
|
63355
63352
|
wb: () => (/* reexport */ services_StateSyncService),
|
|
63356
63353
|
ToolbarService: () => (/* reexport */ ToolBarService),
|
|
63357
|
-
u$: () => (/* reexport */
|
|
63354
|
+
u$: () => (/* reexport */ services_UIDialogService),
|
|
63358
63355
|
zo: () => (/* reexport */ services_UIModalService),
|
|
63359
63356
|
v4: () => (/* reexport */ services_UINotificationService),
|
|
63360
|
-
A$: () => (/* reexport */
|
|
63357
|
+
A$: () => (/* reexport */ services_UIViewportDialogService),
|
|
63361
63358
|
pS: () => (/* reexport */ services_UserAuthenticationService),
|
|
63362
63359
|
sI: () => (/* reexport */ services_ViewportGridService),
|
|
63363
63360
|
Ai: () => (/* reexport */ services_WorkflowStepsService),
|
|
@@ -64172,142 +64169,89 @@ class ServiceProvidersManager {
|
|
|
64172
64169
|
this.providers[serviceName] = provider;
|
|
64173
64170
|
}
|
|
64174
64171
|
}
|
|
64175
|
-
;// CONCATENATED MODULE: ../../core/src/services/UIDialogService/
|
|
64176
|
-
|
|
64177
|
-
* A UI Element Position
|
|
64178
|
-
*
|
|
64179
|
-
* @typedef {Object} ElementPosition
|
|
64180
|
-
* @property {number} top -
|
|
64181
|
-
* @property {number} left -
|
|
64182
|
-
* @property {number} right -
|
|
64183
|
-
* @property {number} bottom -
|
|
64184
|
-
*/
|
|
64172
|
+
;// CONCATENATED MODULE: ../../core/src/services/UIDialogService/UIDialogService.ts
|
|
64173
|
+
var _UIDialogService;
|
|
64185
64174
|
|
|
64186
|
-
|
|
64187
|
-
|
|
64188
|
-
|
|
64189
|
-
|
|
64190
|
-
|
|
64191
|
-
|
|
64192
|
-
|
|
64193
|
-
|
|
64194
|
-
|
|
64195
|
-
|
|
64196
|
-
|
|
64197
|
-
|
|
64198
|
-
|
|
64199
|
-
* @property {Function} onStop Called when dragging stops.
|
|
64200
|
-
* @property {Function} onDrag Called while dragging.
|
|
64201
|
-
*/
|
|
64202
|
-
|
|
64203
|
-
const UIDialogService_name = 'uiDialogService';
|
|
64204
|
-
const publicAPI = {
|
|
64205
|
-
name: UIDialogService_name,
|
|
64206
|
-
dismiss: _dismiss,
|
|
64207
|
-
dismissAll: _dismissAll,
|
|
64208
|
-
create: _create,
|
|
64209
|
-
setServiceImplementation
|
|
64210
|
-
};
|
|
64211
|
-
const serviceImplementation = {
|
|
64212
|
-
_dismiss: () => console.warn('dismiss() NOT IMPLEMENTED'),
|
|
64213
|
-
_dismissAll: () => console.warn('dismissAll() NOT IMPLEMENTED'),
|
|
64214
|
-
_create: () => console.warn('create() NOT IMPLEMENTED')
|
|
64215
|
-
};
|
|
64216
|
-
|
|
64217
|
-
/**
|
|
64218
|
-
* Show a new UI dialog;
|
|
64219
|
-
*
|
|
64220
|
-
* @param {DialogProps} props { id, content, contentProps, onStart, onDrag, onStop, centralize, isDraggable, showOverlay, preservePosition, defaultPosition }
|
|
64221
|
-
*/
|
|
64222
|
-
function _create({
|
|
64223
|
-
id,
|
|
64224
|
-
content,
|
|
64225
|
-
contentProps,
|
|
64226
|
-
onStart,
|
|
64227
|
-
onDrag,
|
|
64228
|
-
onStop,
|
|
64229
|
-
centralize = false,
|
|
64230
|
-
preservePosition = true,
|
|
64231
|
-
isDraggable = true,
|
|
64232
|
-
showOverlay = false,
|
|
64233
|
-
onClickOutside,
|
|
64234
|
-
defaultPosition
|
|
64235
|
-
}) {
|
|
64236
|
-
return serviceImplementation._create({
|
|
64175
|
+
class UIDialogService extends pubSubServiceInterface/* PubSubService */.R {
|
|
64176
|
+
constructor() {
|
|
64177
|
+
super(UIDialogService.EVENTS);
|
|
64178
|
+
this.serviceImplementation = {
|
|
64179
|
+
_dismiss: () => console.warn('dismiss() NOT IMPLEMENTED'),
|
|
64180
|
+
_dismissAll: () => console.warn('dismissAll() NOT IMPLEMENTED'),
|
|
64181
|
+
_create: () => console.warn('create() NOT IMPLEMENTED')
|
|
64182
|
+
};
|
|
64183
|
+
this.serviceImplementation = {
|
|
64184
|
+
...this.serviceImplementation
|
|
64185
|
+
};
|
|
64186
|
+
}
|
|
64187
|
+
create({
|
|
64237
64188
|
id,
|
|
64238
64189
|
content,
|
|
64239
64190
|
contentProps,
|
|
64240
64191
|
onStart,
|
|
64241
64192
|
onDrag,
|
|
64242
64193
|
onStop,
|
|
64243
|
-
centralize,
|
|
64244
|
-
preservePosition,
|
|
64245
|
-
isDraggable,
|
|
64246
|
-
|
|
64247
|
-
showOverlay,
|
|
64194
|
+
centralize = false,
|
|
64195
|
+
preservePosition = true,
|
|
64196
|
+
isDraggable = true,
|
|
64197
|
+
showOverlay = false,
|
|
64248
64198
|
defaultPosition
|
|
64249
|
-
})
|
|
64250
|
-
|
|
64251
|
-
|
|
64252
|
-
|
|
64253
|
-
|
|
64254
|
-
|
|
64255
|
-
|
|
64256
|
-
|
|
64257
|
-
|
|
64258
|
-
|
|
64259
|
-
|
|
64260
|
-
|
|
64261
|
-
|
|
64262
|
-
|
|
64263
|
-
|
|
64264
|
-
|
|
64265
|
-
*/
|
|
64266
|
-
function _dismiss({
|
|
64267
|
-
id
|
|
64268
|
-
}) {
|
|
64269
|
-
return serviceImplementation._dismiss({
|
|
64199
|
+
}) {
|
|
64200
|
+
return this.serviceImplementation._create({
|
|
64201
|
+
id,
|
|
64202
|
+
content,
|
|
64203
|
+
contentProps,
|
|
64204
|
+
onStart,
|
|
64205
|
+
onDrag,
|
|
64206
|
+
onStop,
|
|
64207
|
+
centralize,
|
|
64208
|
+
preservePosition,
|
|
64209
|
+
isDraggable,
|
|
64210
|
+
showOverlay,
|
|
64211
|
+
defaultPosition
|
|
64212
|
+
});
|
|
64213
|
+
}
|
|
64214
|
+
dismiss({
|
|
64270
64215
|
id
|
|
64271
|
-
})
|
|
64272
|
-
|
|
64273
|
-
|
|
64274
|
-
|
|
64275
|
-
*
|
|
64276
|
-
*
|
|
64277
|
-
* @param {*} {
|
|
64278
|
-
* dismiss: dismissImplementation,
|
|
64279
|
-
* dismissAll: dismissAllImplementation,
|
|
64280
|
-
* create: createImplementation,
|
|
64281
|
-
* }
|
|
64282
|
-
*/
|
|
64283
|
-
function setServiceImplementation({
|
|
64284
|
-
dismiss: dismissImplementation,
|
|
64285
|
-
dismissAll: dismissAllImplementation,
|
|
64286
|
-
create: createImplementation
|
|
64287
|
-
}) {
|
|
64288
|
-
if (dismissImplementation) {
|
|
64289
|
-
serviceImplementation._dismiss = dismissImplementation;
|
|
64216
|
+
}) {
|
|
64217
|
+
return this.serviceImplementation._dismiss({
|
|
64218
|
+
id
|
|
64219
|
+
});
|
|
64290
64220
|
}
|
|
64291
|
-
|
|
64292
|
-
serviceImplementation._dismissAll
|
|
64221
|
+
dismissAll() {
|
|
64222
|
+
return this.serviceImplementation._dismissAll();
|
|
64293
64223
|
}
|
|
64294
|
-
|
|
64295
|
-
|
|
64224
|
+
setServiceImplementation({
|
|
64225
|
+
dismiss: dismissImplementation,
|
|
64226
|
+
dismissAll: dismissAllImplementation,
|
|
64227
|
+
create: createImplementation
|
|
64228
|
+
}) {
|
|
64229
|
+
if (dismissImplementation) {
|
|
64230
|
+
this.serviceImplementation._dismiss = dismissImplementation;
|
|
64231
|
+
}
|
|
64232
|
+
if (dismissAllImplementation) {
|
|
64233
|
+
this.serviceImplementation._dismissAll = dismissAllImplementation;
|
|
64234
|
+
}
|
|
64235
|
+
if (createImplementation) {
|
|
64236
|
+
this.serviceImplementation._create = createImplementation;
|
|
64237
|
+
}
|
|
64296
64238
|
}
|
|
64297
64239
|
}
|
|
64298
|
-
|
|
64299
|
-
|
|
64300
|
-
|
|
64301
|
-
|
|
64302
|
-
|
|
64303
|
-
|
|
64304
|
-
|
|
64305
|
-
|
|
64306
|
-
|
|
64307
|
-
return publicAPI;
|
|
64308
|
-
}
|
|
64240
|
+
_UIDialogService = UIDialogService;
|
|
64241
|
+
UIDialogService.EVENTS = {};
|
|
64242
|
+
UIDialogService.REGISTRATION = {
|
|
64243
|
+
name: 'uiDialogService',
|
|
64244
|
+
altName: 'UIDialogService',
|
|
64245
|
+
create: ({
|
|
64246
|
+
configuration = {}
|
|
64247
|
+
}) => {
|
|
64248
|
+
return new _UIDialogService();
|
|
64309
64249
|
}
|
|
64310
|
-
}
|
|
64250
|
+
};
|
|
64251
|
+
/* harmony default export */ const UIDialogService_UIDialogService = (UIDialogService);
|
|
64252
|
+
;// CONCATENATED MODULE: ../../core/src/services/UIDialogService/index.ts
|
|
64253
|
+
|
|
64254
|
+
/* harmony default export */ const services_UIDialogService = (UIDialogService_UIDialogService);
|
|
64311
64255
|
;// CONCATENATED MODULE: ../../core/src/services/UIModalService/index.ts
|
|
64312
64256
|
var _UIModalService;
|
|
64313
64257
|
/**
|
|
@@ -64324,7 +64268,7 @@ var _UIModalService;
|
|
|
64324
64268
|
*/
|
|
64325
64269
|
|
|
64326
64270
|
const UIModalService_name = 'uiModalService';
|
|
64327
|
-
const
|
|
64271
|
+
const serviceImplementation = {
|
|
64328
64272
|
_hide: () => console.warn('hide() NOT IMPLEMENTED'),
|
|
64329
64273
|
_show: () => console.warn('show() NOT IMPLEMENTED')
|
|
64330
64274
|
};
|
|
@@ -64349,7 +64293,7 @@ class UIModalService {
|
|
|
64349
64293
|
containerDimensions = null,
|
|
64350
64294
|
contentDimensions = null
|
|
64351
64295
|
}) {
|
|
64352
|
-
return
|
|
64296
|
+
return serviceImplementation._show({
|
|
64353
64297
|
content,
|
|
64354
64298
|
contentProps,
|
|
64355
64299
|
shouldCloseOnEsc,
|
|
@@ -64369,7 +64313,7 @@ class UIModalService {
|
|
|
64369
64313
|
* @returns void
|
|
64370
64314
|
*/
|
|
64371
64315
|
hide() {
|
|
64372
|
-
return
|
|
64316
|
+
return serviceImplementation._hide();
|
|
64373
64317
|
}
|
|
64374
64318
|
|
|
64375
64319
|
/**
|
|
@@ -64385,10 +64329,10 @@ class UIModalService {
|
|
|
64385
64329
|
show: showImplementation
|
|
64386
64330
|
}) {
|
|
64387
64331
|
if (hideImplementation) {
|
|
64388
|
-
|
|
64332
|
+
serviceImplementation._hide = hideImplementation;
|
|
64389
64333
|
}
|
|
64390
64334
|
if (showImplementation) {
|
|
64391
|
-
|
|
64335
|
+
serviceImplementation._show = showImplementation;
|
|
64392
64336
|
}
|
|
64393
64337
|
}
|
|
64394
64338
|
}
|
|
@@ -64494,44 +64438,21 @@ UINotificationService.REGISTRATION = {
|
|
|
64494
64438
|
}
|
|
64495
64439
|
};
|
|
64496
64440
|
/* harmony default export */ const services_UINotificationService = (UINotificationService);
|
|
64497
|
-
;// CONCATENATED MODULE: ../../core/src/services/UIViewportDialogService/
|
|
64498
|
-
|
|
64499
|
-
* Viewport Dialog
|
|
64500
|
-
*
|
|
64501
|
-
* @typedef {Object} ViewportDialogProps
|
|
64502
|
-
* @property {ReactElement|HTMLElement} [content=null] Modal content.
|
|
64503
|
-
* @property {Object} [contentProps=null] Modal content props.
|
|
64504
|
-
* @property {boolean} [viewportId=false] Modal is dismissible via the esc key.
|
|
64505
|
-
*/
|
|
64441
|
+
;// CONCATENATED MODULE: ../../core/src/services/UIViewportDialogService/UIViewportDialogService.ts
|
|
64442
|
+
var _UIViewportDialogService;
|
|
64506
64443
|
|
|
64507
|
-
|
|
64508
|
-
|
|
64509
|
-
|
|
64510
|
-
|
|
64511
|
-
|
|
64512
|
-
|
|
64513
|
-
};
|
|
64514
|
-
|
|
64515
|
-
|
|
64516
|
-
|
|
64517
|
-
}
|
|
64518
|
-
|
|
64519
|
-
/**
|
|
64520
|
-
* Show a new UI viewport dialog on the specified viewportId;
|
|
64521
|
-
*
|
|
64522
|
-
* @param {ViewportDialogProps} props { content, contentProps, viewportId }
|
|
64523
|
-
*/
|
|
64524
|
-
function _show({
|
|
64525
|
-
viewportId,
|
|
64526
|
-
id,
|
|
64527
|
-
type,
|
|
64528
|
-
message,
|
|
64529
|
-
actions,
|
|
64530
|
-
onSubmit,
|
|
64531
|
-
onOutsideClick,
|
|
64532
|
-
onKeyPress
|
|
64533
|
-
}) {
|
|
64534
|
-
return UIViewportDialogService_serviceImplementation._show({
|
|
64444
|
+
class UIViewportDialogService extends pubSubServiceInterface/* PubSubService */.R {
|
|
64445
|
+
constructor() {
|
|
64446
|
+
super(UIViewportDialogService.EVENTS);
|
|
64447
|
+
this.serviceImplementation = {
|
|
64448
|
+
_hide: () => console.warn('hide() NOT IMPLEMENTED'),
|
|
64449
|
+
_show: () => console.warn('show() NOT IMPLEMENTED')
|
|
64450
|
+
};
|
|
64451
|
+
this.serviceImplementation = {
|
|
64452
|
+
...this.serviceImplementation
|
|
64453
|
+
};
|
|
64454
|
+
}
|
|
64455
|
+
show({
|
|
64535
64456
|
viewportId,
|
|
64536
64457
|
id,
|
|
64537
64458
|
type,
|
|
@@ -64540,47 +64461,48 @@ function _show({
|
|
|
64540
64461
|
onSubmit,
|
|
64541
64462
|
onOutsideClick,
|
|
64542
64463
|
onKeyPress
|
|
64543
|
-
})
|
|
64544
|
-
|
|
64545
|
-
|
|
64546
|
-
|
|
64547
|
-
|
|
64548
|
-
|
|
64549
|
-
|
|
64550
|
-
|
|
64551
|
-
|
|
64552
|
-
|
|
64553
|
-
|
|
64554
|
-
*
|
|
64555
|
-
*
|
|
64556
|
-
* @param {*} {
|
|
64557
|
-
* hide: hideImplementation,
|
|
64558
|
-
* show: showImplementation,
|
|
64559
|
-
* viewportId,
|
|
64560
|
-
* }
|
|
64561
|
-
*/
|
|
64562
|
-
function UIViewportDialogService_setServiceImplementation({
|
|
64563
|
-
hide: hideImplementation,
|
|
64564
|
-
show: showImplementation
|
|
64565
|
-
}) {
|
|
64566
|
-
if (hideImplementation) {
|
|
64567
|
-
UIViewportDialogService_serviceImplementation._hide = hideImplementation;
|
|
64464
|
+
}) {
|
|
64465
|
+
return this.serviceImplementation._show({
|
|
64466
|
+
viewportId,
|
|
64467
|
+
id,
|
|
64468
|
+
type,
|
|
64469
|
+
message,
|
|
64470
|
+
actions,
|
|
64471
|
+
onSubmit,
|
|
64472
|
+
onOutsideClick,
|
|
64473
|
+
onKeyPress
|
|
64474
|
+
});
|
|
64568
64475
|
}
|
|
64569
|
-
|
|
64570
|
-
|
|
64476
|
+
hide() {
|
|
64477
|
+
return this.serviceImplementation._hide();
|
|
64571
64478
|
}
|
|
64572
|
-
|
|
64573
|
-
|
|
64574
|
-
|
|
64575
|
-
|
|
64576
|
-
|
|
64577
|
-
|
|
64578
|
-
|
|
64579
|
-
|
|
64580
|
-
|
|
64479
|
+
setServiceImplementation({
|
|
64480
|
+
hide: hideImplementation,
|
|
64481
|
+
show: showImplementation
|
|
64482
|
+
}) {
|
|
64483
|
+
if (hideImplementation) {
|
|
64484
|
+
this.serviceImplementation._hide = hideImplementation;
|
|
64485
|
+
}
|
|
64486
|
+
if (showImplementation) {
|
|
64487
|
+
this.serviceImplementation._show = showImplementation;
|
|
64581
64488
|
}
|
|
64582
64489
|
}
|
|
64583
|
-
}
|
|
64490
|
+
}
|
|
64491
|
+
_UIViewportDialogService = UIViewportDialogService;
|
|
64492
|
+
UIViewportDialogService.EVENTS = {};
|
|
64493
|
+
UIViewportDialogService.REGISTRATION = {
|
|
64494
|
+
name: 'uiViewportDialogService',
|
|
64495
|
+
altName: 'UIViewportDialogService',
|
|
64496
|
+
create: ({
|
|
64497
|
+
configuration = {}
|
|
64498
|
+
}) => {
|
|
64499
|
+
return new _UIViewportDialogService();
|
|
64500
|
+
}
|
|
64501
|
+
};
|
|
64502
|
+
/* harmony default export */ const UIViewportDialogService_UIViewportDialogService = (UIViewportDialogService);
|
|
64503
|
+
;// CONCATENATED MODULE: ../../core/src/services/UIViewportDialogService/index.ts
|
|
64504
|
+
|
|
64505
|
+
/* harmony default export */ const services_UIViewportDialogService = (UIViewportDialogService_UIViewportDialogService);
|
|
64584
64506
|
// EXTERNAL MODULE: ../../core/src/services/DicomMetadataStore/DicomMetadataStore.ts + 2 modules
|
|
64585
64507
|
var DicomMetadataStore = __webpack_require__(23221);
|
|
64586
64508
|
;// CONCATENATED MODULE: ../../core/src/services/DicomMetadataStore/index.ts
|
|
@@ -68229,96 +68151,94 @@ HangingProtocolService.REGISTRATION = {
|
|
|
68229
68151
|
;// CONCATENATED MODULE: ../../core/src/services/HangingProtocolService/index.ts
|
|
68230
68152
|
|
|
68231
68153
|
/* harmony default export */ const services_HangingProtocolService = (HangingProtocolService);
|
|
68232
|
-
;// CONCATENATED MODULE: ../../core/src/services/UserAuthenticationService/UserAuthenticationService.
|
|
68233
|
-
|
|
68234
|
-
|
|
68235
|
-
|
|
68236
|
-
|
|
68237
|
-
|
|
68238
|
-
|
|
68239
|
-
|
|
68240
|
-
|
|
68241
|
-
|
|
68242
|
-
|
|
68243
|
-
|
|
68244
|
-
|
|
68245
|
-
|
|
68246
|
-
|
|
68247
|
-
|
|
68248
|
-
|
|
68249
|
-
|
|
68250
|
-
|
|
68251
|
-
//console.warn('_getAuthorizationHeader() NOT IMPLEMENTED'),
|
|
68252
|
-
_handleUnauthenticated: () => console.warn('_handleUnauthenticated() NOT IMPLEMENTED'),
|
|
68253
|
-
_reset: () => console.warn('reset() NOT IMPLEMENTED'),
|
|
68254
|
-
_set: () => console.warn('set() NOT IMPLEMENTED')
|
|
68255
|
-
};
|
|
68256
|
-
function _getState() {
|
|
68257
|
-
return UserAuthenticationService_serviceImplementation._getState();
|
|
68258
|
-
}
|
|
68259
|
-
function _setUser(user) {
|
|
68260
|
-
return UserAuthenticationService_serviceImplementation._setUser(user);
|
|
68261
|
-
}
|
|
68262
|
-
function _getUser() {
|
|
68263
|
-
return UserAuthenticationService_serviceImplementation._getUser();
|
|
68264
|
-
}
|
|
68265
|
-
function _getAuthorizationHeader() {
|
|
68266
|
-
return UserAuthenticationService_serviceImplementation._getAuthorizationHeader();
|
|
68267
|
-
}
|
|
68268
|
-
function _handleUnauthenticated() {
|
|
68269
|
-
return UserAuthenticationService_serviceImplementation._handleUnauthenticated();
|
|
68270
|
-
}
|
|
68271
|
-
function _set(state) {
|
|
68272
|
-
return UserAuthenticationService_serviceImplementation._set(state);
|
|
68273
|
-
}
|
|
68274
|
-
function _reset() {
|
|
68275
|
-
return UserAuthenticationService_serviceImplementation._reset({});
|
|
68276
|
-
}
|
|
68277
|
-
function UserAuthenticationService_setServiceImplementation({
|
|
68278
|
-
getState: getStateImplementation,
|
|
68279
|
-
setUser: setUserImplementation,
|
|
68280
|
-
getUser: getUserImplementation,
|
|
68281
|
-
getAuthorizationHeader: getAuthorizationHeaderImplementation,
|
|
68282
|
-
handleUnauthenticated: handleUnauthenticatedImplementation,
|
|
68283
|
-
reset: resetImplementation,
|
|
68284
|
-
set: setImplementation
|
|
68285
|
-
}) {
|
|
68286
|
-
if (getStateImplementation) {
|
|
68287
|
-
UserAuthenticationService_serviceImplementation._getState = getStateImplementation;
|
|
68154
|
+
;// CONCATENATED MODULE: ../../core/src/services/UserAuthenticationService/UserAuthenticationService.ts
|
|
68155
|
+
var _UserAuthenticationService;
|
|
68156
|
+
|
|
68157
|
+
class UserAuthenticationService extends pubSubServiceInterface/* PubSubService */.R {
|
|
68158
|
+
constructor() {
|
|
68159
|
+
super(UserAuthenticationService.EVENTS);
|
|
68160
|
+
this.serviceImplementation = {
|
|
68161
|
+
_getState: () => console.warn('getState() NOT IMPLEMENTED'),
|
|
68162
|
+
_setUser: () => console.warn('_setUser() NOT IMPLEMENTED'),
|
|
68163
|
+
_getUser: () => console.warn('_getUser() NOT IMPLEMENTED'),
|
|
68164
|
+
_getAuthorizationHeader: () => {},
|
|
68165
|
+
// TODO: Implement this method
|
|
68166
|
+
_handleUnauthenticated: () => console.warn('_handleUnauthenticated() NOT IMPLEMENTED'),
|
|
68167
|
+
_reset: () => console.warn('reset() NOT IMPLEMENTED'),
|
|
68168
|
+
_set: () => console.warn('set() NOT IMPLEMENTED')
|
|
68169
|
+
};
|
|
68170
|
+
this.serviceImplementation = {
|
|
68171
|
+
...this.serviceImplementation
|
|
68172
|
+
};
|
|
68288
68173
|
}
|
|
68289
|
-
|
|
68290
|
-
|
|
68174
|
+
getState() {
|
|
68175
|
+
return this.serviceImplementation._getState();
|
|
68291
68176
|
}
|
|
68292
|
-
|
|
68293
|
-
|
|
68177
|
+
setUser(user) {
|
|
68178
|
+
return this.serviceImplementation._setUser(user);
|
|
68294
68179
|
}
|
|
68295
|
-
|
|
68296
|
-
|
|
68180
|
+
getUser() {
|
|
68181
|
+
return this.serviceImplementation._getUser();
|
|
68297
68182
|
}
|
|
68298
|
-
|
|
68299
|
-
|
|
68183
|
+
getAuthorizationHeader() {
|
|
68184
|
+
return this.serviceImplementation._getAuthorizationHeader();
|
|
68300
68185
|
}
|
|
68301
|
-
|
|
68302
|
-
|
|
68186
|
+
handleUnauthenticated() {
|
|
68187
|
+
return this.serviceImplementation._handleUnauthenticated();
|
|
68303
68188
|
}
|
|
68304
|
-
|
|
68305
|
-
|
|
68189
|
+
reset() {
|
|
68190
|
+
return this.serviceImplementation._reset();
|
|
68306
68191
|
}
|
|
68307
|
-
|
|
68308
|
-
|
|
68309
|
-
|
|
68310
|
-
|
|
68311
|
-
|
|
68312
|
-
|
|
68313
|
-
|
|
68314
|
-
|
|
68315
|
-
|
|
68192
|
+
set(state) {
|
|
68193
|
+
return this.serviceImplementation._set(state);
|
|
68194
|
+
}
|
|
68195
|
+
setServiceImplementation({
|
|
68196
|
+
getState: getStateImplementation,
|
|
68197
|
+
setUser: setUserImplementation,
|
|
68198
|
+
getUser: getUserImplementation,
|
|
68199
|
+
getAuthorizationHeader: getAuthorizationHeaderImplementation,
|
|
68200
|
+
handleUnauthenticated: handleUnauthenticatedImplementation,
|
|
68201
|
+
reset: resetImplementation,
|
|
68202
|
+
set: setImplementation
|
|
68203
|
+
}) {
|
|
68204
|
+
if (getStateImplementation) {
|
|
68205
|
+
this.serviceImplementation._getState = getStateImplementation;
|
|
68206
|
+
}
|
|
68207
|
+
if (setUserImplementation) {
|
|
68208
|
+
this.serviceImplementation._setUser = setUserImplementation;
|
|
68209
|
+
}
|
|
68210
|
+
if (getUserImplementation) {
|
|
68211
|
+
this.serviceImplementation._getUser = getUserImplementation;
|
|
68212
|
+
}
|
|
68213
|
+
if (getAuthorizationHeaderImplementation) {
|
|
68214
|
+
this.serviceImplementation._getAuthorizationHeader = getAuthorizationHeaderImplementation;
|
|
68215
|
+
}
|
|
68216
|
+
if (handleUnauthenticatedImplementation) {
|
|
68217
|
+
this.serviceImplementation._handleUnauthenticated = handleUnauthenticatedImplementation;
|
|
68218
|
+
}
|
|
68219
|
+
if (resetImplementation) {
|
|
68220
|
+
this.serviceImplementation._reset = resetImplementation;
|
|
68221
|
+
}
|
|
68222
|
+
if (setImplementation) {
|
|
68223
|
+
this.serviceImplementation._set = setImplementation;
|
|
68316
68224
|
}
|
|
68317
68225
|
}
|
|
68318
|
-
}
|
|
68319
|
-
|
|
68226
|
+
}
|
|
68227
|
+
_UserAuthenticationService = UserAuthenticationService;
|
|
68228
|
+
UserAuthenticationService.EVENTS = {};
|
|
68229
|
+
UserAuthenticationService.REGISTRATION = {
|
|
68230
|
+
name: 'userAuthenticationService',
|
|
68231
|
+
altName: 'UserAuthenticationService',
|
|
68232
|
+
create: ({
|
|
68233
|
+
configuration = {}
|
|
68234
|
+
}) => {
|
|
68235
|
+
return new _UserAuthenticationService();
|
|
68236
|
+
}
|
|
68237
|
+
};
|
|
68238
|
+
/* harmony default export */ const UserAuthenticationService_UserAuthenticationService = (UserAuthenticationService);
|
|
68239
|
+
;// CONCATENATED MODULE: ../../core/src/services/UserAuthenticationService/index.ts
|
|
68320
68240
|
|
|
68321
|
-
/* harmony default export */ const services_UserAuthenticationService = (
|
|
68241
|
+
/* harmony default export */ const services_UserAuthenticationService = (UserAuthenticationService_UserAuthenticationService);
|
|
68322
68242
|
// EXTERNAL MODULE: ../../../node_modules/lodash.merge/index.js
|
|
68323
68243
|
var lodash_merge = __webpack_require__(40592);
|
|
68324
68244
|
var lodash_merge_default = /*#__PURE__*/__webpack_require__.n(lodash_merge);
|
|
@@ -71594,10 +71514,10 @@ const OHIF = {
|
|
|
71594
71514
|
CineService: services_CineService,
|
|
71595
71515
|
CustomizationService: services_CustomizationService,
|
|
71596
71516
|
StateSyncService: services_StateSyncService,
|
|
71597
|
-
UIDialogService:
|
|
71517
|
+
UIDialogService: services_UIDialogService,
|
|
71598
71518
|
UIModalService: services_UIModalService,
|
|
71599
71519
|
UINotificationService: services_UINotificationService,
|
|
71600
|
-
UIViewportDialogService:
|
|
71520
|
+
UIViewportDialogService: services_UIViewportDialogService,
|
|
71601
71521
|
DisplaySetService: services_DisplaySetService,
|
|
71602
71522
|
MeasurementService: services_MeasurementService,
|
|
71603
71523
|
ToolbarService: ToolBarService,
|
|
@@ -72101,6 +72021,20 @@ class PubSubService {
|
|
|
72101
72021
|
|
|
72102
72022
|
/***/ }),
|
|
72103
72023
|
|
|
72024
|
+
/***/ 74420:
|
|
72025
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
72026
|
+
|
|
72027
|
+
"use strict";
|
|
72028
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
72029
|
+
/* harmony export */ A: () => (/* binding */ isLowPriorityModality)
|
|
72030
|
+
/* harmony export */ });
|
|
72031
|
+
const LOW_PRIORITY_MODALITIES = Object.freeze(['SEG', 'KO', 'PR', 'SR', 'RTSTRUCT', 'RTDOSE', 'RTPLAN', 'RTRECORD', 'REG']);
|
|
72032
|
+
function isLowPriorityModality(Modality) {
|
|
72033
|
+
return LOW_PRIORITY_MODALITIES.includes(Modality);
|
|
72034
|
+
}
|
|
72035
|
+
|
|
72036
|
+
/***/ }),
|
|
72037
|
+
|
|
72104
72038
|
/***/ 44563:
|
|
72105
72039
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
72106
72040
|
|
|
@@ -72166,7 +72100,7 @@ function sortInstances(instances) {
|
|
|
72166
72100
|
/* harmony export */ y1: () => (/* binding */ sortingCriteria)
|
|
72167
72101
|
/* harmony export */ });
|
|
72168
72102
|
/* unused harmony export default */
|
|
72169
|
-
/* harmony import */ var _isLowPriorityModality__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
72103
|
+
/* harmony import */ var _isLowPriorityModality__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74420);
|
|
72170
72104
|
|
|
72171
72105
|
const compareSeriesDateTime = (a, b) => {
|
|
72172
72106
|
const seriesDateA = Date.parse(`${a.seriesDate ?? a.SeriesDate} ${a.seriesTime ?? a.SeriesTime}`);
|
|
@@ -72681,7 +72615,7 @@ webpackContext.id = 64692;
|
|
|
72681
72615
|
/* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(51884);
|
|
72682
72616
|
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(71702);
|
|
72683
72617
|
/* harmony import */ var _loaders_volumeLoader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(82041);
|
|
72684
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
|
|
72618
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(20228);
|
|
72685
72619
|
/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90601);
|
|
72686
72620
|
/* harmony import */ var _helpers_volumeNewImageEventDispatcher__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(46820);
|
|
72687
72621
|
/* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(11512);
|
|
@@ -72923,13 +72857,15 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
72923
72857
|
static get useCustomRenderingPipeline() {
|
|
72924
72858
|
return false;
|
|
72925
72859
|
}
|
|
72926
|
-
applyViewOrientation(orientation) {
|
|
72860
|
+
applyViewOrientation(orientation, resetCamera = true) {
|
|
72927
72861
|
const { viewPlaneNormal, viewUp } = this._getOrientationVectors(orientation);
|
|
72928
72862
|
const camera = this.getVtkActiveCamera();
|
|
72929
72863
|
camera.setDirectionOfProjection(-viewPlaneNormal[0], -viewPlaneNormal[1], -viewPlaneNormal[2]);
|
|
72930
72864
|
camera.setViewUpFrom(viewUp);
|
|
72931
72865
|
this.initialViewUp = viewUp;
|
|
72932
|
-
|
|
72866
|
+
if (resetCamera) {
|
|
72867
|
+
this.resetCamera();
|
|
72868
|
+
}
|
|
72933
72869
|
}
|
|
72934
72870
|
initializeVolumeNewImageEventDispatcher() {
|
|
72935
72871
|
const volumeNewImageHandlerBound = volumeNewImageHandler.bind(this);
|
|
@@ -73158,15 +73094,26 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
73158
73094
|
}
|
|
73159
73095
|
getViewReference(viewRefSpecifier = {}) {
|
|
73160
73096
|
const target = super.getViewReference(viewRefSpecifier);
|
|
73097
|
+
const volumeId = this.getVolumeId(viewRefSpecifier);
|
|
73161
73098
|
if (viewRefSpecifier?.forFrameOfReference !== false) {
|
|
73162
|
-
target.volumeId =
|
|
73163
|
-
}
|
|
73164
|
-
|
|
73165
|
-
|
|
73166
|
-
|
|
73167
|
-
};
|
|
73099
|
+
target.volumeId = volumeId;
|
|
73100
|
+
}
|
|
73101
|
+
if (typeof viewRefSpecifier?.sliceIndex !== 'number') {
|
|
73102
|
+
return target;
|
|
73103
|
+
}
|
|
73104
|
+
const { viewPlaneNormal } = target;
|
|
73105
|
+
const delta = viewRefSpecifier.sliceIndex - this.getCurrentImageIdIndex();
|
|
73106
|
+
const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
73107
|
+
const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
|
|
73108
|
+
const { focalPoint, position } = camera;
|
|
73109
|
+
const { newFocalPoint } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
73110
|
+
target.cameraFocalPoint = newFocalPoint;
|
|
73111
|
+
return target;
|
|
73168
73112
|
}
|
|
73169
73113
|
isReferenceViewable(viewRef, options) {
|
|
73114
|
+
if (!viewRef.FrameOfReferenceUID) {
|
|
73115
|
+
return false;
|
|
73116
|
+
}
|
|
73170
73117
|
if (!super.isReferenceViewable(viewRef, options)) {
|
|
73171
73118
|
return false;
|
|
73172
73119
|
}
|
|
@@ -73180,6 +73127,63 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
73180
73127
|
}
|
|
73181
73128
|
return sliceIndex === undefined || sliceIndex === currentSliceIndex;
|
|
73182
73129
|
}
|
|
73130
|
+
scroll(delta = 1) {
|
|
73131
|
+
const volumeId = this.getVolumeId();
|
|
73132
|
+
const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
73133
|
+
if (!sliceRangeInfo) {
|
|
73134
|
+
return;
|
|
73135
|
+
}
|
|
73136
|
+
const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
|
|
73137
|
+
const { focalPoint, viewPlaneNormal, position } = camera;
|
|
73138
|
+
const { newFocalPoint, newPosition } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
73139
|
+
this.setCamera({
|
|
73140
|
+
focalPoint: newFocalPoint,
|
|
73141
|
+
position: newPosition,
|
|
73142
|
+
});
|
|
73143
|
+
}
|
|
73144
|
+
setViewReference(viewRef) {
|
|
73145
|
+
if (!viewRef) {
|
|
73146
|
+
return;
|
|
73147
|
+
}
|
|
73148
|
+
const volumeId = this.getVolumeId();
|
|
73149
|
+
const { viewPlaneNormal: refViewPlaneNormal, FrameOfReferenceUID: refFrameOfReference, cameraFocalPoint, viewUp, } = viewRef;
|
|
73150
|
+
let { sliceIndex } = viewRef;
|
|
73151
|
+
const { focalPoint, viewPlaneNormal, position } = this.getCamera();
|
|
73152
|
+
const isNegativeNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqualNegative)(viewPlaneNormal, refViewPlaneNormal);
|
|
73153
|
+
const isSameNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqual)(viewPlaneNormal, refViewPlaneNormal);
|
|
73154
|
+
if (typeof sliceIndex === 'number' &&
|
|
73155
|
+
viewRef.volumeId === volumeId &&
|
|
73156
|
+
(isNegativeNormal || isSameNormal)) {
|
|
73157
|
+
const { currentStepIndex, sliceRangeInfo, numScrollSteps } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
73158
|
+
const { sliceRange, spacingInNormalDirection } = sliceRangeInfo;
|
|
73159
|
+
if (isNegativeNormal) {
|
|
73160
|
+
sliceIndex = numScrollSteps - sliceIndex - 1;
|
|
73161
|
+
}
|
|
73162
|
+
const delta = sliceIndex - currentStepIndex;
|
|
73163
|
+
const { newFocalPoint, newPosition } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
73164
|
+
this.setCamera({ focalPoint: newFocalPoint, position: newPosition });
|
|
73165
|
+
}
|
|
73166
|
+
else if (refFrameOfReference === this.getFrameOfReferenceUID()) {
|
|
73167
|
+
if (refViewPlaneNormal && !isNegativeNormal && !isSameNormal) {
|
|
73168
|
+
this.setOrientation({ viewPlaneNormal: refViewPlaneNormal, viewUp });
|
|
73169
|
+
return this.setViewReference(viewRef);
|
|
73170
|
+
}
|
|
73171
|
+
if (cameraFocalPoint) {
|
|
73172
|
+
const focalDelta = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.subtract */ .eR.subtract([0, 0, 0], cameraFocalPoint, focalPoint);
|
|
73173
|
+
const useNormal = refViewPlaneNormal ?? viewPlaneNormal;
|
|
73174
|
+
const normalDot = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.dot */ .eR.dot(focalDelta, useNormal);
|
|
73175
|
+
if (!(0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqual)(normalDot, 0)) {
|
|
73176
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.scale */ .eR.scale(focalDelta, useNormal, normalDot);
|
|
73177
|
+
}
|
|
73178
|
+
const newFocal = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.add */ .eR.add([0, 0, 0], focalPoint, focalDelta);
|
|
73179
|
+
const newPosition = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.add */ .eR.add([0, 0, 0], position, focalDelta);
|
|
73180
|
+
this.setCamera({ focalPoint: newFocal, position: newPosition });
|
|
73181
|
+
}
|
|
73182
|
+
}
|
|
73183
|
+
else {
|
|
73184
|
+
throw new Error(`Incompatible view refs: ${refFrameOfReference}!==${this.getFrameOfReferenceUID()}`);
|
|
73185
|
+
}
|
|
73186
|
+
}
|
|
73183
73187
|
setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, rotation, } = {}, volumeId, suppressEvents = false) {
|
|
73184
73188
|
if (this.globalDefaultProperties == null) {
|
|
73185
73189
|
this.setDefaultProperties({
|
|
@@ -73338,7 +73342,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
73338
73342
|
this.render();
|
|
73339
73343
|
}
|
|
73340
73344
|
}
|
|
73341
|
-
setOrientation(
|
|
73345
|
+
setOrientation(_orientation, _immediate = true) {
|
|
73342
73346
|
console.warn('Method "setOrientation" needs implementation');
|
|
73343
73347
|
}
|
|
73344
73348
|
initializeColorTransferFunction(volumeInputArray) {
|
|
@@ -73474,14 +73478,15 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
73474
73478
|
return volume.getScalarData()[voxelIndex];
|
|
73475
73479
|
}
|
|
73476
73480
|
getVolumeId(specifier) {
|
|
73481
|
+
const actorEntries = this.getActors();
|
|
73482
|
+
if (!actorEntries) {
|
|
73483
|
+
return;
|
|
73484
|
+
}
|
|
73477
73485
|
if (!specifier?.volumeId) {
|
|
73478
|
-
const actorEntries = this.getActors();
|
|
73479
|
-
if (!actorEntries) {
|
|
73480
|
-
return;
|
|
73481
|
-
}
|
|
73482
73486
|
return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
|
|
73483
73487
|
}
|
|
73484
|
-
return
|
|
73488
|
+
return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume' &&
|
|
73489
|
+
actorEntry.uid === specifier.volumeId)?.uid;
|
|
73485
73490
|
}
|
|
73486
73491
|
getReferenceId(specifier = {}) {
|
|
73487
73492
|
let { volumeId, sliceIndex: sliceIndex } = specifier;
|
|
@@ -73492,7 +73497,8 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
73492
73497
|
}
|
|
73493
73498
|
volumeId = actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
|
|
73494
73499
|
}
|
|
73495
|
-
|
|
73500
|
+
const currentIndex = this.getCurrentImageIdIndex();
|
|
73501
|
+
sliceIndex ??= currentIndex;
|
|
73496
73502
|
const { viewPlaneNormal, focalPoint } = this.getCamera();
|
|
73497
73503
|
const querySeparator = volumeId.indexOf('?') > -1 ? '&' : '?';
|
|
73498
73504
|
return `volumeId:${volumeId}${querySeparator}sliceIndex=${sliceIndex}&viewPlaneNormal=${viewPlaneNormal.join(',')}&focalPoint=${focalPoint.join(',')}`;
|
|
@@ -74420,8 +74426,8 @@ var metaData = __webpack_require__(55692);
|
|
|
74420
74426
|
// EXTERNAL MODULE: ../../../node_modules/lodash.clonedeep/index.js
|
|
74421
74427
|
var lodash_clonedeep = __webpack_require__(48463);
|
|
74422
74428
|
var lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep);
|
|
74423
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
74424
|
-
var utilities = __webpack_require__(
|
|
74429
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
|
|
74430
|
+
var utilities = __webpack_require__(20228);
|
|
74425
74431
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
|
|
74426
74432
|
var Viewport = __webpack_require__(11512);
|
|
74427
74433
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.js + 2 modules
|
|
@@ -74631,20 +74637,8 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
74631
74637
|
resize(this._cpuFallbackEnabledElement);
|
|
74632
74638
|
}
|
|
74633
74639
|
};
|
|
74634
|
-
this.getFrameOfReferenceUID = () =>
|
|
74635
|
-
|
|
74636
|
-
if (!imageId) {
|
|
74637
|
-
return;
|
|
74638
|
-
}
|
|
74639
|
-
const imagePlaneModule = metaData.get('imagePlaneModule', imageId);
|
|
74640
|
-
if (!imagePlaneModule) {
|
|
74641
|
-
return;
|
|
74642
|
-
}
|
|
74643
|
-
return imagePlaneModule.frameOfReferenceUID;
|
|
74644
|
-
};
|
|
74645
|
-
this.getCornerstoneImage = () => {
|
|
74646
|
-
return this.csImage;
|
|
74647
|
-
};
|
|
74640
|
+
this.getFrameOfReferenceUID = (sliceIndex) => this.getImagePlaneReferenceData(sliceIndex)?.FrameOfReferenceUID;
|
|
74641
|
+
this.getCornerstoneImage = () => this.csImage;
|
|
74648
74642
|
this.createActorMapper = (imageData) => {
|
|
74649
74643
|
const mapper = vtkImageMapper$1.newInstance();
|
|
74650
74644
|
mapper.setInputData(imageData);
|
|
@@ -74807,9 +74801,6 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
74807
74801
|
this.getCurrentImageIdIndex = () => {
|
|
74808
74802
|
return this.currentImageIdIndex;
|
|
74809
74803
|
};
|
|
74810
|
-
this.getSliceIndex = () => {
|
|
74811
|
-
return this.currentImageIdIndex;
|
|
74812
|
-
};
|
|
74813
74804
|
this.getTargetImageIdIndex = () => {
|
|
74814
74805
|
return this.targetImageIdIndex;
|
|
74815
74806
|
};
|
|
@@ -75620,6 +75611,25 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
75620
75611
|
imagePixelModule,
|
|
75621
75612
|
};
|
|
75622
75613
|
}
|
|
75614
|
+
getImagePlaneReferenceData(sliceIndex = this.getCurrentImageIdIndex()) {
|
|
75615
|
+
const imageId = this.imageIds[sliceIndex];
|
|
75616
|
+
if (!imageId) {
|
|
75617
|
+
return;
|
|
75618
|
+
}
|
|
75619
|
+
const imagePlaneModule = metaData.get(enums.MetadataModules.IMAGE_PLANE, imageId);
|
|
75620
|
+
const { imagePositionPatient, frameOfReferenceUID: FrameOfReferenceUID } = imagePlaneModule;
|
|
75621
|
+
let { rowCosines, columnCosines } = imagePlaneModule;
|
|
75622
|
+
rowCosines ||= [1, 0, 0];
|
|
75623
|
+
columnCosines ||= [0, 1, 0];
|
|
75624
|
+
const viewPlaneNormal = (esm/* vec3.cross */.eR.cross([0, 0, 0], columnCosines, rowCosines));
|
|
75625
|
+
return {
|
|
75626
|
+
FrameOfReferenceUID,
|
|
75627
|
+
viewPlaneNormal,
|
|
75628
|
+
cameraFocalPoint: imagePositionPatient,
|
|
75629
|
+
referencedImageId: imageId,
|
|
75630
|
+
sliceIndex,
|
|
75631
|
+
};
|
|
75632
|
+
}
|
|
75623
75633
|
_getCameraOrientation(imageDataDirection) {
|
|
75624
75634
|
const viewPlaneNormal = imageDataDirection.slice(6, 9).map((x) => -x);
|
|
75625
75635
|
const viewUp = imageDataDirection.slice(3, 6).map((x) => -x);
|
|
@@ -75935,7 +75945,7 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
75935
75945
|
this.cpuRenderingInvalidated = true;
|
|
75936
75946
|
this._cpuFallbackEnabledElement.transform = (0,calculateTransform/* default */.A)(this._cpuFallbackEnabledElement);
|
|
75937
75947
|
}
|
|
75938
|
-
|
|
75948
|
+
addImages(stackInputs) {
|
|
75939
75949
|
const actors = this.getActors();
|
|
75940
75950
|
stackInputs.forEach((stackInput) => {
|
|
75941
75951
|
const image = cache/* default */.Ay.getImage(stackInput.imageId);
|
|
@@ -76230,24 +76240,39 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
76230
76240
|
return referencedImageId?.endsWith(imageURI);
|
|
76231
76241
|
}
|
|
76232
76242
|
getViewReference(viewRefSpecifier = {}) {
|
|
76233
|
-
const { sliceIndex
|
|
76234
|
-
|
|
76235
|
-
|
|
76236
|
-
|
|
76237
|
-
|
|
76238
|
-
}
|
|
76239
|
-
|
|
76240
|
-
|
|
76241
|
-
|
|
76242
|
-
|
|
76243
|
-
if (viewRef) {
|
|
76244
|
-
const { viewPlaneNormal, sliceIndex } = viewRef;
|
|
76245
|
-
if (viewPlaneNormal &&
|
|
76246
|
-
!(0,utilities.isEqual)(viewPlaneNormal, camera.viewPlaneNormal)) {
|
|
76243
|
+
const { sliceIndex = this.getCurrentImageIdIndex() } = viewRefSpecifier;
|
|
76244
|
+
const reference = super.getViewReference(viewRefSpecifier);
|
|
76245
|
+
const referencedImageId = this.imageIds[sliceIndex];
|
|
76246
|
+
if (!referencedImageId) {
|
|
76247
|
+
return;
|
|
76248
|
+
}
|
|
76249
|
+
reference.referencedImageId = referencedImageId;
|
|
76250
|
+
if (this.getCurrentImageIdIndex() !== sliceIndex) {
|
|
76251
|
+
const referenceData = this.getImagePlaneReferenceData(sliceIndex);
|
|
76252
|
+
if (!referenceData) {
|
|
76247
76253
|
return;
|
|
76248
76254
|
}
|
|
76249
|
-
|
|
76250
|
-
|
|
76255
|
+
Object.assign(reference, referenceData);
|
|
76256
|
+
}
|
|
76257
|
+
return reference;
|
|
76258
|
+
}
|
|
76259
|
+
setViewReference(viewRef) {
|
|
76260
|
+
if (!viewRef) {
|
|
76261
|
+
return;
|
|
76262
|
+
}
|
|
76263
|
+
const { referencedImageId, sliceIndex, volumeId } = viewRef;
|
|
76264
|
+
if (typeof sliceIndex === 'number' &&
|
|
76265
|
+
referencedImageId &&
|
|
76266
|
+
referencedImageId === this.imageIds[sliceIndex]) {
|
|
76267
|
+
this.setImageIdIndex(sliceIndex);
|
|
76268
|
+
}
|
|
76269
|
+
else {
|
|
76270
|
+
const foundIndex = this.imageIds.indexOf(referencedImageId);
|
|
76271
|
+
if (foundIndex !== -1) {
|
|
76272
|
+
this.setImageIdIndex(foundIndex);
|
|
76273
|
+
}
|
|
76274
|
+
else {
|
|
76275
|
+
throw new Error('Unsupported - referenced image id not found');
|
|
76251
76276
|
}
|
|
76252
76277
|
}
|
|
76253
76278
|
}
|
|
@@ -76371,8 +76396,8 @@ var enums = __webpack_require__(98362);
|
|
|
76371
76396
|
var metaData = __webpack_require__(55692);
|
|
76372
76397
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.js
|
|
76373
76398
|
var rendering_transform = __webpack_require__(18714);
|
|
76374
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
76375
|
-
var utilities = __webpack_require__(
|
|
76399
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
|
|
76400
|
+
var utilities = __webpack_require__(20228);
|
|
76376
76401
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
|
|
76377
76402
|
var Viewport = __webpack_require__(11512);
|
|
76378
76403
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 5 modules
|
|
@@ -77283,7 +77308,7 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
77283
77308
|
/* harmony import */ var _enums_ViewportStatus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17702);
|
|
77284
77309
|
/* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21432);
|
|
77285
77310
|
/* harmony import */ var _renderingEngineCache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(94070);
|
|
77286
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
|
|
77311
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20228);
|
|
77287
77312
|
/* harmony import */ var _utilities_hasNaNValues__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(73139);
|
|
77288
77313
|
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(88903);
|
|
77289
77314
|
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(71702);
|
|
@@ -77583,7 +77608,7 @@ class Viewport {
|
|
|
77583
77608
|
this.setDisplayAreaScale(displayArea);
|
|
77584
77609
|
}
|
|
77585
77610
|
else {
|
|
77586
|
-
this.setInterpolationType(this.getProperties()
|
|
77611
|
+
this.setInterpolationType(this.getProperties()?.interpolationType || _enums__WEBPACK_IMPORTED_MODULE_13__.InterpolationType.LINEAR);
|
|
77587
77612
|
this.setDisplayAreaFit(displayArea);
|
|
77588
77613
|
}
|
|
77589
77614
|
if (storeAsInitialCamera) {
|
|
@@ -77812,6 +77837,9 @@ class Viewport {
|
|
|
77812
77837
|
}, storeAsInitialCamera);
|
|
77813
77838
|
}
|
|
77814
77839
|
getZoom(compareCamera = this.initialCamera) {
|
|
77840
|
+
if (!compareCamera) {
|
|
77841
|
+
return 1;
|
|
77842
|
+
}
|
|
77815
77843
|
const activeCamera = this.getVtkActiveCamera();
|
|
77816
77844
|
const { parallelScale: initialParallelScale } = compareCamera;
|
|
77817
77845
|
return initialParallelScale / activeCamera.getParallelScale();
|
|
@@ -78065,11 +78093,12 @@ class Viewport {
|
|
|
78065
78093
|
return { widthWorld: maxX - minX, heightWorld: maxY - minY };
|
|
78066
78094
|
}
|
|
78067
78095
|
getViewReference(viewRefSpecifier = {}) {
|
|
78068
|
-
const { focalPoint: cameraFocalPoint, viewPlaneNormal } = this.getCamera();
|
|
78096
|
+
const { focalPoint: cameraFocalPoint, viewPlaneNormal, viewUp, } = this.getCamera();
|
|
78069
78097
|
const target = {
|
|
78070
78098
|
FrameOfReferenceUID: this.getFrameOfReferenceUID(),
|
|
78071
78099
|
cameraFocalPoint,
|
|
78072
78100
|
viewPlaneNormal,
|
|
78101
|
+
viewUp,
|
|
78073
78102
|
sliceIndex: viewRefSpecifier.sliceIndex ?? this.getCurrentImageIdIndex(),
|
|
78074
78103
|
};
|
|
78075
78104
|
return target;
|
|
@@ -78084,7 +78113,7 @@ class Viewport {
|
|
|
78084
78113
|
if (viewPlaneNormal &&
|
|
78085
78114
|
!(0,_utilities__WEBPACK_IMPORTED_MODULE_9__.isEqual)(viewPlaneNormal, camera.viewPlaneNormal) &&
|
|
78086
78115
|
!(0,_utilities__WEBPACK_IMPORTED_MODULE_9__.isEqual)(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.negate */ .eR.negate(camera.viewPlaneNormal, camera.viewPlaneNormal), viewPlaneNormal)) {
|
|
78087
|
-
return options?.
|
|
78116
|
+
return options?.withOrientation === true;
|
|
78088
78117
|
}
|
|
78089
78118
|
return true;
|
|
78090
78119
|
}
|
|
@@ -78112,19 +78141,22 @@ class Viewport {
|
|
|
78112
78141
|
}
|
|
78113
78142
|
return target;
|
|
78114
78143
|
}
|
|
78115
|
-
|
|
78116
|
-
|
|
78117
|
-
|
|
78118
|
-
|
|
78119
|
-
|
|
78120
|
-
|
|
78121
|
-
|
|
78122
|
-
|
|
78123
|
-
|
|
78124
|
-
|
|
78125
|
-
|
|
78126
|
-
|
|
78127
|
-
|
|
78144
|
+
setViewReference(viewRef) {
|
|
78145
|
+
}
|
|
78146
|
+
setViewPresentation(viewPres) {
|
|
78147
|
+
if (!viewPres) {
|
|
78148
|
+
return;
|
|
78149
|
+
}
|
|
78150
|
+
const { displayArea, zoom = this.getZoom(), pan, rotation } = viewPres;
|
|
78151
|
+
if (displayArea !== this.getDisplayArea()) {
|
|
78152
|
+
this.setDisplayArea(displayArea);
|
|
78153
|
+
}
|
|
78154
|
+
this.setZoom(zoom);
|
|
78155
|
+
if (pan) {
|
|
78156
|
+
this.setPan(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec2.scale */ .Zc.scale([0, 0], pan, zoom));
|
|
78157
|
+
}
|
|
78158
|
+
if (rotation >= 0) {
|
|
78159
|
+
this.setRotation(rotation);
|
|
78128
78160
|
}
|
|
78129
78161
|
}
|
|
78130
78162
|
_shouldUseNativeDataType() {
|
|
@@ -78213,15 +78245,15 @@ class Viewport {
|
|
|
78213
78245
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
78214
78246
|
/* harmony export */ });
|
|
78215
78247
|
/* harmony import */ var _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84441);
|
|
78216
|
-
/* harmony import */ var
|
|
78217
|
-
/* harmony import */ var
|
|
78218
|
-
/* harmony import */ var
|
|
78219
|
-
/* harmony import */ var
|
|
78220
|
-
/* harmony import */ var
|
|
78221
|
-
/* harmony import */ var
|
|
78222
|
-
/* harmony import */ var
|
|
78223
|
-
/* harmony import */ var
|
|
78224
|
-
/* harmony import */ var
|
|
78248
|
+
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
|
|
78249
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88903);
|
|
78250
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
|
|
78251
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20228);
|
|
78252
|
+
/* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6203);
|
|
78253
|
+
/* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83853);
|
|
78254
|
+
/* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22350);
|
|
78255
|
+
/* harmony import */ var _utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97508);
|
|
78256
|
+
/* harmony import */ var _utilities_getVolumeViewportScrollInfo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(62255);
|
|
78225
78257
|
|
|
78226
78258
|
|
|
78227
78259
|
|
|
@@ -78232,43 +78264,34 @@ class Viewport {
|
|
|
78232
78264
|
|
|
78233
78265
|
|
|
78234
78266
|
|
|
78235
|
-
class VolumeViewport extends
|
|
78267
|
+
class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A {
|
|
78236
78268
|
constructor(props) {
|
|
78237
78269
|
super(props);
|
|
78238
78270
|
this._useAcquisitionPlaneForViewPlane = false;
|
|
78239
78271
|
this.getNumberOfSlices = () => {
|
|
78240
|
-
const { numberOfSlices } = (0,
|
|
78272
|
+
const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
|
|
78241
78273
|
return numberOfSlices;
|
|
78242
78274
|
};
|
|
78243
78275
|
this.getSliceIndex = () => {
|
|
78244
|
-
const { imageIndex } = (0,
|
|
78276
|
+
const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
|
|
78245
78277
|
return imageIndex;
|
|
78246
78278
|
};
|
|
78247
|
-
this.getCurrentImageIdIndex = (volumeId) => {
|
|
78248
|
-
const {
|
|
78249
|
-
|
|
78250
|
-
if (!imageData) {
|
|
78251
|
-
return;
|
|
78252
|
-
}
|
|
78253
|
-
const { origin, direction, spacing } = imageData;
|
|
78254
|
-
const spacingInNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.getSpacingInNormalDirection)({ direction, spacing }, viewPlaneNormal);
|
|
78255
|
-
const sub = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
|
|
78256
|
-
gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.sub */ .eR.sub(sub, focalPoint, origin);
|
|
78257
|
-
const distance = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(sub, viewPlaneNormal);
|
|
78258
|
-
return Math.round(Math.abs(distance) / spacingInNormal);
|
|
78279
|
+
this.getCurrentImageIdIndex = (volumeId, useSlabThickness = true) => {
|
|
78280
|
+
const { currentStepIndex } = (0,_utilities_getVolumeViewportScrollInfo__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this, volumeId || this.getVolumeId(), useSlabThickness);
|
|
78281
|
+
return currentStepIndex;
|
|
78259
78282
|
};
|
|
78260
78283
|
this.getCurrentImageId = () => {
|
|
78261
78284
|
const actorEntry = this.getDefaultActor();
|
|
78262
|
-
if (!actorEntry || !(0,
|
|
78285
|
+
if (!actorEntry || !(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
|
|
78263
78286
|
return;
|
|
78264
78287
|
}
|
|
78265
78288
|
const { uid } = actorEntry;
|
|
78266
|
-
const volume =
|
|
78289
|
+
const volume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(uid);
|
|
78267
78290
|
if (!volume) {
|
|
78268
78291
|
return;
|
|
78269
78292
|
}
|
|
78270
78293
|
const { viewPlaneNormal, focalPoint } = this.getCamera();
|
|
78271
|
-
return (0,
|
|
78294
|
+
return (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getClosestImageId)(volume, focalPoint, viewPlaneNormal);
|
|
78272
78295
|
};
|
|
78273
78296
|
this.getSlicePlaneCoordinates = () => {
|
|
78274
78297
|
const actorEntry = this.getDefaultActor();
|
|
@@ -78277,30 +78300,30 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78277
78300
|
return [];
|
|
78278
78301
|
}
|
|
78279
78302
|
const volumeId = actorEntry.uid;
|
|
78280
|
-
const imageVolume =
|
|
78303
|
+
const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeId);
|
|
78281
78304
|
const camera = this.getCamera();
|
|
78282
78305
|
const { focalPoint, position, viewPlaneNormal } = camera;
|
|
78283
|
-
const spacingInNormalDirection = (0,
|
|
78284
|
-
const sliceRange = (0,
|
|
78306
|
+
const spacingInNormalDirection = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSpacingInNormalDirection)(imageVolume, viewPlaneNormal);
|
|
78307
|
+
const sliceRange = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSliceRange)(actorEntry.actor, viewPlaneNormal, focalPoint);
|
|
78285
78308
|
const numSlicesBackward = Math.round((sliceRange.current - sliceRange.min) / spacingInNormalDirection);
|
|
78286
78309
|
const numSlicesForward = Math.round((sliceRange.max - sliceRange.current) / spacingInNormalDirection);
|
|
78287
78310
|
const currentSliceIndex = this.getSliceIndex();
|
|
78288
78311
|
const focalPoints = [];
|
|
78289
78312
|
for (let i = -numSlicesBackward; i <= numSlicesForward; i++) {
|
|
78290
|
-
const { newFocalPoint: point } = (0,
|
|
78313
|
+
const { newFocalPoint: point } = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, i);
|
|
78291
78314
|
focalPoints.push({ sliceIndex: currentSliceIndex + i, point });
|
|
78292
78315
|
}
|
|
78293
78316
|
return focalPoints;
|
|
78294
78317
|
};
|
|
78295
78318
|
const { orientation } = this.options;
|
|
78296
|
-
if (orientation && orientation !==
|
|
78319
|
+
if (orientation && orientation !== _enums__WEBPACK_IMPORTED_MODULE_3__.OrientationAxis.ACQUISITION) {
|
|
78297
78320
|
this.applyViewOrientation(orientation);
|
|
78298
78321
|
return;
|
|
78299
78322
|
}
|
|
78300
78323
|
this._useAcquisitionPlaneForViewPlane = true;
|
|
78301
78324
|
}
|
|
78302
78325
|
async setVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
|
|
78303
|
-
const firstImageVolume =
|
|
78326
|
+
const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
|
|
78304
78327
|
if (!firstImageVolume) {
|
|
78305
78328
|
throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
|
|
78306
78329
|
}
|
|
@@ -78311,7 +78334,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78311
78334
|
return super.setVolumes(volumeInputArray, immediate, suppressEvents);
|
|
78312
78335
|
}
|
|
78313
78336
|
async addVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
|
|
78314
|
-
const firstImageVolume =
|
|
78337
|
+
const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
|
|
78315
78338
|
if (!firstImageVolume) {
|
|
78316
78339
|
throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
|
|
78317
78340
|
}
|
|
@@ -78324,8 +78347,8 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78324
78347
|
setOrientation(orientation, immediate = true) {
|
|
78325
78348
|
let viewPlaneNormal, viewUp;
|
|
78326
78349
|
if (typeof orientation === 'string') {
|
|
78327
|
-
if (
|
|
78328
|
-
({ viewPlaneNormal, viewUp } =
|
|
78350
|
+
if (_constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[orientation]) {
|
|
78351
|
+
({ viewPlaneNormal, viewUp } = _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[orientation]);
|
|
78329
78352
|
}
|
|
78330
78353
|
else if (orientation === 'acquisition') {
|
|
78331
78354
|
({ viewPlaneNormal, viewUp } = this._getAcquisitionPlaneOrientation());
|
|
@@ -78354,7 +78377,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78354
78377
|
return;
|
|
78355
78378
|
}
|
|
78356
78379
|
const volumeId = actorEntry.uid;
|
|
78357
|
-
const imageVolume =
|
|
78380
|
+
const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeId);
|
|
78358
78381
|
if (!imageVolume) {
|
|
78359
78382
|
throw new Error(`imageVolume with id: ${volumeId} does not exist in cache`);
|
|
78360
78383
|
}
|
|
@@ -78399,12 +78422,15 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78399
78422
|
this.render();
|
|
78400
78423
|
}
|
|
78401
78424
|
}
|
|
78402
|
-
resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false) {
|
|
78425
|
+
resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false) {
|
|
78426
|
+
const { orientation } = this.viewportProperties;
|
|
78427
|
+
if (orientation) {
|
|
78428
|
+
this.applyViewOrientation(orientation, false);
|
|
78429
|
+
}
|
|
78403
78430
|
super.resetCamera(resetPan, resetZoom, resetToCenter);
|
|
78404
78431
|
this.resetVolumeViewportClippingRange();
|
|
78405
78432
|
const activeCamera = this.getVtkActiveCamera();
|
|
78406
78433
|
const viewPlaneNormal = activeCamera.getViewPlaneNormal();
|
|
78407
|
-
const viewUp = activeCamera.getViewUp();
|
|
78408
78434
|
const focalPoint = activeCamera.getFocalPoint();
|
|
78409
78435
|
const actorEntries = this.getActors();
|
|
78410
78436
|
actorEntries.forEach((actorEntry) => {
|
|
@@ -78417,7 +78443,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78417
78443
|
const clipPlane1 = _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance();
|
|
78418
78444
|
const clipPlane2 = _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance();
|
|
78419
78445
|
const newVtkPlanes = [clipPlane1, clipPlane2];
|
|
78420
|
-
let slabThickness =
|
|
78446
|
+
let slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
78421
78447
|
if (actorEntry.slabThickness) {
|
|
78422
78448
|
slabThickness = actorEntry.slabThickness;
|
|
78423
78449
|
}
|
|
@@ -78427,13 +78453,22 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78427
78453
|
}
|
|
78428
78454
|
});
|
|
78429
78455
|
if (resetRotation &&
|
|
78430
|
-
|
|
78431
|
-
const viewToReset =
|
|
78456
|
+
_constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[this.viewportProperties.orientation] !== undefined) {
|
|
78457
|
+
const viewToReset = _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[this.viewportProperties.orientation];
|
|
78432
78458
|
this.setCameraNoEvent({
|
|
78433
78459
|
viewUp: viewToReset.viewUp,
|
|
78434
78460
|
viewPlaneNormal: viewToReset.viewPlaneNormal,
|
|
78435
78461
|
});
|
|
78436
78462
|
}
|
|
78463
|
+
if (!supressEvents) {
|
|
78464
|
+
const eventDetail = {
|
|
78465
|
+
viewportId: this.id,
|
|
78466
|
+
camera: this.getCamera(),
|
|
78467
|
+
renderingEngineId: this.renderingEngineId,
|
|
78468
|
+
element: this.element,
|
|
78469
|
+
};
|
|
78470
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.CAMERA_RESET, eventDetail);
|
|
78471
|
+
}
|
|
78437
78472
|
return true;
|
|
78438
78473
|
}
|
|
78439
78474
|
setSlabThickness(slabThickness, filterActorUIDs = []) {
|
|
@@ -78447,7 +78482,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78447
78482
|
});
|
|
78448
78483
|
}
|
|
78449
78484
|
actorEntries.forEach((actorEntry) => {
|
|
78450
|
-
if ((0,
|
|
78485
|
+
if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
|
|
78451
78486
|
actorEntry.slabThickness = slabThickness;
|
|
78452
78487
|
}
|
|
78453
78488
|
});
|
|
@@ -78456,6 +78491,27 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78456
78491
|
this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
|
|
78457
78492
|
this.viewportProperties.slabThickness = slabThickness;
|
|
78458
78493
|
}
|
|
78494
|
+
resetSlabThickness() {
|
|
78495
|
+
const actorEntries = this.getActors();
|
|
78496
|
+
actorEntries.forEach((actorEntry) => {
|
|
78497
|
+
if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
|
|
78498
|
+
actorEntry.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
78499
|
+
}
|
|
78500
|
+
});
|
|
78501
|
+
const currentCamera = this.getCamera();
|
|
78502
|
+
this.updateClippingPlanesForActors(currentCamera);
|
|
78503
|
+
this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
|
|
78504
|
+
this.viewportProperties.slabThickness = undefined;
|
|
78505
|
+
}
|
|
78506
|
+
getViewReference(viewRefSpecifier = {}) {
|
|
78507
|
+
const viewRef = super.getViewReference(viewRefSpecifier);
|
|
78508
|
+
if (!viewRef?.volumeId) {
|
|
78509
|
+
return;
|
|
78510
|
+
}
|
|
78511
|
+
const volume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(viewRef.volumeId);
|
|
78512
|
+
viewRef.referencedImageId = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getClosestImageId)(volume, viewRef.cameraFocalPoint, viewRef.viewPlaneNormal);
|
|
78513
|
+
return viewRef;
|
|
78514
|
+
}
|
|
78459
78515
|
resetProperties(volumeId) {
|
|
78460
78516
|
this._resetProperties(volumeId);
|
|
78461
78517
|
}
|
|
@@ -78467,20 +78523,20 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78467
78523
|
throw new Error(`No actor found for the given volumeId: ${volumeId}`);
|
|
78468
78524
|
}
|
|
78469
78525
|
if (volumeActor.slabThickness) {
|
|
78470
|
-
volumeActor.slabThickness =
|
|
78526
|
+
volumeActor.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
78471
78527
|
this.viewportProperties.slabThickness = undefined;
|
|
78472
78528
|
this.updateClippingPlanesForActors(this.getCamera());
|
|
78473
78529
|
}
|
|
78474
|
-
const imageVolume =
|
|
78530
|
+
const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeActor.uid);
|
|
78475
78531
|
if (!imageVolume) {
|
|
78476
78532
|
throw new Error(`imageVolume with id: ${volumeActor.uid} does not exist in cache`);
|
|
78477
78533
|
}
|
|
78478
|
-
(0,
|
|
78479
|
-
if ((0,
|
|
78534
|
+
(0,_helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)(volumeActor.actor, imageVolume, false);
|
|
78535
|
+
if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.isImageActor)(volumeActor)) {
|
|
78480
78536
|
const transferFunction = volumeActor.actor
|
|
78481
78537
|
.getProperty()
|
|
78482
78538
|
.getRGBTransferFunction(0);
|
|
78483
|
-
(0,
|
|
78539
|
+
(0,_utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__.setTransferFunctionNodes)(transferFunction, this.initialTransferFunctionNodes);
|
|
78484
78540
|
}
|
|
78485
78541
|
const eventDetails = {
|
|
78486
78542
|
...super.getVOIModifiedEventDetail(volumeId),
|
|
@@ -78490,12 +78546,12 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
78490
78546
|
const resetToCenter = true;
|
|
78491
78547
|
const resetCameraRotation = true;
|
|
78492
78548
|
this.resetCamera(resetPan, resetZoom, resetToCenter, resetCameraRotation);
|
|
78493
|
-
(0,
|
|
78549
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.VOI_MODIFIED, eventDetails);
|
|
78494
78550
|
}
|
|
78495
78551
|
getSlicesClippingPlanes() {
|
|
78496
78552
|
const focalPoints = this.getSlicePlaneCoordinates();
|
|
78497
78553
|
const { viewPlaneNormal } = this.getCamera();
|
|
78498
|
-
const slabThickness =
|
|
78554
|
+
const slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
78499
78555
|
return focalPoints.map(({ point, sliceIndex }) => {
|
|
78500
78556
|
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()];
|
|
78501
78557
|
this.setOrientationOfClippingPlanes(vtkPlanes, slabThickness, viewPlaneNormal, point);
|
|
@@ -78558,6 +78614,9 @@ class VolumeViewport3D extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__/
|
|
|
78558
78614
|
resetProperties(volumeId) {
|
|
78559
78615
|
return null;
|
|
78560
78616
|
}
|
|
78617
|
+
resetSlabThickness() {
|
|
78618
|
+
return null;
|
|
78619
|
+
}
|
|
78561
78620
|
}
|
|
78562
78621
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VolumeViewport3D);
|
|
78563
78622
|
|
|
@@ -79855,8 +79914,8 @@ function storedPixelDataToCanvasImageDataPseudocolorLUTPET(image, lutFunction, c
|
|
|
79855
79914
|
}
|
|
79856
79915
|
/* harmony default export */ const rendering_storedPixelDataToCanvasImageDataPseudocolorLUTPET = (storedPixelDataToCanvasImageDataPseudocolorLUTPET);
|
|
79857
79916
|
|
|
79858
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
79859
|
-
var utilities = __webpack_require__(
|
|
79917
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
|
|
79918
|
+
var utilities = __webpack_require__(20228);
|
|
79860
79919
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js
|
|
79861
79920
|
|
|
79862
79921
|
|
|
@@ -80912,8 +80971,8 @@ function createVolumeMapper(imageData, vtkOpenGLTexture) {
|
|
|
80912
80971
|
return volumeMapper;
|
|
80913
80972
|
}
|
|
80914
80973
|
|
|
80915
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
80916
|
-
var utilities = __webpack_require__(
|
|
80974
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
|
|
80975
|
+
var utilities = __webpack_require__(20228);
|
|
80917
80976
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
80918
80977
|
var enums = __webpack_require__(98362);
|
|
80919
80978
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js
|
|
@@ -81026,7 +81085,7 @@ var addImageSlicesToViewports = __webpack_require__(25271);
|
|
|
81026
81085
|
/* harmony export */ });
|
|
81027
81086
|
/* harmony import */ var _loaders_imageLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79220);
|
|
81028
81087
|
/* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55692);
|
|
81029
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
81088
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20228);
|
|
81030
81089
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
|
|
81031
81090
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13320);
|
|
81032
81091
|
|
|
@@ -81174,7 +81233,7 @@ function _isCurrentImagePTPrescaled(modality, imageVolume) {
|
|
|
81174
81233
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
81175
81234
|
/* harmony export */ g: () => (/* binding */ resetVolumeNewImageState)
|
|
81176
81235
|
/* harmony export */ });
|
|
81177
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
81236
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20228);
|
|
81178
81237
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98362);
|
|
81179
81238
|
/* harmony import */ var _getRenderingEngine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49184);
|
|
81180
81239
|
/* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6203);
|
|
@@ -81244,8 +81303,8 @@ var Events = __webpack_require__(11731);
|
|
|
81244
81303
|
var renderingEngineCache = __webpack_require__(94070);
|
|
81245
81304
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
|
|
81246
81305
|
var eventTarget = __webpack_require__(51884);
|
|
81247
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
81248
|
-
var utilities = __webpack_require__(
|
|
81306
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
|
|
81307
|
+
var utilities = __webpack_require__(20228);
|
|
81249
81308
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 27 modules
|
|
81250
81309
|
var vtkClasses = __webpack_require__(69585);
|
|
81251
81310
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportType.js
|
|
@@ -81577,7 +81636,12 @@ class RenderingEngine {
|
|
|
81577
81636
|
const prevCamera = vp.getCamera();
|
|
81578
81637
|
const rotation = vp.getRotation();
|
|
81579
81638
|
const { flipHorizontal } = prevCamera;
|
|
81580
|
-
|
|
81639
|
+
const resetPan = true;
|
|
81640
|
+
const resetZoom = true;
|
|
81641
|
+
const resetToCenter = true;
|
|
81642
|
+
const resetRotation = false;
|
|
81643
|
+
const supressEvents = true;
|
|
81644
|
+
vp.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, supressEvents);
|
|
81581
81645
|
const displayArea = vp.getDisplayArea();
|
|
81582
81646
|
if (keepCamera) {
|
|
81583
81647
|
if (displayArea) {
|
|
@@ -88235,7 +88299,7 @@ Settings.getDefaultSettings().set('useCursors', true);
|
|
|
88235
88299
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
88236
88300
|
/* harmony export */ });
|
|
88237
88301
|
/* unused harmony export Cache */
|
|
88238
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
88302
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20228);
|
|
88239
88303
|
/* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51884);
|
|
88240
88304
|
/* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11731);
|
|
88241
88305
|
/* harmony import */ var _classes_ImageVolume__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77076);
|
|
@@ -88251,7 +88315,7 @@ class Cache {
|
|
|
88251
88315
|
this._imageCacheSize = 0;
|
|
88252
88316
|
this._volumeCacheSize = 0;
|
|
88253
88317
|
this._maxCacheSize = 3 * ONE_GB;
|
|
88254
|
-
this._maxInstanceSize =
|
|
88318
|
+
this._maxInstanceSize = 4 * ONE_GB - 8;
|
|
88255
88319
|
this.setMaxCacheSize = (newMaxCacheSize) => {
|
|
88256
88320
|
if (!newMaxCacheSize || typeof newMaxCacheSize !== 'number') {
|
|
88257
88321
|
const errorMessage = `New max cacheSize ${this._maxCacheSize} should be defined and should be a number.`;
|
|
@@ -88717,8 +88781,8 @@ function isTypedArray(obj) {
|
|
|
88717
88781
|
obj instanceof Float64Array);
|
|
88718
88782
|
}
|
|
88719
88783
|
|
|
88720
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
88721
|
-
var utilities = __webpack_require__(
|
|
88784
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
|
|
88785
|
+
var utilities = __webpack_require__(20228);
|
|
88722
88786
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 27 modules
|
|
88723
88787
|
var vtkClasses = __webpack_require__(69585);
|
|
88724
88788
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/cache.js
|
|
@@ -96803,8 +96867,8 @@ async function createAndCacheGeometry(geometryId, options) {
|
|
|
96803
96867
|
|
|
96804
96868
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
|
|
96805
96869
|
var ProgressiveRetrieveImages = __webpack_require__(71090);
|
|
96806
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
96807
|
-
var utilities = __webpack_require__(
|
|
96870
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
|
|
96871
|
+
var utilities = __webpack_require__(20228);
|
|
96808
96872
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
|
|
96809
96873
|
var triggerEvent = __webpack_require__(13292);
|
|
96810
96874
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 5 modules
|
|
@@ -96872,8 +96936,8 @@ function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{
|
|
|
96872
96936
|
var enums = __webpack_require__(98362);
|
|
96873
96937
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
|
|
96874
96938
|
var getRenderingEngine = __webpack_require__(49184);
|
|
96875
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
96876
|
-
var utilities = __webpack_require__(
|
|
96939
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
|
|
96940
|
+
var utilities = __webpack_require__(20228);
|
|
96877
96941
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/webWorkerManager/webWorkerManager.js
|
|
96878
96942
|
var webWorkerManager = __webpack_require__(61874);
|
|
96879
96943
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js
|
|
@@ -97195,8 +97259,8 @@ const interleavedRetrieveConfiguration = [
|
|
|
97195
97259
|
|
|
97196
97260
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
|
|
97197
97261
|
var imageLoader = __webpack_require__(79220);
|
|
97198
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
97199
|
-
var utilities = __webpack_require__(
|
|
97262
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
|
|
97263
|
+
var utilities = __webpack_require__(20228);
|
|
97200
97264
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
|
|
97201
97265
|
var imageLoadPoolManager = __webpack_require__(775);
|
|
97202
97266
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
|
|
@@ -97497,7 +97561,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
97497
97561
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
|
|
97498
97562
|
/* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11731);
|
|
97499
97563
|
/* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51884);
|
|
97500
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
97564
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20228);
|
|
97501
97565
|
/* harmony import */ var _requestPool_imageLoadPoolManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(775);
|
|
97502
97566
|
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(92136);
|
|
97503
97567
|
|
|
@@ -97767,7 +97831,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
97767
97831
|
/* harmony import */ var _utilities_triggerEvent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13292);
|
|
97768
97832
|
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(48463);
|
|
97769
97833
|
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__);
|
|
97770
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
|
|
97834
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20228);
|
|
97771
97835
|
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(71702);
|
|
97772
97836
|
/* harmony import */ var _utilities_cacheUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(51631);
|
|
97773
97837
|
|
|
@@ -98064,8 +98128,22 @@ function generateVolumeScalarData(targetBuffer, scalarLength) {
|
|
|
98064
98128
|
}
|
|
98065
98129
|
let volumeScalarData;
|
|
98066
98130
|
if (targetBuffer?.sharedArrayBuffer) {
|
|
98067
|
-
|
|
98068
|
-
|
|
98131
|
+
switch (targetBuffer.type) {
|
|
98132
|
+
case 'Float32Array':
|
|
98133
|
+
volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createFloat32SharedArray)(scalarLength);
|
|
98134
|
+
break;
|
|
98135
|
+
case 'Uint8Array':
|
|
98136
|
+
volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint8SharedArray)(scalarLength);
|
|
98137
|
+
break;
|
|
98138
|
+
case 'Uint16Array':
|
|
98139
|
+
volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint16SharedArray)(scalarLength);
|
|
98140
|
+
break;
|
|
98141
|
+
case 'Int16Array':
|
|
98142
|
+
volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint16SharedArray)(scalarLength);
|
|
98143
|
+
break;
|
|
98144
|
+
default:
|
|
98145
|
+
throw new Error('generateVolumeScalarData: SharedArrayBuffer is not supported for the specified target buffer type');
|
|
98146
|
+
}
|
|
98069
98147
|
}
|
|
98070
98148
|
else {
|
|
98071
98149
|
volumeScalarData = new TypedArrayConstructor(scalarLength);
|
|
@@ -98155,7 +98233,7 @@ imageLoadPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPO
|
|
|
98155
98233
|
/* harmony export */ R: () => (/* binding */ RequestPoolManager)
|
|
98156
98234
|
/* harmony export */ });
|
|
98157
98235
|
/* harmony import */ var _enums_RequestType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15453);
|
|
98158
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
98236
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20228);
|
|
98159
98237
|
|
|
98160
98238
|
|
|
98161
98239
|
class RequestPoolManager {
|
|
@@ -98466,7 +98544,7 @@ function findMatchingColormap(rgbPoints, actor) {
|
|
|
98466
98544
|
return false;
|
|
98467
98545
|
}
|
|
98468
98546
|
for (let i = 0; i < presetRGBPoints.length; i += 4) {
|
|
98469
|
-
if (!(0,_isEqual__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .
|
|
98547
|
+
if (!(0,_isEqual__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay)(presetRGBPoints.slice(i + 1, i + 4), rgbPoints.slice(i + 1, i + 4))) {
|
|
98470
98548
|
return false;
|
|
98471
98549
|
}
|
|
98472
98550
|
}
|
|
@@ -98495,6 +98573,7 @@ function findMatchingColormap(rgbPoints, actor) {
|
|
|
98495
98573
|
}
|
|
98496
98574
|
return {
|
|
98497
98575
|
name: matchedColormap.Name,
|
|
98576
|
+
opacity,
|
|
98498
98577
|
};
|
|
98499
98578
|
}
|
|
98500
98579
|
|
|
@@ -98799,6 +98878,73 @@ const getVolumeId = (targetId) => {
|
|
|
98799
98878
|
};
|
|
98800
98879
|
|
|
98801
98880
|
|
|
98881
|
+
/***/ }),
|
|
98882
|
+
|
|
98883
|
+
/***/ 76399:
|
|
98884
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
98885
|
+
|
|
98886
|
+
"use strict";
|
|
98887
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
98888
|
+
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
98889
|
+
/* harmony export */ });
|
|
98890
|
+
/* harmony import */ var _getSliceRange__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51849);
|
|
98891
|
+
/* harmony import */ var _getTargetVolumeAndSpacingInNormalDir__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94172);
|
|
98892
|
+
|
|
98893
|
+
|
|
98894
|
+
function getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness = false) {
|
|
98895
|
+
const camera = viewport.getCamera();
|
|
98896
|
+
const { focalPoint, viewPlaneNormal } = camera;
|
|
98897
|
+
const { spacingInNormalDirection, actorUID } = (0,_getTargetVolumeAndSpacingInNormalDir__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(viewport, camera, volumeId, useSlabThickness);
|
|
98898
|
+
if (!actorUID) {
|
|
98899
|
+
throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
|
|
98900
|
+
}
|
|
98901
|
+
const actorEntry = viewport.getActor(actorUID);
|
|
98902
|
+
if (!actorEntry) {
|
|
98903
|
+
console.warn('No actor found for with actorUID of', actorUID);
|
|
98904
|
+
return null;
|
|
98905
|
+
}
|
|
98906
|
+
const volumeActor = actorEntry.actor;
|
|
98907
|
+
const sliceRange = (0,_getSliceRange__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(volumeActor, viewPlaneNormal, focalPoint);
|
|
98908
|
+
return {
|
|
98909
|
+
sliceRange,
|
|
98910
|
+
spacingInNormalDirection,
|
|
98911
|
+
camera,
|
|
98912
|
+
};
|
|
98913
|
+
}
|
|
98914
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getVolumeSliceRangeInfo);
|
|
98915
|
+
|
|
98916
|
+
|
|
98917
|
+
/***/ }),
|
|
98918
|
+
|
|
98919
|
+
/***/ 62255:
|
|
98920
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
98921
|
+
|
|
98922
|
+
"use strict";
|
|
98923
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
98924
|
+
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
98925
|
+
/* harmony export */ });
|
|
98926
|
+
/* harmony import */ var _getVolumeSliceRangeInfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76399);
|
|
98927
|
+
|
|
98928
|
+
function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
|
|
98929
|
+
const { sliceRange, spacingInNormalDirection, camera } = (0,_getVolumeSliceRangeInfo__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(viewport, volumeId, useSlabThickness);
|
|
98930
|
+
const { min, max, current } = sliceRange;
|
|
98931
|
+
const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
|
|
98932
|
+
const fraction = (current - min) / (max - min);
|
|
98933
|
+
const floatingStepNumber = fraction * numScrollSteps;
|
|
98934
|
+
const currentStepIndex = Math.round(floatingStepNumber);
|
|
98935
|
+
return {
|
|
98936
|
+
numScrollSteps,
|
|
98937
|
+
currentStepIndex,
|
|
98938
|
+
sliceRangeInfo: {
|
|
98939
|
+
sliceRange,
|
|
98940
|
+
spacingInNormalDirection,
|
|
98941
|
+
camera,
|
|
98942
|
+
},
|
|
98943
|
+
};
|
|
98944
|
+
}
|
|
98945
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getVolumeViewportScrollInfo);
|
|
98946
|
+
|
|
98947
|
+
|
|
98802
98948
|
/***/ }),
|
|
98803
98949
|
|
|
98804
98950
|
/***/ 73139:
|
|
@@ -98818,7 +98964,7 @@ function hasNaNValues(input) {
|
|
|
98818
98964
|
|
|
98819
98965
|
/***/ }),
|
|
98820
98966
|
|
|
98821
|
-
/***/
|
|
98967
|
+
/***/ 20228:
|
|
98822
98968
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
98823
98969
|
|
|
98824
98970
|
"use strict";
|
|
@@ -98829,6 +98975,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
98829
98975
|
__webpack_require__.d(__webpack_exports__, {
|
|
98830
98976
|
PointsManager: () => (/* reexport */ PointsManager),
|
|
98831
98977
|
ProgressiveIterator: () => (/* reexport */ ProgressiveIterator),
|
|
98978
|
+
RLEVoxelMap: () => (/* reexport */ RLEVoxelMap),
|
|
98832
98979
|
VoxelManager: () => (/* reexport */ VoxelManager),
|
|
98833
98980
|
actorIsA: () => (/* reexport */ actorCheck/* actorIsA */.N),
|
|
98834
98981
|
applyPreset: () => (/* reexport */ applyPreset),
|
|
@@ -98874,8 +99021,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
98874
99021
|
getVoiFromSigmoidRGBTransferFunction: () => (/* reexport */ getVoiFromSigmoidRGBTransferFunction),
|
|
98875
99022
|
getVolumeActorCorners: () => (/* reexport */ getVolumeActorCorners/* default */.A),
|
|
98876
99023
|
getVolumeId: () => (/* reexport */ getVolumeId/* getVolumeId */.A),
|
|
98877
|
-
getVolumeSliceRangeInfo: () => (/* reexport */
|
|
98878
|
-
getVolumeViewportScrollInfo: () => (/* reexport */
|
|
99024
|
+
getVolumeSliceRangeInfo: () => (/* reexport */ getVolumeSliceRangeInfo/* default */.A),
|
|
99025
|
+
getVolumeViewportScrollInfo: () => (/* reexport */ getVolumeViewportScrollInfo/* default */.A),
|
|
98879
99026
|
getVolumeViewportsContainingSameVolumes: () => (/* reexport */ utilities_getVolumeViewportsContainingSameVolumes),
|
|
98880
99027
|
hasFloatScalingParameters: () => (/* reexport */ hasFloatScalingParameters),
|
|
98881
99028
|
hasNaNValues: () => (/* reexport */ hasNaNValues/* default */.A),
|
|
@@ -98884,7 +99031,9 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
98884
99031
|
imageToWorldCoords: () => (/* reexport */ imageToWorldCoords),
|
|
98885
99032
|
indexWithinDimensions: () => (/* reexport */ indexWithinDimensions),
|
|
98886
99033
|
invertRgbTransferFunction: () => (/* reexport */ invertRgbTransferFunction),
|
|
98887
|
-
isEqual: () => (/* reexport */ isEqual/*
|
|
99034
|
+
isEqual: () => (/* reexport */ isEqual/* isEqual */.n4),
|
|
99035
|
+
isEqualAbs: () => (/* reexport */ isEqual/* isEqualAbs */.Ph),
|
|
99036
|
+
isEqualNegative: () => (/* reexport */ isEqual/* isEqualNegative */.WC),
|
|
98888
99037
|
isImageActor: () => (/* reexport */ actorCheck/* isImageActor */.e),
|
|
98889
99038
|
isOpposite: () => (/* reexport */ isOpposite),
|
|
98890
99039
|
isPTPrescaledWithSUV: () => (/* reexport */ utilities_isPTPrescaledWithSUV),
|
|
@@ -99315,6 +99464,9 @@ function createUint8SharedArray(length) {
|
|
|
99315
99464
|
|
|
99316
99465
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/createFloat32SharedArray.js
|
|
99317
99466
|
|
|
99467
|
+
const SMALL_MEMORY_LIMIT = 2 * 1024 * 1024 * 1024 - 2;
|
|
99468
|
+
const BIG_MEMORY_LIMIT = SMALL_MEMORY_LIMIT * 2;
|
|
99469
|
+
const PAGE_SIZE = 65536;
|
|
99318
99470
|
function createFloat32SharedArray(length) {
|
|
99319
99471
|
if (!(0,init/* getShouldUseSharedArrayBuffer */.TB)()) {
|
|
99320
99472
|
throw new Error('Your page is NOT cross-origin isolated, see https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated');
|
|
@@ -99322,8 +99474,20 @@ function createFloat32SharedArray(length) {
|
|
|
99322
99474
|
if (window.SharedArrayBuffer === undefined) {
|
|
99323
99475
|
throw new Error('SharedArrayBuffer is NOT supported in your browser see https://developer.chrome.com/blog/enabling-shared-array-buffer/');
|
|
99324
99476
|
}
|
|
99325
|
-
const
|
|
99326
|
-
|
|
99477
|
+
const byteLength = length * 4;
|
|
99478
|
+
if (byteLength < SMALL_MEMORY_LIMIT) {
|
|
99479
|
+
const sharedArrayBuffer = new SharedArrayBuffer(byteLength);
|
|
99480
|
+
return new Float32Array(sharedArrayBuffer);
|
|
99481
|
+
}
|
|
99482
|
+
else if (byteLength < BIG_MEMORY_LIMIT) {
|
|
99483
|
+
const pages = Math.ceil(byteLength / PAGE_SIZE);
|
|
99484
|
+
const memory = new WebAssembly.Memory({
|
|
99485
|
+
initial: pages,
|
|
99486
|
+
maximum: pages,
|
|
99487
|
+
shared: true,
|
|
99488
|
+
});
|
|
99489
|
+
return new Float32Array(memory.buffer, 0, length);
|
|
99490
|
+
}
|
|
99327
99491
|
}
|
|
99328
99492
|
/* harmony default export */ const utilities_createFloat32SharedArray = (createFloat32SharedArray);
|
|
99329
99493
|
|
|
@@ -99714,54 +99878,12 @@ function imageToWorldCoords(imageId, imageCoords) {
|
|
|
99714
99878
|
return Array.from(imageCoordsInWorld);
|
|
99715
99879
|
}
|
|
99716
99880
|
|
|
99881
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeSliceRangeInfo.js
|
|
99882
|
+
var getVolumeSliceRangeInfo = __webpack_require__(76399);
|
|
99883
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeViewportScrollInfo.js
|
|
99884
|
+
var getVolumeViewportScrollInfo = __webpack_require__(62255);
|
|
99717
99885
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getSliceRange.js
|
|
99718
99886
|
var getSliceRange = __webpack_require__(51849);
|
|
99719
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeSliceRangeInfo.js
|
|
99720
|
-
|
|
99721
|
-
|
|
99722
|
-
function getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness = false) {
|
|
99723
|
-
const camera = viewport.getCamera();
|
|
99724
|
-
const { focalPoint, viewPlaneNormal } = camera;
|
|
99725
|
-
const { spacingInNormalDirection, actorUID } = (0,getTargetVolumeAndSpacingInNormalDir/* default */.A)(viewport, camera, volumeId, useSlabThickness);
|
|
99726
|
-
if (!actorUID) {
|
|
99727
|
-
throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
|
|
99728
|
-
}
|
|
99729
|
-
const actorEntry = viewport.getActor(actorUID);
|
|
99730
|
-
if (!actorEntry) {
|
|
99731
|
-
console.warn('No actor found for with actorUID of', actorUID);
|
|
99732
|
-
return null;
|
|
99733
|
-
}
|
|
99734
|
-
const volumeActor = actorEntry.actor;
|
|
99735
|
-
const sliceRange = (0,getSliceRange/* default */.A)(volumeActor, viewPlaneNormal, focalPoint);
|
|
99736
|
-
return {
|
|
99737
|
-
sliceRange,
|
|
99738
|
-
spacingInNormalDirection,
|
|
99739
|
-
camera,
|
|
99740
|
-
};
|
|
99741
|
-
}
|
|
99742
|
-
/* harmony default export */ const utilities_getVolumeSliceRangeInfo = (getVolumeSliceRangeInfo);
|
|
99743
|
-
|
|
99744
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeViewportScrollInfo.js
|
|
99745
|
-
|
|
99746
|
-
function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
|
|
99747
|
-
const { sliceRange, spacingInNormalDirection, camera } = utilities_getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness);
|
|
99748
|
-
const { min, max, current } = sliceRange;
|
|
99749
|
-
const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
|
|
99750
|
-
const fraction = (current - min) / (max - min);
|
|
99751
|
-
const floatingStepNumber = fraction * numScrollSteps;
|
|
99752
|
-
const currentStepIndex = Math.round(floatingStepNumber);
|
|
99753
|
-
return {
|
|
99754
|
-
numScrollSteps,
|
|
99755
|
-
currentStepIndex,
|
|
99756
|
-
sliceRangeInfo: {
|
|
99757
|
-
sliceRange,
|
|
99758
|
-
spacingInNormalDirection,
|
|
99759
|
-
camera,
|
|
99760
|
-
},
|
|
99761
|
-
};
|
|
99762
|
-
}
|
|
99763
|
-
/* harmony default export */ const utilities_getVolumeViewportScrollInfo = (getVolumeViewportScrollInfo);
|
|
99764
|
-
|
|
99765
99887
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/snapFocalPointToSlice.js
|
|
99766
99888
|
|
|
99767
99889
|
function snapFocalPointToSlice(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, deltaFrames) {
|
|
@@ -100662,8 +100784,8 @@ function isValidVolume(imageIds) {
|
|
|
100662
100784
|
modality === baseMetadata.modality &&
|
|
100663
100785
|
columns === baseMetadata.columns &&
|
|
100664
100786
|
rows === baseMetadata.rows &&
|
|
100665
|
-
(0,isEqual/* default */.
|
|
100666
|
-
(0,isEqual/* default */.
|
|
100787
|
+
(0,isEqual/* default */.Ay)(imageOrientationPatient, baseMetadata.imageOrientationPatient) &&
|
|
100788
|
+
(0,isEqual/* default */.Ay)(pixelSpacing, baseMetadata.pixelSpacing));
|
|
100667
100789
|
});
|
|
100668
100790
|
return validVolume;
|
|
100669
100791
|
}
|
|
@@ -101496,7 +101618,7 @@ class VoxelManager {
|
|
|
101496
101618
|
return [scalarData[index++], scalarData[index++], scalarData[index++]];
|
|
101497
101619
|
}, (index, v) => {
|
|
101498
101620
|
index *= 3;
|
|
101499
|
-
const isChanged = !(0,isEqual/* default */.
|
|
101621
|
+
const isChanged = !(0,isEqual/* default */.Ay)(scalarData[index], v);
|
|
101500
101622
|
scalarData[index++] = v[0];
|
|
101501
101623
|
scalarData[index++] = v[1];
|
|
101502
101624
|
scalarData[index++] = v[2];
|
|
@@ -101850,6 +101972,7 @@ function hexToRgb(hex) {
|
|
|
101850
101972
|
|
|
101851
101973
|
|
|
101852
101974
|
|
|
101975
|
+
|
|
101853
101976
|
|
|
101854
101977
|
|
|
101855
101978
|
/***/ }),
|
|
@@ -101859,7 +101982,10 @@ function hexToRgb(hex) {
|
|
|
101859
101982
|
|
|
101860
101983
|
"use strict";
|
|
101861
101984
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
101862
|
-
/* harmony export */
|
|
101985
|
+
/* harmony export */ Ay: () => (/* binding */ isEqual),
|
|
101986
|
+
/* harmony export */ Ph: () => (/* binding */ isEqualAbs),
|
|
101987
|
+
/* harmony export */ WC: () => (/* binding */ isEqualNegative),
|
|
101988
|
+
/* harmony export */ n4: () => (/* binding */ isEqual)
|
|
101863
101989
|
/* harmony export */ });
|
|
101864
101990
|
function areNumbersEqualWithTolerance(num1, num2, tolerance) {
|
|
101865
101991
|
return Math.abs(num1 - num2) <= tolerance;
|
|
@@ -101893,6 +102019,11 @@ function isEqual(v1, v2, tolerance = 1e-5) {
|
|
|
101893
102019
|
}
|
|
101894
102020
|
return false;
|
|
101895
102021
|
}
|
|
102022
|
+
const negative = (v) => typeof v === 'number' ? -v : v?.map ? v.map(negative) : !v;
|
|
102023
|
+
const abs = (v) => typeof v === 'number' ? Math.abs(v) : v?.map ? v.map(abs) : v;
|
|
102024
|
+
const isEqualNegative = (v1, v2, tolerance = undefined) => isEqual(v1, negative(v2), tolerance);
|
|
102025
|
+
const isEqualAbs = (v1, v2, tolerance = undefined) => isEqual(abs(v1), abs(v2), tolerance);
|
|
102026
|
+
|
|
101896
102027
|
|
|
101897
102028
|
|
|
101898
102029
|
/***/ }),
|
|
@@ -102132,7 +102263,7 @@ class CentralizedWorkerManager {
|
|
|
102132
102263
|
/***/ 54578:
|
|
102133
102264
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
102134
102265
|
|
|
102135
|
-
!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})()));
|
|
102266
|
+
!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")}}}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?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})()));
|
|
102136
102267
|
|
|
102137
102268
|
|
|
102138
102269
|
/***/ }),
|
|
@@ -258059,7 +258190,7 @@ var selectOrdinal = function selectOrdinal() {
|
|
|
258059
258190
|
/******/ // This function allow to reference async chunks
|
|
258060
258191
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
258061
258192
|
/******/ // return url for filenames based on template
|
|
258062
|
-
/******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg","584":"suv-peak-worker"}[chunkId] || chunkId) + ".bundle." + {"
|
|
258193
|
+
/******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg","584":"suv-peak-worker"}[chunkId] || chunkId) + ".bundle." + {"54":"829e14ec12c2b41a4323","94":"b4f45b237188a8550a35","109":"b4fee2a22b622839baf5","121":"b582314ec0024fdf2d15","236":"d3a631d79ee8952e3c60","243":"866dc990219240efa81f","295":"9926ff25c6dbf53845b1","297":"194d8985ab974839b5b6","325":"d8bf863ddebb832dcaab","342":"67c49f2e52829a5696a4","367":"6a0746aeca702ae6eba6","370":"baa389d217c390b0e92b","390":"504391bda56219cc9ef9","445":"38c6d2af64e41cd7c614","448":"67539d1552db51aaca85","481":"a2b01ffe06a262fa9375","483":"016de3c3ec209d9fa42a","487":"3f0e64e16189f92fcebc","525":"d3a56dc9f62df5e11019","530":"17b9a34fefff133e5379","544":"4d1fb477b572f50f4220","550":"41e6a1eacc49db2358c5","572":"b0392069f29e128b4efa","574":"0bcd9d70f4b1eea48082","584":"f823d84fae4ce6865f9a","644":"1e77691d2eeb96a423b0","682":"066197792e6a0d01b669","699":"428f20dd60662f1e5edd","721":"d21827d733e8811e0b18","722":"1242e0348afc63ca4f5e","726":"c8de818cf1a3ff0cf7d2","776":"981d8227b59f97f11dd8","783":"c5b7e2433ecb9d8e2541","835":"4c0eaa2c1a427ee41817","862":"7a102f04ef4d12686894","889":"ed8937ba0c5455ed894d","905":"b101088a20887c27945d","907":"e8d22a858051cd255c9c","931":"d270a1fda9a2836c3cc5","939":"9d93b2e47c52338747a2","961":"b86b71c712fa83e526d3","981":"7b03f5a200c7dbcbaf1d","989":"e81da55a6954a12e5ea1","998":"37015da90e590043cda0"}[chunkId] + ".js";
|
|
258063
258194
|
/******/ };
|
|
258064
258195
|
/******/ })();
|
|
258065
258196
|
/******/
|
|
@@ -258230,7 +258361,7 @@ var selectOrdinal = function selectOrdinal() {
|
|
|
258230
258361
|
/******/ };
|
|
258231
258362
|
/******/
|
|
258232
258363
|
/******/ __webpack_require__.f.miniCss = (chunkId, promises) => {
|
|
258233
|
-
/******/ var cssChunks = {"
|
|
258364
|
+
/******/ var cssChunks = {"325":1,"481":1,"544":1,"550":1,"574":1,"998":1};
|
|
258234
258365
|
/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
|
|
258235
258366
|
/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
|
|
258236
258367
|
/******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {
|
|
@@ -258354,20 +258485,17 @@ var selectOrdinal = function selectOrdinal() {
|
|
|
258354
258485
|
/******/ /* webpack/runtime/chunk prefetch trigger */
|
|
258355
258486
|
/******/ (() => {
|
|
258356
258487
|
/******/ var chunkToChildrenMap = {
|
|
258357
|
-
/******/ "
|
|
258488
|
+
/******/ "243": [
|
|
258358
258489
|
/******/ 121
|
|
258359
258490
|
/******/ ],
|
|
258360
|
-
/******/ "321": [
|
|
258361
|
-
/******/ 574
|
|
258362
|
-
/******/ ],
|
|
258363
258491
|
/******/ "325": [
|
|
258364
258492
|
/******/ 530,
|
|
258365
258493
|
/******/ 862
|
|
258366
258494
|
/******/ ],
|
|
258367
|
-
/******/ "
|
|
258368
|
-
/******/
|
|
258495
|
+
/******/ "550": [
|
|
258496
|
+
/******/ 574
|
|
258369
258497
|
/******/ ],
|
|
258370
|
-
/******/ "
|
|
258498
|
+
/******/ "721": [
|
|
258371
258499
|
/******/ 530
|
|
258372
258500
|
/******/ ],
|
|
258373
258501
|
/******/ "907": [
|
|
@@ -258375,6 +258503,9 @@ var selectOrdinal = function selectOrdinal() {
|
|
|
258375
258503
|
/******/ ],
|
|
258376
258504
|
/******/ "961": [
|
|
258377
258505
|
/******/ 939
|
|
258506
|
+
/******/ ],
|
|
258507
|
+
/******/ "998": [
|
|
258508
|
+
/******/ 295
|
|
258378
258509
|
/******/ ]
|
|
258379
258510
|
/******/ };
|
|
258380
258511
|
/******/ __webpack_require__.f.prefetch = (chunkId, promises) => (Promise.all(promises).then(() => {
|