@ohif/app 3.9.0-beta.57 → 3.9.0-beta.59
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/{29.bundle.976319462f33868497c2.js → 117.bundle.403581eea72534ff9c7e.js} +1765 -582
- package/dist/{169.bundle.483057ed84ca3e92513a.js → 169.bundle.d28df3cf2d600fc3e146.js} +7 -5
- package/dist/{210.bundle.368d53177dc659dc6af0.js → 210.bundle.ea52c75bb27ab002dc4d.js} +2 -2
- package/dist/{281.bundle.49da07d997da7cc01705.js → 281.bundle.719e9e222fecb4e9e9c6.js} +18 -4
- package/dist/{360.bundle.2c117803c05f0bc31424.js → 360.bundle.9a0c682beae1ef7e40b1.js} +5 -5
- package/dist/{372.bundle.d97377781382080306bd.js → 372.bundle.9891a9938b28db4b36ce.js} +5 -4
- package/dist/424.bundle.1caecbb1bbefc271b621.js +663 -0
- package/dist/{497.bundle.ee102d6243f984113f08.js → 497.bundle.bbc07cef12d598653a65.js} +149 -117
- package/dist/{498.bundle.bb47c493dd02451f77ef.js → 498.bundle.e5ccb2bc38e4bfdd564b.js} +1 -1
- package/dist/{516.bundle.d777e4126814a5a47117.js → 516.bundle.e59c26f055d145ce835e.js} +47 -12
- package/dist/{196.bundle.cf8c2311aafb5312bbf7.js → 579.bundle.0b78fc095924efac431d.js} +1705 -493
- package/dist/{552.bundle.85aaefb5e22d6d1bffa9.js → 65.bundle.d15cc84a0b991e182649.js} +15 -680
- package/dist/{129.bundle.3102eccbd5c78524c3dd.js → 650.bundle.a65389abf76ad921aa17.js} +2671 -2975
- package/dist/{793.bundle.c92f52ddff0e3bf506e6.js → 793.bundle.e4c759b5cdfcc3c7494f.js} +2 -2
- package/dist/{818.bundle.cda4e369fdee5459a544.js → 818.bundle.b64fae7e982e16a82ca2.js} +133 -69
- package/dist/{842.bundle.a5533bc77e6f57b0ee30.js → 842.bundle.cccbb7e3611e3d220f07.js} +2 -2
- package/dist/{888.bundle.7ff5dfd3c14072cee2a9.js → 888.bundle.d3b2a82cb17155725342.js} +9 -3
- package/dist/{428.bundle.744fc5865b2d747de88a.js → 904.bundle.008f8a2095669f4eabba.js} +88 -50
- package/dist/{962.bundle.d5f55c85407221bbce7b.js → 962.bundle.868b30361a52b0ffa504.js} +2 -2
- package/dist/{993.bundle.aa31ebda5a5f62c44de5.js → 993.bundle.302a286ebb6e3fc0c35a.js} +1265 -485
- package/dist/{994.bundle.c4709bfb7fd9dcde0551.js → 994.bundle.3b5f396b62cce2990c03.js} +15 -1
- package/dist/{app.bundle.a69624a3e0becd131c65.js → app.bundle.14f126e3ec4491bb1948.js} +1393 -1321
- package/dist/app.bundle.css +2 -2
- package/dist/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js.map +1 -0
- package/dist/{histogram-worker.bundle.e7e9fea2c3236b0e747a.js → histogram-worker.bundle.89729ccb99d170ff2f2f.js} +2 -1
- package/dist/index.html +3 -1
- package/dist/{polySeg.bundle.b25c61224998018d0f79.js → polySeg.bundle.d8943427beee7694621a.js} +3 -22
- package/dist/{suv-peak-worker.bundle.eb11e71db02e52601ecf.js → suv-peak-worker.bundle.15dcb8d1ab8e0528bfd9.js} +3 -22
- package/dist/sw.js +1 -1
- package/package.json +18 -18
- /package/dist/{153.bundle.62dad8e9c7532474e95c.js → 153.bundle.42a66f99ced5972aa0c0.js} +0 -0
- /package/dist/{202.bundle.bb0e8196739bb896dc9e.js → 202.bundle.f6d9ca4b1c16b1aa227f.js} +0 -0
- /package/dist/{246.bundle.27aca95ea22cd5fcd414.js → 246.bundle.912e9f8342cd5d6228e6.js} +0 -0
- /package/dist/{353.bundle.a741604612f3f1d18398.js → 353.bundle.5b11e6b395c5d5cc33bf.js} +0 -0
- /package/dist/{376.bundle.2657056d8bc2b11fb0e8.js → 376.bundle.ac0e23dc830cd982fd18.js} +0 -0
- /package/dist/{552.css → 424.css} +0 -0
- /package/dist/{502.bundle.e7e6c345146aef00a169.js → 502.bundle.823682db96d52df1b8cf.js} +0 -0
- /package/dist/{591.bundle.aa91409b528ae6b601e0.js → 591.bundle.39fa1e6e7285929f2e29.js} +0 -0
- /package/dist/{791.bundle.d614182fa975e92cf4f5.js → 791.bundle.ecf9b1f8892d5f8962a3.js} +0 -0
- /package/dist/{944.bundle.c2bcb49d5077bd6fcc87.js → 944.bundle.93eddec203a43754e826.js} +0 -0
- /package/dist/{978.bundle.cd27543a62e7230557b2.js → 978.bundle.c12902cf44dca926bcb8.js} +0 -0
|
@@ -1,25 +1,6 @@
|
|
|
1
1
|
/******/ (() => { // webpackBootstrap
|
|
2
2
|
/******/ var __webpack_modules__ = ({
|
|
3
3
|
|
|
4
|
-
/***/ 30684:
|
|
5
|
-
/***/ ((module) => {
|
|
6
|
-
|
|
7
|
-
function webpackEmptyAsyncContext(req) {
|
|
8
|
-
// Here Promise.resolve().then() is used instead of new Promise() to prevent
|
|
9
|
-
// uncaught exception popping up in devtools
|
|
10
|
-
return Promise.resolve().then(() => {
|
|
11
|
-
var e = new Error("Cannot find module '" + req + "'");
|
|
12
|
-
e.code = 'MODULE_NOT_FOUND';
|
|
13
|
-
throw e;
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
webpackEmptyAsyncContext.keys = () => ([]);
|
|
17
|
-
webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;
|
|
18
|
-
webpackEmptyAsyncContext.id = 30684;
|
|
19
|
-
module.exports = webpackEmptyAsyncContext;
|
|
20
|
-
|
|
21
|
-
/***/ }),
|
|
22
|
-
|
|
23
4
|
/***/ 75213:
|
|
24
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
25
6
|
|
|
@@ -1048,8 +1029,8 @@ function WorkList({
|
|
|
1048
1029
|
};
|
|
1049
1030
|
});
|
|
1050
1031
|
const hasStudies = numOfStudies > 0;
|
|
1051
|
-
const versionNumber = "3.9.0-beta.
|
|
1052
|
-
const commitHash = "
|
|
1032
|
+
const versionNumber = "3.9.0-beta.59";
|
|
1033
|
+
const commitHash = "24c511f4bc04c4143bbd3d0d48029f41f7f36014";
|
|
1053
1034
|
const menuOptions = [{
|
|
1054
1035
|
title: t('Header:About'),
|
|
1055
1036
|
icon: 'info',
|
|
@@ -1929,31 +1910,31 @@ modes.push("@ohif/mode-preclinical-4d");
|
|
|
1929
1910
|
async function loadModule(module) {
|
|
1930
1911
|
if (typeof module !== 'string') return module;
|
|
1931
1912
|
if (module === "@ohif/extension-default") {
|
|
1932
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1913
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(281), __webpack_require__.e(757)]).then(__webpack_require__.bind(__webpack_require__, 32281));
|
|
1933
1914
|
return imported.default;
|
|
1934
1915
|
}
|
|
1935
1916
|
if (module === "@ohif/extension-cornerstone") {
|
|
1936
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1917
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(793), __webpack_require__.e(10), __webpack_require__.e(516)]).then(__webpack_require__.bind(__webpack_require__, 15516));
|
|
1937
1918
|
return imported.default;
|
|
1938
1919
|
}
|
|
1939
1920
|
if (module === "@ohif/extension-measurement-tracking") {
|
|
1940
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1921
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(202), __webpack_require__.e(417), __webpack_require__.e(530), __webpack_require__.e(281), __webpack_require__.e(360), __webpack_require__.e(994)]).then(__webpack_require__.bind(__webpack_require__, 64595));
|
|
1941
1922
|
return imported.default;
|
|
1942
1923
|
}
|
|
1943
1924
|
if (module === "@ohif/extension-cornerstone-dicom-sr") {
|
|
1944
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1925
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(202), __webpack_require__.e(360)]).then(__webpack_require__.bind(__webpack_require__, 97360));
|
|
1945
1926
|
return imported.default;
|
|
1946
1927
|
}
|
|
1947
1928
|
if (module === "@ohif/extension-cornerstone-dicom-seg") {
|
|
1948
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1929
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(604), __webpack_require__.e(202), __webpack_require__.e(417), __webpack_require__.e(831), __webpack_require__.e(281), __webpack_require__.e(210)]).then(__webpack_require__.bind(__webpack_require__, 18291));
|
|
1949
1930
|
return imported.default;
|
|
1950
1931
|
}
|
|
1951
1932
|
if (module === "@ohif/extension-cornerstone-dynamic-volume") {
|
|
1952
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1933
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(793), __webpack_require__.e(962)]).then(__webpack_require__.bind(__webpack_require__, 63962));
|
|
1953
1934
|
return imported.default;
|
|
1954
1935
|
}
|
|
1955
1936
|
if (module === "@ohif/extension-dicom-microscopy") {
|
|
1956
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1937
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(931), __webpack_require__.e(65)]).then(__webpack_require__.bind(__webpack_require__, 82065));
|
|
1957
1938
|
return imported.default;
|
|
1958
1939
|
}
|
|
1959
1940
|
if (module === "@ohif/extension-dicom-pdf") {
|
|
@@ -1965,7 +1946,7 @@ async function loadModule(module) {
|
|
|
1965
1946
|
return imported.default;
|
|
1966
1947
|
}
|
|
1967
1948
|
if (module === "@ohif/extension-tmtv") {
|
|
1968
|
-
const imported = await Promise.all(/* import() */[__webpack_require__.e(
|
|
1949
|
+
const imported = await Promise.all(/* import() */[__webpack_require__.e(904), __webpack_require__.e(818), __webpack_require__.e(497), __webpack_require__.e(993), __webpack_require__.e(202), __webpack_require__.e(372)]).then(__webpack_require__.bind(__webpack_require__, 94372));
|
|
1969
1950
|
return imported.default;
|
|
1970
1951
|
}
|
|
1971
1952
|
if (module === "@ohif/extension-test") {
|
|
@@ -2004,7 +1985,11 @@ async function loadModule(module) {
|
|
|
2004
1985
|
const imported = await __webpack_require__.e(/* import() */ 246).then(__webpack_require__.bind(__webpack_require__, 27246));
|
|
2005
1986
|
return imported.default;
|
|
2006
1987
|
}
|
|
2007
|
-
|
|
1988
|
+
if (module === "dicom-microscopy-viewer") {
|
|
1989
|
+
const imported = await window.browserImportFunction('/dicom-microscopy-viewer/dicomMicroscopyViewer.min.js');
|
|
1990
|
+
return window["dicomMicroscopyViewer"];
|
|
1991
|
+
}
|
|
1992
|
+
return (await window.browserImportFunction(module)).default;
|
|
2008
1993
|
}
|
|
2009
1994
|
|
|
2010
1995
|
// Import a list of items (modules or string names)
|
|
@@ -2880,9 +2865,11 @@ async function appInit(appConfigOrFunc, defaultExtensions, defaultModes) {
|
|
|
2880
2865
|
const appConfig = {
|
|
2881
2866
|
...(typeof appConfigOrFunc === 'function' ? await appConfigOrFunc({
|
|
2882
2867
|
servicesManager,
|
|
2883
|
-
|
|
2868
|
+
peerImport: loadModule
|
|
2884
2869
|
}) : appConfigOrFunc)
|
|
2885
2870
|
};
|
|
2871
|
+
// Default the peer import function
|
|
2872
|
+
appConfig.peerImport ||= loadModule;
|
|
2886
2873
|
const extensionManager = new core_src/* ExtensionManager */.W$({
|
|
2887
2874
|
commandsManager,
|
|
2888
2875
|
servicesManager,
|
|
@@ -5027,7 +5014,7 @@ const detectionOptions = {
|
|
|
5027
5014
|
}
|
|
5028
5015
|
});
|
|
5029
5016
|
;// CONCATENATED MODULE: ../../i18n/package.json
|
|
5030
|
-
const package_namespaceObject = JSON.parse('{"i8":"3.9.0-beta.
|
|
5017
|
+
const package_namespaceObject = JSON.parse('{"i8":"3.9.0-beta.58"}');
|
|
5031
5018
|
;// CONCATENATED MODULE: ../../i18n/src/utils.js
|
|
5032
5019
|
const languagesMap = {
|
|
5033
5020
|
ar: 'Arabic',
|
|
@@ -34291,6 +34278,7 @@ const Thumbnail = ({
|
|
|
34291
34278
|
className: classnames_default()(className, 'group mb-8 flex flex-1 cursor-pointer select-none flex-col px-3 outline-none'),
|
|
34292
34279
|
id: `thumbnail-${displaySetInstanceUID}`,
|
|
34293
34280
|
"data-cy": `study-browser-thumbnail`,
|
|
34281
|
+
"data-series": seriesNumber,
|
|
34294
34282
|
onClick: onClick,
|
|
34295
34283
|
onDoubleClick: onDoubleClick,
|
|
34296
34284
|
onTouchEnd: handleTouchEnd,
|
|
@@ -34317,7 +34305,7 @@ const Thumbnail = ({
|
|
|
34317
34305
|
name: countIcon || 'group-layers',
|
|
34318
34306
|
className: "mr-2 w-3"
|
|
34319
34307
|
}), ` ${numInstances}`), /*#__PURE__*/react.createElement("div", {
|
|
34320
|
-
className: "
|
|
34308
|
+
className: "mr-2 flex last:mr-0"
|
|
34321
34309
|
}, loadingProgress && loadingProgress < 1 && /*#__PURE__*/react.createElement(react.Fragment, null, Math.round(loadingProgress * 100), "%"), loadingProgress && loadingProgress === 1 && /*#__PURE__*/react.createElement(Icon/* default */.Z, {
|
|
34322
34310
|
name: 'database',
|
|
34323
34311
|
className: "w-3"
|
|
@@ -67936,6 +67924,7 @@ class ExtensionManager extends pubSubServiceInterface/* PubSubService */.h {
|
|
|
67936
67924
|
this.dataSourceDefs = void 0;
|
|
67937
67925
|
this.defaultDataSourceName = void 0;
|
|
67938
67926
|
this.activeDataSource = void 0;
|
|
67927
|
+
this.peerImport = void 0;
|
|
67939
67928
|
/**
|
|
67940
67929
|
* An array of extensions, or an array of arrays that contains extension
|
|
67941
67930
|
* configuration pairs.
|
|
@@ -68208,6 +68197,7 @@ class ExtensionManager extends pubSubServiceInterface/* PubSubService */.h {
|
|
|
68208
68197
|
this.dataSourceDefs = {};
|
|
68209
68198
|
this.defaultDataSourceName = appConfig.defaultDataSourceName;
|
|
68210
68199
|
this.activeDataSource = appConfig.defaultDataSourceName;
|
|
68200
|
+
this.peerImport = appConfig.peerImport;
|
|
68211
68201
|
}
|
|
68212
68202
|
setActiveDataSource(dataSource) {
|
|
68213
68203
|
if (this.activeDataSource === dataSource) {
|
|
@@ -68373,6 +68363,9 @@ class ExtensionManager extends pubSubServiceInterface/* PubSubService */.h {
|
|
|
68373
68363
|
});
|
|
68374
68364
|
});
|
|
68375
68365
|
}
|
|
68366
|
+
get appConfig() {
|
|
68367
|
+
return this._appConfig;
|
|
68368
|
+
}
|
|
68376
68369
|
}
|
|
68377
68370
|
|
|
68378
68371
|
/**
|
|
@@ -69626,7 +69619,9 @@ const WADO_IMAGE_LOADER = {
|
|
|
69626
69619
|
columns: (0,toNumber/* default */.Z)(instance.Columns),
|
|
69627
69620
|
imageOrientationPatient: (0,toNumber/* default */.Z)(ImageOrientationPatient),
|
|
69628
69621
|
rowCosines: (0,toNumber/* default */.Z)(rowCosines || [0, 1, 0]),
|
|
69622
|
+
isDefaultValueSetForRowCosine: (0,toNumber/* default */.Z)(rowCosines) ? false : true,
|
|
69629
69623
|
columnCosines: (0,toNumber/* default */.Z)(columnCosines || [0, 0, -1]),
|
|
69624
|
+
isDefaultValueSetForColumnCosine: (0,toNumber/* default */.Z)(columnCosines) ? false : true,
|
|
69630
69625
|
imagePositionPatient: (0,toNumber/* default */.Z)(instance.ImagePositionPatient || [0, 0, 0]),
|
|
69631
69626
|
sliceThickness: (0,toNumber/* default */.Z)(instance.SliceThickness),
|
|
69632
69627
|
sliceLocation: (0,toNumber/* default */.Z)(instance.SliceLocation),
|
|
@@ -188469,13 +188464,13 @@ webpackContext.id = 84179;
|
|
|
188469
188464
|
/* harmony import */ var _kitware_vtk_js_Common_DataModel_PiecewiseFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44031);
|
|
188470
188465
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72076);
|
|
188471
188466
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82253);
|
|
188472
|
-
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
188467
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19247);
|
|
188473
188468
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7187);
|
|
188474
188469
|
/* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(68032);
|
|
188475
188470
|
/* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(74238);
|
|
188476
188471
|
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(28719);
|
|
188477
188472
|
/* harmony import */ var _loaders_volumeLoader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(18588);
|
|
188478
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
|
|
188473
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(56309);
|
|
188479
188474
|
/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(25281);
|
|
188480
188475
|
/* harmony import */ var _helpers_volumeNewImageEventDispatcher__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(41957);
|
|
188481
188476
|
/* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(77614);
|
|
@@ -188717,6 +188712,9 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
188717
188712
|
static get useCustomRenderingPipeline() {
|
|
188718
188713
|
return false;
|
|
188719
188714
|
}
|
|
188715
|
+
resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false, resetOrientation = true) {
|
|
188716
|
+
return super.resetCamera();
|
|
188717
|
+
}
|
|
188720
188718
|
applyViewOrientation(orientation, resetCamera = true) {
|
|
188721
188719
|
const { viewPlaneNormal, viewUp } = this._getOrientationVectors(orientation);
|
|
188722
188720
|
const camera = this.getVtkActiveCamera();
|
|
@@ -188724,7 +188722,8 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
188724
188722
|
camera.setViewUpFrom(viewUp);
|
|
188725
188723
|
this.initialViewUp = viewUp;
|
|
188726
188724
|
if (resetCamera) {
|
|
188727
|
-
|
|
188725
|
+
const resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, suppressEvents = true, resetOrientation = false;
|
|
188726
|
+
this.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, suppressEvents, resetOrientation);
|
|
188728
188727
|
}
|
|
188729
188728
|
}
|
|
188730
188729
|
initializeVolumeNewImageEventDispatcher() {
|
|
@@ -189367,6 +189366,218 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
189367
189366
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (BaseVolumeViewport);
|
|
189368
189367
|
|
|
189369
189368
|
|
|
189369
|
+
/***/ }),
|
|
189370
|
+
|
|
189371
|
+
/***/ 40046:
|
|
189372
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
189373
|
+
|
|
189374
|
+
"use strict";
|
|
189375
|
+
|
|
189376
|
+
// EXPORTS
|
|
189377
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
189378
|
+
Z: () => (/* binding */ CanvasActor)
|
|
189379
|
+
});
|
|
189380
|
+
|
|
189381
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.js
|
|
189382
|
+
class CanvasProperties {
|
|
189383
|
+
constructor(actor) {
|
|
189384
|
+
this.opacity = 0.4;
|
|
189385
|
+
this.outlineOpacity = 0.4;
|
|
189386
|
+
this.transferFunction = [];
|
|
189387
|
+
this.actor = actor;
|
|
189388
|
+
}
|
|
189389
|
+
setRGBTransferFunction(index, cfun) {
|
|
189390
|
+
this.transferFunction[index] = cfun;
|
|
189391
|
+
}
|
|
189392
|
+
setScalarOpacity(opacity) {
|
|
189393
|
+
}
|
|
189394
|
+
setInterpolationTypeToNearest() {
|
|
189395
|
+
}
|
|
189396
|
+
setUseLabelOutline() {
|
|
189397
|
+
}
|
|
189398
|
+
setLabelOutlineOpacity(opacity) {
|
|
189399
|
+
this.outlineOpacity = opacity;
|
|
189400
|
+
}
|
|
189401
|
+
setLabelOutlineThickness() {
|
|
189402
|
+
}
|
|
189403
|
+
getColor(index) {
|
|
189404
|
+
const cfun = this.transferFunction[0];
|
|
189405
|
+
const r = cfun.getRedValue(index);
|
|
189406
|
+
const g = cfun.getGreenValue(index);
|
|
189407
|
+
const b = cfun.getBlueValue(index);
|
|
189408
|
+
return [r, g, b, this.opacity];
|
|
189409
|
+
}
|
|
189410
|
+
}
|
|
189411
|
+
|
|
189412
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.js
|
|
189413
|
+
class CanvasMapper {
|
|
189414
|
+
constructor(actor) {
|
|
189415
|
+
this.actor = actor;
|
|
189416
|
+
}
|
|
189417
|
+
getInputData() {
|
|
189418
|
+
return this.actor.getImage();
|
|
189419
|
+
}
|
|
189420
|
+
}
|
|
189421
|
+
|
|
189422
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/index.js
|
|
189423
|
+
|
|
189424
|
+
|
|
189425
|
+
class CanvasActor {
|
|
189426
|
+
constructor(viewport, derivedImage) {
|
|
189427
|
+
this.canvasProperties = new CanvasProperties(this);
|
|
189428
|
+
this.visibility = false;
|
|
189429
|
+
this.mapper = new CanvasMapper(this);
|
|
189430
|
+
this.className = 'CanvasActor';
|
|
189431
|
+
this.derivedImage = derivedImage;
|
|
189432
|
+
this.viewport = viewport;
|
|
189433
|
+
}
|
|
189434
|
+
renderRLE(viewport, context, voxelManager) {
|
|
189435
|
+
const { width, height } = this.image;
|
|
189436
|
+
let { canvas } = this;
|
|
189437
|
+
if (!canvas || canvas.width !== width || canvas.height !== height) {
|
|
189438
|
+
this.canvas = canvas = new window.OffscreenCanvas(width, height);
|
|
189439
|
+
}
|
|
189440
|
+
const localContext = canvas.getContext('2d');
|
|
189441
|
+
const imageData = localContext.createImageData(width, height);
|
|
189442
|
+
const { data: imageArray } = imageData;
|
|
189443
|
+
imageArray.fill(0);
|
|
189444
|
+
const { map } = voxelManager;
|
|
189445
|
+
let dirtyX = Infinity;
|
|
189446
|
+
let dirtyY = Infinity;
|
|
189447
|
+
let dirtyX2 = -Infinity;
|
|
189448
|
+
let dirtyY2 = -Infinity;
|
|
189449
|
+
for (let y = 0; y < height; y++) {
|
|
189450
|
+
const row = map.getRun(y, 0);
|
|
189451
|
+
if (!row) {
|
|
189452
|
+
continue;
|
|
189453
|
+
}
|
|
189454
|
+
dirtyY = Math.min(dirtyY, y);
|
|
189455
|
+
dirtyY2 = Math.max(dirtyY2, y);
|
|
189456
|
+
const baseOffset = (y * width) << 2;
|
|
189457
|
+
let indicesToDelete;
|
|
189458
|
+
for (const run of row) {
|
|
189459
|
+
const { start, end, value: segmentIndex } = run;
|
|
189460
|
+
if (segmentIndex === 0) {
|
|
189461
|
+
indicesToDelete ||= [];
|
|
189462
|
+
indicesToDelete.push(row.indexOf(run));
|
|
189463
|
+
continue;
|
|
189464
|
+
}
|
|
189465
|
+
dirtyX = Math.min(dirtyX, start);
|
|
189466
|
+
dirtyX2 = Math.max(dirtyX2, end);
|
|
189467
|
+
const rgb = this.canvasProperties
|
|
189468
|
+
.getColor(segmentIndex)
|
|
189469
|
+
.map((v) => v * 255);
|
|
189470
|
+
let startOffset = baseOffset + (start << 2);
|
|
189471
|
+
for (let i = start; i < end; i++) {
|
|
189472
|
+
imageArray[startOffset++] = rgb[0];
|
|
189473
|
+
imageArray[startOffset++] = rgb[1];
|
|
189474
|
+
imageArray[startOffset++] = rgb[2];
|
|
189475
|
+
imageArray[startOffset++] = rgb[3];
|
|
189476
|
+
}
|
|
189477
|
+
}
|
|
189478
|
+
}
|
|
189479
|
+
if (dirtyX > width) {
|
|
189480
|
+
return;
|
|
189481
|
+
}
|
|
189482
|
+
const dirtyWidth = dirtyX2 - dirtyX;
|
|
189483
|
+
const dirtyHeight = dirtyY2 - dirtyY;
|
|
189484
|
+
localContext.putImageData(imageData, 0, 0, dirtyX - 1, dirtyY - 1, dirtyWidth + 2, dirtyHeight + 2);
|
|
189485
|
+
context.drawImage(canvas, dirtyX, dirtyY, dirtyWidth, dirtyHeight, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
|
|
189486
|
+
}
|
|
189487
|
+
render(viewport, context) {
|
|
189488
|
+
if (!this.visibility) {
|
|
189489
|
+
return;
|
|
189490
|
+
}
|
|
189491
|
+
const image = this.image || this.getImage();
|
|
189492
|
+
const { width, height } = image;
|
|
189493
|
+
const data = image.getScalarData();
|
|
189494
|
+
if (!data) {
|
|
189495
|
+
return;
|
|
189496
|
+
}
|
|
189497
|
+
const { voxelManager } = image;
|
|
189498
|
+
if (voxelManager) {
|
|
189499
|
+
if (voxelManager.map.getRun) {
|
|
189500
|
+
return this.renderRLE(viewport, context, voxelManager);
|
|
189501
|
+
}
|
|
189502
|
+
}
|
|
189503
|
+
let { canvas } = this;
|
|
189504
|
+
if (!canvas || canvas.width !== width || canvas.height !== height) {
|
|
189505
|
+
this.canvas = canvas = new window.OffscreenCanvas(width, height);
|
|
189506
|
+
}
|
|
189507
|
+
const localContext = canvas.getContext('2d');
|
|
189508
|
+
const imageData = localContext.createImageData(width, height);
|
|
189509
|
+
const { data: imageArray } = imageData;
|
|
189510
|
+
let offset = 0;
|
|
189511
|
+
let destOffset = 0;
|
|
189512
|
+
let dirtyX = Infinity;
|
|
189513
|
+
let dirtyY = Infinity;
|
|
189514
|
+
let dirtyX2 = -Infinity;
|
|
189515
|
+
let dirtyY2 = -Infinity;
|
|
189516
|
+
for (let y = 0; y < height; y++) {
|
|
189517
|
+
for (let x = 0; x < width; x++) {
|
|
189518
|
+
const segmentIndex = data[offset++];
|
|
189519
|
+
if (segmentIndex) {
|
|
189520
|
+
dirtyX = Math.min(x, dirtyX);
|
|
189521
|
+
dirtyY = Math.min(y, dirtyY);
|
|
189522
|
+
dirtyX2 = Math.max(x, dirtyX2);
|
|
189523
|
+
dirtyY2 = Math.max(y, dirtyY2);
|
|
189524
|
+
const rgb = this.canvasProperties.getColor(segmentIndex);
|
|
189525
|
+
imageArray[destOffset] = rgb[0] * 255;
|
|
189526
|
+
imageArray[destOffset + 1] = rgb[1] * 255;
|
|
189527
|
+
imageArray[destOffset + 2] = rgb[2] * 255;
|
|
189528
|
+
imageArray[destOffset + 3] = 127;
|
|
189529
|
+
}
|
|
189530
|
+
destOffset += 4;
|
|
189531
|
+
}
|
|
189532
|
+
}
|
|
189533
|
+
if (dirtyX > width) {
|
|
189534
|
+
return;
|
|
189535
|
+
}
|
|
189536
|
+
const dirtyWidth = dirtyX2 - dirtyX + 1;
|
|
189537
|
+
const dirtyHeight = dirtyY2 - dirtyY + 1;
|
|
189538
|
+
localContext.putImageData(imageData, 0, 0, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
|
|
189539
|
+
context.drawImage(canvas, dirtyX, dirtyY, dirtyWidth, dirtyHeight, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
|
|
189540
|
+
}
|
|
189541
|
+
getClassName() {
|
|
189542
|
+
return this.className;
|
|
189543
|
+
}
|
|
189544
|
+
getProperty() {
|
|
189545
|
+
return this.canvasProperties;
|
|
189546
|
+
}
|
|
189547
|
+
setVisibility(visibility) {
|
|
189548
|
+
this.visibility = visibility;
|
|
189549
|
+
}
|
|
189550
|
+
getMapper() {
|
|
189551
|
+
return this.mapper;
|
|
189552
|
+
}
|
|
189553
|
+
isA(actorType) {
|
|
189554
|
+
return actorType === this.className;
|
|
189555
|
+
}
|
|
189556
|
+
getImage() {
|
|
189557
|
+
if (this.image) {
|
|
189558
|
+
return this.image;
|
|
189559
|
+
}
|
|
189560
|
+
this.image = { ...this.derivedImage };
|
|
189561
|
+
const imageData = this.viewport.getImageData();
|
|
189562
|
+
Object.assign(this.image, {
|
|
189563
|
+
worldToIndex: (worldPos) => imageData.imageData.worldToIndex(worldPos),
|
|
189564
|
+
indexToWorld: (index, destPoint) => imageData.imageData.indexToWorld(index, destPoint),
|
|
189565
|
+
getDimensions: () => imageData.dimensions,
|
|
189566
|
+
getScalarData: () => this.derivedImage?.getPixelData(),
|
|
189567
|
+
getDirection: () => imageData.direction,
|
|
189568
|
+
getSpacing: () => imageData.spacing,
|
|
189569
|
+
setOrigin: () => null,
|
|
189570
|
+
setDerivedImage: (image) => {
|
|
189571
|
+
this.derivedImage = image;
|
|
189572
|
+
this.image = null;
|
|
189573
|
+
},
|
|
189574
|
+
modified: () => null,
|
|
189575
|
+
});
|
|
189576
|
+
return this.image;
|
|
189577
|
+
}
|
|
189578
|
+
}
|
|
189579
|
+
|
|
189580
|
+
|
|
189370
189581
|
/***/ }),
|
|
189371
189582
|
|
|
189372
189583
|
/***/ 98715:
|
|
@@ -189388,7 +189599,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
189388
189599
|
/* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(30023);
|
|
189389
189600
|
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(11677);
|
|
189390
189601
|
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_10__);
|
|
189391
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
|
|
189602
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(56309);
|
|
189392
189603
|
/* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(77614);
|
|
189393
189604
|
/* harmony import */ var _helpers_cpuFallback_colors_index__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(43877);
|
|
189394
189605
|
/* harmony import */ var _helpers_cpuFallback_drawImageSync__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(98165);
|
|
@@ -191096,16 +191307,16 @@ class StackViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_12__/* ["default"
|
|
|
191096
191307
|
if (!viewRef) {
|
|
191097
191308
|
return;
|
|
191098
191309
|
}
|
|
191099
|
-
const { referencedImageId, sliceIndex
|
|
191310
|
+
const { referencedImageId, sliceIndex } = viewRef;
|
|
191100
191311
|
if (typeof sliceIndex === 'number' &&
|
|
191101
191312
|
referencedImageId &&
|
|
191102
191313
|
referencedImageId === this.imageIds[sliceIndex]) {
|
|
191103
|
-
this.
|
|
191314
|
+
this.scroll(sliceIndex - this.targetImageIdIndex);
|
|
191104
191315
|
}
|
|
191105
191316
|
else {
|
|
191106
191317
|
const foundIndex = this.imageIds.indexOf(referencedImageId);
|
|
191107
191318
|
if (foundIndex !== -1) {
|
|
191108
|
-
this.
|
|
191319
|
+
this.scroll(foundIndex - this.targetImageIdIndex);
|
|
191109
191320
|
}
|
|
191110
191321
|
else {
|
|
191111
191322
|
throw new Error('Unsupported - referenced image id not found');
|
|
@@ -191214,232 +191425,22 @@ class StackViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_12__/* ["default"
|
|
|
191214
191425
|
|
|
191215
191426
|
/***/ }),
|
|
191216
191427
|
|
|
191217
|
-
/***/
|
|
191428
|
+
/***/ 49001:
|
|
191218
191429
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
191219
191430
|
|
|
191220
191431
|
"use strict";
|
|
191221
|
-
|
|
191222
|
-
|
|
191223
|
-
|
|
191224
|
-
|
|
191225
|
-
|
|
191226
|
-
|
|
191227
|
-
|
|
191228
|
-
var
|
|
191229
|
-
|
|
191230
|
-
var
|
|
191231
|
-
|
|
191232
|
-
var
|
|
191233
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.js
|
|
191234
|
-
var rendering_transform = __webpack_require__(30742);
|
|
191235
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
|
|
191236
|
-
var utilities = __webpack_require__(11723);
|
|
191237
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
|
|
191238
|
-
var Viewport = __webpack_require__(77614);
|
|
191239
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 1 modules
|
|
191240
|
-
var helpers = __webpack_require__(25281);
|
|
191241
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/CanvasProperties.js
|
|
191242
|
-
class CanvasProperties {
|
|
191243
|
-
constructor(actor) {
|
|
191244
|
-
this.opacity = 0.4;
|
|
191245
|
-
this.outlineOpacity = 0.4;
|
|
191246
|
-
this.transferFunction = [];
|
|
191247
|
-
this.actor = actor;
|
|
191248
|
-
}
|
|
191249
|
-
setRGBTransferFunction(index, cfun) {
|
|
191250
|
-
this.transferFunction[index] = cfun;
|
|
191251
|
-
}
|
|
191252
|
-
setScalarOpacity(opacity) {
|
|
191253
|
-
}
|
|
191254
|
-
setInterpolationTypeToNearest() {
|
|
191255
|
-
}
|
|
191256
|
-
setUseLabelOutline() {
|
|
191257
|
-
}
|
|
191258
|
-
setLabelOutlineOpacity(opacity) {
|
|
191259
|
-
this.outlineOpacity = opacity;
|
|
191260
|
-
}
|
|
191261
|
-
setLabelOutlineThickness() {
|
|
191262
|
-
}
|
|
191263
|
-
getColor(index) {
|
|
191264
|
-
const cfun = this.transferFunction[0];
|
|
191265
|
-
const r = cfun.getRedValue(index);
|
|
191266
|
-
const g = cfun.getGreenValue(index);
|
|
191267
|
-
const b = cfun.getBlueValue(index);
|
|
191268
|
-
return [r, g, b, this.opacity];
|
|
191269
|
-
}
|
|
191270
|
-
}
|
|
191271
|
-
|
|
191272
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/CanvasMapper.js
|
|
191273
|
-
class CanvasMapper {
|
|
191274
|
-
constructor(actor) {
|
|
191275
|
-
this.actor = actor;
|
|
191276
|
-
}
|
|
191277
|
-
getInputData() {
|
|
191278
|
-
return this.actor.getImage();
|
|
191279
|
-
}
|
|
191280
|
-
}
|
|
191281
|
-
|
|
191282
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/CanvasActor/index.js
|
|
191283
|
-
|
|
191284
|
-
|
|
191285
|
-
class CanvasActor {
|
|
191286
|
-
constructor(viewport, derivedImage) {
|
|
191287
|
-
this.canvasProperties = new CanvasProperties(this);
|
|
191288
|
-
this.visibility = false;
|
|
191289
|
-
this.mapper = new CanvasMapper(this);
|
|
191290
|
-
this.className = 'CanvasActor';
|
|
191291
|
-
this.derivedImage = derivedImage;
|
|
191292
|
-
this.viewport = viewport;
|
|
191293
|
-
}
|
|
191294
|
-
renderRLE(viewport, context, voxelManager) {
|
|
191295
|
-
const { width, height } = this.image;
|
|
191296
|
-
let { canvas } = this;
|
|
191297
|
-
if (!canvas || canvas.width !== width || canvas.height !== height) {
|
|
191298
|
-
this.canvas = canvas = new window.OffscreenCanvas(width, height);
|
|
191299
|
-
}
|
|
191300
|
-
const localContext = canvas.getContext('2d');
|
|
191301
|
-
const imageData = localContext.createImageData(width, height);
|
|
191302
|
-
const { data: imageArray } = imageData;
|
|
191303
|
-
imageArray.fill(0);
|
|
191304
|
-
const { map } = voxelManager;
|
|
191305
|
-
let dirtyX = Infinity;
|
|
191306
|
-
let dirtyY = Infinity;
|
|
191307
|
-
let dirtyX2 = -Infinity;
|
|
191308
|
-
let dirtyY2 = -Infinity;
|
|
191309
|
-
for (let y = 0; y < height; y++) {
|
|
191310
|
-
const row = map.getRun(y, 0);
|
|
191311
|
-
if (!row) {
|
|
191312
|
-
continue;
|
|
191313
|
-
}
|
|
191314
|
-
dirtyY = Math.min(dirtyY, y);
|
|
191315
|
-
dirtyY2 = Math.max(dirtyY2, y);
|
|
191316
|
-
const baseOffset = (y * width) << 2;
|
|
191317
|
-
let indicesToDelete;
|
|
191318
|
-
for (const run of row) {
|
|
191319
|
-
const { start, end, value: segmentIndex } = run;
|
|
191320
|
-
if (segmentIndex === 0) {
|
|
191321
|
-
indicesToDelete ||= [];
|
|
191322
|
-
indicesToDelete.push(row.indexOf(run));
|
|
191323
|
-
continue;
|
|
191324
|
-
}
|
|
191325
|
-
dirtyX = Math.min(dirtyX, start);
|
|
191326
|
-
dirtyX2 = Math.max(dirtyX2, end);
|
|
191327
|
-
const rgb = this.canvasProperties
|
|
191328
|
-
.getColor(segmentIndex)
|
|
191329
|
-
.map((v) => v * 255);
|
|
191330
|
-
let startOffset = baseOffset + (start << 2);
|
|
191331
|
-
for (let i = start; i < end; i++) {
|
|
191332
|
-
imageArray[startOffset++] = rgb[0];
|
|
191333
|
-
imageArray[startOffset++] = rgb[1];
|
|
191334
|
-
imageArray[startOffset++] = rgb[2];
|
|
191335
|
-
imageArray[startOffset++] = rgb[3];
|
|
191336
|
-
}
|
|
191337
|
-
}
|
|
191338
|
-
}
|
|
191339
|
-
if (dirtyX > width) {
|
|
191340
|
-
return;
|
|
191341
|
-
}
|
|
191342
|
-
const dirtyWidth = dirtyX2 - dirtyX;
|
|
191343
|
-
const dirtyHeight = dirtyY2 - dirtyY;
|
|
191344
|
-
localContext.putImageData(imageData, 0, 0, dirtyX - 1, dirtyY - 1, dirtyWidth + 2, dirtyHeight + 2);
|
|
191345
|
-
context.drawImage(canvas, dirtyX, dirtyY, dirtyWidth, dirtyHeight, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
|
|
191346
|
-
}
|
|
191347
|
-
render(viewport, context) {
|
|
191348
|
-
if (!this.visibility) {
|
|
191349
|
-
return;
|
|
191350
|
-
}
|
|
191351
|
-
const image = this.image || this.getImage();
|
|
191352
|
-
const { width, height } = image;
|
|
191353
|
-
const data = image.getScalarData();
|
|
191354
|
-
if (!data) {
|
|
191355
|
-
return;
|
|
191356
|
-
}
|
|
191357
|
-
const { voxelManager } = image;
|
|
191358
|
-
if (voxelManager) {
|
|
191359
|
-
if (voxelManager.map.getRun) {
|
|
191360
|
-
return this.renderRLE(viewport, context, voxelManager);
|
|
191361
|
-
}
|
|
191362
|
-
}
|
|
191363
|
-
let { canvas } = this;
|
|
191364
|
-
if (!canvas || canvas.width !== width || canvas.height !== height) {
|
|
191365
|
-
this.canvas = canvas = new window.OffscreenCanvas(width, height);
|
|
191366
|
-
}
|
|
191367
|
-
const localContext = canvas.getContext('2d');
|
|
191368
|
-
const imageData = localContext.createImageData(width, height);
|
|
191369
|
-
const { data: imageArray } = imageData;
|
|
191370
|
-
let offset = 0;
|
|
191371
|
-
let destOffset = 0;
|
|
191372
|
-
let dirtyX = Infinity;
|
|
191373
|
-
let dirtyY = Infinity;
|
|
191374
|
-
let dirtyX2 = -Infinity;
|
|
191375
|
-
let dirtyY2 = -Infinity;
|
|
191376
|
-
for (let y = 0; y < height; y++) {
|
|
191377
|
-
for (let x = 0; x < width; x++) {
|
|
191378
|
-
const segmentIndex = data[offset++];
|
|
191379
|
-
if (segmentIndex) {
|
|
191380
|
-
dirtyX = Math.min(x, dirtyX);
|
|
191381
|
-
dirtyY = Math.min(y, dirtyY);
|
|
191382
|
-
dirtyX2 = Math.max(x, dirtyX2);
|
|
191383
|
-
dirtyY2 = Math.max(y, dirtyY2);
|
|
191384
|
-
const rgb = this.canvasProperties.getColor(segmentIndex);
|
|
191385
|
-
imageArray[destOffset] = rgb[0] * 255;
|
|
191386
|
-
imageArray[destOffset + 1] = rgb[1] * 255;
|
|
191387
|
-
imageArray[destOffset + 2] = rgb[2] * 255;
|
|
191388
|
-
imageArray[destOffset + 3] = 127;
|
|
191389
|
-
}
|
|
191390
|
-
destOffset += 4;
|
|
191391
|
-
}
|
|
191392
|
-
}
|
|
191393
|
-
if (dirtyX > width) {
|
|
191394
|
-
return;
|
|
191395
|
-
}
|
|
191396
|
-
const dirtyWidth = dirtyX2 - dirtyX + 1;
|
|
191397
|
-
const dirtyHeight = dirtyY2 - dirtyY + 1;
|
|
191398
|
-
localContext.putImageData(imageData, 0, 0, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
|
|
191399
|
-
context.drawImage(canvas, dirtyX, dirtyY, dirtyWidth, dirtyHeight, dirtyX, dirtyY, dirtyWidth, dirtyHeight);
|
|
191400
|
-
}
|
|
191401
|
-
getClassName() {
|
|
191402
|
-
return this.className;
|
|
191403
|
-
}
|
|
191404
|
-
getProperty() {
|
|
191405
|
-
return this.canvasProperties;
|
|
191406
|
-
}
|
|
191407
|
-
setVisibility(visibility) {
|
|
191408
|
-
this.visibility = visibility;
|
|
191409
|
-
}
|
|
191410
|
-
getMapper() {
|
|
191411
|
-
return this.mapper;
|
|
191412
|
-
}
|
|
191413
|
-
isA(actorType) {
|
|
191414
|
-
return actorType === this.className;
|
|
191415
|
-
}
|
|
191416
|
-
getImage() {
|
|
191417
|
-
if (this.image) {
|
|
191418
|
-
return this.image;
|
|
191419
|
-
}
|
|
191420
|
-
this.image = { ...this.derivedImage };
|
|
191421
|
-
const imageData = this.viewport.getImageData();
|
|
191422
|
-
Object.assign(this.image, {
|
|
191423
|
-
worldToIndex: (worldPos) => imageData.imageData.worldToIndex(worldPos),
|
|
191424
|
-
indexToWorld: (index, destPoint) => imageData.imageData.indexToWorld(index, destPoint),
|
|
191425
|
-
getDimensions: () => imageData.dimensions,
|
|
191426
|
-
getScalarData: () => this.derivedImage?.getPixelData(),
|
|
191427
|
-
getDirection: () => imageData.direction,
|
|
191428
|
-
getSpacing: () => imageData.spacing,
|
|
191429
|
-
setOrigin: () => null,
|
|
191430
|
-
setDerivedImage: (image) => {
|
|
191431
|
-
this.derivedImage = image;
|
|
191432
|
-
this.image = null;
|
|
191433
|
-
},
|
|
191434
|
-
modified: () => null,
|
|
191435
|
-
});
|
|
191436
|
-
return this.image;
|
|
191437
|
-
}
|
|
191438
|
-
}
|
|
191439
|
-
|
|
191440
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
|
|
191441
|
-
var cache = __webpack_require__(82253);
|
|
191442
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js
|
|
191432
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
191433
|
+
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
191434
|
+
/* harmony export */ });
|
|
191435
|
+
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72076);
|
|
191436
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7187);
|
|
191437
|
+
/* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30023);
|
|
191438
|
+
/* harmony import */ var _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30742);
|
|
191439
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56309);
|
|
191440
|
+
/* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77614);
|
|
191441
|
+
/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(25281);
|
|
191442
|
+
/* harmony import */ var _CanvasActor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40046);
|
|
191443
|
+
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(82253);
|
|
191443
191444
|
|
|
191444
191445
|
|
|
191445
191446
|
|
|
@@ -191449,11 +191450,11 @@ var cache = __webpack_require__(82253);
|
|
|
191449
191450
|
|
|
191450
191451
|
|
|
191451
191452
|
|
|
191452
|
-
class VideoViewport extends
|
|
191453
|
+
class VideoViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z {
|
|
191453
191454
|
constructor(props) {
|
|
191454
191455
|
super({
|
|
191455
191456
|
...props,
|
|
191456
|
-
canvas: props.canvas || (0,
|
|
191457
|
+
canvas: props.canvas || (0,_helpers__WEBPACK_IMPORTED_MODULE_6__/* .getOrCreateCanvas */ .uy)(props.element),
|
|
191457
191458
|
});
|
|
191458
191459
|
this.videoWidth = 0;
|
|
191459
191460
|
this.videoHeight = 0;
|
|
@@ -191555,7 +191556,7 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
191555
191556
|
actor.actor.render(this, this.canvasContext);
|
|
191556
191557
|
}
|
|
191557
191558
|
this.canvasContext.resetTransform();
|
|
191558
|
-
(0,
|
|
191559
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.STACK_NEW_IMAGE, {
|
|
191559
191560
|
element: this.element,
|
|
191560
191561
|
viewportId: this.id,
|
|
191561
191562
|
viewport: this,
|
|
@@ -191563,10 +191564,12 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
191563
191564
|
time: this.videoElement.currentTime,
|
|
191564
191565
|
duration: this.videoElement.duration,
|
|
191565
191566
|
});
|
|
191566
|
-
(0,
|
|
191567
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.IMAGE_RENDERED, {
|
|
191567
191568
|
element: this.element,
|
|
191568
191569
|
viewportId: this.id,
|
|
191569
191570
|
viewport: this,
|
|
191571
|
+
imageIndex: this.getCurrentImageIdIndex(),
|
|
191572
|
+
numberOfSlices: this.numberOfFrames,
|
|
191570
191573
|
renderingEngineId: this.renderingEngineId,
|
|
191571
191574
|
time: this.videoElement.currentTime,
|
|
191572
191575
|
duration: this.videoElement.duration,
|
|
@@ -191610,10 +191613,10 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
191610
191613
|
return true;
|
|
191611
191614
|
}
|
|
191612
191615
|
addEventListeners() {
|
|
191613
|
-
this.canvas.addEventListener(
|
|
191616
|
+
this.canvas.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_1__.Events.ELEMENT_DISABLED, this.elementDisabledHandler);
|
|
191614
191617
|
}
|
|
191615
191618
|
removeEventListeners() {
|
|
191616
|
-
this.canvas.removeEventListener(
|
|
191619
|
+
this.canvas.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_1__.Events.ELEMENT_DISABLED, this.elementDisabledHandler);
|
|
191617
191620
|
}
|
|
191618
191621
|
elementDisabledHandler() {
|
|
191619
191622
|
this.removeEventListeners();
|
|
@@ -191621,18 +191624,18 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
191621
191624
|
}
|
|
191622
191625
|
getImageDataMetadata(image) {
|
|
191623
191626
|
const imageId = typeof image === 'string' ? image : image.imageId;
|
|
191624
|
-
const imagePlaneModule =
|
|
191627
|
+
const imagePlaneModule = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.IMAGE_PLANE, imageId);
|
|
191625
191628
|
let rowCosines = imagePlaneModule.rowCosines;
|
|
191626
191629
|
let columnCosines = imagePlaneModule.columnCosines;
|
|
191627
191630
|
if (rowCosines == null || columnCosines == null) {
|
|
191628
191631
|
rowCosines = [1, 0, 0];
|
|
191629
191632
|
columnCosines = [0, 1, 0];
|
|
191630
191633
|
}
|
|
191631
|
-
const rowCosineVec =
|
|
191632
|
-
const colCosineVec =
|
|
191634
|
+
const rowCosineVec = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .R3.fromValues(rowCosines[0], rowCosines[1], rowCosines[2]);
|
|
191635
|
+
const colCosineVec = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.fromValues */ .R3.fromValues(columnCosines[0], columnCosines[1], columnCosines[2]);
|
|
191633
191636
|
const { rows, columns } = imagePlaneModule;
|
|
191634
|
-
const scanAxisNormal =
|
|
191635
|
-
|
|
191637
|
+
const scanAxisNormal = gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.create */ .R3.create();
|
|
191638
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_0__/* .vec3.cross */ .R3.cross(scanAxisNormal, rowCosineVec, colCosineVec);
|
|
191636
191639
|
let origin = imagePlaneModule.imagePositionPatient;
|
|
191637
191640
|
if (origin == null) {
|
|
191638
191641
|
origin = [0, 0, 0];
|
|
@@ -191663,15 +191666,15 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
191663
191666
|
}
|
|
191664
191667
|
setVideo(imageId, frameNumber) {
|
|
191665
191668
|
this.imageId = Array.isArray(imageId) ? imageId[0] : imageId;
|
|
191666
|
-
const imageUrlModule =
|
|
191669
|
+
const imageUrlModule = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.IMAGE_URL, imageId);
|
|
191667
191670
|
if (!imageUrlModule?.rendered) {
|
|
191668
191671
|
throw new Error(`Video Image ID ${imageId} does not have a rendered video view`);
|
|
191669
191672
|
}
|
|
191670
191673
|
const { rendered } = imageUrlModule;
|
|
191671
|
-
const generalSeries =
|
|
191674
|
+
const generalSeries = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.GENERAL_SERIES, imageId);
|
|
191672
191675
|
this.modality = generalSeries?.Modality;
|
|
191673
191676
|
this.metadata = this.getImageDataMetadata(imageId);
|
|
191674
|
-
let { cineRate, numberOfFrames } =
|
|
191677
|
+
let { cineRate, numberOfFrames } = _metaData__WEBPACK_IMPORTED_MODULE_2__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.CINE, imageId);
|
|
191675
191678
|
this.numberOfFrames = numberOfFrames;
|
|
191676
191679
|
return this.setVideoURL(rendered).then(() => {
|
|
191677
191680
|
if (!numberOfFrames || numberOfFrames === 1) {
|
|
@@ -191731,18 +191734,18 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
191731
191734
|
async play() {
|
|
191732
191735
|
try {
|
|
191733
191736
|
if (!this.isPlaying) {
|
|
191734
|
-
await this.videoElement.play();
|
|
191735
191737
|
this.isPlaying = true;
|
|
191738
|
+
await this.videoElement.play();
|
|
191736
191739
|
this.renderWhilstPlaying();
|
|
191737
191740
|
}
|
|
191738
191741
|
}
|
|
191739
191742
|
catch (e) {
|
|
191740
191743
|
}
|
|
191741
191744
|
}
|
|
191742
|
-
|
|
191745
|
+
pause() {
|
|
191743
191746
|
try {
|
|
191744
|
-
await this.videoElement.pause();
|
|
191745
191747
|
this.isPlaying = false;
|
|
191748
|
+
this.videoElement.pause();
|
|
191746
191749
|
}
|
|
191747
191750
|
catch (e) {
|
|
191748
191751
|
}
|
|
@@ -191841,9 +191844,9 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
191841
191844
|
this.videoElement.playbackRate = rate;
|
|
191842
191845
|
this.play();
|
|
191843
191846
|
}
|
|
191844
|
-
setScrollSpeed(scrollSpeed = 1, unit =
|
|
191847
|
+
setScrollSpeed(scrollSpeed = 1, unit = _enums__WEBPACK_IMPORTED_MODULE_1__.VideoEnums.SpeedUnit.FRAME) {
|
|
191845
191848
|
this.scrollSpeed =
|
|
191846
|
-
unit ===
|
|
191849
|
+
unit === _enums__WEBPACK_IMPORTED_MODULE_1__.VideoEnums.SpeedUnit.SECOND
|
|
191847
191850
|
? scrollSpeed * this.fps
|
|
191848
191851
|
: scrollSpeed;
|
|
191849
191852
|
}
|
|
@@ -192030,6 +192033,14 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
192030
192033
|
const frame = currentIndex + 1;
|
|
192031
192034
|
return range[0] <= frame && frame <= (range[1] ?? range[0]);
|
|
192032
192035
|
}
|
|
192036
|
+
setViewReference(viewRef) {
|
|
192037
|
+
if (typeof viewRef.sliceIndex === 'number') {
|
|
192038
|
+
this.setFrameNumber(viewRef.sliceIndex + 1);
|
|
192039
|
+
}
|
|
192040
|
+
else if (Array.isArray(viewRef.sliceIndex)) {
|
|
192041
|
+
this.setFrameRange(viewRef.sliceIndex);
|
|
192042
|
+
}
|
|
192043
|
+
}
|
|
192033
192044
|
getViewReference(viewRefSpecifier) {
|
|
192034
192045
|
let sliceIndex = viewRefSpecifier?.sliceIndex;
|
|
192035
192046
|
if (!sliceIndex) {
|
|
@@ -192050,7 +192061,7 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
192050
192061
|
return Math.round(this.videoElement.currentTime * this.fps);
|
|
192051
192062
|
}
|
|
192052
192063
|
getSliceIndex() {
|
|
192053
|
-
return this.getCurrentImageIdIndex();
|
|
192064
|
+
return this.getCurrentImageIdIndex() / this.scrollSpeed;
|
|
192054
192065
|
}
|
|
192055
192066
|
getCamera() {
|
|
192056
192067
|
const { parallelScale } = this.videoCamera;
|
|
@@ -192068,6 +192079,9 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
192068
192079
|
viewPlaneNormal: [0, 0, 1],
|
|
192069
192080
|
};
|
|
192070
192081
|
}
|
|
192082
|
+
getFrameRate() {
|
|
192083
|
+
return this.fps;
|
|
192084
|
+
}
|
|
192071
192085
|
getPan() {
|
|
192072
192086
|
const panWorld = this.videoCamera.panWorld;
|
|
192073
192087
|
return [panWorld[0], panWorld[1]];
|
|
@@ -192105,7 +192119,7 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
192105
192119
|
halfCanvas[0] * canvasToWorldRatio,
|
|
192106
192120
|
halfCanvas[1] * canvasToWorldRatio,
|
|
192107
192121
|
];
|
|
192108
|
-
const transform = new
|
|
192122
|
+
const transform = new _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_3__/* .Transform */ .w();
|
|
192109
192123
|
transform.scale(devicePixelRatio, devicePixelRatio);
|
|
192110
192124
|
transform.translate(halfCanvas[0], halfCanvas[1]);
|
|
192111
192125
|
transform.scale(worldToCanvasRatio, worldToCanvasRatio);
|
|
@@ -192118,7 +192132,7 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
192118
192132
|
addImages(stackInputs) {
|
|
192119
192133
|
const actors = this.getActors();
|
|
192120
192134
|
stackInputs.forEach((stackInput) => {
|
|
192121
|
-
const image =
|
|
192135
|
+
const image = _cache__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .ZP.getImage(stackInput.imageId);
|
|
192122
192136
|
const imageActor = this.createActorMapper(image);
|
|
192123
192137
|
if (imageActor) {
|
|
192124
192138
|
actors.push({ uid: stackInput.actorUID, actor: imageActor });
|
|
@@ -192130,10 +192144,10 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
192130
192144
|
this.setActors(actors);
|
|
192131
192145
|
}
|
|
192132
192146
|
createActorMapper(image) {
|
|
192133
|
-
return new
|
|
192147
|
+
return new _CanvasActor__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z(this, image);
|
|
192134
192148
|
}
|
|
192135
192149
|
}
|
|
192136
|
-
/* harmony default export */ const
|
|
192150
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VideoViewport);
|
|
192137
192151
|
|
|
192138
192152
|
|
|
192139
192153
|
/***/ }),
|
|
@@ -192155,9 +192169,9 @@ class VideoViewport extends Viewport/* default */.Z {
|
|
|
192155
192169
|
/* harmony import */ var _enums_ViewportStatus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(84659);
|
|
192156
192170
|
/* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(68032);
|
|
192157
192171
|
/* harmony import */ var _renderingEngineCache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90872);
|
|
192158
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
|
|
192172
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(56309);
|
|
192159
192173
|
/* harmony import */ var _utilities_hasNaNValues__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1483);
|
|
192160
|
-
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
|
|
192174
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(19247);
|
|
192161
192175
|
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(28719);
|
|
192162
192176
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(7187);
|
|
192163
192177
|
|
|
@@ -193099,9 +193113,9 @@ class Viewport {
|
|
|
193099
193113
|
/* harmony export */ });
|
|
193100
193114
|
/* harmony import */ var _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3969);
|
|
193101
193115
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82253);
|
|
193102
|
-
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
193116
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19247);
|
|
193103
193117
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7187);
|
|
193104
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
193118
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56309);
|
|
193105
193119
|
/* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36205);
|
|
193106
193120
|
/* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98230);
|
|
193107
193121
|
/* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54526);
|
|
@@ -193122,7 +193136,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/*
|
|
|
193122
193136
|
super(props);
|
|
193123
193137
|
this._useAcquisitionPlaneForViewPlane = false;
|
|
193124
193138
|
this.getNumberOfSlices = () => {
|
|
193125
|
-
const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(this);
|
|
193139
|
+
const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(this) || {};
|
|
193126
193140
|
return numberOfSlices;
|
|
193127
193141
|
};
|
|
193128
193142
|
this.getCurrentImageIdIndex = (volumeId) => {
|
|
@@ -193139,7 +193153,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/*
|
|
|
193139
193153
|
return Math.round(Math.abs(distance) / spacingInNormal);
|
|
193140
193154
|
};
|
|
193141
193155
|
this.getSliceIndex = () => {
|
|
193142
|
-
const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(this);
|
|
193156
|
+
const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(this) || {};
|
|
193143
193157
|
return imageIndex;
|
|
193144
193158
|
};
|
|
193145
193159
|
this.getCurrentImageId = () => {
|
|
@@ -193284,9 +193298,9 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/*
|
|
|
193284
193298
|
this.render();
|
|
193285
193299
|
}
|
|
193286
193300
|
}
|
|
193287
|
-
resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false) {
|
|
193301
|
+
resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false, resetOrientation = true) {
|
|
193288
193302
|
const { orientation } = this.viewportProperties;
|
|
193289
|
-
if (orientation) {
|
|
193303
|
+
if (orientation && resetOrientation) {
|
|
193290
193304
|
this.applyViewOrientation(orientation, false);
|
|
193291
193305
|
}
|
|
193292
193306
|
super.resetCamera(resetPan, resetZoom, resetToCenter);
|
|
@@ -193494,12 +193508,16 @@ class VolumeViewport3D extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__/
|
|
|
193494
193508
|
/* harmony export */ });
|
|
193495
193509
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72076);
|
|
193496
193510
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7187);
|
|
193497
|
-
/* harmony import */ var
|
|
193498
|
-
/* harmony import */ var
|
|
193499
|
-
/* harmony import */ var
|
|
193500
|
-
/* harmony import */ var
|
|
193501
|
-
/* harmony import */ var
|
|
193502
|
-
/* harmony import */ var
|
|
193511
|
+
/* harmony import */ var _utilities_uuidv4__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(47741);
|
|
193512
|
+
/* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30023);
|
|
193513
|
+
/* harmony import */ var _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(30742);
|
|
193514
|
+
/* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77614);
|
|
193515
|
+
/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(25281);
|
|
193516
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(19247);
|
|
193517
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(56309);
|
|
193518
|
+
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(28719);
|
|
193519
|
+
|
|
193520
|
+
|
|
193503
193521
|
|
|
193504
193522
|
|
|
193505
193523
|
|
|
@@ -193510,11 +193528,11 @@ class VolumeViewport3D extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__/
|
|
|
193510
193528
|
|
|
193511
193529
|
const _map = Symbol.for('map');
|
|
193512
193530
|
const EVENT_POSTRENDER = 'postrender';
|
|
193513
|
-
class WSIViewport extends
|
|
193531
|
+
class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z {
|
|
193514
193532
|
constructor(props) {
|
|
193515
193533
|
super({
|
|
193516
193534
|
...props,
|
|
193517
|
-
canvas: props.canvas || (0,
|
|
193535
|
+
canvas: props.canvas || (0,_helpers__WEBPACK_IMPORTED_MODULE_6__/* .getOrCreateCanvas */ .uy)(props.element),
|
|
193518
193536
|
});
|
|
193519
193537
|
this.internalCamera = {
|
|
193520
193538
|
rotation: 0,
|
|
@@ -193580,7 +193598,7 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
|
|
|
193580
193598
|
};
|
|
193581
193599
|
this.postrender = () => {
|
|
193582
193600
|
this.refreshRenderValues();
|
|
193583
|
-
(0,
|
|
193601
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_8__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_1__.Events.IMAGE_RENDERED, {
|
|
193584
193602
|
element: this.element,
|
|
193585
193603
|
viewportId: this.id,
|
|
193586
193604
|
viewport: this,
|
|
@@ -193604,7 +193622,7 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
|
|
|
193604
193622
|
this.element.setAttribute('data-rendering-engine-uid', this.renderingEngineId);
|
|
193605
193623
|
this.element.style.position = 'relative';
|
|
193606
193624
|
this.microscopyElement = document.createElement('div');
|
|
193607
|
-
this.microscopyElement.id =
|
|
193625
|
+
this.microscopyElement.id = (0,_utilities_uuidv4__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)();
|
|
193608
193626
|
this.microscopyElement.innerText = 'Initial';
|
|
193609
193627
|
this.microscopyElement.style.background = 'grey';
|
|
193610
193628
|
this.microscopyElement.style.width = '100%';
|
|
@@ -193634,7 +193652,7 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
|
|
|
193634
193652
|
return maxImage?.NumberOfFrames < image.NumberOfFrames ? image : maxImage;
|
|
193635
193653
|
});
|
|
193636
193654
|
const { TotalPixelMatrixColumns: columns, TotalPixelMatrixRows: rows, ImageOrientationSlide, ImagedVolumeWidth: width, ImagedVolumeHeight: height, ImagedVolumeDepth: depth, } = maxImage;
|
|
193637
|
-
const imagePlaneModule =
|
|
193655
|
+
const imagePlaneModule = _metaData__WEBPACK_IMPORTED_MODULE_3__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.IMAGE_PLANE, this.imageIds[imageIndex]);
|
|
193638
193656
|
let rowCosines = ImageOrientationSlide.slice(0, 3);
|
|
193639
193657
|
let columnCosines = ImageOrientationSlide.slice(3, 6);
|
|
193640
193658
|
if (rowCosines == null || columnCosines == null) {
|
|
@@ -193682,7 +193700,10 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
|
|
|
193682
193700
|
}
|
|
193683
193701
|
getImageData() {
|
|
193684
193702
|
const { metadata } = this;
|
|
193685
|
-
|
|
193703
|
+
if (!metadata) {
|
|
193704
|
+
return;
|
|
193705
|
+
}
|
|
193706
|
+
const { spacing } = metadata;
|
|
193686
193707
|
return {
|
|
193687
193708
|
dimensions: metadata.dimensions,
|
|
193688
193709
|
spacing,
|
|
@@ -193759,22 +193780,21 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
|
|
|
193759
193780
|
viewPlaneNormal: [0, 0, 1],
|
|
193760
193781
|
};
|
|
193761
193782
|
}
|
|
193762
|
-
|
|
193763
|
-
return '
|
|
193764
|
-
}
|
|
193783
|
+
static { this.getDicomMicroscopyViewer = async () => {
|
|
193784
|
+
return (0,_init__WEBPACK_IMPORTED_MODULE_9__/* .peerImport */ .Dm)('dicom-microscopy-viewer');
|
|
193785
|
+
}; }
|
|
193765
193786
|
setDataIds(imageIds) {
|
|
193766
|
-
const webClient =
|
|
193787
|
+
const webClient = _metaData__WEBPACK_IMPORTED_MODULE_3__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.WEB_CLIENT, imageIds[0]);
|
|
193767
193788
|
if (!webClient) {
|
|
193768
193789
|
throw new Error(`To use setDataIds on WSI data, you must provide metaData.webClient for ${imageIds[0]}`);
|
|
193769
193790
|
}
|
|
193770
|
-
this.setWSI(imageIds, webClient);
|
|
193791
|
+
return this.setWSI(imageIds, webClient);
|
|
193771
193792
|
}
|
|
193772
193793
|
async setWSI(imageIds, client) {
|
|
193773
193794
|
this.microscopyElement.style.background = 'red';
|
|
193774
193795
|
this.microscopyElement.innerText = 'Loading';
|
|
193775
193796
|
this.imageIds = imageIds;
|
|
193776
|
-
await
|
|
193777
|
-
const DicomMicroscopyViewer = window.dicomMicroscopyViewer;
|
|
193797
|
+
const DicomMicroscopyViewer = await WSIViewport.getDicomMicroscopyViewer();
|
|
193778
193798
|
this.frameOfReferenceUID = null;
|
|
193779
193799
|
const metadataDicomweb = this.imageIds.map((imageId) => {
|
|
193780
193800
|
const imageMetadata = client.getDICOMwebMetadata(imageId);
|
|
@@ -193808,6 +193828,9 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
|
|
|
193808
193828
|
if (imageFlavor === 'VOLUME' || imageFlavor === 'THUMBNAIL') {
|
|
193809
193829
|
volumeImages.push(image);
|
|
193810
193830
|
}
|
|
193831
|
+
else {
|
|
193832
|
+
console.log('Unknown image type', image.ImageType);
|
|
193833
|
+
}
|
|
193811
193834
|
});
|
|
193812
193835
|
this.metadataDicomweb = volumeImages;
|
|
193813
193836
|
const viewer = new DicomMicroscopyViewer.viewer.VolumeImageViewer({
|
|
@@ -193859,7 +193882,7 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
|
|
|
193859
193882
|
return;
|
|
193860
193883
|
}
|
|
193861
193884
|
const resolution = view.getResolution();
|
|
193862
|
-
if (!resolution || resolution <
|
|
193885
|
+
if (!resolution || resolution < _constants__WEBPACK_IMPORTED_MODULE_7__.EPSILON) {
|
|
193863
193886
|
return;
|
|
193864
193887
|
}
|
|
193865
193888
|
const centerIndex = view.getCenter();
|
|
@@ -193889,7 +193912,7 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_4__/* ["default"] *
|
|
|
193889
193912
|
this.refreshRenderValues();
|
|
193890
193913
|
const { centerIndex: center, resolution, rotation } = this.internalCamera;
|
|
193891
193914
|
const halfCanvas = [this.canvas.width / 2, this.canvas.height / 2];
|
|
193892
|
-
const transform = new
|
|
193915
|
+
const transform = new _helpers_cpuFallback_rendering_transform__WEBPACK_IMPORTED_MODULE_4__/* .Transform */ .w();
|
|
193893
193916
|
transform.translate(halfCanvas[0], halfCanvas[1]);
|
|
193894
193917
|
transform.rotate(rotation);
|
|
193895
193918
|
transform.scale(1 / resolution, -1 / resolution);
|
|
@@ -195210,8 +195233,8 @@ function storedPixelDataToCanvasImageDataPseudocolorLUTPET(image, lutFunction, c
|
|
|
195210
195233
|
}
|
|
195211
195234
|
/* harmony default export */ const rendering_storedPixelDataToCanvasImageDataPseudocolorLUTPET = (storedPixelDataToCanvasImageDataPseudocolorLUTPET);
|
|
195212
195235
|
|
|
195213
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
195214
|
-
var utilities = __webpack_require__(
|
|
195236
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
|
|
195237
|
+
var utilities = __webpack_require__(56309);
|
|
195215
195238
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js
|
|
195216
195239
|
|
|
195217
195240
|
|
|
@@ -196098,8 +196121,8 @@ var vtkVolume$1 = {
|
|
|
196098
196121
|
var volumeLoader = __webpack_require__(18588);
|
|
196099
196122
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/createVolumeMapper.js
|
|
196100
196123
|
var createVolumeMapper = __webpack_require__(49046);
|
|
196101
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
196102
|
-
var utilities = __webpack_require__(
|
|
196124
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
|
|
196125
|
+
var utilities = __webpack_require__(56309);
|
|
196103
196126
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
196104
196127
|
var enums = __webpack_require__(7187);
|
|
196105
196128
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js
|
|
@@ -196314,7 +196337,7 @@ var addImageSlicesToViewports = __webpack_require__(68467);
|
|
|
196314
196337
|
/* harmony export */ });
|
|
196315
196338
|
/* harmony import */ var _loaders_imageLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62990);
|
|
196316
196339
|
/* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30023);
|
|
196317
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
196340
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56309);
|
|
196318
196341
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7187);
|
|
196319
196342
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82253);
|
|
196320
196343
|
|
|
@@ -196468,7 +196491,7 @@ function _isCurrentImagePTPrescaled(modality, imageVolume) {
|
|
|
196468
196491
|
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
196469
196492
|
/* harmony export */ t: () => (/* binding */ resetVolumeNewImageState)
|
|
196470
196493
|
/* harmony export */ });
|
|
196471
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
196494
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56309);
|
|
196472
196495
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7187);
|
|
196473
196496
|
/* harmony import */ var _getRenderingEngine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9138);
|
|
196474
196497
|
/* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36205);
|
|
@@ -196538,8 +196561,8 @@ var Events = __webpack_require__(19546);
|
|
|
196538
196561
|
var renderingEngineCache = __webpack_require__(90872);
|
|
196539
196562
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
|
|
196540
196563
|
var eventTarget = __webpack_require__(74238);
|
|
196541
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
196542
|
-
var utilities = __webpack_require__(
|
|
196564
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
|
|
196565
|
+
var utilities = __webpack_require__(56309);
|
|
196543
196566
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 25 modules
|
|
196544
196567
|
var vtkClasses = __webpack_require__(63466);
|
|
196545
196568
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportType.js
|
|
@@ -196552,8 +196575,8 @@ var BaseVolumeViewport = __webpack_require__(36205);
|
|
|
196552
196575
|
var StackViewport = __webpack_require__(98715);
|
|
196553
196576
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VolumeViewport3D.js
|
|
196554
196577
|
var VolumeViewport3D = __webpack_require__(46190);
|
|
196555
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js
|
|
196556
|
-
var VideoViewport = __webpack_require__(
|
|
196578
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js
|
|
196579
|
+
var VideoViewport = __webpack_require__(49001);
|
|
196557
196580
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/WSIViewport.js
|
|
196558
196581
|
var WSIViewport = __webpack_require__(86057);
|
|
196559
196582
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/viewportTypeToViewportClass.js
|
|
@@ -196870,8 +196893,8 @@ class RenderingEngine {
|
|
|
196870
196893
|
const resetZoom = true;
|
|
196871
196894
|
const resetToCenter = true;
|
|
196872
196895
|
const resetRotation = false;
|
|
196873
|
-
const
|
|
196874
|
-
vp.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation,
|
|
196896
|
+
const suppressEvents = true;
|
|
196897
|
+
vp.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, suppressEvents);
|
|
196875
196898
|
const displayArea = vp.getDisplayArea();
|
|
196876
196899
|
if (keepCamera) {
|
|
196877
196900
|
if (displayArea) {
|
|
@@ -203164,211 +203187,6 @@ function vtkSlabCamera(publicAPI, model) {
|
|
|
203164
203187
|
|
|
203165
203188
|
|
|
203166
203189
|
|
|
203167
|
-
/***/ }),
|
|
203168
|
-
|
|
203169
|
-
/***/ 90261:
|
|
203170
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
203171
|
-
|
|
203172
|
-
"use strict";
|
|
203173
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
203174
|
-
/* harmony export */ Z: () => (/* binding */ Settings)
|
|
203175
|
-
/* harmony export */ });
|
|
203176
|
-
const DEFAULT_SETTINGS = Symbol('DefaultSettings');
|
|
203177
|
-
const RUNTIME_SETTINGS = Symbol('RuntimeSettings');
|
|
203178
|
-
const OBJECT_SETTINGS_MAP = Symbol('ObjectSettingsMap');
|
|
203179
|
-
const DICTIONARY = Symbol('Dictionary');
|
|
203180
|
-
class Settings {
|
|
203181
|
-
constructor(base) {
|
|
203182
|
-
const dictionary = Object.create((base instanceof Settings && DICTIONARY in base
|
|
203183
|
-
? base[DICTIONARY]
|
|
203184
|
-
: null));
|
|
203185
|
-
Object.seal(Object.defineProperty(this, DICTIONARY, {
|
|
203186
|
-
value: dictionary,
|
|
203187
|
-
}));
|
|
203188
|
-
}
|
|
203189
|
-
set(key, value) {
|
|
203190
|
-
return set(this[DICTIONARY], key, value, null);
|
|
203191
|
-
}
|
|
203192
|
-
get(key) {
|
|
203193
|
-
return get(this[DICTIONARY], key);
|
|
203194
|
-
}
|
|
203195
|
-
unset(key) {
|
|
203196
|
-
return unset(this[DICTIONARY], key + '');
|
|
203197
|
-
}
|
|
203198
|
-
forEach(callback) {
|
|
203199
|
-
iterate(this[DICTIONARY], callback);
|
|
203200
|
-
}
|
|
203201
|
-
extend() {
|
|
203202
|
-
return new Settings(this);
|
|
203203
|
-
}
|
|
203204
|
-
import(root) {
|
|
203205
|
-
if (isPlainObject(root)) {
|
|
203206
|
-
Object.keys(root).forEach((key) => {
|
|
203207
|
-
set(this[DICTIONARY], key, root[key], null);
|
|
203208
|
-
});
|
|
203209
|
-
}
|
|
203210
|
-
}
|
|
203211
|
-
dump() {
|
|
203212
|
-
const context = {};
|
|
203213
|
-
iterate(this[DICTIONARY], (key, value) => {
|
|
203214
|
-
if (typeof value !== 'undefined') {
|
|
203215
|
-
deepSet(context, key, value);
|
|
203216
|
-
}
|
|
203217
|
-
});
|
|
203218
|
-
return context;
|
|
203219
|
-
}
|
|
203220
|
-
static assert(subject) {
|
|
203221
|
-
return subject instanceof Settings
|
|
203222
|
-
? subject
|
|
203223
|
-
: Settings.getRuntimeSettings();
|
|
203224
|
-
}
|
|
203225
|
-
static getDefaultSettings(subfield = null) {
|
|
203226
|
-
let defaultSettings = Settings[DEFAULT_SETTINGS];
|
|
203227
|
-
if (!(defaultSettings instanceof Settings)) {
|
|
203228
|
-
defaultSettings = new Settings();
|
|
203229
|
-
Settings[DEFAULT_SETTINGS] = defaultSettings;
|
|
203230
|
-
}
|
|
203231
|
-
if (subfield) {
|
|
203232
|
-
const settingObj = {};
|
|
203233
|
-
defaultSettings.forEach((name) => {
|
|
203234
|
-
if (name.startsWith(subfield)) {
|
|
203235
|
-
const setting = name.split(`${subfield}.`)[1];
|
|
203236
|
-
settingObj[setting] = defaultSettings.get(name);
|
|
203237
|
-
}
|
|
203238
|
-
});
|
|
203239
|
-
return settingObj;
|
|
203240
|
-
}
|
|
203241
|
-
return defaultSettings;
|
|
203242
|
-
}
|
|
203243
|
-
static getRuntimeSettings() {
|
|
203244
|
-
let runtimeSettings = Settings[RUNTIME_SETTINGS];
|
|
203245
|
-
if (!(runtimeSettings instanceof Settings)) {
|
|
203246
|
-
runtimeSettings = new Settings(Settings.getDefaultSettings());
|
|
203247
|
-
Settings[RUNTIME_SETTINGS] = runtimeSettings;
|
|
203248
|
-
}
|
|
203249
|
-
return runtimeSettings;
|
|
203250
|
-
}
|
|
203251
|
-
static getObjectSettings(subject, from) {
|
|
203252
|
-
let settings = null;
|
|
203253
|
-
if (subject instanceof Settings) {
|
|
203254
|
-
settings = subject;
|
|
203255
|
-
}
|
|
203256
|
-
else if (typeof subject === 'object' && subject !== null) {
|
|
203257
|
-
let objectSettingsMap = Settings[OBJECT_SETTINGS_MAP];
|
|
203258
|
-
if (!(objectSettingsMap instanceof WeakMap)) {
|
|
203259
|
-
objectSettingsMap = new WeakMap();
|
|
203260
|
-
Settings[OBJECT_SETTINGS_MAP] = objectSettingsMap;
|
|
203261
|
-
}
|
|
203262
|
-
settings = objectSettingsMap.get(subject);
|
|
203263
|
-
if (!(settings instanceof Settings)) {
|
|
203264
|
-
settings = new Settings(Settings.assert(Settings.getObjectSettings(from)));
|
|
203265
|
-
objectSettingsMap.set(subject, settings);
|
|
203266
|
-
}
|
|
203267
|
-
}
|
|
203268
|
-
return settings;
|
|
203269
|
-
}
|
|
203270
|
-
static extendRuntimeSettings() {
|
|
203271
|
-
return Settings.getRuntimeSettings().extend();
|
|
203272
|
-
}
|
|
203273
|
-
}
|
|
203274
|
-
function unset(dictionary, name) {
|
|
203275
|
-
if (name.endsWith('.')) {
|
|
203276
|
-
let deleteCount = 0;
|
|
203277
|
-
const namespace = name;
|
|
203278
|
-
const base = namespace.slice(0, -1);
|
|
203279
|
-
const deleteAll = base.length === 0;
|
|
203280
|
-
for (const key in dictionary) {
|
|
203281
|
-
if (Object.prototype.hasOwnProperty.call(dictionary, key) &&
|
|
203282
|
-
(deleteAll || key.startsWith(namespace) || key === base)) {
|
|
203283
|
-
delete dictionary[key];
|
|
203284
|
-
++deleteCount;
|
|
203285
|
-
}
|
|
203286
|
-
}
|
|
203287
|
-
return deleteCount > 0;
|
|
203288
|
-
}
|
|
203289
|
-
return delete dictionary[name];
|
|
203290
|
-
}
|
|
203291
|
-
function iterate(dictionary, callback) {
|
|
203292
|
-
for (const key in dictionary) {
|
|
203293
|
-
callback(key, dictionary[key]);
|
|
203294
|
-
}
|
|
203295
|
-
}
|
|
203296
|
-
function setAll(dictionary, prefix, record, references) {
|
|
203297
|
-
let failCount;
|
|
203298
|
-
if (references.has(record)) {
|
|
203299
|
-
return set(dictionary, prefix, null, references);
|
|
203300
|
-
}
|
|
203301
|
-
references.add(record);
|
|
203302
|
-
failCount = 0;
|
|
203303
|
-
for (const field in record) {
|
|
203304
|
-
if (Object.prototype.hasOwnProperty.call(record, field)) {
|
|
203305
|
-
const key = field.length === 0 ? prefix : `${prefix}.${field}`;
|
|
203306
|
-
if (!set(dictionary, key, record[field], references)) {
|
|
203307
|
-
++failCount;
|
|
203308
|
-
}
|
|
203309
|
-
}
|
|
203310
|
-
}
|
|
203311
|
-
references.delete(record);
|
|
203312
|
-
return failCount === 0;
|
|
203313
|
-
}
|
|
203314
|
-
function set(dictionary, key, value, references) {
|
|
203315
|
-
if (isValidKey(key)) {
|
|
203316
|
-
if (isPlainObject(value)) {
|
|
203317
|
-
return setAll(dictionary, key, value, references instanceof WeakSet ? references : new WeakSet());
|
|
203318
|
-
}
|
|
203319
|
-
dictionary[key] = value;
|
|
203320
|
-
return true;
|
|
203321
|
-
}
|
|
203322
|
-
return false;
|
|
203323
|
-
}
|
|
203324
|
-
function get(dictionary, key) {
|
|
203325
|
-
return dictionary[key];
|
|
203326
|
-
}
|
|
203327
|
-
function isValidKey(key) {
|
|
203328
|
-
let last, current, previous;
|
|
203329
|
-
if (typeof key !== 'string' || (last = key.length - 1) < 0) {
|
|
203330
|
-
return false;
|
|
203331
|
-
}
|
|
203332
|
-
previous = -1;
|
|
203333
|
-
while ((current = key.indexOf('.', previous + 1)) >= 0) {
|
|
203334
|
-
if (current - previous < 2 || current === last) {
|
|
203335
|
-
return false;
|
|
203336
|
-
}
|
|
203337
|
-
previous = current;
|
|
203338
|
-
}
|
|
203339
|
-
return true;
|
|
203340
|
-
}
|
|
203341
|
-
function isPlainObject(subject) {
|
|
203342
|
-
if (typeof subject === 'object' && subject !== null) {
|
|
203343
|
-
const prototype = Object.getPrototypeOf(subject);
|
|
203344
|
-
if (prototype === Object.prototype || prototype === null) {
|
|
203345
|
-
return true;
|
|
203346
|
-
}
|
|
203347
|
-
}
|
|
203348
|
-
return false;
|
|
203349
|
-
}
|
|
203350
|
-
function deepSet(context, key, value) {
|
|
203351
|
-
const separator = key.indexOf('.');
|
|
203352
|
-
if (separator >= 0) {
|
|
203353
|
-
const subKey = key.slice(0, separator);
|
|
203354
|
-
let subContext = context[subKey];
|
|
203355
|
-
if (typeof subContext !== 'object' || subContext === null) {
|
|
203356
|
-
const subContextValue = subContext;
|
|
203357
|
-
subContext = {};
|
|
203358
|
-
if (typeof subContextValue !== 'undefined') {
|
|
203359
|
-
subContext[''] = subContextValue;
|
|
203360
|
-
}
|
|
203361
|
-
context[subKey] = subContext;
|
|
203362
|
-
}
|
|
203363
|
-
deepSet(subContext, key.slice(separator + 1, key.length), value);
|
|
203364
|
-
}
|
|
203365
|
-
else {
|
|
203366
|
-
context[key] = value;
|
|
203367
|
-
}
|
|
203368
|
-
}
|
|
203369
|
-
Settings.getDefaultSettings().set('useCursors', true);
|
|
203370
|
-
|
|
203371
|
-
|
|
203372
203190
|
/***/ }),
|
|
203373
203191
|
|
|
203374
203192
|
/***/ 5287:
|
|
@@ -203379,7 +203197,7 @@ Settings.getDefaultSettings().set('useCursors', true);
|
|
|
203379
203197
|
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
203380
203198
|
/* harmony export */ });
|
|
203381
203199
|
/* unused harmony export Cache */
|
|
203382
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
203200
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56309);
|
|
203383
203201
|
/* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(74238);
|
|
203384
203202
|
/* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19546);
|
|
203385
203203
|
/* harmony import */ var _classes_ImageVolume__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84326);
|
|
@@ -203416,7 +203234,11 @@ class Cache {
|
|
|
203416
203234
|
this.getMaxInstanceSize = () => this._maxInstanceSize;
|
|
203417
203235
|
this.getCacheSize = () => this._imageCacheSize + this._volumeCacheSize;
|
|
203418
203236
|
this._decacheImage = (imageId) => {
|
|
203419
|
-
const
|
|
203237
|
+
const cachedImage = this._imageCache.get(imageId);
|
|
203238
|
+
if (!cachedImage) {
|
|
203239
|
+
return;
|
|
203240
|
+
}
|
|
203241
|
+
const { imageLoadObject } = cachedImage;
|
|
203420
203242
|
if (imageLoadObject.cancelFn) {
|
|
203421
203243
|
imageLoadObject.cancelFn();
|
|
203422
203244
|
}
|
|
@@ -203427,7 +203249,13 @@ class Cache {
|
|
|
203427
203249
|
};
|
|
203428
203250
|
this._decacheVolume = (volumeId) => {
|
|
203429
203251
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
203252
|
+
if (!cachedVolume) {
|
|
203253
|
+
return;
|
|
203254
|
+
}
|
|
203430
203255
|
const { volumeLoadObject, volume } = cachedVolume;
|
|
203256
|
+
if (!volume) {
|
|
203257
|
+
return;
|
|
203258
|
+
}
|
|
203431
203259
|
if (volume.cancelLoading) {
|
|
203432
203260
|
volume.cancelLoading();
|
|
203433
203261
|
}
|
|
@@ -203473,7 +203301,7 @@ class Cache {
|
|
|
203473
203301
|
throw new Error('getVolumeLoadObject: volumeId must not be undefined');
|
|
203474
203302
|
}
|
|
203475
203303
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
203476
|
-
if (cachedVolume
|
|
203304
|
+
if (!cachedVolume) {
|
|
203477
203305
|
return;
|
|
203478
203306
|
}
|
|
203479
203307
|
cachedVolume.timeStamp = Date.now();
|
|
@@ -203484,7 +203312,7 @@ class Cache {
|
|
|
203484
203312
|
throw new Error('getGeometry: geometryId must not be undefined');
|
|
203485
203313
|
}
|
|
203486
203314
|
const cachedGeometry = this._geometryCache.get(geometryId);
|
|
203487
|
-
if (cachedGeometry
|
|
203315
|
+
if (!cachedGeometry) {
|
|
203488
203316
|
return;
|
|
203489
203317
|
}
|
|
203490
203318
|
cachedGeometry.timeStamp = Date.now();
|
|
@@ -203495,7 +203323,7 @@ class Cache {
|
|
|
203495
203323
|
throw new Error('getImage: imageId must not be undefined');
|
|
203496
203324
|
}
|
|
203497
203325
|
const cachedImage = this._imageCache.get(imageId);
|
|
203498
|
-
if (cachedImage
|
|
203326
|
+
if (!cachedImage) {
|
|
203499
203327
|
return;
|
|
203500
203328
|
}
|
|
203501
203329
|
cachedImage.timeStamp = Date.now();
|
|
@@ -203506,7 +203334,7 @@ class Cache {
|
|
|
203506
203334
|
throw new Error('getVolume: volumeId must not be undefined');
|
|
203507
203335
|
}
|
|
203508
203336
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
203509
|
-
if (cachedVolume
|
|
203337
|
+
if (!cachedVolume) {
|
|
203510
203338
|
return;
|
|
203511
203339
|
}
|
|
203512
203340
|
cachedVolume.timeStamp = Date.now();
|
|
@@ -203527,7 +203355,7 @@ class Cache {
|
|
|
203527
203355
|
throw new Error('removeImageLoadObject: imageId must not be undefined');
|
|
203528
203356
|
}
|
|
203529
203357
|
const cachedImage = this._imageCache.get(imageId);
|
|
203530
|
-
if (cachedImage
|
|
203358
|
+
if (!cachedImage) {
|
|
203531
203359
|
throw new Error('removeImageLoadObject: imageId was not present in imageCache');
|
|
203532
203360
|
}
|
|
203533
203361
|
this.incrementImageCacheSize(-cachedImage.sizeInBytes);
|
|
@@ -203543,7 +203371,7 @@ class Cache {
|
|
|
203543
203371
|
throw new Error('removeVolumeLoadObject: volumeId must not be undefined');
|
|
203544
203372
|
}
|
|
203545
203373
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
203546
|
-
if (cachedVolume
|
|
203374
|
+
if (!cachedVolume) {
|
|
203547
203375
|
throw new Error('removeVolumeLoadObject: volumeId was not present in volumeCache');
|
|
203548
203376
|
}
|
|
203549
203377
|
this.incrementVolumeCacheSize(-cachedVolume.sizeInBytes);
|
|
@@ -203710,7 +203538,7 @@ class Cache {
|
|
|
203710
203538
|
throw new Error('getImageLoadObject: imageId must not be undefined');
|
|
203711
203539
|
}
|
|
203712
203540
|
const cachedImage = this._imageCache.get(imageId);
|
|
203713
|
-
if (cachedImage
|
|
203541
|
+
if (!cachedImage) {
|
|
203714
203542
|
return;
|
|
203715
203543
|
}
|
|
203716
203544
|
cachedImage.timeStamp = Date.now();
|
|
@@ -203728,6 +203556,9 @@ class Cache {
|
|
|
203728
203556
|
const imageIdToUse = (0,_utilities__WEBPACK_IMPORTED_MODULE_0__.imageIdToURI)(imageId);
|
|
203729
203557
|
for (const volumeId of volumeIds) {
|
|
203730
203558
|
const cachedVolume = this._volumeCache.get(volumeId);
|
|
203559
|
+
if (!cachedVolume) {
|
|
203560
|
+
return;
|
|
203561
|
+
}
|
|
203731
203562
|
const { volume } = cachedVolume;
|
|
203732
203563
|
if (!volume?.imageIds?.length) {
|
|
203733
203564
|
return;
|
|
@@ -203861,8 +203692,8 @@ function isTypedArray(obj) {
|
|
|
203861
203692
|
obj instanceof Float64Array);
|
|
203862
203693
|
}
|
|
203863
203694
|
|
|
203864
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js +
|
|
203865
|
-
var utilities = __webpack_require__(
|
|
203695
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
|
|
203696
|
+
var utilities = __webpack_require__(56309);
|
|
203866
203697
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 25 modules
|
|
203867
203698
|
var vtkClasses = __webpack_require__(63466);
|
|
203868
203699
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/cache.js
|
|
@@ -204293,6 +204124,21 @@ class Surface {
|
|
|
204293
204124
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_cache__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z);
|
|
204294
204125
|
|
|
204295
204126
|
|
|
204127
|
+
/***/ }),
|
|
204128
|
+
|
|
204129
|
+
/***/ 43220:
|
|
204130
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
204131
|
+
|
|
204132
|
+
"use strict";
|
|
204133
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
204134
|
+
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
204135
|
+
/* harmony export */ });
|
|
204136
|
+
const backgroundColors = {
|
|
204137
|
+
slicer3D: [160 / 255, 164 / 255, 217 / 255],
|
|
204138
|
+
};
|
|
204139
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (backgroundColors);
|
|
204140
|
+
|
|
204141
|
+
|
|
204296
204142
|
/***/ }),
|
|
204297
204143
|
|
|
204298
204144
|
/***/ 52813:
|
|
@@ -205831,42 +205677,65 @@ const colormapsData = {
|
|
|
205831
205677
|
|
|
205832
205678
|
/***/ }),
|
|
205833
205679
|
|
|
205834
|
-
/***/
|
|
205680
|
+
/***/ 19247:
|
|
205835
205681
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
205836
205682
|
|
|
205837
205683
|
"use strict";
|
|
205838
|
-
|
|
205839
|
-
|
|
205840
|
-
|
|
205684
|
+
// ESM COMPAT FLAG
|
|
205685
|
+
__webpack_require__.r(__webpack_exports__);
|
|
205686
|
+
|
|
205687
|
+
// EXPORTS
|
|
205688
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
205689
|
+
BACKGROUND_COLORS: () => (/* reexport */ backgroundColors/* default */.Z),
|
|
205690
|
+
CPU_COLORMAPS: () => (/* reexport */ cpuColormaps/* default */.Z),
|
|
205691
|
+
EPSILON: () => (/* reexport */ epsilon),
|
|
205692
|
+
MPR_CAMERA_VALUES: () => (/* reexport */ mprCameraValues/* default */.Z),
|
|
205693
|
+
RENDERING_DEFAULTS: () => (/* reexport */ rendering),
|
|
205694
|
+
VIEWPORT_PRESETS: () => (/* reexport */ viewportPresets/* default */.Z)
|
|
205695
|
+
});
|
|
205696
|
+
|
|
205697
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/cpuColormaps.js
|
|
205698
|
+
var cpuColormaps = __webpack_require__(52813);
|
|
205699
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/rendering.js
|
|
205700
|
+
const RENDERING_DEFAULTS = {
|
|
205701
|
+
MINIMUM_SLAB_THICKNESS: 5e-2,
|
|
205702
|
+
MAXIMUM_RAY_DISTANCE: 1e6,
|
|
205703
|
+
};
|
|
205704
|
+
Object.freeze(RENDERING_DEFAULTS);
|
|
205705
|
+
/* harmony default export */ const rendering = (RENDERING_DEFAULTS);
|
|
205706
|
+
|
|
205707
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/epsilon.js
|
|
205841
205708
|
const EPSILON = 1e-3;
|
|
205842
|
-
/* harmony default export */ const
|
|
205709
|
+
/* harmony default export */ const epsilon = (EPSILON);
|
|
205710
|
+
|
|
205711
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/mprCameraValues.js + 1 modules
|
|
205712
|
+
var mprCameraValues = __webpack_require__(21306);
|
|
205713
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/viewportPresets.js
|
|
205714
|
+
var viewportPresets = __webpack_require__(89469);
|
|
205715
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/backgroundColors.js
|
|
205716
|
+
var backgroundColors = __webpack_require__(43220);
|
|
205717
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js
|
|
205718
|
+
|
|
205719
|
+
|
|
205720
|
+
|
|
205721
|
+
|
|
205722
|
+
|
|
205723
|
+
|
|
205724
|
+
|
|
205843
205725
|
|
|
205844
205726
|
|
|
205845
205727
|
/***/ }),
|
|
205846
205728
|
|
|
205847
|
-
/***/
|
|
205729
|
+
/***/ 21306:
|
|
205848
205730
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
205849
205731
|
|
|
205850
205732
|
"use strict";
|
|
205851
|
-
// ESM COMPAT FLAG
|
|
205852
|
-
__webpack_require__.r(__webpack_exports__);
|
|
205853
205733
|
|
|
205854
205734
|
// EXPORTS
|
|
205855
205735
|
__webpack_require__.d(__webpack_exports__, {
|
|
205856
|
-
|
|
205857
|
-
CPU_COLORMAPS: () => (/* reexport */ cpuColormaps/* default */.Z),
|
|
205858
|
-
EPSILON: () => (/* reexport */ epsilon/* default */.Z),
|
|
205859
|
-
MPR_CAMERA_VALUES: () => (/* reexport */ constants_mprCameraValues),
|
|
205860
|
-
RENDERING_DEFAULTS: () => (/* reexport */ rendering/* default */.Z),
|
|
205861
|
-
VIEWPORT_PRESETS: () => (/* reexport */ viewportPresets)
|
|
205736
|
+
Z: () => (/* binding */ constants_mprCameraValues)
|
|
205862
205737
|
});
|
|
205863
205738
|
|
|
205864
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/cpuColormaps.js
|
|
205865
|
-
var cpuColormaps = __webpack_require__(52813);
|
|
205866
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/rendering.js
|
|
205867
|
-
var rendering = __webpack_require__(87525);
|
|
205868
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/epsilon.js
|
|
205869
|
-
var epsilon = __webpack_require__(34061);
|
|
205870
205739
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/deepFreeze.js
|
|
205871
205740
|
function deepFreeze(object) {
|
|
205872
205741
|
const propNames = Object.getOwnPropertyNames(object);
|
|
@@ -205899,7 +205768,16 @@ const MPR_CAMERA_VALUES = {
|
|
|
205899
205768
|
const mprCameraValues = utilities_deepFreeze(MPR_CAMERA_VALUES);
|
|
205900
205769
|
/* harmony default export */ const constants_mprCameraValues = (mprCameraValues);
|
|
205901
205770
|
|
|
205902
|
-
|
|
205771
|
+
|
|
205772
|
+
/***/ }),
|
|
205773
|
+
|
|
205774
|
+
/***/ 89469:
|
|
205775
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
205776
|
+
|
|
205777
|
+
"use strict";
|
|
205778
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
205779
|
+
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
205780
|
+
/* harmony export */ });
|
|
205903
205781
|
const presets = [
|
|
205904
205782
|
{
|
|
205905
205783
|
name: 'CT-AAA',
|
|
@@ -206214,39 +206092,7 @@ const presets = [
|
|
|
206214
206092
|
interpolation: '1',
|
|
206215
206093
|
},
|
|
206216
206094
|
];
|
|
206217
|
-
/* harmony default export */ const
|
|
206218
|
-
|
|
206219
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/backgroundColors.js
|
|
206220
|
-
const backgroundColors = {
|
|
206221
|
-
slicer3D: [160 / 255, 164 / 255, 217 / 255],
|
|
206222
|
-
};
|
|
206223
|
-
/* harmony default export */ const constants_backgroundColors = (backgroundColors);
|
|
206224
|
-
|
|
206225
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js
|
|
206226
|
-
|
|
206227
|
-
|
|
206228
|
-
|
|
206229
|
-
|
|
206230
|
-
|
|
206231
|
-
|
|
206232
|
-
|
|
206233
|
-
|
|
206234
|
-
|
|
206235
|
-
/***/ }),
|
|
206236
|
-
|
|
206237
|
-
/***/ 87525:
|
|
206238
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
206239
|
-
|
|
206240
|
-
"use strict";
|
|
206241
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
206242
|
-
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
206243
|
-
/* harmony export */ });
|
|
206244
|
-
const RENDERING_DEFAULTS = {
|
|
206245
|
-
MINIMUM_SLAB_THICKNESS: 5e-2,
|
|
206246
|
-
MAXIMUM_RAY_DISTANCE: 1e6,
|
|
206247
|
-
};
|
|
206248
|
-
Object.freeze(RENDERING_DEFAULTS);
|
|
206249
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RENDERING_DEFAULTS);
|
|
206095
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (presets);
|
|
206250
206096
|
|
|
206251
206097
|
|
|
206252
206098
|
/***/ }),
|
|
@@ -206803,7 +206649,7 @@ function getEnabledElements() {
|
|
|
206803
206649
|
|
|
206804
206650
|
/***/ }),
|
|
206805
206651
|
|
|
206806
|
-
/***/
|
|
206652
|
+
/***/ 12651:
|
|
206807
206653
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
206808
206654
|
|
|
206809
206655
|
"use strict";
|
|
@@ -206819,7 +206665,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
206819
206665
|
ImageVolume: () => (/* reexport */ cache/* ImageVolume */.JI),
|
|
206820
206666
|
ProgressiveRetrieveImages: () => (/* reexport */ ProgressiveRetrieveImages/* default */.ZP),
|
|
206821
206667
|
RenderingEngine: () => (/* reexport */ RenderingEngine/* default */.ZP),
|
|
206822
|
-
Settings: () => (/* reexport */ Settings
|
|
206668
|
+
Settings: () => (/* reexport */ Settings),
|
|
206823
206669
|
StackViewport: () => (/* reexport */ StackViewport/* default */.Z),
|
|
206824
206670
|
Surface: () => (/* reexport */ cache/* Surface */.Tg),
|
|
206825
206671
|
VideoViewport: () => (/* reexport */ VideoViewport/* default */.Z),
|
|
@@ -206834,7 +206680,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
206834
206680
|
createVolumeActor: () => (/* reexport */ RenderingEngine/* createVolumeActor */.TS),
|
|
206835
206681
|
createVolumeMapper: () => (/* reexport */ RenderingEngine/* createVolumeMapper */.hi),
|
|
206836
206682
|
eventTarget: () => (/* reexport */ eventTarget/* default */.Z),
|
|
206837
|
-
geometryLoader: () => (/* reexport */
|
|
206683
|
+
geometryLoader: () => (/* reexport */ geometryLoader),
|
|
206838
206684
|
getConfiguration: () => (/* reexport */ init/* getConfiguration */.P_),
|
|
206839
206685
|
getEnabledElement: () => (/* reexport */ getEnabledElement/* default */.ZP),
|
|
206840
206686
|
getEnabledElementByIds: () => (/* reexport */ getEnabledElement/* getEnabledElementByIds */.O),
|
|
@@ -206848,10 +206694,11 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
206848
206694
|
getWebWorkerManager: () => (/* reexport */ init/* getWebWorkerManager */.Pt),
|
|
206849
206695
|
imageLoadPoolManager: () => (/* reexport */ imageLoadPoolManager/* default */.Z),
|
|
206850
206696
|
imageLoader: () => (/* reexport */ imageLoader),
|
|
206851
|
-
imageRetrievalPoolManager: () => (/* reexport */
|
|
206697
|
+
imageRetrievalPoolManager: () => (/* reexport */ imageRetrievalPoolManager/* default */.Z),
|
|
206852
206698
|
init: () => (/* reexport */ init/* init */.S1),
|
|
206853
206699
|
isCornerstoneInitialized: () => (/* reexport */ init/* isCornerstoneInitialized */.uF),
|
|
206854
206700
|
metaData: () => (/* reexport */ metaData),
|
|
206701
|
+
peerImport: () => (/* reexport */ init/* peerImport */.Dm),
|
|
206855
206702
|
registerImageLoader: () => (/* reexport */ imageLoader.registerImageLoader),
|
|
206856
206703
|
requestPoolManager: () => (/* reexport */ imageLoadPoolManager/* default */.Z),
|
|
206857
206704
|
resetUseCPURendering: () => (/* reexport */ init/* resetUseCPURendering */.Y0),
|
|
@@ -206866,17 +206713,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
206866
206713
|
volumeLoader: () => (/* reexport */ volumeLoader)
|
|
206867
206714
|
});
|
|
206868
206715
|
|
|
206869
|
-
// NAMESPACE OBJECT: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/geometryLoader.js
|
|
206870
|
-
var geometryLoader_namespaceObject = {};
|
|
206871
|
-
__webpack_require__.r(geometryLoader_namespaceObject);
|
|
206872
|
-
__webpack_require__.d(geometryLoader_namespaceObject, {
|
|
206873
|
-
createAndCacheGeometry: () => (createAndCacheGeometry)
|
|
206874
|
-
});
|
|
206875
|
-
|
|
206876
206716
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
206877
206717
|
var enums = __webpack_require__(7187);
|
|
206878
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js +
|
|
206879
|
-
var constants = __webpack_require__(
|
|
206718
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js + 2 modules
|
|
206719
|
+
var constants = __webpack_require__(19247);
|
|
206880
206720
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/index.js + 3 modules
|
|
206881
206721
|
var RenderingEngine = __webpack_require__(69552);
|
|
206882
206722
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VolumeViewport.js
|
|
@@ -206887,8 +206727,8 @@ var VolumeViewport3D = __webpack_require__(46190);
|
|
|
206887
206727
|
var BaseVolumeViewport = __webpack_require__(36205);
|
|
206888
206728
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/StackViewport.js
|
|
206889
206729
|
var StackViewport = __webpack_require__(98715);
|
|
206890
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js
|
|
206891
|
-
var VideoViewport = __webpack_require__(
|
|
206730
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/VideoViewport.js
|
|
206731
|
+
var VideoViewport = __webpack_require__(49001);
|
|
206892
206732
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/WSIViewport.js
|
|
206893
206733
|
var WSIViewport = __webpack_require__(86057);
|
|
206894
206734
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
|
|
@@ -206899,20 +206739,8 @@ var eventTarget = __webpack_require__(74238);
|
|
|
206899
206739
|
var getRenderingEngine = __webpack_require__(9138);
|
|
206900
206740
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
|
|
206901
206741
|
var cache = __webpack_require__(82253);
|
|
206902
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/
|
|
206903
|
-
var
|
|
206904
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/RequestType.js
|
|
206905
|
-
var RequestType = __webpack_require__(49334);
|
|
206906
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageRetrievalPoolManager.js
|
|
206907
|
-
|
|
206908
|
-
|
|
206909
|
-
const imageRetrievalPoolManager = new requestPoolManager/* RequestPoolManager */.P('imageRetrievalPool');
|
|
206910
|
-
imageRetrievalPoolManager.setMaxSimultaneousRequests(RequestType/* default */.Z.Interaction, 200);
|
|
206911
|
-
imageRetrievalPoolManager.setMaxSimultaneousRequests(RequestType/* default */.Z.Thumbnail, 200);
|
|
206912
|
-
imageRetrievalPoolManager.setMaxSimultaneousRequests(RequestType/* default */.Z.Prefetch, 200);
|
|
206913
|
-
imageRetrievalPoolManager.grabDelay = 0;
|
|
206914
|
-
/* harmony default export */ const requestPool_imageRetrievalPoolManager = (imageRetrievalPoolManager);
|
|
206915
|
-
|
|
206742
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageRetrievalPoolManager.js
|
|
206743
|
+
var imageRetrievalPoolManager = __webpack_require__(22717);
|
|
206916
206744
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
|
|
206917
206745
|
var imageLoadPoolManager = __webpack_require__(96506);
|
|
206918
206746
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/getEnabledElement.js
|
|
@@ -206921,12 +206749,889 @@ var getEnabledElement = __webpack_require__(65279);
|
|
|
206921
206749
|
var metaData = __webpack_require__(30023);
|
|
206922
206750
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js + 1 modules
|
|
206923
206751
|
var init = __webpack_require__(28719);
|
|
206924
|
-
|
|
206925
|
-
|
|
206752
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/Settings.js
|
|
206753
|
+
const DEFAULT_SETTINGS = Symbol('DefaultSettings');
|
|
206754
|
+
const RUNTIME_SETTINGS = Symbol('RuntimeSettings');
|
|
206755
|
+
const OBJECT_SETTINGS_MAP = Symbol('ObjectSettingsMap');
|
|
206756
|
+
const DICTIONARY = Symbol('Dictionary');
|
|
206757
|
+
class Settings {
|
|
206758
|
+
constructor(base) {
|
|
206759
|
+
const dictionary = Object.create((base instanceof Settings && DICTIONARY in base
|
|
206760
|
+
? base[DICTIONARY]
|
|
206761
|
+
: null));
|
|
206762
|
+
Object.seal(Object.defineProperty(this, DICTIONARY, {
|
|
206763
|
+
value: dictionary,
|
|
206764
|
+
}));
|
|
206765
|
+
}
|
|
206766
|
+
set(key, value) {
|
|
206767
|
+
return set(this[DICTIONARY], key, value, null);
|
|
206768
|
+
}
|
|
206769
|
+
get(key) {
|
|
206770
|
+
return get(this[DICTIONARY], key);
|
|
206771
|
+
}
|
|
206772
|
+
unset(key) {
|
|
206773
|
+
return unset(this[DICTIONARY], key + '');
|
|
206774
|
+
}
|
|
206775
|
+
forEach(callback) {
|
|
206776
|
+
iterate(this[DICTIONARY], callback);
|
|
206777
|
+
}
|
|
206778
|
+
extend() {
|
|
206779
|
+
return new Settings(this);
|
|
206780
|
+
}
|
|
206781
|
+
import(root) {
|
|
206782
|
+
if (isPlainObject(root)) {
|
|
206783
|
+
Object.keys(root).forEach((key) => {
|
|
206784
|
+
set(this[DICTIONARY], key, root[key], null);
|
|
206785
|
+
});
|
|
206786
|
+
}
|
|
206787
|
+
}
|
|
206788
|
+
dump() {
|
|
206789
|
+
const context = {};
|
|
206790
|
+
iterate(this[DICTIONARY], (key, value) => {
|
|
206791
|
+
if (typeof value !== 'undefined') {
|
|
206792
|
+
deepSet(context, key, value);
|
|
206793
|
+
}
|
|
206794
|
+
});
|
|
206795
|
+
return context;
|
|
206796
|
+
}
|
|
206797
|
+
static assert(subject) {
|
|
206798
|
+
return subject instanceof Settings
|
|
206799
|
+
? subject
|
|
206800
|
+
: Settings.getRuntimeSettings();
|
|
206801
|
+
}
|
|
206802
|
+
static getDefaultSettings(subfield = null) {
|
|
206803
|
+
let defaultSettings = Settings[DEFAULT_SETTINGS];
|
|
206804
|
+
if (!(defaultSettings instanceof Settings)) {
|
|
206805
|
+
defaultSettings = new Settings();
|
|
206806
|
+
Settings[DEFAULT_SETTINGS] = defaultSettings;
|
|
206807
|
+
}
|
|
206808
|
+
if (subfield) {
|
|
206809
|
+
const settingObj = {};
|
|
206810
|
+
defaultSettings.forEach((name) => {
|
|
206811
|
+
if (name.startsWith(subfield)) {
|
|
206812
|
+
const setting = name.split(`${subfield}.`)[1];
|
|
206813
|
+
settingObj[setting] = defaultSettings.get(name);
|
|
206814
|
+
}
|
|
206815
|
+
});
|
|
206816
|
+
return settingObj;
|
|
206817
|
+
}
|
|
206818
|
+
return defaultSettings;
|
|
206819
|
+
}
|
|
206820
|
+
static getRuntimeSettings() {
|
|
206821
|
+
let runtimeSettings = Settings[RUNTIME_SETTINGS];
|
|
206822
|
+
if (!(runtimeSettings instanceof Settings)) {
|
|
206823
|
+
runtimeSettings = new Settings(Settings.getDefaultSettings());
|
|
206824
|
+
Settings[RUNTIME_SETTINGS] = runtimeSettings;
|
|
206825
|
+
}
|
|
206826
|
+
return runtimeSettings;
|
|
206827
|
+
}
|
|
206828
|
+
static getObjectSettings(subject, from) {
|
|
206829
|
+
let settings = null;
|
|
206830
|
+
if (subject instanceof Settings) {
|
|
206831
|
+
settings = subject;
|
|
206832
|
+
}
|
|
206833
|
+
else if (typeof subject === 'object' && subject !== null) {
|
|
206834
|
+
let objectSettingsMap = Settings[OBJECT_SETTINGS_MAP];
|
|
206835
|
+
if (!(objectSettingsMap instanceof WeakMap)) {
|
|
206836
|
+
objectSettingsMap = new WeakMap();
|
|
206837
|
+
Settings[OBJECT_SETTINGS_MAP] = objectSettingsMap;
|
|
206838
|
+
}
|
|
206839
|
+
settings = objectSettingsMap.get(subject);
|
|
206840
|
+
if (!(settings instanceof Settings)) {
|
|
206841
|
+
settings = new Settings(Settings.assert(Settings.getObjectSettings(from)));
|
|
206842
|
+
objectSettingsMap.set(subject, settings);
|
|
206843
|
+
}
|
|
206844
|
+
}
|
|
206845
|
+
return settings;
|
|
206846
|
+
}
|
|
206847
|
+
static extendRuntimeSettings() {
|
|
206848
|
+
return Settings.getRuntimeSettings().extend();
|
|
206849
|
+
}
|
|
206850
|
+
}
|
|
206851
|
+
function unset(dictionary, name) {
|
|
206852
|
+
if (name.endsWith('.')) {
|
|
206853
|
+
let deleteCount = 0;
|
|
206854
|
+
const namespace = name;
|
|
206855
|
+
const base = namespace.slice(0, -1);
|
|
206856
|
+
const deleteAll = base.length === 0;
|
|
206857
|
+
for (const key in dictionary) {
|
|
206858
|
+
if (Object.prototype.hasOwnProperty.call(dictionary, key) &&
|
|
206859
|
+
(deleteAll || key.startsWith(namespace) || key === base)) {
|
|
206860
|
+
delete dictionary[key];
|
|
206861
|
+
++deleteCount;
|
|
206862
|
+
}
|
|
206863
|
+
}
|
|
206864
|
+
return deleteCount > 0;
|
|
206865
|
+
}
|
|
206866
|
+
return delete dictionary[name];
|
|
206867
|
+
}
|
|
206868
|
+
function iterate(dictionary, callback) {
|
|
206869
|
+
for (const key in dictionary) {
|
|
206870
|
+
callback(key, dictionary[key]);
|
|
206871
|
+
}
|
|
206872
|
+
}
|
|
206873
|
+
function setAll(dictionary, prefix, record, references) {
|
|
206874
|
+
let failCount;
|
|
206875
|
+
if (references.has(record)) {
|
|
206876
|
+
return set(dictionary, prefix, null, references);
|
|
206877
|
+
}
|
|
206878
|
+
references.add(record);
|
|
206879
|
+
failCount = 0;
|
|
206880
|
+
for (const field in record) {
|
|
206881
|
+
if (Object.prototype.hasOwnProperty.call(record, field)) {
|
|
206882
|
+
const key = field.length === 0 ? prefix : `${prefix}.${field}`;
|
|
206883
|
+
if (!set(dictionary, key, record[field], references)) {
|
|
206884
|
+
++failCount;
|
|
206885
|
+
}
|
|
206886
|
+
}
|
|
206887
|
+
}
|
|
206888
|
+
references.delete(record);
|
|
206889
|
+
return failCount === 0;
|
|
206890
|
+
}
|
|
206891
|
+
function set(dictionary, key, value, references) {
|
|
206892
|
+
if (isValidKey(key)) {
|
|
206893
|
+
if (isPlainObject(value)) {
|
|
206894
|
+
return setAll(dictionary, key, value, references instanceof WeakSet ? references : new WeakSet());
|
|
206895
|
+
}
|
|
206896
|
+
dictionary[key] = value;
|
|
206897
|
+
return true;
|
|
206898
|
+
}
|
|
206899
|
+
return false;
|
|
206900
|
+
}
|
|
206901
|
+
function get(dictionary, key) {
|
|
206902
|
+
return dictionary[key];
|
|
206903
|
+
}
|
|
206904
|
+
function isValidKey(key) {
|
|
206905
|
+
let last, current, previous;
|
|
206906
|
+
if (typeof key !== 'string' || (last = key.length - 1) < 0) {
|
|
206907
|
+
return false;
|
|
206908
|
+
}
|
|
206909
|
+
previous = -1;
|
|
206910
|
+
while ((current = key.indexOf('.', previous + 1)) >= 0) {
|
|
206911
|
+
if (current - previous < 2 || current === last) {
|
|
206912
|
+
return false;
|
|
206913
|
+
}
|
|
206914
|
+
previous = current;
|
|
206915
|
+
}
|
|
206916
|
+
return true;
|
|
206917
|
+
}
|
|
206918
|
+
function isPlainObject(subject) {
|
|
206919
|
+
if (typeof subject === 'object' && subject !== null) {
|
|
206920
|
+
const prototype = Object.getPrototypeOf(subject);
|
|
206921
|
+
if (prototype === Object.prototype || prototype === null) {
|
|
206922
|
+
return true;
|
|
206923
|
+
}
|
|
206924
|
+
}
|
|
206925
|
+
return false;
|
|
206926
|
+
}
|
|
206927
|
+
function deepSet(context, key, value) {
|
|
206928
|
+
const separator = key.indexOf('.');
|
|
206929
|
+
if (separator >= 0) {
|
|
206930
|
+
const subKey = key.slice(0, separator);
|
|
206931
|
+
let subContext = context[subKey];
|
|
206932
|
+
if (typeof subContext !== 'object' || subContext === null) {
|
|
206933
|
+
const subContextValue = subContext;
|
|
206934
|
+
subContext = {};
|
|
206935
|
+
if (typeof subContextValue !== 'undefined') {
|
|
206936
|
+
subContext[''] = subContextValue;
|
|
206937
|
+
}
|
|
206938
|
+
context[subKey] = subContext;
|
|
206939
|
+
}
|
|
206940
|
+
deepSet(subContext, key.slice(separator + 1, key.length), value);
|
|
206941
|
+
}
|
|
206942
|
+
else {
|
|
206943
|
+
context[key] = value;
|
|
206944
|
+
}
|
|
206945
|
+
}
|
|
206946
|
+
Settings.getDefaultSettings().set('useCursors', true);
|
|
206947
|
+
|
|
206926
206948
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/volumeLoader.js
|
|
206927
206949
|
var volumeLoader = __webpack_require__(18588);
|
|
206928
206950
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
|
|
206929
206951
|
var imageLoader = __webpack_require__(62990);
|
|
206952
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/geometryLoader.js + 26 modules
|
|
206953
|
+
var geometryLoader = __webpack_require__(59469);
|
|
206954
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
|
|
206955
|
+
var ProgressiveRetrieveImages = __webpack_require__(27654);
|
|
206956
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
|
|
206957
|
+
var utilities = __webpack_require__(56309);
|
|
206958
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
|
|
206959
|
+
var triggerEvent = __webpack_require__(85041);
|
|
206960
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 1 modules
|
|
206961
|
+
var helpers = __webpack_require__(25281);
|
|
206962
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
|
|
206963
|
+
|
|
206964
|
+
|
|
206965
|
+
|
|
206966
|
+
|
|
206967
|
+
|
|
206968
|
+
|
|
206969
|
+
|
|
206970
|
+
|
|
206971
|
+
|
|
206972
|
+
|
|
206973
|
+
|
|
206974
|
+
|
|
206975
|
+
|
|
206976
|
+
|
|
206977
|
+
|
|
206978
|
+
|
|
206979
|
+
|
|
206980
|
+
|
|
206981
|
+
|
|
206982
|
+
|
|
206983
|
+
|
|
206984
|
+
|
|
206985
|
+
|
|
206986
|
+
|
|
206987
|
+
|
|
206988
|
+
|
|
206989
|
+
|
|
206990
|
+
|
|
206991
|
+
|
|
206992
|
+
|
|
206993
|
+
|
|
206994
|
+
|
|
206995
|
+
/***/ }),
|
|
206996
|
+
|
|
206997
|
+
/***/ 28719:
|
|
206998
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
206999
|
+
|
|
207000
|
+
"use strict";
|
|
207001
|
+
|
|
207002
|
+
// EXPORTS
|
|
207003
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
207004
|
+
uz: () => (/* binding */ canRenderFloatTextures),
|
|
207005
|
+
P_: () => (/* binding */ getConfiguration),
|
|
207006
|
+
L_: () => (/* binding */ getShouldUseCPURendering),
|
|
207007
|
+
hG: () => (/* binding */ getShouldUseSharedArrayBuffer),
|
|
207008
|
+
Pt: () => (/* binding */ getWebWorkerManager),
|
|
207009
|
+
S1: () => (/* binding */ init),
|
|
207010
|
+
uF: () => (/* binding */ isCornerstoneInitialized),
|
|
207011
|
+
Dm: () => (/* binding */ peerImport),
|
|
207012
|
+
Y0: () => (/* binding */ resetUseCPURendering),
|
|
207013
|
+
zr: () => (/* binding */ resetUseSharedArrayBuffer),
|
|
207014
|
+
Dg: () => (/* binding */ setConfiguration),
|
|
207015
|
+
wy: () => (/* binding */ setPreferSizeOverAccuracy),
|
|
207016
|
+
dQ: () => (/* binding */ setUseCPURendering),
|
|
207017
|
+
fK: () => (/* binding */ setUseSharedArrayBuffer)
|
|
207018
|
+
});
|
|
207019
|
+
|
|
207020
|
+
;// CONCATENATED MODULE: ../../../node_modules/detect-gpu/dist/detect-gpu.esm.js
|
|
207021
|
+
function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{d(n.next(e))}catch(e){a(e)}}function c(e){try{d(n.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}d((n=n.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const t=["geforce 320m","geforce 8600","geforce 8600m gt","geforce 8800 gs","geforce 8800 gt","geforce 9400","geforce 9400m g","geforce 9400m","geforce 9600m gt","geforce 9600m","geforce fx go5200","geforce gt 120","geforce gt 130","geforce gt 330m","geforce gtx 285","google swiftshader","intel g41","intel g45","intel gma 4500mhd","intel gma x3100","intel hd 3000","intel q45","legacy","mali-2","mali-3","mali-4","quadro fx 1500","quadro fx 4","quadro fx 5","radeon hd 2400","radeon hd 2600","radeon hd 4670","radeon hd 4850","radeon hd 4870","radeon hd 5670","radeon hd 5750","radeon hd 6290","radeon hd 6300","radeon hd 6310","radeon hd 6320","radeon hd 6490m","radeon hd 6630m","radeon hd 6750m","radeon hd 6770m","radeon hd 6970m","sgx 543","sgx543"];function r(e){return e=e.toLowerCase().replace(/.*angle ?\((.+)\)(?: on vulkan [0-9.]+)?$/i,"$1").replace(/\s(\d{1,2}gb|direct3d.+$)|\(r\)| \([^)]+\)$/g,"").replace(/(?:vulkan|opengl) \d+\.\d+(?:\.\d+)?(?: \((.*)\))?/,"$1")}const n="undefined"==typeof window,o=(()=>{if(n)return;const{userAgent:e,platform:t,maxTouchPoints:r}=window.navigator,o=/(iphone|ipod|ipad)/i.test(e),a="iPad"===t||"MacIntel"===t&&r>0&&!window.MSStream;return{isIpad:a,isMobile:/android/i.test(e)||o||a,isSafari12:/Version\/12.+Safari/.test(e),isFirefox:/Firefox/.test(e)}})();function a(e,t,r){if(!r)return[t];const n=function(e){const t="\n precision highp float;\n attribute vec3 aPosition;\n varying float vvv;\n void main() {\n vvv = 0.31622776601683794;\n gl_Position = vec4(aPosition, 1.0);\n }\n ",r="\n precision highp float;\n varying float vvv;\n void main() {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * vvv;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n gl_FragColor = enc;\n }\n ",n=e.createShader(35633),o=e.createShader(35632),a=e.createProgram();if(!(o&&n&&a))return;e.shaderSource(n,t),e.shaderSource(o,r),e.compileShader(n),e.compileShader(o),e.attachShader(a,n),e.attachShader(a,o),e.linkProgram(a),e.detachShader(a,n),e.detachShader(a,o),e.deleteShader(n),e.deleteShader(o),e.useProgram(a);const i=e.createBuffer();e.bindBuffer(34962,i),e.bufferData(34962,new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),35044);const c=e.getAttribLocation(a,"aPosition");e.vertexAttribPointer(c,3,5126,!1,0,0),e.enableVertexAttribArray(c),e.clearColor(1,1,1,1),e.clear(16384),e.viewport(0,0,1,1),e.drawArrays(4,0,3);const d=new Uint8Array(4);return e.readPixels(0,0,1,1,6408,5121,d),e.deleteProgram(a),e.deleteBuffer(i),d.join("")}(e),a="801621810",i="8016218135",c="80162181161",d=(null==o?void 0:o.isIpad)?[["a7",c,12],["a8",i,15],["a8x",i,15],["a9",i,15],["a9x",i,15],["a10",i,15],["a10x",i,15],["a12",a,15],["a12x",a,15],["a12z",a,15],["a14",a,15],["m1",a,15]]:[["a7",c,12],["a8",i,12],["a9",i,15],["a10",i,15],["a11",a,15],["a12",a,15],["a13",a,15],["a14",a,15],["a15",a,15],["a16",a,15],["a17",a,15]];let l;"80162181255"===n?l=d.filter((([,,e])=>e>=14)):(l=d.filter((([,e])=>e===n)),l.length||(l=d));return l.map((([e])=>`apple ${e} gpu`))}class i extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}const c=[],d=[];function l(e,t){if(e===t)return 0;const r=e;e.length>t.length&&(e=t,t=r);let n=e.length,o=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-o);)n--,o--;let a,i=0;for(;i<n&&e.charCodeAt(i)===t.charCodeAt(i);)i++;if(n-=i,o-=i,0===n)return o;let l,s,f=0,u=0,g=0;for(;u<n;)d[u]=e.charCodeAt(i+u),c[u]=++u;for(;g<o;)for(a=t.charCodeAt(i+g),l=g++,f=g,u=0;u<n;u++)s=a===d[u]?l:l+1,l=c[u],f=c[u]=l>f?s>f?f+1:s:s>l?l+1:s;return f}function s(e){return null!=e}const f=({mobileTiers:c=[0,15,30,60],desktopTiers:d=[0,15,30,60],override:f={},glContext:u,failIfMajorPerformanceCaveat:g=!1,benchmarksURL:h="https://unpkg.com/detect-gpu@5.0.38/dist/benchmarks"}={})=>e(void 0,void 0,void 0,(function*(){const p={};if(n)return{tier:0,type:"SSR"};const{isIpad:m=!!(null==o?void 0:o.isIpad),isMobile:v=!!(null==o?void 0:o.isMobile),screenSize:w=window.screen,loadBenchmarks:x=(t=>e(void 0,void 0,void 0,(function*(){const e=yield fetch(`${h}/${t}`).then((e=>e.json()));if(parseInt(e.shift().split(".")[0],10)<4)throw new i("Detect GPU benchmark data is out of date. Please update to version 4x");return e})))}=f;let{renderer:A}=f;const P=(e,t,r,n,o)=>({device:o,fps:n,gpu:r,isMobile:v,tier:e,type:t});let S,b="";if(A)A=r(A),S=[A];else{const e=u||function(e,t=!1){const r={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:t,powerPreference:"high-performance",stencil:!1};e&&delete r.powerPreference;const n=window.document.createElement("canvas"),o=n.getContext("webgl",r)||n.getContext("experimental-webgl",r);return null!=o?o:void 0}(null==o?void 0:o.isSafari12,g);if(!e)return P(0,"WEBGL_UNSUPPORTED");const t=(null==o?void 0:o.isFirefox)?null:e.getExtension("WEBGL_debug_renderer_info");if(A=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER),!A)return P(1,"FALLBACK");b=A,A=r(A),S=function(e,t,r){return"apple gpu"===t?a(e,t,r):[t]}(e,A,v)}const E=(yield Promise.all(S.map((function(t){var r;return e(this,void 0,void 0,(function*(){const e=(e=>{const t=v?["adreno","apple","mali-t","mali","nvidia","powervr","samsung"]:["intel","apple","amd","radeon","nvidia","geforce","adreno"];for(const r of t)if(e.includes(r))return r})(t);if(!e)return;const n=`${v?"m":"d"}-${e}${m?"-ipad":""}.json`,o=p[n]=null!==(r=p[n])&&void 0!==r?r:x(n);let a;try{a=yield o}catch(e){if(e instanceof i)throw e;return}const c=function(e){var t;const r=(e=e.replace(/\([^)]+\)/,"")).match(/\d+/)||e.match(/(\W|^)([A-Za-z]{1,3})(\W|$)/g);return null!==(t=null==r?void 0:r.join("").replace(/\W|amd/g,""))&&void 0!==t?t:""}(t);let d=a.filter((([,e])=>e===c));d.length||(d=a.filter((([e])=>e.includes(t))));const s=d.length;if(0===s)return;const f=t.split(/[.,()\[\]/\s]/g).sort().filter(((e,t,r)=>0===t||e!==r[t-1])).join(" ");let u,[g,,,,h]=s>1?d.map((e=>[e,l(f,e[2])])).sort((([,e],[,t])=>e-t))[0][0]:d[0],A=Number.MAX_VALUE;const{devicePixelRatio:P}=window,S=w.width*P*w.height*P;for(const e of h){const[t,r]=e,n=t*r,o=Math.abs(S-n);o<A&&(A=o,u=e)}if(!u)return;const[,,b,E]=u;return[A,b,g,E]}))})))).filter(s).sort((([e=Number.MAX_VALUE,t],[r=Number.MAX_VALUE,n])=>e===r?t-n:e-r));if(!E.length){const e=t.find((e=>A.includes(e)));return e?P(0,"BLOCKLISTED",e):P(1,"FALLBACK",`${A} (${b})`)}const[,y,C,L]=E[0];if(-1===y)return P(0,"BLOCKLISTED",C,y,L);const M=v?c:d;let $=0;for(let e=0;e<M.length;e++)y>=M[e]&&($=e);return P($,"BENCHMARK",C,y,L)}));
|
|
207022
|
+
|
|
207023
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
207024
|
+
var enums = __webpack_require__(7187);
|
|
207025
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
|
|
207026
|
+
var getRenderingEngine = __webpack_require__(9138);
|
|
207027
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
|
|
207028
|
+
var utilities = __webpack_require__(56309);
|
|
207029
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/webWorkerManager/webWorkerManager.js
|
|
207030
|
+
var webWorkerManager = __webpack_require__(15291);
|
|
207031
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js
|
|
207032
|
+
|
|
207033
|
+
|
|
207034
|
+
|
|
207035
|
+
let csRenderInitialized = false;
|
|
207036
|
+
let useSharedArrayBuffer = true;
|
|
207037
|
+
let sharedArrayBufferMode = enums.SharedArrayBufferModes.TRUE;
|
|
207038
|
+
|
|
207039
|
+
|
|
207040
|
+
const defaultConfig = {
|
|
207041
|
+
gpuTier: undefined,
|
|
207042
|
+
detectGPUConfig: {},
|
|
207043
|
+
isMobile: false,
|
|
207044
|
+
rendering: {
|
|
207045
|
+
useCPURendering: false,
|
|
207046
|
+
preferSizeOverAccuracy: false,
|
|
207047
|
+
useNorm16Texture: false,
|
|
207048
|
+
strictZSpacingForVolumeViewport: true,
|
|
207049
|
+
},
|
|
207050
|
+
enableCacheOptimization: true,
|
|
207051
|
+
peerImport: (moduleId) => null,
|
|
207052
|
+
};
|
|
207053
|
+
let config = {
|
|
207054
|
+
...defaultConfig,
|
|
207055
|
+
rendering: { ...defaultConfig.rendering },
|
|
207056
|
+
};
|
|
207057
|
+
let init_webWorkerManager = null;
|
|
207058
|
+
function _getGLContext() {
|
|
207059
|
+
const canvas = document.createElement('canvas');
|
|
207060
|
+
const gl = canvas.getContext('webgl2') ||
|
|
207061
|
+
canvas.getContext('webgl') ||
|
|
207062
|
+
canvas.getContext('experimental-webgl');
|
|
207063
|
+
return gl;
|
|
207064
|
+
}
|
|
207065
|
+
function _hasActiveWebGLContext() {
|
|
207066
|
+
const gl = _getGLContext();
|
|
207067
|
+
return (gl instanceof WebGLRenderingContext || gl instanceof WebGL2RenderingContext);
|
|
207068
|
+
}
|
|
207069
|
+
function hasSharedArrayBuffer() {
|
|
207070
|
+
try {
|
|
207071
|
+
if (new SharedArrayBuffer(0)) {
|
|
207072
|
+
return true;
|
|
207073
|
+
}
|
|
207074
|
+
else {
|
|
207075
|
+
return false;
|
|
207076
|
+
}
|
|
207077
|
+
}
|
|
207078
|
+
catch {
|
|
207079
|
+
return false;
|
|
207080
|
+
}
|
|
207081
|
+
}
|
|
207082
|
+
function _hasNorm16TextureSupport() {
|
|
207083
|
+
const gl = _getGLContext();
|
|
207084
|
+
if (gl) {
|
|
207085
|
+
const ext = gl.getExtension('EXT_texture_norm16');
|
|
207086
|
+
if (ext) {
|
|
207087
|
+
return true;
|
|
207088
|
+
}
|
|
207089
|
+
}
|
|
207090
|
+
return false;
|
|
207091
|
+
}
|
|
207092
|
+
function isIOS() {
|
|
207093
|
+
if (/iPad|iPhone|iPod/.test(navigator.platform)) {
|
|
207094
|
+
return true;
|
|
207095
|
+
}
|
|
207096
|
+
else {
|
|
207097
|
+
return (navigator.maxTouchPoints &&
|
|
207098
|
+
navigator.maxTouchPoints > 2 &&
|
|
207099
|
+
/MacIntel/.test(navigator.platform));
|
|
207100
|
+
}
|
|
207101
|
+
}
|
|
207102
|
+
async function init(configuration = config) {
|
|
207103
|
+
if (csRenderInitialized) {
|
|
207104
|
+
return csRenderInitialized;
|
|
207105
|
+
}
|
|
207106
|
+
config = (0,utilities.deepMerge)(defaultConfig, configuration);
|
|
207107
|
+
if (isIOS()) {
|
|
207108
|
+
config.rendering.useNorm16Texture = _hasNorm16TextureSupport();
|
|
207109
|
+
if (!config.rendering.useNorm16Texture) {
|
|
207110
|
+
if (configuration.rendering?.preferSizeOverAccuracy) {
|
|
207111
|
+
config.rendering.preferSizeOverAccuracy = true;
|
|
207112
|
+
}
|
|
207113
|
+
else {
|
|
207114
|
+
console.log('norm16 texture not supported, you can turn on the preferSizeOverAccuracy flag to use native data type, but be aware of the inaccuracy of the rendering in high bits');
|
|
207115
|
+
}
|
|
207116
|
+
}
|
|
207117
|
+
}
|
|
207118
|
+
const hasWebGLContext = _hasActiveWebGLContext();
|
|
207119
|
+
if (!hasWebGLContext) {
|
|
207120
|
+
console.log('CornerstoneRender: GPU not detected, using CPU rendering');
|
|
207121
|
+
config.rendering.useCPURendering = true;
|
|
207122
|
+
}
|
|
207123
|
+
else {
|
|
207124
|
+
config.gpuTier =
|
|
207125
|
+
config.gpuTier || (await f(config.detectGPUConfig));
|
|
207126
|
+
console.log('CornerstoneRender: Using detect-gpu to get the GPU benchmark:', config.gpuTier);
|
|
207127
|
+
if (config.gpuTier?.tier < 1) {
|
|
207128
|
+
console.log('CornerstoneRender: GPU is not powerful enough, using CPU rendering');
|
|
207129
|
+
config.rendering.useCPURendering = true;
|
|
207130
|
+
}
|
|
207131
|
+
else {
|
|
207132
|
+
console.log('CornerstoneRender: using GPU rendering');
|
|
207133
|
+
}
|
|
207134
|
+
}
|
|
207135
|
+
setUseSharedArrayBuffer(sharedArrayBufferMode);
|
|
207136
|
+
csRenderInitialized = true;
|
|
207137
|
+
if (!init_webWorkerManager) {
|
|
207138
|
+
init_webWorkerManager = new webWorkerManager/* default */.Z();
|
|
207139
|
+
}
|
|
207140
|
+
return csRenderInitialized;
|
|
207141
|
+
}
|
|
207142
|
+
function setUseCPURendering(status) {
|
|
207143
|
+
config.rendering.useCPURendering = status;
|
|
207144
|
+
csRenderInitialized = true;
|
|
207145
|
+
_updateRenderingPipelinesForAllViewports();
|
|
207146
|
+
}
|
|
207147
|
+
function setPreferSizeOverAccuracy(status) {
|
|
207148
|
+
config.rendering.preferSizeOverAccuracy = status;
|
|
207149
|
+
csRenderInitialized = true;
|
|
207150
|
+
_updateRenderingPipelinesForAllViewports();
|
|
207151
|
+
}
|
|
207152
|
+
function canRenderFloatTextures() {
|
|
207153
|
+
if (!isIOS()) {
|
|
207154
|
+
return true;
|
|
207155
|
+
}
|
|
207156
|
+
return false;
|
|
207157
|
+
}
|
|
207158
|
+
function resetUseCPURendering() {
|
|
207159
|
+
config.rendering.useCPURendering = !_hasActiveWebGLContext();
|
|
207160
|
+
_updateRenderingPipelinesForAllViewports();
|
|
207161
|
+
}
|
|
207162
|
+
function getShouldUseCPURendering() {
|
|
207163
|
+
return config.rendering.useCPURendering;
|
|
207164
|
+
}
|
|
207165
|
+
function setUseSharedArrayBuffer(mode) {
|
|
207166
|
+
if (mode == enums.SharedArrayBufferModes.AUTO) {
|
|
207167
|
+
sharedArrayBufferMode = enums.SharedArrayBufferModes.AUTO;
|
|
207168
|
+
const hasSharedBuffer = hasSharedArrayBuffer();
|
|
207169
|
+
if (!hasSharedBuffer) {
|
|
207170
|
+
useSharedArrayBuffer = false;
|
|
207171
|
+
console.warn(`CornerstoneRender: SharedArray Buffer not allowed, performance may be slower.
|
|
207172
|
+
Try ensuring page is cross-origin isolated to enable SharedArrayBuffer.`);
|
|
207173
|
+
}
|
|
207174
|
+
else {
|
|
207175
|
+
useSharedArrayBuffer = true;
|
|
207176
|
+
console.log('CornerstoneRender: using SharedArrayBuffer');
|
|
207177
|
+
}
|
|
207178
|
+
return;
|
|
207179
|
+
}
|
|
207180
|
+
if (mode == enums.SharedArrayBufferModes.TRUE || mode == true) {
|
|
207181
|
+
sharedArrayBufferMode = enums.SharedArrayBufferModes.TRUE;
|
|
207182
|
+
useSharedArrayBuffer = true;
|
|
207183
|
+
return;
|
|
207184
|
+
}
|
|
207185
|
+
if (mode == enums.SharedArrayBufferModes.FALSE || mode == false) {
|
|
207186
|
+
sharedArrayBufferMode = enums.SharedArrayBufferModes.FALSE;
|
|
207187
|
+
useSharedArrayBuffer = false;
|
|
207188
|
+
return;
|
|
207189
|
+
}
|
|
207190
|
+
}
|
|
207191
|
+
function resetUseSharedArrayBuffer() {
|
|
207192
|
+
setUseSharedArrayBuffer(sharedArrayBufferMode);
|
|
207193
|
+
}
|
|
207194
|
+
function getShouldUseSharedArrayBuffer() {
|
|
207195
|
+
return useSharedArrayBuffer;
|
|
207196
|
+
}
|
|
207197
|
+
function isCornerstoneInitialized() {
|
|
207198
|
+
return csRenderInitialized;
|
|
207199
|
+
}
|
|
207200
|
+
function getConfiguration() {
|
|
207201
|
+
return config;
|
|
207202
|
+
}
|
|
207203
|
+
function setConfiguration(c) {
|
|
207204
|
+
config = c;
|
|
207205
|
+
_updateRenderingPipelinesForAllViewports();
|
|
207206
|
+
}
|
|
207207
|
+
function _updateRenderingPipelinesForAllViewports() {
|
|
207208
|
+
(0,getRenderingEngine/* getRenderingEngines */.Uu)().forEach((engine) => engine
|
|
207209
|
+
.getViewports()
|
|
207210
|
+
.forEach((viewport) => viewport.updateRenderingPipeline?.()));
|
|
207211
|
+
}
|
|
207212
|
+
function getWebWorkerManager() {
|
|
207213
|
+
if (!init_webWorkerManager) {
|
|
207214
|
+
init_webWorkerManager = new webWorkerManager/* default */.Z();
|
|
207215
|
+
}
|
|
207216
|
+
return init_webWorkerManager;
|
|
207217
|
+
}
|
|
207218
|
+
function peerImport(moduleId) {
|
|
207219
|
+
return config.peerImport(moduleId);
|
|
207220
|
+
}
|
|
207221
|
+
|
|
207222
|
+
|
|
207223
|
+
|
|
207224
|
+
/***/ }),
|
|
207225
|
+
|
|
207226
|
+
/***/ 27654:
|
|
207227
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
207228
|
+
|
|
207229
|
+
"use strict";
|
|
207230
|
+
|
|
207231
|
+
// EXPORTS
|
|
207232
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
207233
|
+
RJ: () => (/* binding */ createProgressive),
|
|
207234
|
+
ZP: () => (/* binding */ loaders_ProgressiveRetrieveImages)
|
|
207235
|
+
});
|
|
207236
|
+
|
|
207237
|
+
// UNUSED EXPORTS: ProgressiveRetrieveImages, interleavedRetrieveStages, sequentialRetrieveStages, singleRetrieveStages
|
|
207238
|
+
|
|
207239
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/singleRetrieve.js
|
|
207240
|
+
const singleRetrieveStages = [
|
|
207241
|
+
{
|
|
207242
|
+
id: 'initialImages',
|
|
207243
|
+
retrieveType: 'single',
|
|
207244
|
+
},
|
|
207245
|
+
{
|
|
207246
|
+
id: 'errorRetrieve',
|
|
207247
|
+
},
|
|
207248
|
+
];
|
|
207249
|
+
/* harmony default export */ const singleRetrieve = (singleRetrieveStages);
|
|
207250
|
+
|
|
207251
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/sequentialRetrieve.js
|
|
207252
|
+
const sequentialRetrieveStages = [
|
|
207253
|
+
{
|
|
207254
|
+
id: 'lossySequential',
|
|
207255
|
+
retrieveType: 'singleFast',
|
|
207256
|
+
},
|
|
207257
|
+
{
|
|
207258
|
+
id: 'finalSequential',
|
|
207259
|
+
retrieveType: 'singleFinal',
|
|
207260
|
+
},
|
|
207261
|
+
];
|
|
207262
|
+
/* harmony default export */ const sequentialRetrieve = (sequentialRetrieveStages);
|
|
207263
|
+
|
|
207264
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
207265
|
+
var enums = __webpack_require__(7187);
|
|
207266
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/interleavedRetrieve.js
|
|
207267
|
+
|
|
207268
|
+
const nearbyFrames = [
|
|
207269
|
+
{
|
|
207270
|
+
offset: -1,
|
|
207271
|
+
imageQualityStatus: enums.ImageQualityStatus.ADJACENT_REPLICATE,
|
|
207272
|
+
},
|
|
207273
|
+
{
|
|
207274
|
+
offset: +1,
|
|
207275
|
+
imageQualityStatus: enums.ImageQualityStatus.ADJACENT_REPLICATE,
|
|
207276
|
+
},
|
|
207277
|
+
{ offset: +2, imageQualityStatus: enums.ImageQualityStatus.FAR_REPLICATE },
|
|
207278
|
+
];
|
|
207279
|
+
const interleavedRetrieveConfiguration = [
|
|
207280
|
+
{
|
|
207281
|
+
id: 'initialImages',
|
|
207282
|
+
positions: [0.5, 0, -1],
|
|
207283
|
+
retrieveType: 'default',
|
|
207284
|
+
requestType: enums.RequestType.Thumbnail,
|
|
207285
|
+
priority: 5,
|
|
207286
|
+
nearbyFrames,
|
|
207287
|
+
},
|
|
207288
|
+
{
|
|
207289
|
+
id: 'quarterThumb',
|
|
207290
|
+
decimate: 4,
|
|
207291
|
+
offset: 3,
|
|
207292
|
+
requestType: enums.RequestType.Thumbnail,
|
|
207293
|
+
retrieveType: 'multipleFast',
|
|
207294
|
+
priority: 6,
|
|
207295
|
+
nearbyFrames,
|
|
207296
|
+
},
|
|
207297
|
+
{
|
|
207298
|
+
id: 'halfThumb',
|
|
207299
|
+
decimate: 4,
|
|
207300
|
+
offset: 1,
|
|
207301
|
+
priority: 7,
|
|
207302
|
+
requestType: enums.RequestType.Thumbnail,
|
|
207303
|
+
retrieveType: 'multipleFast',
|
|
207304
|
+
nearbyFrames,
|
|
207305
|
+
},
|
|
207306
|
+
{
|
|
207307
|
+
id: 'quarterFull',
|
|
207308
|
+
decimate: 4,
|
|
207309
|
+
offset: 2,
|
|
207310
|
+
priority: 8,
|
|
207311
|
+
requestType: enums.RequestType.Thumbnail,
|
|
207312
|
+
retrieveType: 'multipleFinal',
|
|
207313
|
+
},
|
|
207314
|
+
{
|
|
207315
|
+
id: 'halfFull',
|
|
207316
|
+
decimate: 4,
|
|
207317
|
+
offset: 0,
|
|
207318
|
+
priority: 9,
|
|
207319
|
+
requestType: enums.RequestType.Thumbnail,
|
|
207320
|
+
retrieveType: 'multipleFinal',
|
|
207321
|
+
},
|
|
207322
|
+
{
|
|
207323
|
+
id: 'threeQuarterFull',
|
|
207324
|
+
decimate: 4,
|
|
207325
|
+
offset: 1,
|
|
207326
|
+
priority: 10,
|
|
207327
|
+
requestType: enums.RequestType.Thumbnail,
|
|
207328
|
+
retrieveType: 'multipleFinal',
|
|
207329
|
+
},
|
|
207330
|
+
{
|
|
207331
|
+
id: 'finalFull',
|
|
207332
|
+
decimate: 4,
|
|
207333
|
+
offset: 3,
|
|
207334
|
+
priority: 11,
|
|
207335
|
+
requestType: enums.RequestType.Thumbnail,
|
|
207336
|
+
retrieveType: 'multipleFinal',
|
|
207337
|
+
},
|
|
207338
|
+
{
|
|
207339
|
+
id: 'errorRetrieve',
|
|
207340
|
+
},
|
|
207341
|
+
];
|
|
207342
|
+
/* harmony default export */ const interleavedRetrieve = (interleavedRetrieveConfiguration);
|
|
207343
|
+
|
|
207344
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
|
|
207345
|
+
var imageLoader = __webpack_require__(62990);
|
|
207346
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 66 modules
|
|
207347
|
+
var utilities = __webpack_require__(56309);
|
|
207348
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
|
|
207349
|
+
var imageLoadPoolManager = __webpack_require__(96506);
|
|
207350
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
|
|
207351
|
+
var cache = __webpack_require__(82253);
|
|
207352
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
|
|
207353
|
+
var eventTarget = __webpack_require__(74238);
|
|
207354
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/fillNearbyFrames.js
|
|
207355
|
+
function fillNearbyFrames(listener, imageQualityStatusMap, request, image, options) {
|
|
207356
|
+
if (!request?.nearbyRequests?.length) {
|
|
207357
|
+
return;
|
|
207358
|
+
}
|
|
207359
|
+
const { arrayBuffer, offset: srcOffset, type, length: frameLength, } = options.targetBuffer;
|
|
207360
|
+
if (!arrayBuffer || srcOffset === undefined || !type) {
|
|
207361
|
+
return;
|
|
207362
|
+
}
|
|
207363
|
+
const scalarData = new Float32Array(arrayBuffer);
|
|
207364
|
+
const bytesPerPixel = scalarData.byteLength / scalarData.length;
|
|
207365
|
+
const offset = options.targetBuffer.offset / bytesPerPixel;
|
|
207366
|
+
const src = scalarData.slice(offset, offset + frameLength);
|
|
207367
|
+
for (const nearbyItem of request.nearbyRequests) {
|
|
207368
|
+
try {
|
|
207369
|
+
const { itemId: targetId, imageQualityStatus } = nearbyItem;
|
|
207370
|
+
const targetStatus = imageQualityStatusMap.get(targetId);
|
|
207371
|
+
if (targetStatus !== undefined && targetStatus >= imageQualityStatus) {
|
|
207372
|
+
continue;
|
|
207373
|
+
}
|
|
207374
|
+
const targetOptions = listener.getLoaderImageOptions(targetId);
|
|
207375
|
+
const { offset: targetOffset } = targetOptions.targetBuffer;
|
|
207376
|
+
scalarData.set(src, targetOffset / bytesPerPixel);
|
|
207377
|
+
const nearbyImage = {
|
|
207378
|
+
...image,
|
|
207379
|
+
imageQualityStatus,
|
|
207380
|
+
};
|
|
207381
|
+
listener.successCallback(targetId, nearbyImage);
|
|
207382
|
+
imageQualityStatusMap.set(targetId, imageQualityStatus);
|
|
207383
|
+
}
|
|
207384
|
+
catch (e) {
|
|
207385
|
+
console.log("Couldn't fill nearby item ", nearbyItem.itemId, e);
|
|
207386
|
+
}
|
|
207387
|
+
}
|
|
207388
|
+
}
|
|
207389
|
+
|
|
207390
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js
|
|
207391
|
+
|
|
207392
|
+
|
|
207393
|
+
|
|
207394
|
+
|
|
207395
|
+
|
|
207396
|
+
|
|
207397
|
+
|
|
207398
|
+
|
|
207399
|
+
|
|
207400
|
+
|
|
207401
|
+
|
|
207402
|
+
class ProgressiveRetrieveImages {
|
|
207403
|
+
constructor(imageRetrieveConfiguration) {
|
|
207404
|
+
this.stages = imageRetrieveConfiguration.stages || singleRetrieve;
|
|
207405
|
+
this.retrieveOptions = imageRetrieveConfiguration.retrieveOptions || {};
|
|
207406
|
+
}
|
|
207407
|
+
static { this.createProgressive = createProgressive; }
|
|
207408
|
+
static { this.interleavedRetrieveStages = {
|
|
207409
|
+
stages: interleavedRetrieve,
|
|
207410
|
+
}; }
|
|
207411
|
+
static { this.singleRetrieveStages = {
|
|
207412
|
+
stages: singleRetrieve,
|
|
207413
|
+
}; }
|
|
207414
|
+
static { this.sequentialRetrieveStages = {
|
|
207415
|
+
stages: sequentialRetrieve,
|
|
207416
|
+
}; }
|
|
207417
|
+
loadImages(imageIds, listener) {
|
|
207418
|
+
const instance = new ProgressiveRetrieveImagesInstance(this, imageIds, listener);
|
|
207419
|
+
return instance.loadImages();
|
|
207420
|
+
}
|
|
207421
|
+
}
|
|
207422
|
+
class ProgressiveRetrieveImagesInstance {
|
|
207423
|
+
constructor(configuration, imageIds, listener) {
|
|
207424
|
+
this.outstandingRequests = 0;
|
|
207425
|
+
this.stageStatusMap = new Map();
|
|
207426
|
+
this.imageQualityStatusMap = new Map();
|
|
207427
|
+
this.displayedIterator = new utilities.ProgressiveIterator('displayed');
|
|
207428
|
+
this.stages = configuration.stages;
|
|
207429
|
+
this.retrieveOptions = configuration.retrieveOptions;
|
|
207430
|
+
this.imageIds = imageIds;
|
|
207431
|
+
this.listener = listener;
|
|
207432
|
+
}
|
|
207433
|
+
async loadImages() {
|
|
207434
|
+
const interleaved = this.createStageRequests();
|
|
207435
|
+
this.outstandingRequests = interleaved.length;
|
|
207436
|
+
for (const request of interleaved) {
|
|
207437
|
+
this.addRequest(request);
|
|
207438
|
+
}
|
|
207439
|
+
if (this.outstandingRequests === 0) {
|
|
207440
|
+
return Promise.resolve(null);
|
|
207441
|
+
}
|
|
207442
|
+
return this.displayedIterator.getDonePromise();
|
|
207443
|
+
}
|
|
207444
|
+
sendRequest(request, options) {
|
|
207445
|
+
const { imageId, next } = request;
|
|
207446
|
+
const errorCallback = (reason, done) => {
|
|
207447
|
+
this.listener.errorCallback(imageId, complete || !next, reason);
|
|
207448
|
+
if (done) {
|
|
207449
|
+
this.updateStageStatus(request.stage, reason);
|
|
207450
|
+
}
|
|
207451
|
+
};
|
|
207452
|
+
const loadedPromise = (options.loader || imageLoader.loadAndCacheImage)(imageId, options);
|
|
207453
|
+
const uncompressedIterator = utilities.ProgressiveIterator.as(loadedPromise);
|
|
207454
|
+
let complete = false;
|
|
207455
|
+
uncompressedIterator
|
|
207456
|
+
.forEach(async (image, done) => {
|
|
207457
|
+
const oldStatus = this.imageQualityStatusMap.get(imageId);
|
|
207458
|
+
if (!image) {
|
|
207459
|
+
console.warn('No image retrieved', imageId);
|
|
207460
|
+
return;
|
|
207461
|
+
}
|
|
207462
|
+
const { imageQualityStatus } = image;
|
|
207463
|
+
complete ||= imageQualityStatus === enums.ImageQualityStatus.FULL_RESOLUTION;
|
|
207464
|
+
if (oldStatus !== undefined && oldStatus > imageQualityStatus) {
|
|
207465
|
+
this.updateStageStatus(request.stage, null, true);
|
|
207466
|
+
return;
|
|
207467
|
+
}
|
|
207468
|
+
this.listener.successCallback(imageId, image);
|
|
207469
|
+
this.imageQualityStatusMap.set(imageId, imageQualityStatus);
|
|
207470
|
+
this.displayedIterator.add(image);
|
|
207471
|
+
if (done) {
|
|
207472
|
+
this.updateStageStatus(request.stage);
|
|
207473
|
+
}
|
|
207474
|
+
fillNearbyFrames(this.listener, this.imageQualityStatusMap, request, image, options);
|
|
207475
|
+
}, errorCallback)
|
|
207476
|
+
.finally(() => {
|
|
207477
|
+
if (!complete && next) {
|
|
207478
|
+
if (cache/* default */.ZP.getImageLoadObject(imageId)) {
|
|
207479
|
+
cache/* default */.ZP.removeImageLoadObject(imageId);
|
|
207480
|
+
}
|
|
207481
|
+
this.addRequest(next, options.streamingData);
|
|
207482
|
+
}
|
|
207483
|
+
else {
|
|
207484
|
+
if (!complete) {
|
|
207485
|
+
this.listener.errorCallback(imageId, true, "Couldn't decode");
|
|
207486
|
+
}
|
|
207487
|
+
this.outstandingRequests--;
|
|
207488
|
+
for (let skip = next; skip; skip = skip.next) {
|
|
207489
|
+
this.updateStageStatus(skip.stage, null, true);
|
|
207490
|
+
}
|
|
207491
|
+
}
|
|
207492
|
+
if (this.outstandingRequests <= 0) {
|
|
207493
|
+
this.displayedIterator.resolve();
|
|
207494
|
+
}
|
|
207495
|
+
});
|
|
207496
|
+
const doneLoad = uncompressedIterator.getDonePromise();
|
|
207497
|
+
return doneLoad.catch((e) => null);
|
|
207498
|
+
}
|
|
207499
|
+
addRequest(request, streamingData = {}) {
|
|
207500
|
+
const { imageId, stage } = request;
|
|
207501
|
+
const baseOptions = this.listener.getLoaderImageOptions(imageId);
|
|
207502
|
+
if (!baseOptions) {
|
|
207503
|
+
return;
|
|
207504
|
+
}
|
|
207505
|
+
const { retrieveType = 'default' } = stage;
|
|
207506
|
+
const { retrieveOptions: keyedRetrieveOptions } = this;
|
|
207507
|
+
const retrieveOptions = keyedRetrieveOptions[retrieveType] || keyedRetrieveOptions.default;
|
|
207508
|
+
const options = {
|
|
207509
|
+
...baseOptions,
|
|
207510
|
+
retrieveType,
|
|
207511
|
+
retrieveOptions,
|
|
207512
|
+
streamingData,
|
|
207513
|
+
};
|
|
207514
|
+
const priority = stage.priority ?? -5;
|
|
207515
|
+
const requestType = stage.requestType || enums.RequestType.Interaction;
|
|
207516
|
+
const additionalDetails = { imageId };
|
|
207517
|
+
imageLoadPoolManager/* default */.Z.addRequest(this.sendRequest.bind(this, request, options), requestType, additionalDetails, priority);
|
|
207518
|
+
}
|
|
207519
|
+
updateStageStatus(stage, failure, skipped = false) {
|
|
207520
|
+
const { id } = stage;
|
|
207521
|
+
const stageStatus = this.stageStatusMap.get(id);
|
|
207522
|
+
if (!stageStatus) {
|
|
207523
|
+
return;
|
|
207524
|
+
}
|
|
207525
|
+
stageStatus.imageLoadPendingCount--;
|
|
207526
|
+
if (failure) {
|
|
207527
|
+
stageStatus.imageLoadFailedCount++;
|
|
207528
|
+
}
|
|
207529
|
+
else if (!skipped) {
|
|
207530
|
+
stageStatus.totalImageCount++;
|
|
207531
|
+
}
|
|
207532
|
+
if (!skipped && !stageStatus.stageStartTime) {
|
|
207533
|
+
stageStatus.stageStartTime = Date.now();
|
|
207534
|
+
}
|
|
207535
|
+
if (!stageStatus.imageLoadPendingCount) {
|
|
207536
|
+
const { imageLoadFailedCount: numberOfFailures, totalImageCount: numberOfImages, stageStartTime = Date.now(), startTime, } = stageStatus;
|
|
207537
|
+
const detail = {
|
|
207538
|
+
stageId: id,
|
|
207539
|
+
numberOfFailures,
|
|
207540
|
+
numberOfImages,
|
|
207541
|
+
stageDurationInMS: stageStartTime ? Date.now() - stageStartTime : null,
|
|
207542
|
+
startDurationInMS: Date.now() - startTime,
|
|
207543
|
+
};
|
|
207544
|
+
(0,utilities.triggerEvent)(eventTarget/* default */.Z, enums.Events.IMAGE_RETRIEVAL_STAGE, detail);
|
|
207545
|
+
this.stageStatusMap.delete(id);
|
|
207546
|
+
}
|
|
207547
|
+
}
|
|
207548
|
+
createStageRequests() {
|
|
207549
|
+
const interleaved = new Array();
|
|
207550
|
+
const imageRequests = new Map();
|
|
207551
|
+
const addStageInstance = (stage, position) => {
|
|
207552
|
+
const index = position < 0
|
|
207553
|
+
? this.imageIds.length + position
|
|
207554
|
+
: position < 1
|
|
207555
|
+
? Math.floor((this.imageIds.length - 1) * position)
|
|
207556
|
+
: position;
|
|
207557
|
+
const imageId = this.imageIds[index];
|
|
207558
|
+
if (!imageId) {
|
|
207559
|
+
throw new Error(`No value found to add to requests at ${position}`);
|
|
207560
|
+
}
|
|
207561
|
+
const request = {
|
|
207562
|
+
imageId,
|
|
207563
|
+
stage,
|
|
207564
|
+
nearbyRequests: this.findNearbyRequests(index, stage),
|
|
207565
|
+
};
|
|
207566
|
+
this.addStageStatus(stage);
|
|
207567
|
+
const existingRequest = imageRequests.get(imageId);
|
|
207568
|
+
if (existingRequest) {
|
|
207569
|
+
existingRequest.next = request;
|
|
207570
|
+
}
|
|
207571
|
+
else {
|
|
207572
|
+
interleaved.push(request);
|
|
207573
|
+
}
|
|
207574
|
+
imageRequests.set(imageId, request);
|
|
207575
|
+
};
|
|
207576
|
+
for (const stage of this.stages) {
|
|
207577
|
+
const indices = stage.positions ||
|
|
207578
|
+
(0,utilities.decimate)(this.imageIds, stage.decimate || 1, stage.offset ?? 0);
|
|
207579
|
+
indices.forEach((index) => addStageInstance(stage, index));
|
|
207580
|
+
}
|
|
207581
|
+
return interleaved;
|
|
207582
|
+
}
|
|
207583
|
+
findNearbyRequests(index, stage) {
|
|
207584
|
+
const nearby = new Array();
|
|
207585
|
+
if (!stage.nearbyFrames) {
|
|
207586
|
+
return nearby;
|
|
207587
|
+
}
|
|
207588
|
+
for (const nearbyItem of stage.nearbyFrames) {
|
|
207589
|
+
const nearbyIndex = index + nearbyItem.offset;
|
|
207590
|
+
if (nearbyIndex < 0 || nearbyIndex >= this.imageIds.length) {
|
|
207591
|
+
continue;
|
|
207592
|
+
}
|
|
207593
|
+
nearby.push({
|
|
207594
|
+
itemId: this.imageIds[nearbyIndex],
|
|
207595
|
+
imageQualityStatus: nearbyItem.imageQualityStatus,
|
|
207596
|
+
});
|
|
207597
|
+
}
|
|
207598
|
+
return nearby;
|
|
207599
|
+
}
|
|
207600
|
+
addStageStatus(stage) {
|
|
207601
|
+
const { id } = stage;
|
|
207602
|
+
const stageStatus = this.stageStatusMap.get(id) || {
|
|
207603
|
+
stageId: id,
|
|
207604
|
+
startTime: Date.now(),
|
|
207605
|
+
stageStartTime: null,
|
|
207606
|
+
totalImageCount: 0,
|
|
207607
|
+
imageLoadFailedCount: 0,
|
|
207608
|
+
imageLoadPendingCount: 0,
|
|
207609
|
+
};
|
|
207610
|
+
stageStatus.imageLoadPendingCount++;
|
|
207611
|
+
this.stageStatusMap.set(id, stageStatus);
|
|
207612
|
+
return stageStatus;
|
|
207613
|
+
}
|
|
207614
|
+
}
|
|
207615
|
+
function createProgressive(configuration) {
|
|
207616
|
+
return new ProgressiveRetrieveImages(configuration);
|
|
207617
|
+
}
|
|
207618
|
+
/* harmony default export */ const loaders_ProgressiveRetrieveImages = (ProgressiveRetrieveImages);
|
|
207619
|
+
|
|
207620
|
+
|
|
207621
|
+
/***/ }),
|
|
207622
|
+
|
|
207623
|
+
/***/ 59469:
|
|
207624
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
207625
|
+
|
|
207626
|
+
"use strict";
|
|
207627
|
+
// ESM COMPAT FLAG
|
|
207628
|
+
__webpack_require__.r(__webpack_exports__);
|
|
207629
|
+
|
|
207630
|
+
// EXPORTS
|
|
207631
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
207632
|
+
createAndCacheGeometry: () => (/* binding */ createAndCacheGeometry)
|
|
207633
|
+
});
|
|
207634
|
+
|
|
206930
207635
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Rendering/OpenGL/Camera.js
|
|
206931
207636
|
var Camera = __webpack_require__(34349);
|
|
206932
207637
|
// EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Rendering/OpenGL/Renderer.js
|
|
@@ -211692,6 +212397,10 @@ var WebGPU_PixelSpaceCallbackMapper = __webpack_require__(28378);
|
|
|
211692
212397
|
|
|
211693
212398
|
|
|
211694
212399
|
|
|
212400
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
|
|
212401
|
+
var cache = __webpack_require__(82253);
|
|
212402
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
212403
|
+
var enums = __webpack_require__(7187);
|
|
211695
212404
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/utils/contourSet/validateContourSet.js
|
|
211696
212405
|
function validateContourSet(contourSetData) {
|
|
211697
212406
|
if (!contourSetData || contourSetData.data.length === 0) {
|
|
@@ -211935,675 +212644,6 @@ async function createAndCacheGeometry(geometryId, options) {
|
|
|
211935
212644
|
}
|
|
211936
212645
|
|
|
211937
212646
|
|
|
211938
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
|
|
211939
|
-
var ProgressiveRetrieveImages = __webpack_require__(27654);
|
|
211940
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
|
|
211941
|
-
var utilities = __webpack_require__(11723);
|
|
211942
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
|
|
211943
|
-
var triggerEvent = __webpack_require__(85041);
|
|
211944
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 1 modules
|
|
211945
|
-
var helpers = __webpack_require__(25281);
|
|
211946
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
|
|
211947
|
-
|
|
211948
|
-
|
|
211949
|
-
|
|
211950
|
-
|
|
211951
|
-
|
|
211952
|
-
|
|
211953
|
-
|
|
211954
|
-
|
|
211955
|
-
|
|
211956
|
-
|
|
211957
|
-
|
|
211958
|
-
|
|
211959
|
-
|
|
211960
|
-
|
|
211961
|
-
|
|
211962
|
-
|
|
211963
|
-
|
|
211964
|
-
|
|
211965
|
-
|
|
211966
|
-
|
|
211967
|
-
|
|
211968
|
-
|
|
211969
|
-
|
|
211970
|
-
|
|
211971
|
-
|
|
211972
|
-
|
|
211973
|
-
|
|
211974
|
-
|
|
211975
|
-
|
|
211976
|
-
|
|
211977
|
-
|
|
211978
|
-
|
|
211979
|
-
/***/ }),
|
|
211980
|
-
|
|
211981
|
-
/***/ 28719:
|
|
211982
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
211983
|
-
|
|
211984
|
-
"use strict";
|
|
211985
|
-
|
|
211986
|
-
// EXPORTS
|
|
211987
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
211988
|
-
uz: () => (/* binding */ canRenderFloatTextures),
|
|
211989
|
-
P_: () => (/* binding */ getConfiguration),
|
|
211990
|
-
L_: () => (/* binding */ getShouldUseCPURendering),
|
|
211991
|
-
hG: () => (/* binding */ getShouldUseSharedArrayBuffer),
|
|
211992
|
-
Pt: () => (/* binding */ getWebWorkerManager),
|
|
211993
|
-
S1: () => (/* binding */ init),
|
|
211994
|
-
uF: () => (/* binding */ isCornerstoneInitialized),
|
|
211995
|
-
Y0: () => (/* binding */ resetUseCPURendering),
|
|
211996
|
-
zr: () => (/* binding */ resetUseSharedArrayBuffer),
|
|
211997
|
-
Dg: () => (/* binding */ setConfiguration),
|
|
211998
|
-
wy: () => (/* binding */ setPreferSizeOverAccuracy),
|
|
211999
|
-
dQ: () => (/* binding */ setUseCPURendering),
|
|
212000
|
-
fK: () => (/* binding */ setUseSharedArrayBuffer)
|
|
212001
|
-
});
|
|
212002
|
-
|
|
212003
|
-
;// CONCATENATED MODULE: ../../../node_modules/detect-gpu/dist/detect-gpu.esm.js
|
|
212004
|
-
function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{d(n.next(e))}catch(e){a(e)}}function c(e){try{d(n.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}d((n=n.apply(e,t||[])).next())}))}const t=["geforce 320m","geforce 8600","geforce 8600m gt","geforce 8800 gs","geforce 8800 gt","geforce 9400","geforce 9400m g","geforce 9400m","geforce 9600m gt","geforce 9600m","geforce fx go5200","geforce gt 120","geforce gt 130","geforce gt 330m","geforce gtx 285","google swiftshader","intel g41","intel g45","intel gma 4500mhd","intel gma x3100","intel hd 3000","intel q45","legacy","mali-2","mali-3","mali-4","quadro fx 1500","quadro fx 4","quadro fx 5","radeon hd 2400","radeon hd 2600","radeon hd 4670","radeon hd 4850","radeon hd 4870","radeon hd 5670","radeon hd 5750","radeon hd 6290","radeon hd 6300","radeon hd 6310","radeon hd 6320","radeon hd 6490m","radeon hd 6630m","radeon hd 6750m","radeon hd 6770m","radeon hd 6970m","sgx 543","sgx543"];function r(e){return e=e.toLowerCase().replace(/^angle ?\((.+)\)*$/,"$1").replace(/\s(\d{1,2}gb|direct3d.+$)|\(r\)| \([^)]+\)$/g,"").replace(/(?:vulkan|opengl) \d+\.\d+(?:\.\d+)?(?: \((.*)\))?/,"$1")}const n="undefined"==typeof window,o=(()=>{if(n)return;const{userAgent:e,platform:t,maxTouchPoints:r}=window.navigator,o=/(iphone|ipod|ipad)/i.test(e),a="iPad"===t||"MacIntel"===t&&r>0&&!window.MSStream;return{isIpad:a,isMobile:/android/i.test(e)||o||a,isSafari12:/Version\/12.+Safari/.test(e)}})();function a(e,t,r){if(!r)return[t];const n=function(e){const t="\n precision highp float;\n attribute vec3 aPosition;\n varying float vvv;\n void main() {\n vvv = 0.31622776601683794;\n gl_Position = vec4(aPosition, 1.0);\n }\n ",r="\n precision highp float;\n varying float vvv;\n void main() {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * vvv;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n gl_FragColor = enc;\n }\n ",n=e.createShader(35633),o=e.createShader(35632),a=e.createProgram();if(!(o&&n&&a))return;e.shaderSource(n,t),e.shaderSource(o,r),e.compileShader(n),e.compileShader(o),e.attachShader(a,n),e.attachShader(a,o),e.linkProgram(a),e.detachShader(a,n),e.detachShader(a,o),e.deleteShader(n),e.deleteShader(o),e.useProgram(a);const i=e.createBuffer();e.bindBuffer(34962,i),e.bufferData(34962,new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),35044);const c=e.getAttribLocation(a,"aPosition");e.vertexAttribPointer(c,3,5126,!1,0,0),e.enableVertexAttribArray(c),e.clearColor(1,1,1,1),e.clear(16384),e.viewport(0,0,1,1),e.drawArrays(4,0,3);const d=new Uint8Array(4);return e.readPixels(0,0,1,1,6408,5121,d),e.deleteProgram(a),e.deleteBuffer(i),d.join("")}(e),a="801621810",i="8016218135",c="80162181161",d=(null==o?void 0:o.isIpad)?[["a7",c,12],["a8",i,15],["a8x",i,15],["a9",i,15],["a9x",i,15],["a10",i,15],["a10x",i,15],["a12",a,15],["a12x",a,15],["a12z",a,15],["a14",a,15],["m1",a,15]]:[["a7",c,12],["a8",i,12],["a9",i,15],["a10",i,15],["a11",a,15],["a12",a,15],["a13",a,15],["a14",a,15]];let l;"80162181255"===n?l=d.filter((([,,e])=>e>=14)):(l=d.filter((([,e])=>e===n)),l.length||(l=d));return l.map((([e])=>`apple ${e} gpu`))}const i=[],c=[];function d(e,t){if(e===t)return 0;const r=e;e.length>t.length&&(e=t,t=r);let n=e.length,o=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-o);)n--,o--;let a,d=0;for(;d<n&&e.charCodeAt(d)===t.charCodeAt(d);)d++;if(n-=d,o-=d,0===n)return o;let l,s,f=0,u=0,h=0;for(;u<n;)c[u]=e.charCodeAt(d+u),i[u]=++u;for(;h<o;)for(a=t.charCodeAt(d+h),l=h++,f=h,u=0;u<n;u++)s=a===c[u]?l:l+1,l=i[u],f=i[u]=l>f?s>f?f+1:s:s>l?l+1:s;return f}function l(e){return null!=e}class s extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}const f=({mobileTiers:i=[0,15,30,60],desktopTiers:c=[0,15,30,60],override:f={},glContext:u,failIfMajorPerformanceCaveat:h=!1,benchmarksURL:g="https://unpkg.com/detect-gpu@4.0.50/dist/benchmarks"}={})=>e(void 0,void 0,void 0,(function*(){const p={};if(n)return{tier:0,type:"SSR"};const{isIpad:m=!!(null==o?void 0:o.isIpad),isMobile:v=!!(null==o?void 0:o.isMobile),screenSize:w=window.screen,loadBenchmarks:x=(t=>e(void 0,void 0,void 0,(function*(){const e=yield fetch(`${g}/${t}`).then((e=>e.json()));if(parseInt(e.shift().split(".")[0],10)<4)throw new s("Detect GPU benchmark data is out of date. Please update to version 4x");return e})))}=f;let{renderer:A}=f;const P=(e,t,r,n,o)=>({device:o,fps:n,gpu:r,isMobile:v,tier:e,type:t});let b,S="";if(A)A=r(A),b=[A];else{const e=u||function(e,t=!1){const r={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:t,powerPreference:"high-performance",stencil:!1};e&&delete r.powerPreference;const n=window.document.createElement("canvas"),o=n.getContext("webgl",r)||n.getContext("experimental-webgl",r);return null!=o?o:void 0}(null==o?void 0:o.isSafari12,h);if(!e)return P(0,"WEBGL_UNSUPPORTED");const t=e.getExtension("WEBGL_debug_renderer_info");if(t&&(A=e.getParameter(t.UNMASKED_RENDERER_WEBGL)),!A)return P(1,"FALLBACK");S=A,A=r(A),b=function(e,t,r){return"apple gpu"===t?a(e,t,r):[t]}(e,A,v)}const y=(yield Promise.all(b.map((function(t){var r;return e(this,void 0,void 0,(function*(){const e=(e=>{const t=v?["adreno","apple","mali-t","mali","nvidia","powervr"]:["intel","apple","amd","radeon","nvidia","geforce"];for(const r of t)if(e.includes(r))return r})(t);if(!e)return;const n=`${v?"m":"d"}-${e}${m?"-ipad":""}.json`,o=p[n]=null!==(r=p[n])&&void 0!==r?r:x(n);let a;try{a=yield o}catch(e){if(e instanceof s)throw e;return}const i=function(e){var t;const r=(e=e.replace(/\([^)]+\)/,"")).match(/\d+/)||e.match(/(\W|^)([A-Za-z]{1,3})(\W|$)/g);return null!==(t=null==r?void 0:r.join("").replace(/\W|amd/g,""))&&void 0!==t?t:""}(t);let c=a.filter((([,e])=>e===i));c.length||(c=a.filter((([e])=>e.includes(t))));const l=c.length;if(0===l)return;let f,[u,,,h]=l>1?c.map((e=>[e,d(t,e[0])])).sort((([,e],[,t])=>e-t))[0][0]:c[0],g=Number.MAX_VALUE;const{devicePixelRatio:A}=window,P=w.width*A*w.height*A;for(const e of h){const[t,r]=e,n=t*r,o=Math.abs(P-n);o<g&&(g=o,f=e)}if(!f)return;const[,,b,S]=f;return[g,b,u,S]}))})))).filter(l).sort((([e=Number.MAX_VALUE,t],[r=Number.MAX_VALUE,n])=>e===r?t-n:e-r));if(!y.length){const e=t.find((e=>A.includes(e)));return e?P(0,"BLOCKLISTED",e):P(1,"FALLBACK",`${A} (${S})`)}const[,C,E,L]=y[0];if(-1===C)return P(0,"BLOCKLISTED",E,C,L);const M=v?i:c;let $=0;for(let e=0;e<M.length;e++)C>=M[e]&&($=e);return P($,"BENCHMARK",E,C,L)}));
|
|
212005
|
-
|
|
212006
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
212007
|
-
var enums = __webpack_require__(7187);
|
|
212008
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
|
|
212009
|
-
var getRenderingEngine = __webpack_require__(9138);
|
|
212010
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
|
|
212011
|
-
var utilities = __webpack_require__(11723);
|
|
212012
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/webWorkerManager/webWorkerManager.js
|
|
212013
|
-
var webWorkerManager = __webpack_require__(15291);
|
|
212014
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js
|
|
212015
|
-
|
|
212016
|
-
|
|
212017
|
-
|
|
212018
|
-
let csRenderInitialized = false;
|
|
212019
|
-
let useSharedArrayBuffer = true;
|
|
212020
|
-
let sharedArrayBufferMode = enums.SharedArrayBufferModes.TRUE;
|
|
212021
|
-
|
|
212022
|
-
|
|
212023
|
-
const defaultConfig = {
|
|
212024
|
-
gpuTier: undefined,
|
|
212025
|
-
detectGPUConfig: {},
|
|
212026
|
-
isMobile: false,
|
|
212027
|
-
rendering: {
|
|
212028
|
-
useCPURendering: false,
|
|
212029
|
-
preferSizeOverAccuracy: false,
|
|
212030
|
-
useNorm16Texture: false,
|
|
212031
|
-
strictZSpacingForVolumeViewport: true,
|
|
212032
|
-
},
|
|
212033
|
-
enableCacheOptimization: true,
|
|
212034
|
-
};
|
|
212035
|
-
let config = {
|
|
212036
|
-
gpuTier: undefined,
|
|
212037
|
-
detectGPUConfig: {},
|
|
212038
|
-
isMobile: false,
|
|
212039
|
-
rendering: {
|
|
212040
|
-
useCPURendering: false,
|
|
212041
|
-
preferSizeOverAccuracy: false,
|
|
212042
|
-
useNorm16Texture: false,
|
|
212043
|
-
strictZSpacingForVolumeViewport: true,
|
|
212044
|
-
},
|
|
212045
|
-
enableCacheOptimization: true,
|
|
212046
|
-
};
|
|
212047
|
-
let init_webWorkerManager = null;
|
|
212048
|
-
function _getGLContext() {
|
|
212049
|
-
const canvas = document.createElement('canvas');
|
|
212050
|
-
const gl = canvas.getContext('webgl2') ||
|
|
212051
|
-
canvas.getContext('webgl') ||
|
|
212052
|
-
canvas.getContext('experimental-webgl');
|
|
212053
|
-
return gl;
|
|
212054
|
-
}
|
|
212055
|
-
function _hasActiveWebGLContext() {
|
|
212056
|
-
const gl = _getGLContext();
|
|
212057
|
-
return (gl instanceof WebGLRenderingContext || gl instanceof WebGL2RenderingContext);
|
|
212058
|
-
}
|
|
212059
|
-
function hasSharedArrayBuffer() {
|
|
212060
|
-
try {
|
|
212061
|
-
if (new SharedArrayBuffer(0)) {
|
|
212062
|
-
return true;
|
|
212063
|
-
}
|
|
212064
|
-
else {
|
|
212065
|
-
return false;
|
|
212066
|
-
}
|
|
212067
|
-
}
|
|
212068
|
-
catch {
|
|
212069
|
-
return false;
|
|
212070
|
-
}
|
|
212071
|
-
}
|
|
212072
|
-
function _hasNorm16TextureSupport() {
|
|
212073
|
-
const gl = _getGLContext();
|
|
212074
|
-
if (gl) {
|
|
212075
|
-
const ext = gl.getExtension('EXT_texture_norm16');
|
|
212076
|
-
if (ext) {
|
|
212077
|
-
return true;
|
|
212078
|
-
}
|
|
212079
|
-
}
|
|
212080
|
-
return false;
|
|
212081
|
-
}
|
|
212082
|
-
function isIOS() {
|
|
212083
|
-
if (/iPad|iPhone|iPod/.test(navigator.platform)) {
|
|
212084
|
-
return true;
|
|
212085
|
-
}
|
|
212086
|
-
else {
|
|
212087
|
-
return (navigator.maxTouchPoints &&
|
|
212088
|
-
navigator.maxTouchPoints > 2 &&
|
|
212089
|
-
/MacIntel/.test(navigator.platform));
|
|
212090
|
-
}
|
|
212091
|
-
}
|
|
212092
|
-
async function init(configuration = config) {
|
|
212093
|
-
if (csRenderInitialized) {
|
|
212094
|
-
return csRenderInitialized;
|
|
212095
|
-
}
|
|
212096
|
-
config = (0,utilities.deepMerge)(defaultConfig, configuration);
|
|
212097
|
-
if (isIOS()) {
|
|
212098
|
-
config.rendering.useNorm16Texture = _hasNorm16TextureSupport();
|
|
212099
|
-
if (!config.rendering.useNorm16Texture) {
|
|
212100
|
-
if (configuration.rendering?.preferSizeOverAccuracy) {
|
|
212101
|
-
config.rendering.preferSizeOverAccuracy = true;
|
|
212102
|
-
}
|
|
212103
|
-
else {
|
|
212104
|
-
console.log('norm16 texture not supported, you can turn on the preferSizeOverAccuracy flag to use native data type, but be aware of the inaccuracy of the rendering in high bits');
|
|
212105
|
-
}
|
|
212106
|
-
}
|
|
212107
|
-
}
|
|
212108
|
-
const hasWebGLContext = _hasActiveWebGLContext();
|
|
212109
|
-
if (!hasWebGLContext) {
|
|
212110
|
-
console.log('CornerstoneRender: GPU not detected, using CPU rendering');
|
|
212111
|
-
config.rendering.useCPURendering = true;
|
|
212112
|
-
}
|
|
212113
|
-
else {
|
|
212114
|
-
config.gpuTier =
|
|
212115
|
-
config.gpuTier || (await f(config.detectGPUConfig));
|
|
212116
|
-
console.log('CornerstoneRender: Using detect-gpu to get the GPU benchmark:', config.gpuTier);
|
|
212117
|
-
if (config.gpuTier?.tier < 1) {
|
|
212118
|
-
console.log('CornerstoneRender: GPU is not powerful enough, using CPU rendering');
|
|
212119
|
-
config.rendering.useCPURendering = true;
|
|
212120
|
-
}
|
|
212121
|
-
else {
|
|
212122
|
-
console.log('CornerstoneRender: using GPU rendering');
|
|
212123
|
-
}
|
|
212124
|
-
}
|
|
212125
|
-
setUseSharedArrayBuffer(sharedArrayBufferMode);
|
|
212126
|
-
csRenderInitialized = true;
|
|
212127
|
-
if (!init_webWorkerManager) {
|
|
212128
|
-
init_webWorkerManager = new webWorkerManager/* default */.Z();
|
|
212129
|
-
}
|
|
212130
|
-
return csRenderInitialized;
|
|
212131
|
-
}
|
|
212132
|
-
function setUseCPURendering(status) {
|
|
212133
|
-
config.rendering.useCPURendering = status;
|
|
212134
|
-
csRenderInitialized = true;
|
|
212135
|
-
_updateRenderingPipelinesForAllViewports();
|
|
212136
|
-
}
|
|
212137
|
-
function setPreferSizeOverAccuracy(status) {
|
|
212138
|
-
config.rendering.preferSizeOverAccuracy = status;
|
|
212139
|
-
csRenderInitialized = true;
|
|
212140
|
-
_updateRenderingPipelinesForAllViewports();
|
|
212141
|
-
}
|
|
212142
|
-
function canRenderFloatTextures() {
|
|
212143
|
-
if (!isIOS()) {
|
|
212144
|
-
return true;
|
|
212145
|
-
}
|
|
212146
|
-
return false;
|
|
212147
|
-
}
|
|
212148
|
-
function resetUseCPURendering() {
|
|
212149
|
-
config.rendering.useCPURendering = !_hasActiveWebGLContext();
|
|
212150
|
-
_updateRenderingPipelinesForAllViewports();
|
|
212151
|
-
}
|
|
212152
|
-
function getShouldUseCPURendering() {
|
|
212153
|
-
return config.rendering.useCPURendering;
|
|
212154
|
-
}
|
|
212155
|
-
function setUseSharedArrayBuffer(mode) {
|
|
212156
|
-
if (mode == enums.SharedArrayBufferModes.AUTO) {
|
|
212157
|
-
sharedArrayBufferMode = enums.SharedArrayBufferModes.AUTO;
|
|
212158
|
-
const hasSharedBuffer = hasSharedArrayBuffer();
|
|
212159
|
-
if (!hasSharedBuffer) {
|
|
212160
|
-
useSharedArrayBuffer = false;
|
|
212161
|
-
console.warn(`CornerstoneRender: SharedArray Buffer not allowed, performance may be slower.
|
|
212162
|
-
Try ensuring page is cross-origin isolated to enable SharedArrayBuffer.`);
|
|
212163
|
-
}
|
|
212164
|
-
else {
|
|
212165
|
-
useSharedArrayBuffer = true;
|
|
212166
|
-
console.log('CornerstoneRender: using SharedArrayBuffer');
|
|
212167
|
-
}
|
|
212168
|
-
return;
|
|
212169
|
-
}
|
|
212170
|
-
if (mode == enums.SharedArrayBufferModes.TRUE || mode == true) {
|
|
212171
|
-
sharedArrayBufferMode = enums.SharedArrayBufferModes.TRUE;
|
|
212172
|
-
useSharedArrayBuffer = true;
|
|
212173
|
-
return;
|
|
212174
|
-
}
|
|
212175
|
-
if (mode == enums.SharedArrayBufferModes.FALSE || mode == false) {
|
|
212176
|
-
sharedArrayBufferMode = enums.SharedArrayBufferModes.FALSE;
|
|
212177
|
-
useSharedArrayBuffer = false;
|
|
212178
|
-
return;
|
|
212179
|
-
}
|
|
212180
|
-
}
|
|
212181
|
-
function resetUseSharedArrayBuffer() {
|
|
212182
|
-
setUseSharedArrayBuffer(sharedArrayBufferMode);
|
|
212183
|
-
}
|
|
212184
|
-
function getShouldUseSharedArrayBuffer() {
|
|
212185
|
-
return useSharedArrayBuffer;
|
|
212186
|
-
}
|
|
212187
|
-
function isCornerstoneInitialized() {
|
|
212188
|
-
return csRenderInitialized;
|
|
212189
|
-
}
|
|
212190
|
-
function getConfiguration() {
|
|
212191
|
-
return config;
|
|
212192
|
-
}
|
|
212193
|
-
function setConfiguration(c) {
|
|
212194
|
-
config = c;
|
|
212195
|
-
_updateRenderingPipelinesForAllViewports();
|
|
212196
|
-
}
|
|
212197
|
-
function _updateRenderingPipelinesForAllViewports() {
|
|
212198
|
-
(0,getRenderingEngine/* getRenderingEngines */.Uu)().forEach((engine) => engine
|
|
212199
|
-
.getViewports()
|
|
212200
|
-
.forEach((viewport) => viewport.updateRenderingPipeline?.()));
|
|
212201
|
-
}
|
|
212202
|
-
function getWebWorkerManager() {
|
|
212203
|
-
if (!init_webWorkerManager) {
|
|
212204
|
-
init_webWorkerManager = new webWorkerManager/* default */.Z();
|
|
212205
|
-
}
|
|
212206
|
-
return init_webWorkerManager;
|
|
212207
|
-
}
|
|
212208
|
-
|
|
212209
|
-
|
|
212210
|
-
|
|
212211
|
-
/***/ }),
|
|
212212
|
-
|
|
212213
|
-
/***/ 27654:
|
|
212214
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
212215
|
-
|
|
212216
|
-
"use strict";
|
|
212217
|
-
|
|
212218
|
-
// EXPORTS
|
|
212219
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
212220
|
-
RJ: () => (/* binding */ createProgressive),
|
|
212221
|
-
ZP: () => (/* binding */ loaders_ProgressiveRetrieveImages)
|
|
212222
|
-
});
|
|
212223
|
-
|
|
212224
|
-
// UNUSED EXPORTS: ProgressiveRetrieveImages, interleavedRetrieveStages, sequentialRetrieveStages, singleRetrieveStages
|
|
212225
|
-
|
|
212226
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/singleRetrieve.js
|
|
212227
|
-
const singleRetrieveStages = [
|
|
212228
|
-
{
|
|
212229
|
-
id: 'initialImages',
|
|
212230
|
-
retrieveType: 'single',
|
|
212231
|
-
},
|
|
212232
|
-
{
|
|
212233
|
-
id: 'errorRetrieve',
|
|
212234
|
-
},
|
|
212235
|
-
];
|
|
212236
|
-
/* harmony default export */ const singleRetrieve = (singleRetrieveStages);
|
|
212237
|
-
|
|
212238
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/sequentialRetrieve.js
|
|
212239
|
-
const sequentialRetrieveStages = [
|
|
212240
|
-
{
|
|
212241
|
-
id: 'lossySequential',
|
|
212242
|
-
retrieveType: 'singleFast',
|
|
212243
|
-
},
|
|
212244
|
-
{
|
|
212245
|
-
id: 'finalSequential',
|
|
212246
|
-
retrieveType: 'singleFinal',
|
|
212247
|
-
},
|
|
212248
|
-
];
|
|
212249
|
-
/* harmony default export */ const sequentialRetrieve = (sequentialRetrieveStages);
|
|
212250
|
-
|
|
212251
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
|
|
212252
|
-
var enums = __webpack_require__(7187);
|
|
212253
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/configuration/interleavedRetrieve.js
|
|
212254
|
-
|
|
212255
|
-
const nearbyFrames = [
|
|
212256
|
-
{
|
|
212257
|
-
offset: -1,
|
|
212258
|
-
imageQualityStatus: enums.ImageQualityStatus.ADJACENT_REPLICATE,
|
|
212259
|
-
},
|
|
212260
|
-
{
|
|
212261
|
-
offset: +1,
|
|
212262
|
-
imageQualityStatus: enums.ImageQualityStatus.ADJACENT_REPLICATE,
|
|
212263
|
-
},
|
|
212264
|
-
{ offset: +2, imageQualityStatus: enums.ImageQualityStatus.FAR_REPLICATE },
|
|
212265
|
-
];
|
|
212266
|
-
const interleavedRetrieveConfiguration = [
|
|
212267
|
-
{
|
|
212268
|
-
id: 'initialImages',
|
|
212269
|
-
positions: [0.5, 0, -1],
|
|
212270
|
-
retrieveType: 'default',
|
|
212271
|
-
requestType: enums.RequestType.Thumbnail,
|
|
212272
|
-
priority: 5,
|
|
212273
|
-
nearbyFrames,
|
|
212274
|
-
},
|
|
212275
|
-
{
|
|
212276
|
-
id: 'quarterThumb',
|
|
212277
|
-
decimate: 4,
|
|
212278
|
-
offset: 3,
|
|
212279
|
-
requestType: enums.RequestType.Thumbnail,
|
|
212280
|
-
retrieveType: 'multipleFast',
|
|
212281
|
-
priority: 6,
|
|
212282
|
-
nearbyFrames,
|
|
212283
|
-
},
|
|
212284
|
-
{
|
|
212285
|
-
id: 'halfThumb',
|
|
212286
|
-
decimate: 4,
|
|
212287
|
-
offset: 1,
|
|
212288
|
-
priority: 7,
|
|
212289
|
-
requestType: enums.RequestType.Thumbnail,
|
|
212290
|
-
retrieveType: 'multipleFast',
|
|
212291
|
-
nearbyFrames,
|
|
212292
|
-
},
|
|
212293
|
-
{
|
|
212294
|
-
id: 'quarterFull',
|
|
212295
|
-
decimate: 4,
|
|
212296
|
-
offset: 2,
|
|
212297
|
-
priority: 8,
|
|
212298
|
-
requestType: enums.RequestType.Thumbnail,
|
|
212299
|
-
retrieveType: 'multipleFinal',
|
|
212300
|
-
},
|
|
212301
|
-
{
|
|
212302
|
-
id: 'halfFull',
|
|
212303
|
-
decimate: 4,
|
|
212304
|
-
offset: 0,
|
|
212305
|
-
priority: 9,
|
|
212306
|
-
requestType: enums.RequestType.Thumbnail,
|
|
212307
|
-
retrieveType: 'multipleFinal',
|
|
212308
|
-
},
|
|
212309
|
-
{
|
|
212310
|
-
id: 'threeQuarterFull',
|
|
212311
|
-
decimate: 4,
|
|
212312
|
-
offset: 1,
|
|
212313
|
-
priority: 10,
|
|
212314
|
-
requestType: enums.RequestType.Thumbnail,
|
|
212315
|
-
retrieveType: 'multipleFinal',
|
|
212316
|
-
},
|
|
212317
|
-
{
|
|
212318
|
-
id: 'finalFull',
|
|
212319
|
-
decimate: 4,
|
|
212320
|
-
offset: 3,
|
|
212321
|
-
priority: 11,
|
|
212322
|
-
requestType: enums.RequestType.Thumbnail,
|
|
212323
|
-
retrieveType: 'multipleFinal',
|
|
212324
|
-
},
|
|
212325
|
-
{
|
|
212326
|
-
id: 'errorRetrieve',
|
|
212327
|
-
},
|
|
212328
|
-
];
|
|
212329
|
-
/* harmony default export */ const interleavedRetrieve = (interleavedRetrieveConfiguration);
|
|
212330
|
-
|
|
212331
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
|
|
212332
|
-
var imageLoader = __webpack_require__(62990);
|
|
212333
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 67 modules
|
|
212334
|
-
var utilities = __webpack_require__(11723);
|
|
212335
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
|
|
212336
|
-
var imageLoadPoolManager = __webpack_require__(96506);
|
|
212337
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
|
|
212338
|
-
var cache = __webpack_require__(82253);
|
|
212339
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
|
|
212340
|
-
var eventTarget = __webpack_require__(74238);
|
|
212341
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/fillNearbyFrames.js
|
|
212342
|
-
function fillNearbyFrames(listener, imageQualityStatusMap, request, image, options) {
|
|
212343
|
-
if (!request?.nearbyRequests?.length) {
|
|
212344
|
-
return;
|
|
212345
|
-
}
|
|
212346
|
-
const { arrayBuffer, offset: srcOffset, type, length: frameLength, } = options.targetBuffer;
|
|
212347
|
-
if (!arrayBuffer || srcOffset === undefined || !type) {
|
|
212348
|
-
return;
|
|
212349
|
-
}
|
|
212350
|
-
const scalarData = new Float32Array(arrayBuffer);
|
|
212351
|
-
const bytesPerPixel = scalarData.byteLength / scalarData.length;
|
|
212352
|
-
const offset = options.targetBuffer.offset / bytesPerPixel;
|
|
212353
|
-
const src = scalarData.slice(offset, offset + frameLength);
|
|
212354
|
-
for (const nearbyItem of request.nearbyRequests) {
|
|
212355
|
-
try {
|
|
212356
|
-
const { itemId: targetId, imageQualityStatus } = nearbyItem;
|
|
212357
|
-
const targetStatus = imageQualityStatusMap.get(targetId);
|
|
212358
|
-
if (targetStatus !== undefined && targetStatus >= imageQualityStatus) {
|
|
212359
|
-
continue;
|
|
212360
|
-
}
|
|
212361
|
-
const targetOptions = listener.getLoaderImageOptions(targetId);
|
|
212362
|
-
const { offset: targetOffset } = targetOptions.targetBuffer;
|
|
212363
|
-
scalarData.set(src, targetOffset / bytesPerPixel);
|
|
212364
|
-
const nearbyImage = {
|
|
212365
|
-
...image,
|
|
212366
|
-
imageQualityStatus,
|
|
212367
|
-
};
|
|
212368
|
-
listener.successCallback(targetId, nearbyImage);
|
|
212369
|
-
imageQualityStatusMap.set(targetId, imageQualityStatus);
|
|
212370
|
-
}
|
|
212371
|
-
catch (e) {
|
|
212372
|
-
console.log("Couldn't fill nearby item ", nearbyItem.itemId, e);
|
|
212373
|
-
}
|
|
212374
|
-
}
|
|
212375
|
-
}
|
|
212376
|
-
|
|
212377
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js
|
|
212378
|
-
|
|
212379
|
-
|
|
212380
|
-
|
|
212381
|
-
|
|
212382
|
-
|
|
212383
|
-
|
|
212384
|
-
|
|
212385
|
-
|
|
212386
|
-
|
|
212387
|
-
|
|
212388
|
-
|
|
212389
|
-
class ProgressiveRetrieveImages {
|
|
212390
|
-
constructor(imageRetrieveConfiguration) {
|
|
212391
|
-
this.stages = imageRetrieveConfiguration.stages || singleRetrieve;
|
|
212392
|
-
this.retrieveOptions = imageRetrieveConfiguration.retrieveOptions || {};
|
|
212393
|
-
}
|
|
212394
|
-
static { this.createProgressive = createProgressive; }
|
|
212395
|
-
static { this.interleavedRetrieveStages = {
|
|
212396
|
-
stages: interleavedRetrieve,
|
|
212397
|
-
}; }
|
|
212398
|
-
static { this.singleRetrieveStages = {
|
|
212399
|
-
stages: singleRetrieve,
|
|
212400
|
-
}; }
|
|
212401
|
-
static { this.sequentialRetrieveStages = {
|
|
212402
|
-
stages: sequentialRetrieve,
|
|
212403
|
-
}; }
|
|
212404
|
-
loadImages(imageIds, listener) {
|
|
212405
|
-
const instance = new ProgressiveRetrieveImagesInstance(this, imageIds, listener);
|
|
212406
|
-
return instance.loadImages();
|
|
212407
|
-
}
|
|
212408
|
-
}
|
|
212409
|
-
class ProgressiveRetrieveImagesInstance {
|
|
212410
|
-
constructor(configuration, imageIds, listener) {
|
|
212411
|
-
this.outstandingRequests = 0;
|
|
212412
|
-
this.stageStatusMap = new Map();
|
|
212413
|
-
this.imageQualityStatusMap = new Map();
|
|
212414
|
-
this.displayedIterator = new utilities.ProgressiveIterator('displayed');
|
|
212415
|
-
this.stages = configuration.stages;
|
|
212416
|
-
this.retrieveOptions = configuration.retrieveOptions;
|
|
212417
|
-
this.imageIds = imageIds;
|
|
212418
|
-
this.listener = listener;
|
|
212419
|
-
}
|
|
212420
|
-
async loadImages() {
|
|
212421
|
-
const interleaved = this.createStageRequests();
|
|
212422
|
-
this.outstandingRequests = interleaved.length;
|
|
212423
|
-
for (const request of interleaved) {
|
|
212424
|
-
this.addRequest(request);
|
|
212425
|
-
}
|
|
212426
|
-
if (this.outstandingRequests === 0) {
|
|
212427
|
-
return Promise.resolve(null);
|
|
212428
|
-
}
|
|
212429
|
-
return this.displayedIterator.getDonePromise();
|
|
212430
|
-
}
|
|
212431
|
-
sendRequest(request, options) {
|
|
212432
|
-
const { imageId, next } = request;
|
|
212433
|
-
const errorCallback = (reason, done) => {
|
|
212434
|
-
this.listener.errorCallback(imageId, complete || !next, reason);
|
|
212435
|
-
if (done) {
|
|
212436
|
-
this.updateStageStatus(request.stage, reason);
|
|
212437
|
-
}
|
|
212438
|
-
};
|
|
212439
|
-
const loadedPromise = (options.loader || imageLoader.loadAndCacheImage)(imageId, options);
|
|
212440
|
-
const uncompressedIterator = utilities.ProgressiveIterator.as(loadedPromise);
|
|
212441
|
-
let complete = false;
|
|
212442
|
-
uncompressedIterator
|
|
212443
|
-
.forEach(async (image, done) => {
|
|
212444
|
-
const oldStatus = this.imageQualityStatusMap.get(imageId);
|
|
212445
|
-
if (!image) {
|
|
212446
|
-
console.warn('No image retrieved', imageId);
|
|
212447
|
-
return;
|
|
212448
|
-
}
|
|
212449
|
-
const { imageQualityStatus } = image;
|
|
212450
|
-
complete ||= imageQualityStatus === enums.ImageQualityStatus.FULL_RESOLUTION;
|
|
212451
|
-
if (oldStatus !== undefined && oldStatus > imageQualityStatus) {
|
|
212452
|
-
this.updateStageStatus(request.stage, null, true);
|
|
212453
|
-
return;
|
|
212454
|
-
}
|
|
212455
|
-
this.listener.successCallback(imageId, image);
|
|
212456
|
-
this.imageQualityStatusMap.set(imageId, imageQualityStatus);
|
|
212457
|
-
this.displayedIterator.add(image);
|
|
212458
|
-
if (done) {
|
|
212459
|
-
this.updateStageStatus(request.stage);
|
|
212460
|
-
}
|
|
212461
|
-
fillNearbyFrames(this.listener, this.imageQualityStatusMap, request, image, options);
|
|
212462
|
-
}, errorCallback)
|
|
212463
|
-
.finally(() => {
|
|
212464
|
-
if (!complete && next) {
|
|
212465
|
-
if (cache/* default */.ZP.getImageLoadObject(imageId)) {
|
|
212466
|
-
cache/* default */.ZP.removeImageLoadObject(imageId);
|
|
212467
|
-
}
|
|
212468
|
-
this.addRequest(next, options.streamingData);
|
|
212469
|
-
}
|
|
212470
|
-
else {
|
|
212471
|
-
if (!complete) {
|
|
212472
|
-
this.listener.errorCallback(imageId, true, "Couldn't decode");
|
|
212473
|
-
}
|
|
212474
|
-
this.outstandingRequests--;
|
|
212475
|
-
for (let skip = next; skip; skip = skip.next) {
|
|
212476
|
-
this.updateStageStatus(skip.stage, null, true);
|
|
212477
|
-
}
|
|
212478
|
-
}
|
|
212479
|
-
if (this.outstandingRequests <= 0) {
|
|
212480
|
-
this.displayedIterator.resolve();
|
|
212481
|
-
}
|
|
212482
|
-
});
|
|
212483
|
-
const doneLoad = uncompressedIterator.getDonePromise();
|
|
212484
|
-
return doneLoad.catch((e) => null);
|
|
212485
|
-
}
|
|
212486
|
-
addRequest(request, streamingData = {}) {
|
|
212487
|
-
const { imageId, stage } = request;
|
|
212488
|
-
const baseOptions = this.listener.getLoaderImageOptions(imageId);
|
|
212489
|
-
if (!baseOptions) {
|
|
212490
|
-
return;
|
|
212491
|
-
}
|
|
212492
|
-
const { retrieveType = 'default' } = stage;
|
|
212493
|
-
const { retrieveOptions: keyedRetrieveOptions } = this;
|
|
212494
|
-
const retrieveOptions = keyedRetrieveOptions[retrieveType] || keyedRetrieveOptions.default;
|
|
212495
|
-
const options = {
|
|
212496
|
-
...baseOptions,
|
|
212497
|
-
retrieveType,
|
|
212498
|
-
retrieveOptions,
|
|
212499
|
-
streamingData,
|
|
212500
|
-
};
|
|
212501
|
-
const priority = stage.priority ?? -5;
|
|
212502
|
-
const requestType = stage.requestType || enums.RequestType.Interaction;
|
|
212503
|
-
const additionalDetails = { imageId };
|
|
212504
|
-
imageLoadPoolManager/* default */.Z.addRequest(this.sendRequest.bind(this, request, options), requestType, additionalDetails, priority);
|
|
212505
|
-
}
|
|
212506
|
-
updateStageStatus(stage, failure, skipped = false) {
|
|
212507
|
-
const { id } = stage;
|
|
212508
|
-
const stageStatus = this.stageStatusMap.get(id);
|
|
212509
|
-
if (!stageStatus) {
|
|
212510
|
-
return;
|
|
212511
|
-
}
|
|
212512
|
-
stageStatus.imageLoadPendingCount--;
|
|
212513
|
-
if (failure) {
|
|
212514
|
-
stageStatus.imageLoadFailedCount++;
|
|
212515
|
-
}
|
|
212516
|
-
else if (!skipped) {
|
|
212517
|
-
stageStatus.totalImageCount++;
|
|
212518
|
-
}
|
|
212519
|
-
if (!skipped && !stageStatus.stageStartTime) {
|
|
212520
|
-
stageStatus.stageStartTime = Date.now();
|
|
212521
|
-
}
|
|
212522
|
-
if (!stageStatus.imageLoadPendingCount) {
|
|
212523
|
-
const { imageLoadFailedCount: numberOfFailures, totalImageCount: numberOfImages, stageStartTime = Date.now(), startTime, } = stageStatus;
|
|
212524
|
-
const detail = {
|
|
212525
|
-
stageId: id,
|
|
212526
|
-
numberOfFailures,
|
|
212527
|
-
numberOfImages,
|
|
212528
|
-
stageDurationInMS: stageStartTime ? Date.now() - stageStartTime : null,
|
|
212529
|
-
startDurationInMS: Date.now() - startTime,
|
|
212530
|
-
};
|
|
212531
|
-
(0,utilities.triggerEvent)(eventTarget/* default */.Z, enums.Events.IMAGE_RETRIEVAL_STAGE, detail);
|
|
212532
|
-
this.stageStatusMap.delete(id);
|
|
212533
|
-
}
|
|
212534
|
-
}
|
|
212535
|
-
createStageRequests() {
|
|
212536
|
-
const interleaved = new Array();
|
|
212537
|
-
const imageRequests = new Map();
|
|
212538
|
-
const addStageInstance = (stage, position) => {
|
|
212539
|
-
const index = position < 0
|
|
212540
|
-
? this.imageIds.length + position
|
|
212541
|
-
: position < 1
|
|
212542
|
-
? Math.floor((this.imageIds.length - 1) * position)
|
|
212543
|
-
: position;
|
|
212544
|
-
const imageId = this.imageIds[index];
|
|
212545
|
-
if (!imageId) {
|
|
212546
|
-
throw new Error(`No value found to add to requests at ${position}`);
|
|
212547
|
-
}
|
|
212548
|
-
const request = {
|
|
212549
|
-
imageId,
|
|
212550
|
-
stage,
|
|
212551
|
-
nearbyRequests: this.findNearbyRequests(index, stage),
|
|
212552
|
-
};
|
|
212553
|
-
this.addStageStatus(stage);
|
|
212554
|
-
const existingRequest = imageRequests.get(imageId);
|
|
212555
|
-
if (existingRequest) {
|
|
212556
|
-
existingRequest.next = request;
|
|
212557
|
-
}
|
|
212558
|
-
else {
|
|
212559
|
-
interleaved.push(request);
|
|
212560
|
-
}
|
|
212561
|
-
imageRequests.set(imageId, request);
|
|
212562
|
-
};
|
|
212563
|
-
for (const stage of this.stages) {
|
|
212564
|
-
const indices = stage.positions ||
|
|
212565
|
-
(0,utilities.decimate)(this.imageIds, stage.decimate || 1, stage.offset ?? 0);
|
|
212566
|
-
indices.forEach((index) => addStageInstance(stage, index));
|
|
212567
|
-
}
|
|
212568
|
-
return interleaved;
|
|
212569
|
-
}
|
|
212570
|
-
findNearbyRequests(index, stage) {
|
|
212571
|
-
const nearby = new Array();
|
|
212572
|
-
if (!stage.nearbyFrames) {
|
|
212573
|
-
return nearby;
|
|
212574
|
-
}
|
|
212575
|
-
for (const nearbyItem of stage.nearbyFrames) {
|
|
212576
|
-
const nearbyIndex = index + nearbyItem.offset;
|
|
212577
|
-
if (nearbyIndex < 0 || nearbyIndex >= this.imageIds.length) {
|
|
212578
|
-
continue;
|
|
212579
|
-
}
|
|
212580
|
-
nearby.push({
|
|
212581
|
-
itemId: this.imageIds[nearbyIndex],
|
|
212582
|
-
imageQualityStatus: nearbyItem.imageQualityStatus,
|
|
212583
|
-
});
|
|
212584
|
-
}
|
|
212585
|
-
return nearby;
|
|
212586
|
-
}
|
|
212587
|
-
addStageStatus(stage) {
|
|
212588
|
-
const { id } = stage;
|
|
212589
|
-
const stageStatus = this.stageStatusMap.get(id) || {
|
|
212590
|
-
stageId: id,
|
|
212591
|
-
startTime: Date.now(),
|
|
212592
|
-
stageStartTime: null,
|
|
212593
|
-
totalImageCount: 0,
|
|
212594
|
-
imageLoadFailedCount: 0,
|
|
212595
|
-
imageLoadPendingCount: 0,
|
|
212596
|
-
};
|
|
212597
|
-
stageStatus.imageLoadPendingCount++;
|
|
212598
|
-
this.stageStatusMap.set(id, stageStatus);
|
|
212599
|
-
return stageStatus;
|
|
212600
|
-
}
|
|
212601
|
-
}
|
|
212602
|
-
function createProgressive(configuration) {
|
|
212603
|
-
return new ProgressiveRetrieveImages(configuration);
|
|
212604
|
-
}
|
|
212605
|
-
/* harmony default export */ const loaders_ProgressiveRetrieveImages = (ProgressiveRetrieveImages);
|
|
212606
|
-
|
|
212607
212647
|
|
|
212608
212648
|
/***/ }),
|
|
212609
212649
|
|
|
@@ -212632,9 +212672,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
212632
212672
|
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82253);
|
|
212633
212673
|
/* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19546);
|
|
212634
212674
|
/* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(74238);
|
|
212635
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
212675
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56309);
|
|
212636
212676
|
/* harmony import */ var _requestPool_imageLoadPoolManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96506);
|
|
212637
|
-
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
212677
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12651);
|
|
212638
212678
|
|
|
212639
212679
|
|
|
212640
212680
|
|
|
@@ -212914,7 +212954,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
212914
212954
|
/* harmony import */ var _utilities_triggerEvent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(85041);
|
|
212915
212955
|
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11677);
|
|
212916
212956
|
/* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__);
|
|
212917
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
|
|
212957
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(56309);
|
|
212918
212958
|
/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(28719);
|
|
212919
212959
|
/* harmony import */ var _utilities_cacheUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(85654);
|
|
212920
212960
|
|
|
@@ -213306,6 +213346,27 @@ imageLoadPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPO
|
|
|
213306
213346
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (imageLoadPoolManager);
|
|
213307
213347
|
|
|
213308
213348
|
|
|
213349
|
+
/***/ }),
|
|
213350
|
+
|
|
213351
|
+
/***/ 22717:
|
|
213352
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
213353
|
+
|
|
213354
|
+
"use strict";
|
|
213355
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
213356
|
+
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
213357
|
+
/* harmony export */ });
|
|
213358
|
+
/* harmony import */ var _requestPoolManager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42961);
|
|
213359
|
+
/* harmony import */ var _enums_RequestType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49334);
|
|
213360
|
+
|
|
213361
|
+
|
|
213362
|
+
const imageRetrievalPoolManager = new _requestPoolManager__WEBPACK_IMPORTED_MODULE_0__/* .RequestPoolManager */ .P('imageRetrievalPool');
|
|
213363
|
+
imageRetrievalPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.Interaction, 200);
|
|
213364
|
+
imageRetrievalPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.Thumbnail, 200);
|
|
213365
|
+
imageRetrievalPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.Prefetch, 200);
|
|
213366
|
+
imageRetrievalPoolManager.grabDelay = 0;
|
|
213367
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (imageRetrievalPoolManager);
|
|
213368
|
+
|
|
213369
|
+
|
|
213309
213370
|
/***/ }),
|
|
213310
213371
|
|
|
213311
213372
|
/***/ 42961:
|
|
@@ -213316,7 +213377,7 @@ imageLoadPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPO
|
|
|
213316
213377
|
/* harmony export */ P: () => (/* binding */ RequestPoolManager)
|
|
213317
213378
|
/* harmony export */ });
|
|
213318
213379
|
/* harmony import */ var _enums_RequestType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49334);
|
|
213319
|
-
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
213380
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56309);
|
|
213320
213381
|
|
|
213321
213382
|
|
|
213322
213383
|
class RequestPoolManager {
|
|
@@ -213947,7 +214008,7 @@ function getImageSliceDataForVolumeViewport(viewport) {
|
|
|
213947
214008
|
/* harmony export */ });
|
|
213948
214009
|
/* harmony import */ var _kitware_vtk_js_Common_Core_MatrixBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45802);
|
|
213949
214010
|
/* harmony import */ var _getVolumeActorCorners__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(210);
|
|
213950
|
-
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
214011
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19247);
|
|
213951
214012
|
|
|
213952
214013
|
|
|
213953
214014
|
|
|
@@ -214044,7 +214105,7 @@ function getSpacingInNormalDirection(imageVolume, viewPlaneNormal) {
|
|
|
214044
214105
|
/* harmony export */ Z: () => (/* binding */ getTargetVolumeAndSpacingInNormalDir)
|
|
214045
214106
|
/* harmony export */ });
|
|
214046
214107
|
/* harmony import */ var _cache_cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5287);
|
|
214047
|
-
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
214108
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19247);
|
|
214048
214109
|
/* harmony import */ var _getSpacingInNormalDirection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49018);
|
|
214049
214110
|
/* harmony import */ var _loaders_volumeLoader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18588);
|
|
214050
214111
|
/* harmony import */ var _getVolumeId__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(77059);
|
|
@@ -214157,8 +214218,8 @@ const getVolumeId = (targetId) => {
|
|
|
214157
214218
|
const str = targetId.includes(prefix)
|
|
214158
214219
|
? targetId.substring(prefix.length)
|
|
214159
214220
|
: targetId;
|
|
214160
|
-
const index = str.indexOf('
|
|
214161
|
-
return index === -1 ? str : str.substring(0, index);
|
|
214221
|
+
const index = str.indexOf('sliceIndex=');
|
|
214222
|
+
return index === -1 ? str : str.substring(0, index - 1);
|
|
214162
214223
|
};
|
|
214163
214224
|
|
|
214164
214225
|
|
|
@@ -214181,7 +214242,7 @@ function hasNaNValues(input) {
|
|
|
214181
214242
|
|
|
214182
214243
|
/***/ }),
|
|
214183
214244
|
|
|
214184
|
-
/***/
|
|
214245
|
+
/***/ 56309:
|
|
214185
214246
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
214186
214247
|
|
|
214187
214248
|
"use strict";
|
|
@@ -214272,7 +214333,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
214272
214333
|
transformWorldToIndex: () => (/* reexport */ transformWorldToIndex/* default */.Z),
|
|
214273
214334
|
triggerEvent: () => (/* reexport */ triggerEvent/* default */.Z),
|
|
214274
214335
|
updateVTKImageDataWithCornerstoneImage: () => (/* reexport */ updateVTKImageDataWithCornerstoneImage),
|
|
214275
|
-
uuidv4: () => (/* reexport */ uuidv4),
|
|
214336
|
+
uuidv4: () => (/* reexport */ uuidv4/* default */.Z),
|
|
214276
214337
|
windowLevel: () => (/* reexport */ windowLevel_namespaceObject),
|
|
214277
214338
|
worldToImageCoords: () => (/* reexport */ utilities_worldToImageCoords)
|
|
214278
214339
|
});
|
|
@@ -214399,11 +214460,8 @@ function scaleRGBTransferFunction(rgbTransferFunction, scalingFactor) {
|
|
|
214399
214460
|
|
|
214400
214461
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
|
|
214401
214462
|
var triggerEvent = __webpack_require__(85041);
|
|
214402
|
-
|
|
214403
|
-
|
|
214404
|
-
return crypto.randomUUID();
|
|
214405
|
-
}
|
|
214406
|
-
|
|
214463
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/uuidv4.js
|
|
214464
|
+
var uuidv4 = __webpack_require__(47741);
|
|
214407
214465
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getMinMax.js
|
|
214408
214466
|
function getMinMax(storedPixelData) {
|
|
214409
214467
|
let min = storedPixelData[0];
|
|
@@ -214586,8 +214644,8 @@ var esm = __webpack_require__(72076);
|
|
|
214586
214644
|
var metaData = __webpack_require__(30023);
|
|
214587
214645
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getSpacingInNormalDirection.js
|
|
214588
214646
|
var getSpacingInNormalDirection = __webpack_require__(49018);
|
|
214589
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js +
|
|
214590
|
-
var constants = __webpack_require__(
|
|
214647
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/constants/index.js + 2 modules
|
|
214648
|
+
var constants = __webpack_require__(19247);
|
|
214591
214649
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getClosestImageId.js
|
|
214592
214650
|
|
|
214593
214651
|
|
|
@@ -214929,8 +214987,8 @@ function loadImageToCanvas(options) {
|
|
|
214929
214987
|
});
|
|
214930
214988
|
}
|
|
214931
214989
|
|
|
214932
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js +
|
|
214933
|
-
var dist_esm = __webpack_require__(
|
|
214990
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
214991
|
+
var dist_esm = __webpack_require__(12651);
|
|
214934
214992
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/worldToImageCoords.js
|
|
214935
214993
|
|
|
214936
214994
|
|
|
@@ -217245,6 +217303,20 @@ function triggerEvent(el = _eventTarget__WEBPACK_IMPORTED_MODULE_0__/* ["default
|
|
|
217245
217303
|
}
|
|
217246
217304
|
|
|
217247
217305
|
|
|
217306
|
+
/***/ }),
|
|
217307
|
+
|
|
217308
|
+
/***/ 47741:
|
|
217309
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
217310
|
+
|
|
217311
|
+
"use strict";
|
|
217312
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
217313
|
+
/* harmony export */ Z: () => (/* binding */ uuidv4)
|
|
217314
|
+
/* harmony export */ });
|
|
217315
|
+
function uuidv4() {
|
|
217316
|
+
return crypto.randomUUID?.() || ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));
|
|
217317
|
+
}
|
|
217318
|
+
|
|
217319
|
+
|
|
217248
217320
|
/***/ }),
|
|
217249
217321
|
|
|
217250
217322
|
/***/ 15291:
|
|
@@ -217410,7 +217482,7 @@ class CentralizedWorkerManager {
|
|
|
217410
217482
|
/***/ 61539:
|
|
217411
217483
|
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
217412
217484
|
|
|
217413
|
-
!function(e,t){ true?module.exports=t(__webpack_require__(62709),__webpack_require__(56660)):0}(this,((e,t)=>(()=>{"use strict";var r={578:(e,t,r)=>{const n=r(823),a=r(187),o=r(592),i=r(604),s=r(249),l=r(968),c=Object.prototype.toString,{Z_NO_FLUSH:u,Z_FINISH:f,Z_OK:d,Z_STREAM_END:m,Z_NEED_DICT:g,Z_STREAM_ERROR:h,Z_DATA_ERROR:p,Z_MEM_ERROR:x}=r(684);function b(e){this.options=a.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let r=n.inflateInit2(this.strm,t.windowBits);if(r!==d)throw new Error(i[r]);if(this.header=new l,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=o.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary),r!==d)))throw new Error(i[r])}function w(e,t){const r=new b(t);if(r.push(e),r.err)throw r.msg||i[r.err];return r.result}b.prototype.push=function(e,t){const r=this.strm,a=this.options.chunkSize,i=this.options.dictionary;let s,l,b;if(this.ended)return!1;for(l=t===~~t?t:!0===t?f:u,"[object ArrayBuffer]"===c.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(a),r.next_out=0,r.avail_out=a),s=n.inflate(r,l),s===g&&i&&(s=n.inflateSetDictionary(r,i),s===d?s=n.inflate(r,l):s===p&&(s=g));r.avail_in>0&&s===m&&r.state.wrap>0&&0!==e[r.next_in];)n.inflateReset(r),s=n.inflate(r,l);switch(s){case h:case p:case g:case x:return this.onEnd(s),this.ended=!0,!1}if(b=r.avail_out,r.next_out&&(0===r.avail_out||s===m))if("string"===this.options.to){let e=o.utf8border(r.output,r.next_out),t=r.next_out-e,n=o.buf2string(r.output,e);r.next_out=t,r.avail_out=a-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(n)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(s!==d||0!==b){if(s===m)return s=n.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},b.prototype.onData=function(e){this.chunks.push(e)},b.prototype.onEnd=function(e){e===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Hq=function(e,t){return(t=t||{}).raw=!0,w(e,t)},r(684)},187:e=>{const t=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);e.exports.assign=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const n=r.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const r in n)t(n,r)&&(e[r]=n[r])}}return e},e.exports.flattenChunks=e=>{let t=0;for(let r=0,n=e.length;r<n;r++)t+=e[r].length;const r=new Uint8Array(t);for(let t=0,n=0,a=e.length;t<a;t++){let a=e[t];r.set(a,n),n+=a.length}return r}},592:e=>{let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){t=!1}const r=new Uint8Array(256);for(let e=0;e<256;e++)r[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;r[254]=r[254]=1,e.exports.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,n,a,o,i=e.length,s=0;for(a=0;a<i;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),s+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(s),o=0,a=0;o<s;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),r<128?t[o++]=r:r<2048?(t[o++]=192|r>>>6,t[o++]=128|63&r):r<65536?(t[o++]=224|r>>>12,t[o++]=128|r>>>6&63,t[o++]=128|63&r):(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63,t[o++]=128|r>>>6&63,t[o++]=128|63&r);return t};e.exports.buf2string=(e,n)=>{const a=n||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,n));let o,i;const s=new Array(2*a);for(i=0,o=0;o<a;){let t=e[o++];if(t<128){s[i++]=t;continue}let n=r[t];if(n>4)s[i++]=65533,o+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&o<a;)t=t<<6|63&e[o++],n--;n>1?s[i++]=65533:t<65536?s[i++]=t:(t-=65536,s[i++]=55296|t>>10&1023,s[i++]=56320|1023&t)}}return((e,r)=>{if(r<65534&&e.subarray&&t)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let n="";for(let t=0;t<r;t++)n+=String.fromCharCode(e[t]);return n})(s,i)},e.exports.utf8border=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+r[e[n]]>t?n:t}},693:e=>{e.exports=(e,t,r,n)=>{let a=65535&e,o=e>>>16&65535,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}},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~e}},968:e=>{e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},365:e=>{const t=16209;e.exports=function(e,r){let n,a,o,i,s,l,c,u,f,d,m,g,h,p,x,b,w,y,k,T,S,D,v,P;const I=e.state;n=e.next_in,v=e.input,a=n+(e.avail_in-5),o=e.next_out,P=e.output,i=o-(r-e.avail_out),s=o+(e.avail_out-257),l=I.dmax,c=I.wsize,u=I.whave,f=I.wnext,d=I.window,m=I.hold,g=I.bits,h=I.lencode,p=I.distcode,x=(1<<I.lenbits)-1,b=(1<<I.distbits)-1;e:do{g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=h[m&x];t:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,0===y)P[o++]=65535&w;else{if(!(16&y)){if(64&y){if(32&y){I.mode=16191;break e}e.msg="invalid literal/length code",I.mode=t;break e}w=h[(65535&w)+(m&(1<<y)-1)];continue t}for(k=65535&w,y&=15,y&&(g<y&&(m+=v[n++]<<g,g+=8),k+=m&(1<<y)-1,m>>>=y,g-=y),g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=p[m&b];;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,16&y){if(T=65535&w,y&=15,g<y&&(m+=v[n++]<<g,g+=8,g<y&&(m+=v[n++]<<g,g+=8)),T+=m&(1<<y)-1,T>l){e.msg="invalid distance too far back",I.mode=t;break e}if(m>>>=y,g-=y,y=o-i,T>y){if(y=T-y,y>u&&I.sane){e.msg="invalid distance too far back",I.mode=t;break e}if(S=0,D=d,0===f){if(S+=c-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}else if(f<y){if(S+=c+f-y,y-=f,y<k){k-=y;do{P[o++]=d[S++]}while(--y);if(S=0,f<k){y=f,k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}}else if(S+=f-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}for(;k>2;)P[o++]=D[S++],P[o++]=D[S++],P[o++]=D[S++],k-=3;k&&(P[o++]=D[S++],k>1&&(P[o++]=D[S++]))}else{S=o-T;do{P[o++]=P[S++],P[o++]=P[S++],P[o++]=P[S++],k-=3}while(k>2);k&&(P[o++]=P[S++],k>1&&(P[o++]=P[S++]))}break}if(64&y){e.msg="invalid distance code",I.mode=t;break e}w=p[(65535&w)+(m&(1<<y)-1)]}}break}}while(n<a&&o<s);k=g>>3,n-=k,g-=k<<3,m&=(1<<g)-1,e.next_in=n,e.next_out=o,e.avail_in=n<a?a-n+5:5-(n-a),e.avail_out=o<s?s-o+257:257-(o-s),I.hold=m,I.bits=g}},823:(e,t,r)=>{const n=r(693),a=r(863),o=r(365),i=r(446),{Z_FINISH:s,Z_BLOCK:l,Z_TREES:c,Z_OK:u,Z_STREAM_END:f,Z_NEED_DICT:d,Z_STREAM_ERROR:m,Z_DATA_ERROR:g,Z_MEM_ERROR:h,Z_BUF_ERROR:p,Z_DEFLATED:x}=r(684),b=16180,w=16190,y=16191,k=16192,T=16194,S=16199,D=16200,v=16206,P=16209,I=16210,E=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function A(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const _=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<b||t.mode>16211?1:0},L=e=>{if(_(e))return m;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=b,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,u},C=e=>{if(_(e))return m;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,L(e)},O=(e,t)=>{let r;if(_(e))return m;const n=e.state;return t<0?(r=0,t=-t):(r=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?m:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,C(e))},M=(e,t)=>{if(!e)return m;const r=new A;e.state=r,r.strm=e,r.window=null,r.mode=b;const n=O(e,t);return n!==u&&(e.state=null),n};let R,F,B=!0;const U=e=>{if(B){R=new Int32Array(512),F=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(i(1,e.lens,0,288,R,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;i(2,e.lens,0,32,F,0,e.work,{bits:5}),B=!1}e.lencode=R,e.lenbits=9,e.distcode=F,e.distbits=5},N=(e,t,r,n)=>{let a;const o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),n>=o.wsize?(o.window.set(t.subarray(r-o.wsize,r),0),o.wnext=0,o.whave=o.wsize):(a=o.wsize-o.wnext,a>n&&(a=n),o.window.set(t.subarray(r-n,r-n+a),o.wnext),(n-=a)?(o.window.set(t.subarray(r-n,r),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=a))),0};e.exports.inflateReset=C,e.exports.inflateReset2=O,e.exports.inflateResetKeep=L,e.exports.inflateInit=e=>M(e,15),e.exports.inflateInit2=M,e.exports.inflate=(e,t)=>{let r,A,L,C,O,M,R,F,B,j,$,G,V,W,q,Z,Y,z,H,Q,X,K,J=0;const ee=new Uint8Array(4);let te,re;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(_(e)||!e.output||!e.input&&0!==e.avail_in)return m;r=e.state,r.mode===y&&(r.mode=k),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,j=M,$=R,K=u;e:for(;;)switch(r.mode){case b:if(0===r.wrap){r.mode=k;break}for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(2&r.wrap&&35615===F){0===r.wbits&&(r.wbits=15),r.check=0,ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0),F=0,B=0,r.mode=16181;break}if(r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&F)<<8)+(F>>8))%31){e.msg="incorrect header check",r.mode=P;break}if((15&F)!==x){e.msg="unknown compression method",r.mode=P;break}if(F>>>=4,B-=4,X=8+(15&F),0===r.wbits&&(r.wbits=X),X>15||X>r.wbits){e.msg="invalid window size",r.mode=P;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=512&F?16189:y,F=0,B=0;break;case 16181:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.flags=F,(255&r.flags)!==x){e.msg="unknown compression method",r.mode=P;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=P;break}r.head&&(r.head.text=F>>8&1),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16182;case 16182:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.time=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,ee[2]=F>>>16&255,ee[3]=F>>>24&255,r.check=a(r.check,ee,4,0)),F=0,B=0,r.mode=16183;case 16183:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.xflags=255&F,r.head.os=F>>8),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16184;case 16184:if(1024&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length=F,r.head&&(r.head.extra_len=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0}else r.head&&(r.head.extra=null);r.mode=16185;case 16185:if(1024&r.flags&&(G=r.length,G>M&&(G=M),G&&(r.head&&(X=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(A.subarray(C,C+G),X)),512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,r.length-=G),r.length))break e;r.length=0,r.mode=16186;case 16186:if(2048&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.name+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=16187;case 16187:if(4096&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.comment+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.comment=null);r.mode=16188;case 16188:if(512&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(65535&r.check)){e.msg="header crc mismatch",r.mode=P;break}F=0,B=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=y;break;case 16189:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}e.adler=r.check=E(F),F=0,B=0,r.mode=w;case w:if(0===r.havedict)return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,d;e.adler=r.check=1,r.mode=y;case y:if(t===l||t===c)break e;case k:if(r.last){F>>>=7&B,B-=7&B,r.mode=v;break}for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}switch(r.last=1&F,F>>>=1,B-=1,3&F){case 0:r.mode=16193;break;case 1:if(U(r),r.mode=S,t===c){F>>>=2,B-=2;break e}break;case 2:r.mode=16196;break;case 3:e.msg="invalid block type",r.mode=P}F>>>=2,B-=2;break;case 16193:for(F>>>=7&B,B-=7&B;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if((65535&F)!=(F>>>16^65535)){e.msg="invalid stored block lengths",r.mode=P;break}if(r.length=65535&F,F=0,B=0,r.mode=T,t===c)break e;case T:r.mode=16195;case 16195:if(G=r.length,G){if(G>M&&(G=M),G>R&&(G=R),0===G)break e;L.set(A.subarray(C,C+G),O),M-=G,C+=G,R-=G,O+=G,r.length-=G;break}r.mode=y;break;case 16196:for(;B<14;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.nlen=257+(31&F),F>>>=5,B-=5,r.ndist=1+(31&F),F>>>=5,B-=5,r.ncode=4+(15&F),F>>>=4,B-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=P;break}r.have=0,r.mode=16197;case 16197:for(;r.have<r.ncode;){for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.lens[ne[r.have++]]=7&F,F>>>=3,B-=3}for(;r.have<19;)r.lens[ne[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,te={bits:r.lenbits},K=i(0,r.lens,0,19,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid code lengths set",r.mode=P;break}r.have=0,r.mode=16198;case 16198:for(;r.have<r.nlen+r.ndist;){for(;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Y<16)F>>>=q,B-=q,r.lens[r.have++]=Y;else{if(16===Y){for(re=q+2;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(F>>>=q,B-=q,0===r.have){e.msg="invalid bit length repeat",r.mode=P;break}X=r.lens[r.have-1],G=3+(3&F),F>>>=2,B-=2}else if(17===Y){for(re=q+3;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=3+(7&F),F>>>=3,B-=3}else{for(re=q+7;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=11+(127&F),F>>>=7,B-=7}if(r.have+G>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=P;break}for(;G--;)r.lens[r.have++]=X}}if(r.mode===P)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=P;break}if(r.lenbits=9,te={bits:r.lenbits},K=i(1,r.lens,0,r.nlen,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid literal/lengths set",r.mode=P;break}if(r.distbits=6,r.distcode=r.distdyn,te={bits:r.distbits},K=i(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,te),r.distbits=te.bits,K){e.msg="invalid distances set",r.mode=P;break}if(r.mode=S,t===c)break e;case S:r.mode=D;case D:if(M>=6&&R>=258){e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,o(e,$),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,r.mode===y&&(r.back=-1);break}for(r.back=0;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Z&&!(240&Z)){for(z=q,H=Z,Q=Y;J=r.lencode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,r.length=Y,0===Z){r.mode=16205;break}if(32&Z){r.back=-1,r.mode=y;break}if(64&Z){e.msg="invalid literal/length code",r.mode=P;break}r.extra=15&Z,r.mode=16201;case 16201:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=16202;case 16202:for(;J=r.distcode[F&(1<<r.distbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(!(240&Z)){for(z=q,H=Z,Q=Y;J=r.distcode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,64&Z){e.msg="invalid distance code",r.mode=P;break}r.offset=Y,r.extra=15&Z,r.mode=16203;case 16203:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.offset+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=P;break}r.mode=16204;case 16204:if(0===R)break e;if(G=$-R,r.offset>G){if(G=r.offset-G,G>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=P;break}G>r.wnext?(G-=r.wnext,V=r.wsize-G):V=r.wnext-G,G>r.length&&(G=r.length),W=r.window}else W=L,V=O-r.offset,G=r.length;G>R&&(G=R),R-=G,r.length-=G;do{L[O++]=W[V++]}while(--G);0===r.length&&(r.mode=D);break;case 16205:if(0===R)break e;L[O++]=r.length,R--,r.mode=D;break;case v:if(r.wrap){for(;B<32;){if(0===M)break e;M--,F|=A[C++]<<B,B+=8}if($-=R,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,O-$):n(r.check,L,$,O-$)),$=R,4&r.wrap&&(r.flags?F:E(F))!==r.check){e.msg="incorrect data check",r.mode=P;break}F=0,B=0}r.mode=16207;case 16207:if(r.wrap&&r.flags){for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=P;break}F=0,B=0}r.mode=16208;case 16208:K=f;break e;case P:K=g;break e;case I:return h;default:return m}return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,(r.wsize||$!==e.avail_out&&r.mode<P&&(r.mode<v||t!==s))&&N(e,e.output,e.next_out,$-e.avail_out)?(r.mode=I,h):(j-=e.avail_in,$-=e.avail_out,e.total_in+=j,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,e.next_out-$):n(r.check,L,$,e.next_out-$)),e.data_type=r.bits+(r.last?64:0)+(r.mode===y?128:0)+(r.mode===S||r.mode===T?256:0),(0===j&&0===$||t===s)&&K===u&&(K=p),K)},e.exports.inflateEnd=e=>{if(_(e))return m;let t=e.state;return t.window&&(t.window=null),e.state=null,u},e.exports.inflateGetHeader=(e,t)=>{if(_(e))return m;const r=e.state;return 2&r.wrap?(r.head=t,t.done=!1,u):m},e.exports.inflateSetDictionary=(e,t)=>{const r=t.length;let a,o,i;return _(e)?m:(a=e.state,0!==a.wrap&&a.mode!==w?m:a.mode===w&&(o=1,o=n(o,t,r,0),o!==a.check)?g:(i=N(e,t,r,r),i?(a.mode=I,h):(a.havedict=1,u)))},e.exports.inflateInfo="pako inflate (from Nodeca project)"},446:e=>{const t=15,r=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),a=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);e.exports=(e,i,s,l,c,u,f,d)=>{const m=d.bits;let g,h,p,x,b,w,y=0,k=0,T=0,S=0,D=0,v=0,P=0,I=0,E=0,A=0,_=null;const L=new Uint16Array(16),C=new Uint16Array(16);let O,M,R,F=null;for(y=0;y<=t;y++)L[y]=0;for(k=0;k<l;k++)L[i[s+k]]++;for(D=m,S=t;S>=1&&0===L[S];S--);if(D>S&&(D=S),0===S)return c[u++]=20971520,c[u++]=20971520,d.bits=1,0;for(T=1;T<S&&0===L[T];T++);for(D<T&&(D=T),I=1,y=1;y<=t;y++)if(I<<=1,I-=L[y],I<0)return-1;if(I>0&&(0===e||1!==S))return-1;for(C[1]=0,y=1;y<t;y++)C[y+1]=C[y]+L[y];for(k=0;k<l;k++)0!==i[s+k]&&(f[C[i[s+k]]++]=k);if(0===e?(_=F=f,w=20):1===e?(_=r,F=n,w=257):(_=a,F=o,w=0),A=0,k=0,y=T,b=u,v=D,P=0,p=-1,E=1<<D,x=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){O=y-P,f[k]+1<w?(M=0,R=f[k]):f[k]>=w?(M=F[f[k]-w],R=_[f[k]-w]):(M=96,R=0),g=1<<y-P,h=1<<v,T=h;do{h-=g,c[b+(A>>P)+h]=O<<24|M<<16|R}while(0!==h);for(g=1<<y-1;A&g;)g>>=1;if(0!==g?(A&=g-1,A+=g):A=0,k++,0==--L[y]){if(y===S)break;y=i[s+f[k]]}if(y>D&&(A&x)!==p){for(0===P&&(P=D),b+=T,v=y-P,I=1<<v;v+P<S&&(I-=L[v+P],!(I<=0));)v++,I<<=1;if(E+=1<<v,1===e&&E>852||2===e&&E>592)return 1;p=A&x,c[p]=D<<24|v<<16|b-u}}return 0!==A&&(c[b+A]=y-P<<24|64<<16),d.bits=D,0}},604:e=>{e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},249:e=>{e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},464:t=>{t.exports=e},713:e=>{e.exports=t}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})();var o={};return(()=>{function e(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++)t[o++]=e[a++],t[o++]=e[a++],t[o++]=e[a++],t[o++]=255;else t.set(e)}function t(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++],t[a++]=255;else for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++]}function r(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128),t[o++]=255}else for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128)}}function n(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128),t[a++]=255}else for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128)}}a.r(o),a.d(o,{configure:()=>kt,convertColorSpace:()=>X,convertPALETTECOLOR:()=>yt,convertRGBColorByPixel:()=>e,convertRGBColorByPlane:()=>t,convertYBRFullByPixel:()=>r,convertYBRFullByPlane:()=>n,createImage:()=>ye,decodeImageFrame:()=>he,decodeJPEGBaseline8BitColor:()=>J,default:()=>St,external:()=>xt,getImageFrame:()=>pe,getMinMax:()=>H,getPixelData:()=>z,internal:()=>U,isColorImage:()=>xe,isJPEGBaseline8BitColor:()=>Tt,wadors:()=>Ie,wadouri:()=>dt,webWorkerManager:()=>de});const i=function(e,t,r){return t=t||0,e&&e.Value?e.Value.length<=t?r:e.Value[t]:r};const s=function(e,t,r){const n=i(e,t,r);if(void 0!==n)return parseFloat(n)};const l=function(e,t){const r=i(e,t);if(void 0!==r)return parseFloat(r)};const c=function(e,t){if(!e)return;if(!e.Value)return;if(!Array.isArray(e.Value))return;if(t&&e.Value.length<t)return;const r=[];for(let t=0;t<e.Value.length;t++)r.push(parseFloat(e.Value[t]));return r};function u(e){const t=e.indexOf(":");return e.substring(t+1)}function f(e,t=!0){return e&&e.Value?e.Value[0]&&t?e.Value[0]:e.Value:e}function d(e,t,r){return{shared:(t?Object.values(t[0]):[]).map((e=>e[0])).filter((e=>void 0!==e&&"object"==typeof e)),perFrame:(e?Object.values(e[r-1]):[]).map((e=>e.Value[0])).filter((e=>void 0!==e&&"object"==typeof e))}}function m(e){let{52009230:t,52009229:r,"00280008":n,...a}=e;return t=f(t,!1),r=f(r,!1),n=f(n),{PerFrameFunctionalGroupsSequence:t,SharedFunctionalGroupsSequence:r,NumberOfFrames:n,rest:a}}function g(e){const t=e.indexOf("/frames/")+8,r=e.slice(0,t),n=parseInt(e.slice(t),10);return{metadata:p[`${r}1`],frame:n}}const h={_retrieveMultiframeMetadata:g,retrieveMultiframeMetadata:function(e){return g(u(e))},isMultiframe:function(e){const t=i(e["00280008"]);return t&&t>1}};let p=[],x={};const b={add:function(e,t){const r=u(e);Object.defineProperty(t,"isMultiframe",{value:h.isMultiframe(t),enumerable:!1}),p[r]=t},get:function(e){const t=u(e),r=p[t];if(r&&!r?.isMultiframe)return r;const n=x[t];if(n)return n;const a=h._retrieveMultiframeMetadata(t);if(!a||!a.metadata)return;const{metadata:o,frame:i}=a;if(o){const e=function(e,t){const{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:a,rest:o}=m(t);if(r||a>1){const{shared:i,perFrame:s}=d(r,n,e),l=Object.assign(t,{frameNumber:e});return[...i,...s].forEach((e=>{Object.entries(e).forEach((([e,t])=>{l[e]=t}))})),Object.assign(o,{"00280008":a},l)}return t}(i,o);return x[t]=e,e}},remove:function(e){const t=u(e);p[t]=void 0,x[t]=void 0},purge:function(){p=[],x={}}};function w(e){return"RECON TOMO"===e||"RECON GATED TOMO"===e}function y(e){return i(e["00080060"]).includes("NM")}function k(e,t){const r=f(e["00080008"],!1);if(r)return r[t]}function T(e){let t=c(e["00200037"],6);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200037"],6))}return t}(e)),t}function S(e){let t=c(e["00200032"],3);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200032"],3))}return t}(e)),t}function D(e,t,r){const n={};for(const a of r)try{const r=t(a,e);if(r){const e={};for(const t in r)if(t in r){e[v(t)]=r[t]}Object.assign(n,e)}}catch(e){console.error(`Error retrieving ${a} data:`,e)}return n}const v=e=>e.charAt(0).toUpperCase()+e.slice(1),P=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function I(e,t){const r=c(e[t]);return r?r[0]:null}const E=function(e){return e?.Value?.length?Array.isArray(e.Value)?e.Value:"object"==typeof e.Value?(console.warn("Warning: Value should be an array, but an object was found. Encapsulating the object in an array."),[e.Value]):[]:[]};function A(e){const t=E(e["00186011"]);if(!t||!t.length)return null;return t.map((e=>{const t=I(e,"0018602C"),r=I(e,"0018602E"),n=I(e,"00186024"),a=I(e,"00186026");return{regionLocationMinY0:I(e,"0018601A"),regionLocationMaxY1:I(e,"0018601E"),regionLocationMinX0:I(e,"00186018"),regionLocationMaxX1:I(e,"0018601C"),referencePixelX0:I(e,"00186020"),referencePixelY0:I(e,"00186022"),physicalDeltaX:t,physicalDeltaY:r,physicalUnitsXDirection:n,physicalUnitsYDirection:a,referencePhysicalPixelValueY:I(e,"0018602A"),referencePhysicalPixelValueX:I(e,"00186028"),regionSpatialFormat:I(e,"00186012"),regionDataType:I(e,"00186014"),regionFlags:I(e,"00186016"),transducerFrequency:I(e,"00186030")}}))}function _(e,t){return{transferSyntaxUID:i(t["00020010"])||i(t["00083002"])}}const L=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(t===n.MULTIFRAME){const{metadata:e,frame:t}=h.retrieveMultiframeMetadata(r);if(!e)return;const{PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,NumberOfFrames:o}=m(e);if(n||o>1){const{shared:e,perFrame:r}=d(n,a,t);return{NumberOfFrames:o,PerFrameFunctionalInformation:r,SharedFunctionalInformation:e}}return{NumberOfFrames:o}}const o=b.get(r);if(o){if(t===n.GENERAL_STUDY)return{studyDescription:i(o["00081030"]),studyDate:a.parseDA(i(o["00080020"])),studyTime:a.parseTM(i(o["00080030"],0,"")),accessionNumber:i(o["00080050"])};if(t===n.GENERAL_SERIES)return{modality:i(o["00080060"]),seriesInstanceUID:i(o["0020000E"]),seriesNumber:l(o["00200011"]),studyInstanceUID:i(o["0020000D"]),seriesDate:a.parseDA(i(o["00080021"])),seriesTime:a.parseTM(i(o["00080031"],0,"")),acquisitionDate:a.parseDA(i(o["00080022"])),acquisitionTime:a.parseTM(i(o["00080032"],0,""))};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:i(o["00080018"]),instanceNumber:l(o["00200013"]),lossyImageCompression:i(o["00282110"]),lossyImageCompressionRatio:l(o["00282112"]),lossyImageCompressionMethod:i(o["00282114"])};if(t===n.PATIENT)return{patientID:i(o["00100020"]),patientName:i(o["00100010"])};if(t===n.PATIENT_STUDY)return{patientAge:l(o["00101010"]),patientSize:l(o["00101020"]),patientSex:i(o["00100040"]),patientWeight:l(o["00101030"])};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=i(o["00080060"]),t=k(o,2);return{modality:e,imageType:i(o["00080008"]),imageSubType:t,imageOrientationPatient:T(o),imagePositionPatient:S(o),sliceThickness:l(o["00180050"]),spacingBetweenSlices:l(o["00180088"]),pixelSpacing:c(o["00280030"],2),numberOfFrames:l(o["00280008"]),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=T(o),t=S(o),r=c(o["00280030"],2);let n=null,a=null;r&&(a=r[0],n=r[1]);let s=null,u=null;return e&&(s=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],u=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:i(o["00200052"]),rows:l(o["00280010"]),columns:l(o["00280011"]),imageOrientationPatient:e,rowCosines:s,columnCosines:u,imagePositionPatient:t,sliceThickness:l(o["00180050"]),sliceLocation:l(o["00201041"]),pixelSpacing:r,rowPixelSpacing:a,columnPixelSpacing:n}}if(t===n.ULTRASOUND_ENHANCED_REGION)return A(o);if(t===n.CALIBRATION){if("US"===i(o["00080060"])){return{sequenceOfUltrasoundRegions:A(o)}}}if(t===n.IMAGE_URL)return function(e,t){const{transferSyntaxUID:r}=_(e,t),n=xt.cornerstone.utilities.isVideoTransferSyntax(r),a=e.substring(7),o=a.replace("/frames/","/thumbnail/");let i=a.replace("/frames/","/rendered/");n&&(i=i.replace("/rendered/1","/rendered"));return{isVideo:n,rendered:i,thumbnail:o}}(r,o);if(t===n.CINE)return function(e,t){const r=i(t["00180040"]);return{cineRate:r,numberOfFrames:l(t["00280008"])}}(0,o);if(t===n.IMAGE_PIXEL)return{samplesPerPixel:l(o["00280002"]),photometricInterpretation:i(o["00280004"]),rows:l(o["00280010"]),columns:l(o["00280011"]),bitsAllocated:l(o["00280100"]),bitsStored:l(o["00280101"]),highBit:i(o["00280102"]),pixelRepresentation:l(o["00280103"]),planarConfiguration:l(o["00280006"]),pixelAspectRatio:i(o["00280034"]),smallestPixelValue:l(o["00280106"]),largestPixelValue:l(o["00280107"]),redPaletteColorLookupTableDescriptor:c(o["00281101"]),greenPaletteColorLookupTableDescriptor:c(o["00281102"]),bluePaletteColorLookupTableDescriptor:c(o["00281103"]),redPaletteColorLookupTableData:c(o["00281201"]),greenPaletteColorLookupTableData:c(o["00281202"]),bluePaletteColorLookupTableData:c(o["00281203"])};if(t===n.VOI_LUT)return{windowCenter:c(o["00281050"],1),windowWidth:c(o["00281051"],1)};if(t===n.MODALITY_LUT)return{rescaleIntercept:l(o["00281052"]),rescaleSlope:l(o["00281053"]),rescaleType:i(o["00281054"])};if(t===n.SOP_COMMON)return{sopClassUID:i(o["00080016"]),sopInstanceUID:i(o["00080018"])};if(t===n.PET_ISOTOPE){const e=i(o["00540016"]);if(void 0===e)return;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(i(e["00181072"],0,"")),radiopharmaceuticalStartDateTime:i(e["00181078"],0,""),radionuclideTotalDose:l(e["00181074"]),radionuclideHalfLife:l(e["00181075"])}}}return t===n.OVERLAY_PLANE?function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=i(e[`${n}3000`]);if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.Value[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:l(e[`${n}0010`]),columns:l(e[`${n}0011`]),type:i(e[`${n}0040`]),x:l(e[`${n}0050`],1)-1,y:l(e[`${n}0050`],0)-1,pixelData:o,description:i(e[`${n}0022`]),label:i(e[`${n}1500`]),roiArea:i(e[`${n}1301`]),roiMean:i(e[`${n}1302`]),roiStandardDeviation:i(e[`${n}1303`])})}return{overlays:t}}(o):"transferSyntax"===t?_(r,o):t===n.PET_SERIES?{correctedImage:i(o["00280051"]),units:i(o["00541001"]),decayCorrection:i(o["00541102"])}:t===n.PET_IMAGE?{frameReferenceTime:l(o["00541300"]),actualFrameDuration:l(o["00181242"])}:"instance"===t?D(r,e,P):void 0}};function C(e,t,r){if(r+e.length>t.length)return!1;let n=r;for(let r=0;r<e.length;r++)if(e[r]!==t[n++])return!1;return!0}const O=function(e,t,r){r=r||0;const n=function(e){const t=new Uint8Array(e.length);for(let r=0,n=e.length;r<n;r++)t[r]=e.charCodeAt(r);return t}(t);for(let t=r;t<e.length;t++)if(n[0]===e[t]&&C(n,e,t))return t;return-1};let M={open(e,t){e.open("get",t,!0)},beforeSend(){},beforeProcessing:e=>Promise.resolve(e.response),imageCreated(){},strict:!1,decodeConfig:{convertFloatPixelDataToInt:!0,use16BitDataType:!1}};function R(e){M=Object.assign(M,e)}function F(){return M}const B=function(e,t,r={},n={}){const{cornerstone:a}=xt,o=F(),i=e=>{if("function"==typeof o.errorInterceptor){const t=new Error("request failed");t.request=e,t.response=e.response,t.status=e.status,o.errorInterceptor(t)}},s=new XMLHttpRequest,l=new Promise(((l,c)=>{o.open(s,e,r,n);const u=o.beforeSend(s,t,r,n);s.responseType="arraybuffer";const f=Object.assign({},r,u);Object.keys(f).forEach((function(t){null!==f[t]&&("Accept"===t&&-1!==e.indexOf("accept=")||s.setRequestHeader(t,f[t]))})),n.deferred={resolve:l,reject:c},n.url=e,n.imageId=t,s.onloadstart=function(r){o.onloadstart&&o.onloadstart(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadstart",i)},s.onloadend=function(r){o.onloadend&&o.onloadend(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadend",i)},s.onreadystatechange=function(e){o.onreadystatechange?o.onreadystatechange(e,n):4===s.readyState&&(200===s.status||206===s.status?o.beforeProcessing(s).then(l).catch((()=>{i(s),c(s)})):(i(s),c(s)))},s.onprogress=function(e){const t=e.loaded;let r,a;e.lengthComputable&&(r=e.total,a=Math.round(t/r*100)),o.onprogress&&o.onprogress(e,n)},s.onerror=function(){i(s),c(s)},s.onabort=function(){i(s),c(s)},s.send()}));return l.xhr=s,l},U={xhrRequest:B,setOptions:R,getOptions:F};var N=a(464);const{ImageQualityStatus:j}=N.Enums;function $(e,t,r){r||={};const n=new Uint8Array(t),a=!!r?.isPartial;if(-1===e.indexOf("multipart"))return{contentType:e,imageQualityStatus:a?j.SUBRESOLUTION:j.FULL_RESOLUTION,pixelData:n};let{tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l}=r;if(o||=O(n,"\r\n\r\n"),-1===o)throw new Error("invalid response - no multipart mime header");if(!s){const e=function(e,t,r){t=t||0,r=r||e.length-t;let n="";for(let a=t;a<t+r;a++)n+=String.fromCharCode(e[a]);return n}(n,0,o);if(i=e.split("\r\n"),s=function(e){for(let t=0;t<e.length;t++)if("--"===e[t].substr(0,2))return e[t]}(i),!s)throw new Error("invalid response - no boundary marker")}const c=o+4,u=O(n,s,c);if(-1===u&&!a)throw new Error("invalid response - terminating boundary not found");return l||=function(e){for(let t=0;t<e.length;t++)if("Content-Type:"===e[t].substr(0,13))return e[t].substr(13).trim()}(i),r.tokenIndex=o,r.boundary=s,r.responseHeaders=i,r.multipartContentType=l,r.isPartial=-1===u,{contentType:l,extractDone:!a||-1!==u,tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l,pixelData:t.slice(c,u-2)}}const{ImageQualityStatus:G}=N.Enums;function V(e,t=!0){return t?e.imageQualityStatus??G.FULL_RESOLUTION:G.SUBRESOLUTION}const{ProgressiveIterator:W}=N.utilities;function q(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i={}}=n,s=o.minChunkSize||131072,l=new W("streamRequest");return l.generate((async(n,l)=>{const c=Object.assign({},r);Object.keys(c).forEach((function(t){null===c[t]&&(c[t]=void 0),"Accept"===t&&-1!==e.indexOf("accept=")&&(c[t]=void 0)}));try{const a=await fetch(e,{headers:r,signal:void 0});if(200!==a.status)throw new Error(`Couldn't retrieve ${e} got status ${a.status}`);const l=a.body.getReader(),c=a.headers,u=c.get("content-type"),f=Number(c.get("Content-Length"));let d=!1,m=i.encodedData,g=i.lastSize||0;for(i.isPartial=!0;!d;){const{done:r,value:a}=await l.read();if(m=Z(m,a),!m){if(d)throw new Error(`Done but no image frame available ${t}`);continue}if(d=r||m.byteLength===f,!d&&m.length<g+s)continue;g=m.length,i.isPartial=!r;const c=$(u,m,i),h=V(o,d),p={url:e,imageId:t,...c,percentComplete:r?100:100*c.pixelData?.length/f,imageQualityStatus:h,done:d};n.add(p,d)}}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}})(),console.error(e),l(e)}})),l.getNextPromise()}function Z(e,t){if(!e)return t;if(!t)return e;const r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}function Y(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i}=n,s=i.chunkSize||function(e,t,r){const n=t[r];if("function"!=typeof n)return n;const a=b.get(e);return n(a,e)}(t,o,"chunkSize")||65536,l=new Promise((async(t,n)=>{const l=Object.assign({},r);Object.keys(l).forEach((function(e){null!==l[e]&&void 0!==l[e]||delete l[e]}));try{i.encodedData||(i.chunkSize=s,i.rangesFetched=0);const r=function(e,t){const{totalBytes:r,encodedData:n,chunkSize:a=65536}=e,{rangeIndex:o=0}=t;if(!(-1!==o||r&&n))return[0,""];if(-1===o||n?.byteLength>r-a)return[n?.byteLength||0,""];return[n?.byteLength||0,a*(o+1)-1]}(i,o),{encodedData:n,responseHeaders:a}=await async function(e,t,r,n){r&&(t=Object.assign(t,{Range:`bytes=${r[0]}-${r[1]}`}));let{encodedData:a}=n;if(r[1]&&a?.byteLength>r[1])return n;const o=await fetch(e,{headers:t,signal:void 0}),i=await o.arrayBuffer(),s=new Uint8Array(i),{status:l}=o;let c;a?(c=new Uint8Array(a.length+s.length),c.set(a,0),c.set(s,a.length),n.rangesFetched=1):(c=new Uint8Array(s.length),c.set(s,0),n.rangesFetched++);n.encodedData=a=c,n.responseHeaders=o.headers;const u=o.headers.get("Content-Range");u?n.totalBytes=Number(u.split("/")[1]):206===l&&r?""===r[1]||a?.length<r[1]?n.totalBytes=a.byteLength:n.totalBytes=Number.MAX_SAFE_INTEGER:n.totalBytes=a?.byteLength;return n}(e,l,r,i),c=a.get("content-type"),{totalBytes:u}=i,f=u===n.byteLength,d=$(c,n,{isPartial:!0}),m=V(o,f||d.extractDone);t({...d,imageQualityStatus:m,percentComplete:d.extractDone?100:100*s/u})}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}else console.warn("rangeRequest:Caught",e)})(e),console.error(e),n(e)}}));return l}const z=function(e,t,r="application/octet-stream",n){const{streamingData:a,retrieveOptions:o={}}=n||{},i={Accept:r};let s=o.urlArguments?`${e}${-1===e.indexOf("?")?"?":"&"}${o.urlArguments}`:e;if(o.framesPath&&(s=s.replace("/frames/",o.framesPath)),a?.url!==s&&(n.streamingData={url:s}),void 0!==o.rangeIndex)return Y(s,t,i,n);if(o.streaming)return q(s,t,i,n);const l=B(s,t,i),{xhr:c}=l;return l.then((function(e){const t=$(c.getResponseHeader("Content-Type")||"application/octet-stream",new Uint8Array(e));return t.imageQualityStatus=V(o,!0),t}))};const H=function(e){let t,r=e[0],n=e[0];const a=e.length;for(let o=1;o<a;o++)t=e[o],r=Math.min(r,t),n=Math.max(n,t);return{min:r,max:n}};function Q(r,n,a){0===r.planarConfiguration?e(r.pixelData,n,a):t(r.pixelData,n,a)}function X(e,t,a){if("RGB"===e.photometricInterpretation)Q(e,t,a);else if("YBR_RCT"===e.photometricInterpretation)Q(e,t,a);else if("YBR_ICT"===e.photometricInterpretation)Q(e,t,a);else if("PALETTE COLOR"===e.photometricInterpretation)yt(e,t,a);else if("YBR_FULL_422"===e.photometricInterpretation)!function(e,t,r){if(void 0===e)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!=0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let a=0,o=0;if(r)for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=255,t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128),t[o++]=255}else for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128)}}(e.pixelData,t,a);else{if("YBR_FULL"!==e.photometricInterpretation)throw new Error(`No color space conversion for photometric interpretation ${e.photometricInterpretation}`);!function(e,t,a){0===e.planarConfiguration?r(e.pixelData,t,a):n(e.pixelData,t,a)}(e,t,a)}}function K(e){return function(e){let t;try{return decodeURIComponent(escape(e))}catch(r){if(t=r,t instanceof URIError)return e;throw t}}(String.fromCharCode.apply(null,Array.prototype.slice.apply(new Uint8Array(e))))}const J=function(e,t,r){const n=(new Date).getTime(),a=new Blob([t],{type:"image/jpeg"});return new Promise(((t,o)=>{const i=new FileReader;void 0===i.readAsBinaryString?i.readAsArrayBuffer(a):i.readAsBinaryString(a),i.onload=function(){const a=new Image;a.onload=function(){r.height=a.height,r.width=a.width,e.rows=a.height,e.columns=a.width;const o=r.getContext("2d");o.drawImage(this,0,0);const i=o.getImageData(0,0,a.width,a.height),s=(new Date).getTime();e.pixelData=new Uint8Array(i.data.buffer),e.imageData=i,e.decodeTimeInMS=s-n;const l=H(e.pixelData);e.smallestPixelValue=l.min,e.largestPixelValue=l.max,e.pixelDataLength=e.pixelData.length,t(e)},a.onerror=function(e){o(e)},void 0===i.readAsBinaryString?a.src=`data:image/jpeg;base64,${window.btoa(K(i.result))}`:a.src=`data:image/jpeg;base64,${window.btoa(i.result)}`},i.onerror=e=>{o(e)}}))};function ee(){return new Worker(a.p+"index.worker.5a5a581362c14598c3d9.worker.js")}let te=0;const re=[],ne=[],ae=F(),oe={maxWebWorkers:navigator.hardwareConcurrency||1,startWebWorkersOnDemand:!0,webWorkerTaskPaths:[],taskConfiguration:{decodeTask:{initializeCodecsOnStartup:!1,strict:ae.strict}}};let ie;const se={maxWebWorkers:0,numWebWorkers:0,numTasksQueued:0,numTasksExecuting:0,numTasksCompleted:0,totalTaskTimeInMS:0,totalTimeDelayedInMS:0};function le(){if(re.length){for(let e=0;e<ne.length;e++)if("ready"===ne[e].status){ne[e].status="busy";const t=re.shift();t.start=(new Date).getTime();const r=(new Date).getTime();return se.totalTimeDelayedInMS+=r-t.added,ne[e].task=t,ne[e].worker.postMessage({taskType:t.taskType,workerIndex:e,data:t.data},t.transferList),void se.numTasksExecuting++}ne.length<ie.maxWebWorkers&&ue()}}function ce(e){if("initialize"===e.data.taskType)ne[e.data.workerIndex].status="ready",le();else{const t=ne[e.data.workerIndex].task.start,r="success"===e.data.status?"resolve":"reject";try{ne[e.data.workerIndex].task.deferred[r](e.data.result)}catch(e){console.warn("Caught error delivering response",e)}ne[e.data.workerIndex].task=void 0,se.numTasksExecuting--,ne[e.data.workerIndex].status="ready",se.numTasksCompleted++;const n=(new Date).getTime();se.totalTaskTimeInMS+=n-t,le()}}function ue(){if(ne.length>=ie.maxWebWorkers)return;const e=new ee;ne.push({worker:e,status:"initializing"}),e.addEventListener("message",ce),e.postMessage({taskType:"initialize",workerIndex:ne.length-1,config:ie})}function fe(e){if(ie=e=e||oe,ie.maxWebWorkers=ie.maxWebWorkers||navigator.hardwareConcurrency||1,!ie.startWebWorkersOnDemand)for(let e=0;e<ie.maxWebWorkers;e++)ue()}const de={initialize:fe,loadWebWorkerTask:function(e,t){ie.webWorkerTaskPaths.push(e),t&&(ie.taskConfiguration=Object.assign(ie.taskConfiguration,t));for(let t=0;t<ne.length;t++)ne[t].worker.postMessage({taskType:"loadWebWorkerTask",workerIndex:ne.length-1,sourcePath:e,config:ie})},addTask:function(e,t,r=0,n){ie||fe();let a={resolve:void 0,reject:void 0};const o=new Promise(((e,t)=>{a={resolve:e,reject:t}}));let i;for(i=0;i<re.length&&!(re[i].priority<r);i++);const s=te++;return re.splice(i,0,{taskId:s,taskType:e,status:"ready",added:(new Date).getTime(),data:t,deferred:a,priority:r,transferList:n}),le(),{taskId:s,promise:o}},getStatistics:function(){return se.maxWebWorkers=ie.maxWebWorkers,se.numWebWorkers=ne.length,se.numTasksQueued=re.length,se},setTaskPriority:function(e,t=0){for(let r=0;r<re.length;r++)if(re[r].taskId===e){const e=re.splice(r,1)[0];for(e.priority=t,r=0;r<re.length&&!(re[r].priority<t);r++);return re.splice(r,0,e),!0}return!1},cancelTask:function(e,t){for(let r=0;r<re.length;r++)if(re[r].taskId===e){return re.splice(r,1).deferred.reject(t),!0}return!1},webWorkers:ne,terminate:function(){for(let e=0;e<ne.length;e++)ne[e].worker.terminate();ne.length=0,ie=void 0}};var me=a(578);function ge(e,t,r,n,a){const o={...n};delete o.loader,delete o.streamingData;const i=o.priority||void 0,s=o.transferPixelData?[r.buffer]:void 0;return de.addTask("decodeTask",{imageFrame:e,transferSyntax:t,pixelData:r,options:o,decodeConfig:a},i,s).promise}window.pako={inflateRaw:me.Hq};const he=function(e,t,r,n,a={},o){switch(t){case"1.2.840.10008.1.2":case"1.2.840.10008.1.2.1":case"1.2.840.10008.1.2.2":case"1.2.840.10008.1.2.1.99":case"1.2.840.10008.1.2.5":case"1.2.840.10008.1.2.4.51":case"1.2.840.10008.1.2.4.57":case"1.2.840.10008.1.2.4.70":case"1.2.840.10008.1.2.4.80":case"1.2.840.10008.1.2.4.81":case"1.2.840.10008.1.2.4.90":case"1.2.840.10008.1.2.4.91":case"3.2.840.10008.1.2.4.96":case"1.2.840.10008.1.2.4.201":case"1.2.840.10008.1.2.4.202":case"1.2.840.10008.1.2.4.203":return ge(e,t,r,a,o);case"1.2.840.10008.1.2.4.50":return 8!==e.bitsAllocated||3!==e.samplesPerPixel&&4!==e.samplesPerPixel?ge(e,t,r,a,o):J(e,r,n)}return Promise.reject(new Error(`No decoder for transfer syntax ${t}`))};const pe=function(e){const{cornerstone:t}=xt,r=t.metaData.get("imagePixelModule",e);return{samplesPerPixel:r.samplesPerPixel,photometricInterpretation:r.photometricInterpretation,planarConfiguration:r.planarConfiguration,rows:r.rows,columns:r.columns,bitsAllocated:r.bitsAllocated,bitsStored:r.bitsStored,pixelRepresentation:r.pixelRepresentation,smallestPixelValue:r.smallestPixelValue,largestPixelValue:r.largestPixelValue,redPaletteColorLookupTableDescriptor:r.redPaletteColorLookupTableDescriptor,greenPaletteColorLookupTableDescriptor:r.greenPaletteColorLookupTableDescriptor,bluePaletteColorLookupTableDescriptor:r.bluePaletteColorLookupTableDescriptor,redPaletteColorLookupTableData:r.redPaletteColorLookupTableData,greenPaletteColorLookupTableData:r.greenPaletteColorLookupTableData,bluePaletteColorLookupTableData:r.bluePaletteColorLookupTableData,pixelData:void 0,imageId:e}};function xe(e){return"RGB"===e||"PALETTE COLOR"===e||"YBR_FULL"===e||"YBR_FULL_422"===e||"YBR_PARTIAL_422"===e||"YBR_PARTIAL_420"===e||"YBR_RCT"===e||"YBR_ICT"===e}let be="";function we(e){const t=function(e,t){let r;return Number.isInteger(e)&&Number.isInteger(t)&&(e>=0?t<=255?r=Uint8Array:t<=65535&&(r=Uint16Array):e>=-128&&t<=127?r=Int8Array:e>=-32768&&t<=32767&&(r=Int16Array)),r||Float32Array}(e.smallestPixelValue,e.largestPixelValue);if(!t)throw new Error("Could not apply a typed array to the pixel data");{const r=new t(e.pixelData);e.pixelData=r}}const ye=function(e,t,r,n={}){const a=n.useRGBA;if(n.preScale={enabled:!(!n.preScale||void 0===n.preScale.enabled)&&n.preScale.enabled},!t?.length)return Promise.reject(new Error("The pixel data is missing"));const{cornerstone:o}=xt,{MetadataModules:i}=o.Enums,s=document.createElement("canvas"),l=pe(e);if(l.decodeLevel=n.decodeLevel,n.allowFloatRendering=o.canRenderFloatTextures(),n.preScale.enabled){const t=function(e,t){const r=e.get("modalityLutModule",t)||{},n=e.get("generalSeriesModule",t)||{},{modality:a}=n,o={rescaleSlope:r.rescaleSlope,rescaleIntercept:r.rescaleIntercept,modality:a},i=e.get("scalingModule",t)||{};return{...o,..."PT"===a&&{suvbw:i.suvbw}}}(o.metaData,e);t&&(n.preScale={...n.preScale,scalingParameters:t})}n.isSharedArrayBuffer=n.targetBuffer?.arrayBuffer&&n.targetBuffer.arrayBuffer instanceof SharedArrayBuffer;const{decodeConfig:c}=F();c.use16BitDataType=!!(n&&"Uint16Array"===n.targetBuffer?.type||"Int16Array"===n.targetBuffer?.type)||(n.useNativeDataType||c.use16BitDataType),Object.keys(l).forEach((e=>{("function"==typeof l[e]||l[e]instanceof Promise)&&delete l[e]}));const u=he(l,r,t,s,n,c),{use16BitDataType:f}=c,d=xe(l.photometricInterpretation);return new Promise(((t,r)=>{u.then((function(r){if(n.skipCreateImage)return t(r);let l=!1;if(n.targetBuffer&&n.targetBuffer.type&&!d){const{arrayBuffer:e,type:t,offset:a=0,length:o}=n.targetBuffer,i=r.pixelDataLength,s=a,c=null!=o?o:i-s,u={Uint8Array,Uint16Array:f?Uint16Array:void 0,Int16Array:f?Int16Array:void 0,Float32Array};if(c!==r.pixelDataLength)throw new Error(`target array for image does not have the same length (${c}) as the decoded image length (${r.pixelDataLength}).`);const d=u[t],m=e?new d(e,s,c):new d(r.pixelData);if(c!==r.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");r.pixelData=m,l=!0}l||we(r);const c=o.metaData.get(i.IMAGE_PLANE,e)||{},u=o.metaData.get(i.VOI_LUT,e)||{},m=o.metaData.get(i.MODALITY_LUT,e)||{},g=o.metaData.get(i.SOP_COMMON,e)||{},h=o.metaData.get(i.CALIBRATION,e)||{},{rows:p,columns:x}=r;if(d){if(function(e){if(void 0===e)return!1;const{rows:t,columns:r,photometricInterpretation:n,pixelDataLength:a}=e;return a!==4*r*t&&(n.endsWith("420")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*t:n.endsWith("422")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*Math.ceil(t/2)+Math.floor(t/2)*r:"RGB"!==n)}(r)){s.height=r.rows,s.width=r.columns;let e=s.getContext("2d").createImageData(r.columns,r.rows);a||(e={...e,data:new Uint8ClampedArray(r.samplesPerPixel*r.columns*r.rows)}),X(r,e.data,a),r.imageData=e,r.pixelData=e.data,r.pixelDataLength=e.data.length}else if(!a&&r.pixelDataLength===4*p*x){const e=new Uint8Array(r.pixelData.length/4*3);r.pixelData=function(e,t){const r=e.length/4;let n=0,a=0;for(let o=0;o<r;o++)t[a++]=e[n++],t[a++]=e[n++],t[a++]=e[n++],n++;return t}(r.pixelData,e),r.pixelDataLength=r.pixelData.length}const e=H(r.pixelData);r.smallestPixelValue=e.min,r.largestPixelValue=e.max}const b={imageId:e,color:d,calibration:h,columnPixelSpacing:c.columnPixelSpacing,columns:r.columns,height:r.rows,preScale:r.preScale,intercept:m.rescaleIntercept?m.rescaleIntercept:0,slope:m.rescaleSlope?m.rescaleSlope:1,invert:"MONOCHROME1"===r.photometricInterpretation,minPixelValue:r.smallestPixelValue,maxPixelValue:r.largestPixelValue,rowPixelSpacing:c.rowPixelSpacing,rows:r.rows,sizeInBytes:r.pixelData.byteLength,width:r.columns,windowCenter:u.windowCenter?u.windowCenter[0]:void 0,windowWidth:u.windowWidth?u.windowWidth[0]:void 0,voiLUTFunction:u.voiLUTFunction?u.voiLUTFunction:void 0,decodeTimeInMS:r.decodeTimeInMS,floatPixelData:void 0,imageFrame:r,rgba:d&&a,getPixelData:()=>r.pixelData,getCanvas:void 0,numComps:void 0};var w;if(b.color&&(b.getCanvas=function(){if(be===e)return s;const t=b.columns,n=b.rows;s.height=n,s.width=t;const a=s.getContext("2d"),o=a.createImageData(t,n),i=r.pixelData;if(i.length===t*n*4)for(let e=0;e<i.length;e++)o.data[e]=i[e];else if(i.length===t*n*3){let e=0;for(let t=0;t<i.length;t+=3)o.data[e++]=i[t],o.data[e++]=i[t+1],o.data[e++]=i[t+2],o.data[e++]=255}return r.pixelData=o.data,r.pixelDataLength=o.data.length,r.imageData=o,a.putImageData(r.imageData,0,0),be=e,s}),m.modalityLUTSequence&&m.modalityLUTSequence.length>0&&("1.2.840.10008.5.1.4.1.1.12.1"!==(w=g.sopClassUID)&&"1.2.840.10008.5.1.4.1.1.12.2.1"!==w)&&(b.modalityLUT=m.modalityLUTSequence[0]),u.voiLUTSequence&&u.voiLUTSequence.length>0&&(b.voiLUT=u.voiLUTSequence[0]),b.color&&(b.windowWidth=256,b.windowCenter=128),void 0===b.windowCenter||void 0===b.windowWidth){const e=b.imageFrame.minAfterScale,t=b.imageFrame.maxAfterScale;b.windowWidth=t-e,b.windowCenter=(t+e)/2}t(b)}),r)}))},{ProgressiveIterator:ke}=N.utilities,{ImageQualityStatus:Te}=N.Enums,Se=new Set(["3.2.840.10008.1.2.4.96","1.2.840.10008.1.2.4.202","1.2.840.10008.1.2.4.203"]);function De(e){const t="1.2.840.10008.1.2";if(!e)return t;const r=e.split(";"),n={};r.forEach((e=>{const t=e.split("=");if(2!==t.length)return;const r=t[1].trim().replace(/"/g,"");n[t[0].trim()]=r}));const a={"image/jpeg":"1.2.840.10008.1.2.4.50","image/x-dicom-rle":"1.2.840.10008.1.2.5","image/x-jls":"1.2.840.10008.1.2.4.80","image/jls":"1.2.840.10008.1.2.4.80","image/jll":"1.2.840.10008.1.2.4.70","image/jp2":"1.2.840.10008.1.2.4.90","image/jpx":"1.2.840.10008.1.2.4.92","image/jphc":"3.2.840.10008.1.2.4.96","image/jxl":"1.2.840.10008.1.2.4.140"};return n["transfer-syntax"]?n["transfer-syntax"]:e&&!Object.keys(n).length&&a[e]?a[e]:n.type&&a[n.type]?a[n.type]:a[e]?a[e]:t}function ve(e,t=4){const r=e/100-.02;return r>1/4?Math.min(t,0):r>1/16?Math.min(t,1):r>1/64?Math.min(t,2):Math.min(t,3)}const Pe=function(e,t={}){const r=xt.cornerstone.imageRetrievalPoolManager,n=(new Date).getTime(),a=new ke("decompress"),o=t.requestType||"interaction",i=t.additionalDetails||{imageId:e},s=void 0===t.priority?5:t.priority,l=t.addToBeginning||!1,c=e.substring(7);return r.addRequest(async function(e,r,o){a.generate((async a=>{const i=ke.as(z(e,r,o,t));let s=10;for await(const e of i){const{pixelData:o,imageQualityStatus:i=Te.FULL_RESOLUTION,percentComplete:l,done:c=!0,extractDone:u=!0}=e,f=De(e.contentType);if(!u&&!Se.has(f))continue;const d=e.decodeLevel??(i===Te.FULL_RESOLUTION?0:ve(l,t.retrieveOptions?.decodeLevel));if(c||!(s<=d))try{const e={...t,decodeLevel:d},l=await ye(r,o,f,e),u=(new Date).getTime();l.loadTimeInMS=u-n,l.transferSyntaxUID=f,l.imageQualityStatus=i,a.add(l,c),s=d}catch(e){if(u)throw console.warn("Couldn't decode",e),e}}}))}.bind(this,c,e,"multipart/related; type=application/octet-stream; transfer-syntax=*"),o,i,s,l),{promise:a.getDonePromise(),cancelFn:void 0}};const Ie={metaData:{getNumberString:s,getNumberValue:l,getNumberValues:c,getValue:i,metaDataProvider:L},findIndexOfString:O,getPixelData:z,loadImage:Pe,metaDataManager:b,register:function(e){e.registerImageLoader("wadors",Pe),e.metaData.addProvider(L)}};function Ee(e,t){if(e.elements[t]&&6===e.elements[t].length)return[e.uint16(t,0),e.uint16(t,1),e.uint16(t,2)]}function Ae(e,t,r){const n=[],a=e.elements[t];for(let o=0;o<r[0];o++)16===r[2]?n[o]=e.uint16(t,o):n[o]=e.byteArray[o+a.dataOffset];return n}const _e=function(e){const t={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return function(e,t){0===e.uint16("x00280103")?(t.smallestPixelValue=e.uint16("x00280106"),t.largestPixelValue=e.uint16("x00280107")):(t.smallestPixelValue=e.int16("x00280106"),t.largestPixelValue=e.int16("x00280107"))}(e,t),"PALETTE COLOR"===t.photometricInterpretation&&e.elements.x00281101&&function(e,t){t.redPaletteColorLookupTableDescriptor=Ee(e,"x00281101"),t.greenPaletteColorLookupTableDescriptor=Ee(e,"x00281102"),t.bluePaletteColorLookupTableDescriptor=Ee(e,"x00281103"),0===t.redPaletteColorLookupTableDescriptor[0]&&(t.redPaletteColorLookupTableDescriptor[0]=65536,t.greenPaletteColorLookupTableDescriptor[0]=65536,t.bluePaletteColorLookupTableDescriptor[0]=65536);const r=t.redPaletteColorLookupTableDescriptor[0],n=e.elements.x00281201.length===r?8:16;t.redPaletteColorLookupTableDescriptor[2]!==n&&(t.redPaletteColorLookupTableDescriptor[2]=n,t.greenPaletteColorLookupTableDescriptor[2]=n,t.bluePaletteColorLookupTableDescriptor[2]=n),t.redPaletteColorLookupTableData=Ae(e,"x00281201",t.redPaletteColorLookupTableDescriptor),t.greenPaletteColorLookupTableData=Ae(e,"x00281202",t.greenPaletteColorLookupTableDescriptor),t.bluePaletteColorLookupTableData=Ae(e,"x00281203",t.bluePaletteColorLookupTableDescriptor)}(e,t),t};function Le(e,t){let r=t.uint16("x00283002",0);0===r&&(r=65535);let n=0;n=0===e?t.uint16("x00283002",1):t.int16("x00283002",1);const a={id:"1",firstValueMapped:n,numBitsPerEntry:t.uint16("x00283002",2),lut:[]};for(let n=0;n<r;n++)a.lut[n]=0===e?t.uint16("x00283006",n):t.int16("x00283006",n);return a}const Ce=function(e,t){if(!t||!t.items||!t.items.length)return;const r=[];for(let n=0;n<t.items.length;n++){const a=Le(e,t.items[n].dataSet);a&&r.push(a)}return r};const Oe=function(e){const t=e.string("x00080016");if("1.2.840.10008.5.1.4.1.1.2"===t||"1.2.840.10008.5.1.4.1.1.2.1"===t)return 1;const r=e.floatString("x00281052"),n=e.floatString("x00281053");if(void 0!==r&&void 0!==n){const t=function(e){const t=e.uint16("x00280103"),r=e.uint16("x00280101");return 0===t?0:-1<<r-1}(e);return t*n+r<0?1:0}return e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")};const Me=function(e,t,r){const n=[],a=e.string(t);if(!a)return;const o=a.split("\\");if(!(r&&o.length<r)){for(let e=0;e<o.length;e++)n.push(parseFloat(o[e]));return n}};const Re=function(e){const t=e.indexOf(":");let r=e.substring(t+1);const n=r.indexOf("frame=");let a;if(-1!==n){const e=r.substring(n+6);a=parseInt(e,10),r=r.substring(0,n-1)}return{scheme:e.substring(0,t),url:r,frame:a,pixelDataFrame:void 0!==a?a-1:void 0}};function Fe(e){const{dicomParser:t}=xt;let r,n=t.parseDicom(e,{untilTag:"x7fe00010"});n.elements.x7fe00010||console.warn("Pixel data not found!");try{r=t.parseDicom(e)}catch(e){console.error(e),console.log("pixel data dataset:",e.dataSet),r=e.dataSet}return n.elements.x7fe00010=r.elements.x7fe00010,n=function(e){const t=e.elements.x7fe00010.fragments,r=e.byteArray.length;for(const e of t){const{position:t,length:n}=e;n>r-t&&(console.log(`Truncated fragment, changing fragment length from ${e.length} to ${r-t}`),e.length=r-t)}return e}(n),n}async function Be(e,t,r){const n=Fe(e),{uri:a,imageId:o,fileTotalLength:i}=r;return n.fetchMore=async function(s){const l=Object.assign({uri:a,imageId:o,fetchedLength:e.length,lengthToFetch:i-e.length},s),{fetchedLength:c,lengthToFetch:u}=l,{arrayBuffer:f}=await t(a,o,{byteRange:`${c}-${c+u}`}),d=new Uint8Array(f),m=new Uint8Array(n.byteArray.length+d.length);return m.set(n.byteArray),m.set(d,n.byteArray.length),Be(m,t,r)},n}function Ue(e,t,r){const n={};(t?Object.values(t.items[0].dataSet.elements):[]).map((e=>n[e.tag]=e));const a={};return(e?Object.values(e.items[r-1].dataSet.elements):[]).map((e=>a[e.tag]=e)),{shared:n,perFrame:a}}function Ne(e){if(!e)return;const{elements:t,...r}=e,{x52009230:n,x52009229:a,...o}=t;return{NumberOfFrames:e.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o,otherAttributtes:r}}function je(e){if(We[e])return We[e]}function $e(e){if(!e)return!1;const t=e.intString("x00280008");return t&&t>1}const Ge={_get:je,generateMultiframeWADOURIs:function(e){const t=[],r=je(e);if($e(r)){const n=r.intString("x00280008");for(let r=1;r<=n;r++)t.push(`${e}&frame=${r}`)}else t.push(e);return t},retrieveMultiframeDataset:function(e){const t=function(e){return e.indexOf("&frame=")}(e),r=-1===t?e:e.slice(0,t),n=parseInt(e.slice(t+7),10)||1;let a;return a=We[r]?We[r].dataSet:void 0,{dataSet:a,frame:n}},isMultiframeDataset:function(e){return $e(je(e))}};let Ve=0,We={},qe={};function Ze(){return{cacheSizeInBytes:Ve,numberOfDataSetsCached:Object.keys(We).length}}const Ye={isLoaded:function(e){return void 0!==We[e]},load:function(e,t=B,r){const{cornerstone:n,dicomParser:a}=xt;if(We[e])return new Promise((t=>{We[e].cacheCount++,t(We[e].dataSet)}));if(qe[e])return qe[e].cacheCount++,qe[e];const o=t(e,r),i=new Promise(((s,l)=>{o.then((async function(o){const c={isPartialContent:!1,fileTotalLength:null};if(!(o instanceof ArrayBuffer)){if(!o.arrayBuffer)return l(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));c.isPartialContent=o.flags.isPartialContent,c.fileTotalLength=o.flags.fileTotalLength,o=o.arrayBuffer}const u=new Uint8Array(o);let f;try{f=c.isPartialContent?await Be(u,t,{uri:e,imageId:r,fileTotalLength:c.fileTotalLength}):a.parseDicom(u)}catch(e){return l(e)}We[e]={dataSet:f,cacheCount:i.cacheCount},Ve+=f.byteArray.length,s(f),n.triggerEvent(n.events,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Ze()})}),l).then((()=>{delete qe[e]}),(()=>{delete qe[e]}))}));return i.cacheCount=1,qe[e]=i,i},unload:function(e){const{cornerstone:t}=xt;We[e]&&(We[e].cacheCount--,0===We[e].cacheCount&&(Ve-=We[e].dataSet.byteArray.length,delete We[e],t.triggerEvent(t.events,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Ze()})))},getInfo:Ze,purge:function(){We={},qe={},Ve=0},get:function(e){let t;if(e.includes("&frame=")){const{frame:r,dataSet:n}=Ge.retrieveMultiframeDataset(e);t=function(e,t){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o}=Ne(t);if(n||r>1){const{shared:r,perFrame:i}=Ue(n,a,e),s={elements:{...o,...r,...i}},l=Object.create(t);return Object.assign(l,s)}return t}(r,n)}else We[e]&&(t=We[e].dataSet);return t},update:function(e,t){const r=We[e];r?(Ve-=r.dataSet.byteArray.length,r.dataSet=t,Ve+=t.byteArray.length,xt.cornerstone.triggerEvent(xt.cornerstone.events,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Ze()})):console.error(`No loaded dataSet for uri ${e}`)}};function ze(e,t){const r=e.string("x00080008");if(r){const e=r.split("\\");if(e.length>t)return e[t]}}function He(e){let t=Me(e,"x00200037",6);return!t&&e.elements.x00209116&&(t=Me(e.elements.x00209116.items[0].dataSet,"x00200037",6)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return t}(e)),t}function Qe(e){let t=Me(e,"x00200032",3);return!t&&e.elements.x00209113&&(t=Me(e.elements.x00209113.items[0].dataSet,"x00200032",3)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return t}(e)),t}function Xe(e){let t=Me(e,"x00280030",2);return!t&&e.elements.x00289110&&(t=Me(e.elements.x00289110.items[0].dataSet,"x00280030",2)),t}function Ke(e){let t;return e.elements.x00180050?t=e.floatString("x00180050"):e.elements.x00289110&&e.elements.x00289110.items.length&&e.elements.x00289110.items[0].dataSet.elements.x00180050&&(t=e.elements.x00289110.items[0].dataSet.floatString("x00180050")),t}const Je=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(Array.isArray(r))return;const o=Re(r);if(t===n.MULTIFRAME){const e=Ge.retrieveMultiframeDataset(o.url);if(!e.dataSet)return;const t=function(e,t){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a}=Ne(e);if(n||r>1){const{shared:e,perFrame:o}=Ue(n,a,t);return{NumberOfFrames:r,PerFrameFunctionalInformation:o,SharedFunctionalInformation:e}}return{NumberOfFrames:r}}(e.dataSet,e.frame);return t}let i=o.url;o.frame&&(i=`${i}&frame=${o.frame}`);const s=Ye.get(i);if(s){if(t===n.GENERAL_STUDY)return{studyDescription:s.string("x00081030"),studyDate:a.parseDA(s.string("x00080020")),studyTime:a.parseTM(s.string("x00080030")||""),accessionNumber:s.string("x00080050")};if(t===n.GENERAL_SERIES)return{modality:s.string("x00080060"),seriesInstanceUID:s.string("x0020000e"),seriesNumber:s.intString("x00200011"),studyInstanceUID:s.string("x0020000d"),seriesDate:a.parseDA(s.string("x00080021")),seriesTime:a.parseTM(s.string("x00080031")||""),acquisitionDate:a.parseDA(s.string("x00080022")),acquisitionTime:a.parseTM(s.string("x00080032")||"")};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:s.string("x00080018"),instanceNumber:s.intString("x00200013"),lossyImageCompression:s.string("x00282110"),lossyImageCompressionRatio:s.floatString("x00282112"),lossyImageCompressionMethod:s.string("x00282114")};if(t===n.PATIENT)return{patientID:s.string("x00100020"),patientName:s.string("x00100010")};if(t===n.PATIENT_STUDY)return{patientAge:s.intString("x00101010"),patientSize:s.floatString("x00101020"),patientSex:s.string("x00100040"),patientWeight:s.floatString("x00101030")};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=s.string("x00080060"),t=ze(s,2);return{modality:e,imageType:s.string("x00080008"),imageSubType:t,imageOrientationPatient:He(s),imagePositionPatient:Qe(s),sliceThickness:Ke(s),pixelSpacing:Xe(s),numberOfFrames:s.uint16("x00280008"),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=He(s),t=Qe(s),r=Xe(s),n=Ke(s);let a=null,o=null;r&&(o=r[0],a=r[1]);let i=null,l=null;return e&&(i=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],l=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:s.string("x00200052"),rows:s.uint16("x00280010"),columns:s.uint16("x00280011"),imageOrientationPatient:e,rowCosines:i,columnCosines:l,imagePositionPatient:t,sliceThickness:n,sliceLocation:s.floatString("x00201041"),pixelSpacing:r,rowPixelSpacing:o,columnPixelSpacing:a}}if(t===n.CINE)return{frameTime:s.floatString("x00181063")};if(t===n.IMAGE_PIXEL)return _e(s);if(t===n.VOI_LUT){const e=Oe(s);return{windowCenter:Me(s,"x00281050",1),windowWidth:Me(s,"x00281051",1),voiLUTSequence:Ce(e,s.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:s.floatString("x00281052"),rescaleSlope:s.floatString("x00281053"),rescaleType:s.string("x00281054"),modalityLUTSequence:Ce(s.uint16("x00280103"),s.elements.x00283000)};if(t===n.SOP_COMMON)return{sopClassUID:s.string("x00080016"),sopInstanceUID:s.string("x00080018")};if(t===n.PET_ISOTOPE){const e=s.elements.x00540016;if(void 0===e)return;const t=e.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(t.string("x00181072")||""),radionuclideTotalDose:t.floatString("x00181074"),radionuclideHalfLife:t.floatString("x00181075")}}}if(t===n.OVERLAY_PLANE)return function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=e.elements[`${n}3000`];if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.byteArray[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:e.uint16(`${n}0010`),columns:e.uint16(`${n}0011`),type:e.string(`${n}0040`),x:e.int16(`${n}0050`,1)-1,y:e.int16(`${n}0050`,0)-1,pixelData:o,description:e.string(`${n}0022`),label:e.string(`${n}1500`),roiArea:e.string(`${n}1301`),roiMean:e.string(`${n}1302`),roiStandardDeviation:e.string(`${n}1303`)})}return{overlays:t}}(s);if("transferSyntax"===t){let e;try{e=s.string("x00020010")}catch(e){}return{transferSyntaxUID:e}}return t===n.PET_SERIES?{correctedImage:s.string("x00280051"),units:s.string("x00541001"),decayCorrection:s.string("x00541102")}:t===n.PET_IMAGE?{frameReferenceTime:s.floatString(s.string("x00541300")||""),actualFrameDuration:s.intString(s.string("x00181242"))}:"instance"===t?D(r,e,P):void 0}};let et=[];const tt={add:function(e){return"dicomfile:"+(et.push(e)-1)},get:function(e){return et[e]},remove:function(e){et[e]=void 0},purge:function(){et=[]}};var rt=a(713);function nt(e,t){const{dicomParser:r}=xt;if(e.elements.x7fe00010&&e.elements.x7fe00010.basicOffsetTable.length)return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t);if(function(e){return e.intString("x00280008")!==e.elements.x7fe00010.fragments.length}(e)){const n=r.createJPEGBasicOffsetTable(e,e.elements.x7fe00010);return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t,n)}const n=e.elements.x7fe00010.fragments,a=new rt.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),o=(0,rt.readSequenceItem)(a);if("xfffee000"!==o.tag)throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";a.seek(o.length);const i=a.position;if(t+1>n.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const s=i+n[t].offset+8,l=n[t].length;return new Uint8Array(a.byteArray.buffer.slice(a.byteArray.byteOffset+s,a.byteArray.byteOffset+s+l))}function at(e,t){return e&1<<t}const ot=function(e,t,r){const n=new Uint8Array(r);for(let a=0;a<r;a++){const r=e[Math.floor(a/8)+t],o=a%8;n[a]=at(r,o)?1:0}return n};const it=function(e,t){const r=e.elements.x7fe00010||e.elements.x7fe00008,n=e.uint16("x00280100"),a=e.uint16("x00280010"),o=e.uint16("x00280011");let i=e.uint16("x00280002");"YBR_FULL_422"===e.string("x00280004")&&(i=2,console.warn("Using SamplesPerPixel of 2 for YBR_FULL_422 photometric interpretation.\n See http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.3.html for more information."));const s=r.dataOffset,l=a*o*i;let c;if(8===n){if(c=s+t*l,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+l))}if(16===n){if(c=s+t*l*2,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+2*l))}if(1===n){if(c=s+t*l*.125,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return ot(e.byteArray,c,l)}if(32===n){if(c=s+t*l*4,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+4*l))}throw new Error("unsupported pixel format")};const st=function(e){const t=Re(e),r=parseInt(t.url,10),n=tt.get(r);return new Promise(((e,t)=>{const r=new FileReader;r.onload=t=>{const r=t.target.result;e(r)},r.onerror=t,r.readAsArrayBuffer(n)}))};const lt=function(e,t=0){const r=e.elements.x7fe00010||e.elements.x7fe00008;return r?r.encapsulatedPixelData?nt(e,t):it(e,t):null};function ct(e,t,r=0,n,a,o){const i=(new Date).getTime(),s={cancelFn:void 0,promise:void 0};return s.promise=new Promise(((l,c)=>{e.then((e=>{const u=lt(e,r),f=e.string("x00020010"),d=(new Date).getTime(),m=ye(t,u,f,a);!function(e,t){e.decache=function(){const e=Re(t);Ye.unload(e.url)}}(s,t),m.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=d-i,t.totalTimeInMS=r-i,void 0!==o&&void 0!==o.imageDoneCallback&&o.imageDoneCallback(t),l(t)}),(function(t){c({error:t,dataSet:e})}))}),(function(e){c({error:e})}))})),s}function ut(e){return"dicomweb"===e||"wadouri"===e?B:"dicomfile"===e?st:void 0}function ft(e,t={}){const r=Re(e);delete(t=Object.assign({},t)).loader;const n=ut(r.scheme);if(Ye.isLoaded(r.url)){return function(e,t,r=0,n,a){const o=(new Date).getTime();return{promise:new Promise(((i,s)=>{const l=(new Date).getTime();let c;try{const n=lt(e,r),o=e.string("x00020010");c=ye(t,n,o,a)}catch(t){return void s({error:t,dataSet:e})}c.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=l-o,t.totalTimeInMS=r-o,i(t)}),s)})),cancelFn:void 0}}(Ye.get(r.url,n,e),e,r.pixelDataFrame,r.url,t)}return ct(Ye.load(r.url,n,e),e,r.frame,r.url,t)}const dt={metaData:{getImagePixelModule:_e,getLUTs:Ce,getModalityLUTOutputPixelRepresentation:Oe,getNumberValues:Me,metaDataProvider:Je},dataSetCacheManager:Ye,fileManager:tt,getEncapsulatedImageFrame:nt,getUncompressedImageFrame:it,loadFileRequest:st,loadImageFromPromise:ct,getLoaderForScheme:ut,loadImage:ft,parseImageId:Re,unpackBinaryFrame:ot,register:function(e){e.registerImageLoader("dicomweb",ft),e.registerImageLoader("wadouri",ft),e.registerImageLoader("dicomfile",ft),e.metaData.addProvider(Je)}};const mt=function(e){Ie.register(e),dt.register(e)};let gt,ht;const pt={set cornerstone(e){gt=e,mt(gt)},get cornerstone(){if(!gt){if(gt=window&&window.cornerstone,!gt)throw new Error("cornerstoneDICOMImageLoader requires a copy of Cornerstone to work properly. Please add cornerstoneDICOMImageLoader.external.cornerstone = cornerstone; to your application.");mt(gt)}return gt},set dicomParser(e){ht=e},get dicomParser(){if(!ht){if(!window||!window.dicomParser)throw new Error("cornerstoneDICOMImageLoader requires a copy of dicomParser to work properly. Please add cornerstoneDICOMImageLoader.external.dicomParser = dicomParser; to your application.");ht=window.dicomParser}return ht}},xt=pt;function bt(e,t){const r=e.length,n=new Uint8ClampedArray(r);for(let a=0;a<r;++a)n[a]=e[a]>>t;return n}function wt(e,t,r){const n=e[`${t}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const a=xt.cornerstone.metaData.get("imagePixelModule",e.imageId);return a&&"function"==typeof a.then?a.then((e=>e?e[`${t}PaletteColorLookupTableData`]:r)):Promise.resolve(a?a[`${t}PaletteColorLookupTableData`]:r)}function yt(e,t,r){const n=e.columns*e.rows,a=e.pixelData;Promise.all([wt(e,"red",null),wt(e,"green",null),wt(e,"blue",null)]).then((([o,i,s])=>{if(!o||!i||!s)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const l=o.length;let c=0,u=0;const f=e.redPaletteColorLookupTableDescriptor[1],d=8===e.redPaletteColorLookupTableDescriptor[2]?0:8,m=bt(o,d),g=bt(i,d),h=bt(s,d);if(r)for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e],t[u++]=255}else for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e]}}))}const kt=function(e){R(e)};const Tt=function(e,t){if(t=t||e.transferSyntax,8===e.bitsAllocated&&"1.2.840.10008.1.2.4.50"===t&&(3===e.samplesPerPixel||4===e.samplesPerPixel))return!0},St={convertRGBColorByPixel:e,convertRGBColorByPlane:t,convertYBRFullByPixel:r,convertYBRFullByPlane:n,convertPALETTECOLOR:yt,wadouri:dt,wadors:Ie,configure:kt,convertColorSpace:X,createImage:ye,decodeImageFrame:he,decodeJPEGBaseline8BitColor:J,getImageFrame:pe,getPixelData:z,getMinMax:H,isColorImage:xe,isJPEGBaseline8BitColor:Tt,webWorkerManager:de,internal:U,external:pt}})(),o})()));
|
|
217485
|
+
!function(e,t){ true?module.exports=t(__webpack_require__(12651),__webpack_require__(56660)):0}(this,((e,t)=>(()=>{"use strict";var r={578:(e,t,r)=>{const n=r(823),a=r(187),o=r(592),i=r(604),s=r(249),l=r(968),c=Object.prototype.toString,{Z_NO_FLUSH:u,Z_FINISH:f,Z_OK:d,Z_STREAM_END:m,Z_NEED_DICT:g,Z_STREAM_ERROR:h,Z_DATA_ERROR:p,Z_MEM_ERROR:x}=r(684);function b(e){this.options=a.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let r=n.inflateInit2(this.strm,t.windowBits);if(r!==d)throw new Error(i[r]);if(this.header=new l,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=o.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary),r!==d)))throw new Error(i[r])}function w(e,t){const r=new b(t);if(r.push(e),r.err)throw r.msg||i[r.err];return r.result}b.prototype.push=function(e,t){const r=this.strm,a=this.options.chunkSize,i=this.options.dictionary;let s,l,b;if(this.ended)return!1;for(l=t===~~t?t:!0===t?f:u,"[object ArrayBuffer]"===c.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(a),r.next_out=0,r.avail_out=a),s=n.inflate(r,l),s===g&&i&&(s=n.inflateSetDictionary(r,i),s===d?s=n.inflate(r,l):s===p&&(s=g));r.avail_in>0&&s===m&&r.state.wrap>0&&0!==e[r.next_in];)n.inflateReset(r),s=n.inflate(r,l);switch(s){case h:case p:case g:case x:return this.onEnd(s),this.ended=!0,!1}if(b=r.avail_out,r.next_out&&(0===r.avail_out||s===m))if("string"===this.options.to){let e=o.utf8border(r.output,r.next_out),t=r.next_out-e,n=o.buf2string(r.output,e);r.next_out=t,r.avail_out=a-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(n)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(s!==d||0!==b){if(s===m)return s=n.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},b.prototype.onData=function(e){this.chunks.push(e)},b.prototype.onEnd=function(e){e===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Hq=function(e,t){return(t=t||{}).raw=!0,w(e,t)},r(684)},187:e=>{const t=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);e.exports.assign=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const n=r.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const r in n)t(n,r)&&(e[r]=n[r])}}return e},e.exports.flattenChunks=e=>{let t=0;for(let r=0,n=e.length;r<n;r++)t+=e[r].length;const r=new Uint8Array(t);for(let t=0,n=0,a=e.length;t<a;t++){let a=e[t];r.set(a,n),n+=a.length}return r}},592:e=>{let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){t=!1}const r=new Uint8Array(256);for(let e=0;e<256;e++)r[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;r[254]=r[254]=1,e.exports.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,n,a,o,i=e.length,s=0;for(a=0;a<i;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),s+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(s),o=0,a=0;o<s;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),r<128?t[o++]=r:r<2048?(t[o++]=192|r>>>6,t[o++]=128|63&r):r<65536?(t[o++]=224|r>>>12,t[o++]=128|r>>>6&63,t[o++]=128|63&r):(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63,t[o++]=128|r>>>6&63,t[o++]=128|63&r);return t};e.exports.buf2string=(e,n)=>{const a=n||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,n));let o,i;const s=new Array(2*a);for(i=0,o=0;o<a;){let t=e[o++];if(t<128){s[i++]=t;continue}let n=r[t];if(n>4)s[i++]=65533,o+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&o<a;)t=t<<6|63&e[o++],n--;n>1?s[i++]=65533:t<65536?s[i++]=t:(t-=65536,s[i++]=55296|t>>10&1023,s[i++]=56320|1023&t)}}return((e,r)=>{if(r<65534&&e.subarray&&t)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let n="";for(let t=0;t<r;t++)n+=String.fromCharCode(e[t]);return n})(s,i)},e.exports.utf8border=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+r[e[n]]>t?n:t}},693:e=>{e.exports=(e,t,r,n)=>{let a=65535&e,o=e>>>16&65535,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}},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~e}},968:e=>{e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},365:e=>{const t=16209;e.exports=function(e,r){let n,a,o,i,s,l,c,u,f,d,m,g,h,p,x,b,w,y,k,T,S,D,v,P;const I=e.state;n=e.next_in,v=e.input,a=n+(e.avail_in-5),o=e.next_out,P=e.output,i=o-(r-e.avail_out),s=o+(e.avail_out-257),l=I.dmax,c=I.wsize,u=I.whave,f=I.wnext,d=I.window,m=I.hold,g=I.bits,h=I.lencode,p=I.distcode,x=(1<<I.lenbits)-1,b=(1<<I.distbits)-1;e:do{g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=h[m&x];t:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,0===y)P[o++]=65535&w;else{if(!(16&y)){if(64&y){if(32&y){I.mode=16191;break e}e.msg="invalid literal/length code",I.mode=t;break e}w=h[(65535&w)+(m&(1<<y)-1)];continue t}for(k=65535&w,y&=15,y&&(g<y&&(m+=v[n++]<<g,g+=8),k+=m&(1<<y)-1,m>>>=y,g-=y),g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=p[m&b];;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,16&y){if(T=65535&w,y&=15,g<y&&(m+=v[n++]<<g,g+=8,g<y&&(m+=v[n++]<<g,g+=8)),T+=m&(1<<y)-1,T>l){e.msg="invalid distance too far back",I.mode=t;break e}if(m>>>=y,g-=y,y=o-i,T>y){if(y=T-y,y>u&&I.sane){e.msg="invalid distance too far back",I.mode=t;break e}if(S=0,D=d,0===f){if(S+=c-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}else if(f<y){if(S+=c+f-y,y-=f,y<k){k-=y;do{P[o++]=d[S++]}while(--y);if(S=0,f<k){y=f,k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}}else if(S+=f-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}for(;k>2;)P[o++]=D[S++],P[o++]=D[S++],P[o++]=D[S++],k-=3;k&&(P[o++]=D[S++],k>1&&(P[o++]=D[S++]))}else{S=o-T;do{P[o++]=P[S++],P[o++]=P[S++],P[o++]=P[S++],k-=3}while(k>2);k&&(P[o++]=P[S++],k>1&&(P[o++]=P[S++]))}break}if(64&y){e.msg="invalid distance code",I.mode=t;break e}w=p[(65535&w)+(m&(1<<y)-1)]}}break}}while(n<a&&o<s);k=g>>3,n-=k,g-=k<<3,m&=(1<<g)-1,e.next_in=n,e.next_out=o,e.avail_in=n<a?a-n+5:5-(n-a),e.avail_out=o<s?s-o+257:257-(o-s),I.hold=m,I.bits=g}},823:(e,t,r)=>{const n=r(693),a=r(863),o=r(365),i=r(446),{Z_FINISH:s,Z_BLOCK:l,Z_TREES:c,Z_OK:u,Z_STREAM_END:f,Z_NEED_DICT:d,Z_STREAM_ERROR:m,Z_DATA_ERROR:g,Z_MEM_ERROR:h,Z_BUF_ERROR:p,Z_DEFLATED:x}=r(684),b=16180,w=16190,y=16191,k=16192,T=16194,S=16199,D=16200,v=16206,P=16209,I=16210,E=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function A(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const _=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<b||t.mode>16211?1:0},L=e=>{if(_(e))return m;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=b,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,u},C=e=>{if(_(e))return m;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,L(e)},O=(e,t)=>{let r;if(_(e))return m;const n=e.state;return t<0?(r=0,t=-t):(r=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?m:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,C(e))},M=(e,t)=>{if(!e)return m;const r=new A;e.state=r,r.strm=e,r.window=null,r.mode=b;const n=O(e,t);return n!==u&&(e.state=null),n};let R,F,B=!0;const U=e=>{if(B){R=new Int32Array(512),F=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(i(1,e.lens,0,288,R,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;i(2,e.lens,0,32,F,0,e.work,{bits:5}),B=!1}e.lencode=R,e.lenbits=9,e.distcode=F,e.distbits=5},N=(e,t,r,n)=>{let a;const o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),n>=o.wsize?(o.window.set(t.subarray(r-o.wsize,r),0),o.wnext=0,o.whave=o.wsize):(a=o.wsize-o.wnext,a>n&&(a=n),o.window.set(t.subarray(r-n,r-n+a),o.wnext),(n-=a)?(o.window.set(t.subarray(r-n,r),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=a))),0};e.exports.inflateReset=C,e.exports.inflateReset2=O,e.exports.inflateResetKeep=L,e.exports.inflateInit=e=>M(e,15),e.exports.inflateInit2=M,e.exports.inflate=(e,t)=>{let r,A,L,C,O,M,R,F,B,j,$,G,V,W,q,Z,Y,z,H,Q,X,K,J=0;const ee=new Uint8Array(4);let te,re;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(_(e)||!e.output||!e.input&&0!==e.avail_in)return m;r=e.state,r.mode===y&&(r.mode=k),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,j=M,$=R,K=u;e:for(;;)switch(r.mode){case b:if(0===r.wrap){r.mode=k;break}for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(2&r.wrap&&35615===F){0===r.wbits&&(r.wbits=15),r.check=0,ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0),F=0,B=0,r.mode=16181;break}if(r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&F)<<8)+(F>>8))%31){e.msg="incorrect header check",r.mode=P;break}if((15&F)!==x){e.msg="unknown compression method",r.mode=P;break}if(F>>>=4,B-=4,X=8+(15&F),0===r.wbits&&(r.wbits=X),X>15||X>r.wbits){e.msg="invalid window size",r.mode=P;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=512&F?16189:y,F=0,B=0;break;case 16181:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.flags=F,(255&r.flags)!==x){e.msg="unknown compression method",r.mode=P;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=P;break}r.head&&(r.head.text=F>>8&1),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16182;case 16182:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.time=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,ee[2]=F>>>16&255,ee[3]=F>>>24&255,r.check=a(r.check,ee,4,0)),F=0,B=0,r.mode=16183;case 16183:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.xflags=255&F,r.head.os=F>>8),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16184;case 16184:if(1024&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length=F,r.head&&(r.head.extra_len=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0}else r.head&&(r.head.extra=null);r.mode=16185;case 16185:if(1024&r.flags&&(G=r.length,G>M&&(G=M),G&&(r.head&&(X=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(A.subarray(C,C+G),X)),512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,r.length-=G),r.length))break e;r.length=0,r.mode=16186;case 16186:if(2048&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.name+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=16187;case 16187:if(4096&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.comment+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.comment=null);r.mode=16188;case 16188:if(512&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(65535&r.check)){e.msg="header crc mismatch",r.mode=P;break}F=0,B=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=y;break;case 16189:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}e.adler=r.check=E(F),F=0,B=0,r.mode=w;case w:if(0===r.havedict)return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,d;e.adler=r.check=1,r.mode=y;case y:if(t===l||t===c)break e;case k:if(r.last){F>>>=7&B,B-=7&B,r.mode=v;break}for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}switch(r.last=1&F,F>>>=1,B-=1,3&F){case 0:r.mode=16193;break;case 1:if(U(r),r.mode=S,t===c){F>>>=2,B-=2;break e}break;case 2:r.mode=16196;break;case 3:e.msg="invalid block type",r.mode=P}F>>>=2,B-=2;break;case 16193:for(F>>>=7&B,B-=7&B;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if((65535&F)!=(F>>>16^65535)){e.msg="invalid stored block lengths",r.mode=P;break}if(r.length=65535&F,F=0,B=0,r.mode=T,t===c)break e;case T:r.mode=16195;case 16195:if(G=r.length,G){if(G>M&&(G=M),G>R&&(G=R),0===G)break e;L.set(A.subarray(C,C+G),O),M-=G,C+=G,R-=G,O+=G,r.length-=G;break}r.mode=y;break;case 16196:for(;B<14;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.nlen=257+(31&F),F>>>=5,B-=5,r.ndist=1+(31&F),F>>>=5,B-=5,r.ncode=4+(15&F),F>>>=4,B-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=P;break}r.have=0,r.mode=16197;case 16197:for(;r.have<r.ncode;){for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.lens[ne[r.have++]]=7&F,F>>>=3,B-=3}for(;r.have<19;)r.lens[ne[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,te={bits:r.lenbits},K=i(0,r.lens,0,19,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid code lengths set",r.mode=P;break}r.have=0,r.mode=16198;case 16198:for(;r.have<r.nlen+r.ndist;){for(;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Y<16)F>>>=q,B-=q,r.lens[r.have++]=Y;else{if(16===Y){for(re=q+2;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(F>>>=q,B-=q,0===r.have){e.msg="invalid bit length repeat",r.mode=P;break}X=r.lens[r.have-1],G=3+(3&F),F>>>=2,B-=2}else if(17===Y){for(re=q+3;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=3+(7&F),F>>>=3,B-=3}else{for(re=q+7;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=11+(127&F),F>>>=7,B-=7}if(r.have+G>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=P;break}for(;G--;)r.lens[r.have++]=X}}if(r.mode===P)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=P;break}if(r.lenbits=9,te={bits:r.lenbits},K=i(1,r.lens,0,r.nlen,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid literal/lengths set",r.mode=P;break}if(r.distbits=6,r.distcode=r.distdyn,te={bits:r.distbits},K=i(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,te),r.distbits=te.bits,K){e.msg="invalid distances set",r.mode=P;break}if(r.mode=S,t===c)break e;case S:r.mode=D;case D:if(M>=6&&R>=258){e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,o(e,$),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,r.mode===y&&(r.back=-1);break}for(r.back=0;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Z&&!(240&Z)){for(z=q,H=Z,Q=Y;J=r.lencode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,r.length=Y,0===Z){r.mode=16205;break}if(32&Z){r.back=-1,r.mode=y;break}if(64&Z){e.msg="invalid literal/length code",r.mode=P;break}r.extra=15&Z,r.mode=16201;case 16201:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=16202;case 16202:for(;J=r.distcode[F&(1<<r.distbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(!(240&Z)){for(z=q,H=Z,Q=Y;J=r.distcode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,64&Z){e.msg="invalid distance code",r.mode=P;break}r.offset=Y,r.extra=15&Z,r.mode=16203;case 16203:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.offset+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=P;break}r.mode=16204;case 16204:if(0===R)break e;if(G=$-R,r.offset>G){if(G=r.offset-G,G>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=P;break}G>r.wnext?(G-=r.wnext,V=r.wsize-G):V=r.wnext-G,G>r.length&&(G=r.length),W=r.window}else W=L,V=O-r.offset,G=r.length;G>R&&(G=R),R-=G,r.length-=G;do{L[O++]=W[V++]}while(--G);0===r.length&&(r.mode=D);break;case 16205:if(0===R)break e;L[O++]=r.length,R--,r.mode=D;break;case v:if(r.wrap){for(;B<32;){if(0===M)break e;M--,F|=A[C++]<<B,B+=8}if($-=R,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,O-$):n(r.check,L,$,O-$)),$=R,4&r.wrap&&(r.flags?F:E(F))!==r.check){e.msg="incorrect data check",r.mode=P;break}F=0,B=0}r.mode=16207;case 16207:if(r.wrap&&r.flags){for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=P;break}F=0,B=0}r.mode=16208;case 16208:K=f;break e;case P:K=g;break e;case I:return h;default:return m}return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,(r.wsize||$!==e.avail_out&&r.mode<P&&(r.mode<v||t!==s))&&N(e,e.output,e.next_out,$-e.avail_out)?(r.mode=I,h):(j-=e.avail_in,$-=e.avail_out,e.total_in+=j,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,e.next_out-$):n(r.check,L,$,e.next_out-$)),e.data_type=r.bits+(r.last?64:0)+(r.mode===y?128:0)+(r.mode===S||r.mode===T?256:0),(0===j&&0===$||t===s)&&K===u&&(K=p),K)},e.exports.inflateEnd=e=>{if(_(e))return m;let t=e.state;return t.window&&(t.window=null),e.state=null,u},e.exports.inflateGetHeader=(e,t)=>{if(_(e))return m;const r=e.state;return 2&r.wrap?(r.head=t,t.done=!1,u):m},e.exports.inflateSetDictionary=(e,t)=>{const r=t.length;let a,o,i;return _(e)?m:(a=e.state,0!==a.wrap&&a.mode!==w?m:a.mode===w&&(o=1,o=n(o,t,r,0),o!==a.check)?g:(i=N(e,t,r,r),i?(a.mode=I,h):(a.havedict=1,u)))},e.exports.inflateInfo="pako inflate (from Nodeca project)"},446:e=>{const t=15,r=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),a=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);e.exports=(e,i,s,l,c,u,f,d)=>{const m=d.bits;let g,h,p,x,b,w,y=0,k=0,T=0,S=0,D=0,v=0,P=0,I=0,E=0,A=0,_=null;const L=new Uint16Array(16),C=new Uint16Array(16);let O,M,R,F=null;for(y=0;y<=t;y++)L[y]=0;for(k=0;k<l;k++)L[i[s+k]]++;for(D=m,S=t;S>=1&&0===L[S];S--);if(D>S&&(D=S),0===S)return c[u++]=20971520,c[u++]=20971520,d.bits=1,0;for(T=1;T<S&&0===L[T];T++);for(D<T&&(D=T),I=1,y=1;y<=t;y++)if(I<<=1,I-=L[y],I<0)return-1;if(I>0&&(0===e||1!==S))return-1;for(C[1]=0,y=1;y<t;y++)C[y+1]=C[y]+L[y];for(k=0;k<l;k++)0!==i[s+k]&&(f[C[i[s+k]]++]=k);if(0===e?(_=F=f,w=20):1===e?(_=r,F=n,w=257):(_=a,F=o,w=0),A=0,k=0,y=T,b=u,v=D,P=0,p=-1,E=1<<D,x=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){O=y-P,f[k]+1<w?(M=0,R=f[k]):f[k]>=w?(M=F[f[k]-w],R=_[f[k]-w]):(M=96,R=0),g=1<<y-P,h=1<<v,T=h;do{h-=g,c[b+(A>>P)+h]=O<<24|M<<16|R}while(0!==h);for(g=1<<y-1;A&g;)g>>=1;if(0!==g?(A&=g-1,A+=g):A=0,k++,0==--L[y]){if(y===S)break;y=i[s+f[k]]}if(y>D&&(A&x)!==p){for(0===P&&(P=D),b+=T,v=y-P,I=1<<v;v+P<S&&(I-=L[v+P],!(I<=0));)v++,I<<=1;if(E+=1<<v,1===e&&E>852||2===e&&E>592)return 1;p=A&x,c[p]=D<<24|v<<16|b-u}}return 0!==A&&(c[b+A]=y-P<<24|64<<16),d.bits=D,0}},604:e=>{e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},249:e=>{e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},464:t=>{t.exports=e},713:e=>{e.exports=t}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})();var o={};return(()=>{function e(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++)t[o++]=e[a++],t[o++]=e[a++],t[o++]=e[a++],t[o++]=255;else t.set(e)}function t(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++],t[a++]=255;else for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++]}function r(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128),t[o++]=255}else for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128)}}function n(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128),t[a++]=255}else for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128)}}a.r(o),a.d(o,{configure:()=>kt,convertColorSpace:()=>X,convertPALETTECOLOR:()=>yt,convertRGBColorByPixel:()=>e,convertRGBColorByPlane:()=>t,convertYBRFullByPixel:()=>r,convertYBRFullByPlane:()=>n,createImage:()=>ye,decodeImageFrame:()=>he,decodeJPEGBaseline8BitColor:()=>J,default:()=>St,external:()=>xt,getImageFrame:()=>pe,getMinMax:()=>H,getPixelData:()=>z,internal:()=>U,isColorImage:()=>xe,isJPEGBaseline8BitColor:()=>Tt,wadors:()=>Ie,wadouri:()=>dt,webWorkerManager:()=>de});const i=function(e,t,r){return t=t||0,e&&e.Value?e.Value.length<=t?r:e.Value[t]:r};const s=function(e,t,r){const n=i(e,t,r);if(void 0!==n)return parseFloat(n)};const l=function(e,t){const r=i(e,t);if(void 0!==r)return parseFloat(r)};const c=function(e,t){if(!e)return;if(!e.Value)return;if(!Array.isArray(e.Value))return;if(t&&e.Value.length<t)return;const r=[];for(let t=0;t<e.Value.length;t++)r.push(parseFloat(e.Value[t]));return r};function u(e){const t=e.indexOf(":");return e.substring(t+1)}function f(e,t=!0){return e&&e.Value?e.Value[0]&&t?e.Value[0]:e.Value:e}function d(e,t,r){return{shared:(t?Object.values(t[0]):[]).map((e=>e[0])).filter((e=>void 0!==e&&"object"==typeof e)),perFrame:(e?Object.values(e[r-1]):[]).map((e=>e.Value[0])).filter((e=>void 0!==e&&"object"==typeof e))}}function m(e){let{52009230:t,52009229:r,"00280008":n,...a}=e;return t=f(t,!1),r=f(r,!1),n=f(n),{PerFrameFunctionalGroupsSequence:t,SharedFunctionalGroupsSequence:r,NumberOfFrames:n,rest:a}}function g(e){const t=e.indexOf("/frames/")+8,r=e.slice(0,t),n=parseInt(e.slice(t),10);return{metadata:p[`${r}1`],frame:n}}const h={_retrieveMultiframeMetadata:g,retrieveMultiframeMetadata:function(e){return g(u(e))},isMultiframe:function(e){const t=i(e["00280008"]);return t&&t>1}};let p=[],x={};const b={add:function(e,t){const r=u(e);Object.defineProperty(t,"isMultiframe",{value:h.isMultiframe(t),enumerable:!1}),p[r]=t},get:function(e){const t=u(e),r=p[t];if(r&&!r?.isMultiframe)return r;const n=x[t];if(n)return n;const a=h._retrieveMultiframeMetadata(t);if(!a||!a.metadata)return;const{metadata:o,frame:i}=a;if(o){const e=function(e,t){const{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:a,rest:o}=m(t);if(r||a>1){const{shared:i,perFrame:s}=d(r,n,e),l=Object.assign(t,{frameNumber:e});return[...i,...s].forEach((e=>{Object.entries(e).forEach((([e,t])=>{l[e]=t}))})),Object.assign(o,{"00280008":a},l)}return t}(i,o);return x[t]=e,e}},remove:function(e){const t=u(e);p[t]=void 0,x[t]=void 0},purge:function(){p=[],x={}}};function w(e){return"RECON TOMO"===e||"RECON GATED TOMO"===e}function y(e){return i(e["00080060"]).includes("NM")}function k(e,t){const r=f(e["00080008"],!1);if(r)return r[t]}function T(e){let t=c(e["00200037"],6);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200037"],6))}return t}(e)),t}function S(e){let t=c(e["00200032"],3);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200032"],3))}return t}(e)),t}function D(e,t,r){const n={};for(const a of r)try{const r=t(a,e);if(r){const e={};for(const t in r)if(t in r){e[v(t)]=r[t]}Object.assign(n,e)}}catch(e){console.error(`Error retrieving ${a} data:`,e)}return n}const v=e=>e.charAt(0).toUpperCase()+e.slice(1),P=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function I(e,t){const r=c(e[t]);return r?r[0]:null}const E=function(e){return e?.Value?.length?Array.isArray(e.Value)?e.Value:"object"==typeof e.Value?(console.warn("Warning: Value should be an array, but an object was found. Encapsulating the object in an array."),[e.Value]):[]:[]};function A(e){const t=E(e["00186011"]);if(!t||!t.length)return null;return t.map((e=>{const t=I(e,"0018602C"),r=I(e,"0018602E"),n=I(e,"00186024"),a=I(e,"00186026");return{regionLocationMinY0:I(e,"0018601A"),regionLocationMaxY1:I(e,"0018601E"),regionLocationMinX0:I(e,"00186018"),regionLocationMaxX1:I(e,"0018601C"),referencePixelX0:I(e,"00186020"),referencePixelY0:I(e,"00186022"),physicalDeltaX:t,physicalDeltaY:r,physicalUnitsXDirection:n,physicalUnitsYDirection:a,referencePhysicalPixelValueY:I(e,"0018602A"),referencePhysicalPixelValueX:I(e,"00186028"),regionSpatialFormat:I(e,"00186012"),regionDataType:I(e,"00186014"),regionFlags:I(e,"00186016"),transducerFrequency:I(e,"00186030")}}))}function _(e,t){return{transferSyntaxUID:i(t["00020010"])||i(t["00083002"])}}const L=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(t===n.MULTIFRAME){const{metadata:e,frame:t}=h.retrieveMultiframeMetadata(r);if(!e)return;const{PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,NumberOfFrames:o}=m(e);if(n||o>1){const{shared:e,perFrame:r}=d(n,a,t);return{NumberOfFrames:o,PerFrameFunctionalInformation:r,SharedFunctionalInformation:e}}return{NumberOfFrames:o}}const o=b.get(r);if(o){if(t===n.GENERAL_STUDY)return{studyDescription:i(o["00081030"]),studyDate:a.parseDA(i(o["00080020"])),studyTime:a.parseTM(i(o["00080030"],0,"")),accessionNumber:i(o["00080050"])};if(t===n.GENERAL_SERIES)return{modality:i(o["00080060"]),seriesInstanceUID:i(o["0020000E"]),seriesNumber:l(o["00200011"]),studyInstanceUID:i(o["0020000D"]),seriesDate:a.parseDA(i(o["00080021"])),seriesTime:a.parseTM(i(o["00080031"],0,"")),acquisitionDate:a.parseDA(i(o["00080022"])),acquisitionTime:a.parseTM(i(o["00080032"],0,""))};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:i(o["00080018"]),instanceNumber:l(o["00200013"]),lossyImageCompression:i(o["00282110"]),lossyImageCompressionRatio:l(o["00282112"]),lossyImageCompressionMethod:i(o["00282114"])};if(t===n.PATIENT)return{patientID:i(o["00100020"]),patientName:i(o["00100010"])};if(t===n.PATIENT_STUDY)return{patientAge:l(o["00101010"]),patientSize:l(o["00101020"]),patientSex:i(o["00100040"]),patientWeight:l(o["00101030"])};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=i(o["00080060"]),t=k(o,2);return{modality:e,imageType:i(o["00080008"]),imageSubType:t,imageOrientationPatient:T(o),imagePositionPatient:S(o),sliceThickness:l(o["00180050"]),spacingBetweenSlices:l(o["00180088"]),pixelSpacing:c(o["00280030"],2),numberOfFrames:l(o["00280008"]),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=T(o),t=S(o),r=c(o["00280030"],2);let n=null,a=null;r&&(a=r[0],n=r[1]);let s=null,u=null;return e&&(s=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],u=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:i(o["00200052"]),rows:l(o["00280010"]),columns:l(o["00280011"]),imageOrientationPatient:e,rowCosines:s,columnCosines:u,imagePositionPatient:t,sliceThickness:l(o["00180050"]),sliceLocation:l(o["00201041"]),pixelSpacing:r,rowPixelSpacing:a,columnPixelSpacing:n}}if(t===n.ULTRASOUND_ENHANCED_REGION)return A(o);if(t===n.CALIBRATION){if("US"===i(o["00080060"])){return{sequenceOfUltrasoundRegions:A(o)}}}if(t===n.IMAGE_URL)return function(e,t){const{transferSyntaxUID:r}=_(e,t),n=xt.cornerstone.utilities.isVideoTransferSyntax(r),a=e.substring(7),o=a.replace("/frames/","/thumbnail/");let i=a.replace("/frames/","/rendered/");n&&(i=i.replace("/rendered/1","/rendered"));return{isVideo:n,rendered:i,thumbnail:o}}(r,o);if(t===n.CINE)return function(e,t){const r=i(t["00180040"]);return{cineRate:r,numberOfFrames:l(t["00280008"])}}(0,o);if(t===n.IMAGE_PIXEL)return{samplesPerPixel:l(o["00280002"]),photometricInterpretation:i(o["00280004"]),rows:l(o["00280010"]),columns:l(o["00280011"]),bitsAllocated:l(o["00280100"]),bitsStored:l(o["00280101"]),highBit:i(o["00280102"]),pixelRepresentation:l(o["00280103"]),planarConfiguration:l(o["00280006"]),pixelAspectRatio:i(o["00280034"]),smallestPixelValue:l(o["00280106"]),largestPixelValue:l(o["00280107"]),redPaletteColorLookupTableDescriptor:c(o["00281101"]),greenPaletteColorLookupTableDescriptor:c(o["00281102"]),bluePaletteColorLookupTableDescriptor:c(o["00281103"]),redPaletteColorLookupTableData:c(o["00281201"]),greenPaletteColorLookupTableData:c(o["00281202"]),bluePaletteColorLookupTableData:c(o["00281203"])};if(t===n.VOI_LUT)return{windowCenter:c(o["00281050"],1),windowWidth:c(o["00281051"],1)};if(t===n.MODALITY_LUT)return{rescaleIntercept:l(o["00281052"]),rescaleSlope:l(o["00281053"]),rescaleType:i(o["00281054"])};if(t===n.SOP_COMMON)return{sopClassUID:i(o["00080016"]),sopInstanceUID:i(o["00080018"])};if(t===n.PET_ISOTOPE){const e=i(o["00540016"]);if(void 0===e)return;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(i(e["00181072"],0,"")),radiopharmaceuticalStartDateTime:i(e["00181078"],0,""),radionuclideTotalDose:l(e["00181074"]),radionuclideHalfLife:l(e["00181075"])}}}return t===n.OVERLAY_PLANE?function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=i(e[`${n}3000`]);if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.Value[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:l(e[`${n}0010`]),columns:l(e[`${n}0011`]),type:i(e[`${n}0040`]),x:l(e[`${n}0050`],1)-1,y:l(e[`${n}0050`],0)-1,pixelData:o,description:i(e[`${n}0022`]),label:i(e[`${n}1500`]),roiArea:i(e[`${n}1301`]),roiMean:i(e[`${n}1302`]),roiStandardDeviation:i(e[`${n}1303`])})}return{overlays:t}}(o):"transferSyntax"===t?_(r,o):t===n.PET_SERIES?{correctedImage:i(o["00280051"]),units:i(o["00541001"]),decayCorrection:i(o["00541102"])}:t===n.PET_IMAGE?{frameReferenceTime:l(o["00541300"]),actualFrameDuration:l(o["00181242"])}:"instance"===t?D(r,e,P):void 0}};function C(e,t,r){if(r+e.length>t.length)return!1;let n=r;for(let r=0;r<e.length;r++)if(e[r]!==t[n++])return!1;return!0}const O=function(e,t,r){r=r||0;const n=function(e){const t=new Uint8Array(e.length);for(let r=0,n=e.length;r<n;r++)t[r]=e.charCodeAt(r);return t}(t);for(let t=r;t<e.length;t++)if(n[0]===e[t]&&C(n,e,t))return t;return-1};let M={open(e,t){e.open("get",t,!0)},beforeSend(){},beforeProcessing:e=>Promise.resolve(e.response),imageCreated(){},strict:!1,decodeConfig:{convertFloatPixelDataToInt:!0,use16BitDataType:!1}};function R(e){M=Object.assign(M,e)}function F(){return M}const B=function(e,t,r={},n={}){const{cornerstone:a}=xt,o=F(),i=e=>{if("function"==typeof o.errorInterceptor){const t=new Error("request failed");t.request=e,t.response=e.response,t.status=e.status,o.errorInterceptor(t)}},s=new XMLHttpRequest,l=new Promise(((l,c)=>{o.open(s,e,r,n);const u=o.beforeSend(s,t,r,n);s.responseType="arraybuffer";const f=Object.assign({},r,u);Object.keys(f).forEach((function(t){null!==f[t]&&("Accept"===t&&-1!==e.indexOf("accept=")||s.setRequestHeader(t,f[t]))})),n.deferred={resolve:l,reject:c},n.url=e,n.imageId=t,s.onloadstart=function(r){o.onloadstart&&o.onloadstart(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadstart",i)},s.onloadend=function(r){o.onloadend&&o.onloadend(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadend",i)},s.onreadystatechange=function(e){o.onreadystatechange?o.onreadystatechange(e,n):4===s.readyState&&(200===s.status||206===s.status?o.beforeProcessing(s).then(l).catch((()=>{i(s),c(s)})):(i(s),c(s)))},s.onprogress=function(e){const t=e.loaded;let r,a;e.lengthComputable&&(r=e.total,a=Math.round(t/r*100)),o.onprogress&&o.onprogress(e,n)},s.onerror=function(){i(s),c(s)},s.onabort=function(){i(s),c(s)},s.send()}));return l.xhr=s,l},U={xhrRequest:B,setOptions:R,getOptions:F};var N=a(464);const{ImageQualityStatus:j}=N.Enums;function $(e,t,r){r||={};const n=new Uint8Array(t),a=!!r?.isPartial;if(-1===e.indexOf("multipart"))return{contentType:e,imageQualityStatus:a?j.SUBRESOLUTION:j.FULL_RESOLUTION,pixelData:n};let{tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l}=r;if(o||=O(n,"\r\n\r\n"),-1===o)throw new Error("invalid response - no multipart mime header");if(!s){const e=function(e,t,r){t=t||0,r=r||e.length-t;let n="";for(let a=t;a<t+r;a++)n+=String.fromCharCode(e[a]);return n}(n,0,o);if(i=e.split("\r\n"),s=function(e){for(let t=0;t<e.length;t++)if("--"===e[t].substr(0,2))return e[t]}(i),!s)throw new Error("invalid response - no boundary marker")}const c=o+4,u=O(n,s,c);if(-1===u&&!a)throw new Error("invalid response - terminating boundary not found");return l||=function(e){for(let t=0;t<e.length;t++)if("Content-Type:"===e[t].substr(0,13))return e[t].substr(13).trim()}(i),r.tokenIndex=o,r.boundary=s,r.responseHeaders=i,r.multipartContentType=l,r.isPartial=-1===u,{contentType:l,extractDone:!a||-1!==u,tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l,pixelData:t.slice(c,u-2)}}const{ImageQualityStatus:G}=N.Enums;function V(e,t=!0){return t?e.imageQualityStatus??G.FULL_RESOLUTION:G.SUBRESOLUTION}const{ProgressiveIterator:W}=N.utilities;function q(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i={}}=n,s=o.minChunkSize||131072,l=new W("streamRequest");return l.generate((async(n,l)=>{const c=Object.assign({},r);Object.keys(c).forEach((function(t){null===c[t]&&(c[t]=void 0),"Accept"===t&&-1!==e.indexOf("accept=")&&(c[t]=void 0)}));try{const a=await fetch(e,{headers:r,signal:void 0});if(200!==a.status)throw new Error(`Couldn't retrieve ${e} got status ${a.status}`);const l=a.body.getReader(),c=a.headers,u=c.get("content-type"),f=Number(c.get("Content-Length"));let d=!1,m=i.encodedData,g=i.lastSize||0;for(i.isPartial=!0;!d;){const{done:r,value:a}=await l.read();if(m=Z(m,a),!m){if(d)throw new Error(`Done but no image frame available ${t}`);continue}if(d=r||m.byteLength===f,!d&&m.length<g+s)continue;g=m.length,i.isPartial=!r;const c=$(u,m,i),h=V(o,d),p={url:e,imageId:t,...c,percentComplete:r?100:100*c.pixelData?.length/f,imageQualityStatus:h,done:d};n.add(p,d)}}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}})(),console.error(e),l(e)}})),l.getNextPromise()}function Z(e,t){if(!e)return t;if(!t)return e;const r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}function Y(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i}=n,s=i.chunkSize||function(e,t,r){const n=t[r];if("function"!=typeof n)return n;const a=b.get(e);return n(a,e)}(t,o,"chunkSize")||65536,l=new Promise((async(t,n)=>{const l=Object.assign({},r);Object.keys(l).forEach((function(e){null!==l[e]&&void 0!==l[e]||delete l[e]}));try{i.encodedData||(i.chunkSize=s,i.rangesFetched=0);const r=function(e,t){const{totalBytes:r,encodedData:n,chunkSize:a=65536}=e,{rangeIndex:o=0}=t;if(!(-1!==o||r&&n))return[0,""];if(-1===o||n?.byteLength>r-a)return[n?.byteLength||0,""];return[n?.byteLength||0,a*(o+1)-1]}(i,o),{encodedData:n,responseHeaders:a}=await async function(e,t,r,n){r&&(t=Object.assign(t,{Range:`bytes=${r[0]}-${r[1]}`}));let{encodedData:a}=n;if(r[1]&&a?.byteLength>r[1])return n;const o=await fetch(e,{headers:t,signal:void 0}),i=await o.arrayBuffer(),s=new Uint8Array(i),{status:l}=o;let c;a?(c=new Uint8Array(a.length+s.length),c.set(a,0),c.set(s,a.length),n.rangesFetched=1):(c=new Uint8Array(s.length),c.set(s,0),n.rangesFetched++);n.encodedData=a=c,n.responseHeaders=o.headers;const u=o.headers.get("Content-Range");u?n.totalBytes=Number(u.split("/")[1]):206===l&&r?""===r[1]||a?.length<r[1]?n.totalBytes=a.byteLength:n.totalBytes=Number.MAX_SAFE_INTEGER:n.totalBytes=a?.byteLength;return n}(e,l,r,i),c=a.get("content-type"),{totalBytes:u}=i,f=u===n.byteLength,d=$(c,n,{isPartial:!0}),m=V(o,f||d.extractDone);t({...d,imageQualityStatus:m,percentComplete:d.extractDone?100:100*s/u})}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}else console.warn("rangeRequest:Caught",e)})(e),console.error(e),n(e)}}));return l}const z=function(e,t,r="application/octet-stream",n){const{streamingData:a,retrieveOptions:o={}}=n||{},i={Accept:r};let s=o.urlArguments?`${e}${-1===e.indexOf("?")?"?":"&"}${o.urlArguments}`:e;if(o.framesPath&&(s=s.replace("/frames/",o.framesPath)),a?.url!==s&&(n.streamingData={url:s}),void 0!==o.rangeIndex)return Y(s,t,i,n);if(o.streaming)return q(s,t,i,n);const l=B(s,t,i),{xhr:c}=l;return l.then((function(e){const t=$(c.getResponseHeader("Content-Type")||"application/octet-stream",new Uint8Array(e));return t.imageQualityStatus=V(o,!0),t}))};const H=function(e){let t,r=e[0],n=e[0];const a=e.length;for(let o=1;o<a;o++)t=e[o],r=Math.min(r,t),n=Math.max(n,t);return{min:r,max:n}};function Q(r,n,a){0===r.planarConfiguration?e(r.pixelData,n,a):t(r.pixelData,n,a)}function X(e,t,a){if("RGB"===e.photometricInterpretation)Q(e,t,a);else if("YBR_RCT"===e.photometricInterpretation)Q(e,t,a);else if("YBR_ICT"===e.photometricInterpretation)Q(e,t,a);else if("PALETTE COLOR"===e.photometricInterpretation)yt(e,t,a);else if("YBR_FULL_422"===e.photometricInterpretation)!function(e,t,r){if(void 0===e)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!=0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let a=0,o=0;if(r)for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=255,t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128),t[o++]=255}else for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128)}}(e.pixelData,t,a);else{if("YBR_FULL"!==e.photometricInterpretation)throw new Error(`No color space conversion for photometric interpretation ${e.photometricInterpretation}`);!function(e,t,a){0===e.planarConfiguration?r(e.pixelData,t,a):n(e.pixelData,t,a)}(e,t,a)}}function K(e){return function(e){let t;try{return decodeURIComponent(escape(e))}catch(r){if(t=r,t instanceof URIError)return e;throw t}}(String.fromCharCode.apply(null,Array.prototype.slice.apply(new Uint8Array(e))))}const J=function(e,t,r){const n=(new Date).getTime(),a=new Blob([t],{type:"image/jpeg"});return new Promise(((t,o)=>{const i=new FileReader;void 0===i.readAsBinaryString?i.readAsArrayBuffer(a):i.readAsBinaryString(a),i.onload=function(){const a=new Image;a.onload=function(){r.height=a.height,r.width=a.width,e.rows=a.height,e.columns=a.width;const o=r.getContext("2d");o.drawImage(this,0,0);const i=o.getImageData(0,0,a.width,a.height),s=(new Date).getTime();e.pixelData=new Uint8Array(i.data.buffer),e.imageData=i,e.decodeTimeInMS=s-n;const l=H(e.pixelData);e.smallestPixelValue=l.min,e.largestPixelValue=l.max,e.pixelDataLength=e.pixelData.length,t(e)},a.onerror=function(e){o(e)},void 0===i.readAsBinaryString?a.src=`data:image/jpeg;base64,${window.btoa(K(i.result))}`:a.src=`data:image/jpeg;base64,${window.btoa(i.result)}`},i.onerror=e=>{o(e)}}))};function ee(){return new Worker(a.p+"index.worker.5a5a581362c14598c3d9.worker.js")}let te=0;const re=[],ne=[],ae=F(),oe={maxWebWorkers:navigator.hardwareConcurrency||1,startWebWorkersOnDemand:!0,webWorkerTaskPaths:[],taskConfiguration:{decodeTask:{initializeCodecsOnStartup:!1,strict:ae.strict}}};let ie;const se={maxWebWorkers:0,numWebWorkers:0,numTasksQueued:0,numTasksExecuting:0,numTasksCompleted:0,totalTaskTimeInMS:0,totalTimeDelayedInMS:0};function le(){if(re.length){for(let e=0;e<ne.length;e++)if("ready"===ne[e].status){ne[e].status="busy";const t=re.shift();t.start=(new Date).getTime();const r=(new Date).getTime();return se.totalTimeDelayedInMS+=r-t.added,ne[e].task=t,ne[e].worker.postMessage({taskType:t.taskType,workerIndex:e,data:t.data},t.transferList),void se.numTasksExecuting++}ne.length<ie.maxWebWorkers&&ue()}}function ce(e){if("initialize"===e.data.taskType)ne[e.data.workerIndex].status="ready",le();else{const t=ne[e.data.workerIndex].task.start,r="success"===e.data.status?"resolve":"reject";try{ne[e.data.workerIndex].task.deferred[r](e.data.result)}catch(e){console.warn("Caught error delivering response",e)}ne[e.data.workerIndex].task=void 0,se.numTasksExecuting--,ne[e.data.workerIndex].status="ready",se.numTasksCompleted++;const n=(new Date).getTime();se.totalTaskTimeInMS+=n-t,le()}}function ue(){if(ne.length>=ie.maxWebWorkers)return;const e=new ee;ne.push({worker:e,status:"initializing"}),e.addEventListener("message",ce),e.postMessage({taskType:"initialize",workerIndex:ne.length-1,config:ie})}function fe(e){if(ie=e=e||oe,ie.maxWebWorkers=ie.maxWebWorkers||navigator.hardwareConcurrency||1,!ie.startWebWorkersOnDemand)for(let e=0;e<ie.maxWebWorkers;e++)ue()}const de={initialize:fe,loadWebWorkerTask:function(e,t){ie.webWorkerTaskPaths.push(e),t&&(ie.taskConfiguration=Object.assign(ie.taskConfiguration,t));for(let t=0;t<ne.length;t++)ne[t].worker.postMessage({taskType:"loadWebWorkerTask",workerIndex:ne.length-1,sourcePath:e,config:ie})},addTask:function(e,t,r=0,n){ie||fe();let a={resolve:void 0,reject:void 0};const o=new Promise(((e,t)=>{a={resolve:e,reject:t}}));let i;for(i=0;i<re.length&&!(re[i].priority<r);i++);const s=te++;return re.splice(i,0,{taskId:s,taskType:e,status:"ready",added:(new Date).getTime(),data:t,deferred:a,priority:r,transferList:n}),le(),{taskId:s,promise:o}},getStatistics:function(){return se.maxWebWorkers=ie.maxWebWorkers,se.numWebWorkers=ne.length,se.numTasksQueued=re.length,se},setTaskPriority:function(e,t=0){for(let r=0;r<re.length;r++)if(re[r].taskId===e){const e=re.splice(r,1)[0];for(e.priority=t,r=0;r<re.length&&!(re[r].priority<t);r++);return re.splice(r,0,e),!0}return!1},cancelTask:function(e,t){for(let r=0;r<re.length;r++)if(re[r].taskId===e){return re.splice(r,1).deferred.reject(t),!0}return!1},webWorkers:ne,terminate:function(){for(let e=0;e<ne.length;e++)ne[e].worker.terminate();ne.length=0,ie=void 0}};var me=a(578);function ge(e,t,r,n,a){const o={...n};delete o.loader,delete o.streamingData;const i=o.priority||void 0,s=o.transferPixelData?[r.buffer]:void 0;return de.addTask("decodeTask",{imageFrame:e,transferSyntax:t,pixelData:r,options:o,decodeConfig:a},i,s).promise}window.pako={inflateRaw:me.Hq};const he=function(e,t,r,n,a={},o){switch(t){case"1.2.840.10008.1.2":case"1.2.840.10008.1.2.1":case"1.2.840.10008.1.2.2":case"1.2.840.10008.1.2.1.99":case"1.2.840.10008.1.2.5":case"1.2.840.10008.1.2.4.51":case"1.2.840.10008.1.2.4.57":case"1.2.840.10008.1.2.4.70":case"1.2.840.10008.1.2.4.80":case"1.2.840.10008.1.2.4.81":case"1.2.840.10008.1.2.4.90":case"1.2.840.10008.1.2.4.91":case"3.2.840.10008.1.2.4.96":case"1.2.840.10008.1.2.4.201":case"1.2.840.10008.1.2.4.202":case"1.2.840.10008.1.2.4.203":return ge(e,t,r,a,o);case"1.2.840.10008.1.2.4.50":return 8!==e.bitsAllocated||3!==e.samplesPerPixel&&4!==e.samplesPerPixel?ge(e,t,r,a,o):J(e,r,n)}return Promise.reject(new Error(`No decoder for transfer syntax ${t}`))};const pe=function(e){const{cornerstone:t}=xt,r=t.metaData.get("imagePixelModule",e);return{samplesPerPixel:r.samplesPerPixel,photometricInterpretation:r.photometricInterpretation,planarConfiguration:r.planarConfiguration,rows:r.rows,columns:r.columns,bitsAllocated:r.bitsAllocated,bitsStored:r.bitsStored,pixelRepresentation:r.pixelRepresentation,smallestPixelValue:r.smallestPixelValue,largestPixelValue:r.largestPixelValue,redPaletteColorLookupTableDescriptor:r.redPaletteColorLookupTableDescriptor,greenPaletteColorLookupTableDescriptor:r.greenPaletteColorLookupTableDescriptor,bluePaletteColorLookupTableDescriptor:r.bluePaletteColorLookupTableDescriptor,redPaletteColorLookupTableData:r.redPaletteColorLookupTableData,greenPaletteColorLookupTableData:r.greenPaletteColorLookupTableData,bluePaletteColorLookupTableData:r.bluePaletteColorLookupTableData,pixelData:void 0,imageId:e}};function xe(e){return"RGB"===e||"PALETTE COLOR"===e||"YBR_FULL"===e||"YBR_FULL_422"===e||"YBR_PARTIAL_422"===e||"YBR_PARTIAL_420"===e||"YBR_RCT"===e||"YBR_ICT"===e}let be="";function we(e){const t=function(e,t){let r;return Number.isInteger(e)&&Number.isInteger(t)&&(e>=0?t<=255?r=Uint8Array:t<=65535&&(r=Uint16Array):e>=-128&&t<=127?r=Int8Array:e>=-32768&&t<=32767&&(r=Int16Array)),r||Float32Array}(e.smallestPixelValue,e.largestPixelValue);if(!t)throw new Error("Could not apply a typed array to the pixel data");{const r=new t(e.pixelData);e.pixelData=r}}const ye=function(e,t,r,n={}){const a=n.useRGBA;if(n.preScale={enabled:!(!n.preScale||void 0===n.preScale.enabled)&&n.preScale.enabled},!t?.length)return Promise.reject(new Error("The pixel data is missing"));const{cornerstone:o}=xt,{MetadataModules:i}=o.Enums,s=document.createElement("canvas"),l=pe(e);if(l.decodeLevel=n.decodeLevel,n.allowFloatRendering=o.canRenderFloatTextures(),n.preScale.enabled){const t=function(e,t){const r=e.get("modalityLutModule",t)||{},n=e.get("generalSeriesModule",t)||{},{modality:a}=n,o={rescaleSlope:r.rescaleSlope,rescaleIntercept:r.rescaleIntercept,modality:a},i=e.get("scalingModule",t)||{};return{...o,..."PT"===a&&{suvbw:i.suvbw}}}(o.metaData,e);t&&(n.preScale={...n.preScale,scalingParameters:t})}n.isSharedArrayBuffer=n.targetBuffer?.arrayBuffer&&n.targetBuffer.arrayBuffer instanceof SharedArrayBuffer;const{decodeConfig:c}=F();c.use16BitDataType=!!(n&&"Uint16Array"===n.targetBuffer?.type||"Int16Array"===n.targetBuffer?.type)||(n.useNativeDataType||c.use16BitDataType),Object.keys(l).forEach((e=>{("function"==typeof l[e]||l[e]instanceof Promise)&&delete l[e]}));const u=he(l,r,t,s,n,c),{use16BitDataType:f}=c,d=xe(l.photometricInterpretation);return new Promise(((t,r)=>{u.then((function(r){if(n.skipCreateImage)return t(r);let l=!1;if(n.targetBuffer&&n.targetBuffer.type&&!d){const{arrayBuffer:e,type:t,offset:a=0,length:o}=n.targetBuffer,i=r.pixelDataLength,s=a,c=null!=o?o:i-s,u={Uint8Array,Uint16Array:f?Uint16Array:void 0,Int16Array:f?Int16Array:void 0,Float32Array};if(c!==r.pixelDataLength)throw new Error(`target array for image does not have the same length (${c}) as the decoded image length (${r.pixelDataLength}).`);const d=u[t],m=e?new d(e,s,c):new d(r.pixelData);if(c!==r.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");r.pixelData=m,l=!0}l||we(r);const c=o.metaData.get(i.IMAGE_PLANE,e)||{},u=o.metaData.get(i.VOI_LUT,e)||{},m=o.metaData.get(i.MODALITY_LUT,e)||{},g=o.metaData.get(i.SOP_COMMON,e)||{},h=o.metaData.get(i.CALIBRATION,e)||{},{rows:p,columns:x}=r;if(d){if(function(e){if(void 0===e)return!1;const{rows:t,columns:r,photometricInterpretation:n,pixelDataLength:a}=e;return a!==4*r*t&&(n.endsWith("420")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*t:n.endsWith("422")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*Math.ceil(t/2)+Math.floor(t/2)*r:"RGB"!==n)}(r)){s.height=r.rows,s.width=r.columns;let e=s.getContext("2d").createImageData(r.columns,r.rows);a||(e={...e,data:new Uint8ClampedArray(r.samplesPerPixel*r.columns*r.rows)}),X(r,e.data,a),r.imageData=e,r.pixelData=e.data,r.pixelDataLength=e.data.length}else if(!a&&r.pixelDataLength===4*p*x){const e=new Uint8Array(r.pixelData.length/4*3);r.pixelData=function(e,t){const r=e.length/4;let n=0,a=0;for(let o=0;o<r;o++)t[a++]=e[n++],t[a++]=e[n++],t[a++]=e[n++],n++;return t}(r.pixelData,e),r.pixelDataLength=r.pixelData.length}const e=H(r.pixelData);r.smallestPixelValue=e.min,r.largestPixelValue=e.max}const b={imageId:e,color:d,calibration:h,columnPixelSpacing:c.columnPixelSpacing,columns:r.columns,height:r.rows,preScale:r.preScale,intercept:m.rescaleIntercept?m.rescaleIntercept:0,slope:m.rescaleSlope?m.rescaleSlope:1,invert:"MONOCHROME1"===r.photometricInterpretation,minPixelValue:r.smallestPixelValue,maxPixelValue:r.largestPixelValue,rowPixelSpacing:c.rowPixelSpacing,rows:r.rows,sizeInBytes:r.pixelData.byteLength,width:r.columns,windowCenter:u.windowCenter?u.windowCenter[0]:void 0,windowWidth:u.windowWidth?u.windowWidth[0]:void 0,voiLUTFunction:u.voiLUTFunction?u.voiLUTFunction:void 0,decodeTimeInMS:r.decodeTimeInMS,floatPixelData:void 0,imageFrame:r,rgba:d&&a,getPixelData:()=>r.pixelData,getCanvas:void 0,numComps:void 0};var w;if(b.color&&(b.getCanvas=function(){if(be===e)return s;const t=b.columns,n=b.rows;s.height=n,s.width=t;const a=s.getContext("2d"),o=a.createImageData(t,n),i=r.pixelData;if(i.length===t*n*4)for(let e=0;e<i.length;e++)o.data[e]=i[e];else if(i.length===t*n*3){let e=0;for(let t=0;t<i.length;t+=3)o.data[e++]=i[t],o.data[e++]=i[t+1],o.data[e++]=i[t+2],o.data[e++]=255}return r.pixelData=o.data,r.pixelDataLength=o.data.length,r.imageData=o,a.putImageData(r.imageData,0,0),be=e,s}),m.modalityLUTSequence&&m.modalityLUTSequence.length>0&&("1.2.840.10008.5.1.4.1.1.12.1"!==(w=g.sopClassUID)&&"1.2.840.10008.5.1.4.1.1.12.2.1"!==w)&&(b.modalityLUT=m.modalityLUTSequence[0]),u.voiLUTSequence&&u.voiLUTSequence.length>0&&(b.voiLUT=u.voiLUTSequence[0]),b.color&&(b.windowWidth=256,b.windowCenter=128),void 0===b.windowCenter||void 0===b.windowWidth){const e=b.imageFrame.minAfterScale,t=b.imageFrame.maxAfterScale;b.windowWidth=t-e,b.windowCenter=(t+e)/2}t(b)}),r)}))},{ProgressiveIterator:ke}=N.utilities,{ImageQualityStatus:Te}=N.Enums,Se=new Set(["3.2.840.10008.1.2.4.96","1.2.840.10008.1.2.4.202","1.2.840.10008.1.2.4.203"]);function De(e){const t="1.2.840.10008.1.2";if(!e)return t;const r=e.split(";"),n={};r.forEach((e=>{const t=e.split("=");if(2!==t.length)return;const r=t[1].trim().replace(/"/g,"");n[t[0].trim()]=r}));const a={"image/jpeg":"1.2.840.10008.1.2.4.50","image/x-dicom-rle":"1.2.840.10008.1.2.5","image/x-jls":"1.2.840.10008.1.2.4.80","image/jls":"1.2.840.10008.1.2.4.80","image/jll":"1.2.840.10008.1.2.4.70","image/jp2":"1.2.840.10008.1.2.4.90","image/jpx":"1.2.840.10008.1.2.4.92","image/jphc":"3.2.840.10008.1.2.4.96","image/jxl":"1.2.840.10008.1.2.4.140"};return n["transfer-syntax"]?n["transfer-syntax"]:e&&!Object.keys(n).length&&a[e]?a[e]:n.type&&a[n.type]?a[n.type]:a[e]?a[e]:t}function ve(e,t=4){const r=e/100-.02;return r>1/4?Math.min(t,0):r>1/16?Math.min(t,1):r>1/64?Math.min(t,2):Math.min(t,3)}const Pe=function(e,t={}){const r=xt.cornerstone.imageRetrievalPoolManager,n=(new Date).getTime(),a=new ke("decompress"),o=t.requestType||"interaction",i=t.additionalDetails||{imageId:e},s=void 0===t.priority?5:t.priority,l=t.addToBeginning||!1,c=e.substring(7);return r.addRequest(async function(e,r,o){a.generate((async a=>{const i=ke.as(z(e,r,o,t));let s=10;for await(const e of i){const{pixelData:o,imageQualityStatus:i=Te.FULL_RESOLUTION,percentComplete:l,done:c=!0,extractDone:u=!0}=e,f=De(e.contentType);if(!u&&!Se.has(f))continue;const d=e.decodeLevel??(i===Te.FULL_RESOLUTION?0:ve(l,t.retrieveOptions?.decodeLevel));if(c||!(s<=d))try{const e={...t,decodeLevel:d},l=await ye(r,o,f,e),u=(new Date).getTime();l.loadTimeInMS=u-n,l.transferSyntaxUID=f,l.imageQualityStatus=i,a.add(l,c),s=d}catch(e){if(u)throw console.warn("Couldn't decode",e),e}}}))}.bind(this,c,e,"multipart/related; type=application/octet-stream; transfer-syntax=*"),o,i,s,l),{promise:a.getDonePromise(),cancelFn:void 0}};const Ie={metaData:{getNumberString:s,getNumberValue:l,getNumberValues:c,getValue:i,metaDataProvider:L},findIndexOfString:O,getPixelData:z,loadImage:Pe,metaDataManager:b,register:function(e){e.registerImageLoader("wadors",Pe),e.metaData.addProvider(L)}};function Ee(e,t){if(e.elements[t]&&6===e.elements[t].length)return[e.uint16(t,0),e.uint16(t,1),e.uint16(t,2)]}function Ae(e,t,r){const n=[],a=e.elements[t];for(let o=0;o<r[0];o++)16===r[2]?n[o]=e.uint16(t,o):n[o]=e.byteArray[o+a.dataOffset];return n}const _e=function(e){const t={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return function(e,t){0===e.uint16("x00280103")?(t.smallestPixelValue=e.uint16("x00280106"),t.largestPixelValue=e.uint16("x00280107")):(t.smallestPixelValue=e.int16("x00280106"),t.largestPixelValue=e.int16("x00280107"))}(e,t),"PALETTE COLOR"===t.photometricInterpretation&&e.elements.x00281101&&function(e,t){t.redPaletteColorLookupTableDescriptor=Ee(e,"x00281101"),t.greenPaletteColorLookupTableDescriptor=Ee(e,"x00281102"),t.bluePaletteColorLookupTableDescriptor=Ee(e,"x00281103"),0===t.redPaletteColorLookupTableDescriptor[0]&&(t.redPaletteColorLookupTableDescriptor[0]=65536,t.greenPaletteColorLookupTableDescriptor[0]=65536,t.bluePaletteColorLookupTableDescriptor[0]=65536);const r=t.redPaletteColorLookupTableDescriptor[0],n=e.elements.x00281201.length===r?8:16;t.redPaletteColorLookupTableDescriptor[2]!==n&&(t.redPaletteColorLookupTableDescriptor[2]=n,t.greenPaletteColorLookupTableDescriptor[2]=n,t.bluePaletteColorLookupTableDescriptor[2]=n),t.redPaletteColorLookupTableData=Ae(e,"x00281201",t.redPaletteColorLookupTableDescriptor),t.greenPaletteColorLookupTableData=Ae(e,"x00281202",t.greenPaletteColorLookupTableDescriptor),t.bluePaletteColorLookupTableData=Ae(e,"x00281203",t.bluePaletteColorLookupTableDescriptor)}(e,t),t};function Le(e,t){let r=t.uint16("x00283002",0);0===r&&(r=65535);let n=0;n=0===e?t.uint16("x00283002",1):t.int16("x00283002",1);const a={id:"1",firstValueMapped:n,numBitsPerEntry:t.uint16("x00283002",2),lut:[]};for(let n=0;n<r;n++)a.lut[n]=0===e?t.uint16("x00283006",n):t.int16("x00283006",n);return a}const Ce=function(e,t){if(!t||!t.items||!t.items.length)return;const r=[];for(let n=0;n<t.items.length;n++){const a=Le(e,t.items[n].dataSet);a&&r.push(a)}return r};const Oe=function(e){const t=e.string("x00080016");if("1.2.840.10008.5.1.4.1.1.2"===t||"1.2.840.10008.5.1.4.1.1.2.1"===t)return 1;const r=e.floatString("x00281052"),n=e.floatString("x00281053");if(void 0!==r&&void 0!==n){const t=function(e){const t=e.uint16("x00280103"),r=e.uint16("x00280101");return 0===t?0:-1<<r-1}(e);return t*n+r<0?1:0}return e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")};const Me=function(e,t,r){const n=[],a=e.string(t);if(!a)return;const o=a.split("\\");if(!(r&&o.length<r)){for(let e=0;e<o.length;e++)n.push(parseFloat(o[e]));return n}};const Re=function(e){const t=e.indexOf(":");let r=e.substring(t+1);const n=r.indexOf("frame=");let a;if(-1!==n){const e=r.substring(n+6);a=parseInt(e,10),r=r.substring(0,n-1)}return{scheme:e.substring(0,t),url:r,frame:a,pixelDataFrame:void 0!==a?a-1:void 0}};function Fe(e){const{dicomParser:t}=xt;let r,n=t.parseDicom(e,{untilTag:"x7fe00010"});n.elements.x7fe00010||console.warn("Pixel data not found!");try{r=t.parseDicom(e)}catch(e){console.error(e),console.log("pixel data dataset:",e.dataSet),r=e.dataSet}return n.elements.x7fe00010=r.elements.x7fe00010,n=function(e){const t=e.elements.x7fe00010.fragments,r=e.byteArray.length;for(const e of t){const{position:t,length:n}=e;n>r-t&&(console.log(`Truncated fragment, changing fragment length from ${e.length} to ${r-t}`),e.length=r-t)}return e}(n),n}async function Be(e,t,r){const n=Fe(e),{uri:a,imageId:o,fileTotalLength:i}=r;return n.fetchMore=async function(s){const l=Object.assign({uri:a,imageId:o,fetchedLength:e.length,lengthToFetch:i-e.length},s),{fetchedLength:c,lengthToFetch:u}=l,{arrayBuffer:f}=await t(a,o,{byteRange:`${c}-${c+u}`}),d=new Uint8Array(f),m=new Uint8Array(n.byteArray.length+d.length);return m.set(n.byteArray),m.set(d,n.byteArray.length),Be(m,t,r)},n}function Ue(e,t,r){const n={};(t?Object.values(t.items[0].dataSet.elements):[]).map((e=>n[e.tag]=e));const a={};return(e?Object.values(e.items[r-1].dataSet.elements):[]).map((e=>a[e.tag]=e)),{shared:n,perFrame:a}}function Ne(e){if(!e)return;const{elements:t,...r}=e,{x52009230:n,x52009229:a,...o}=t;return{NumberOfFrames:e.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o,otherAttributtes:r}}function je(e){if(We[e])return We[e]}function $e(e){if(!e)return!1;const t=e.intString("x00280008");return t&&t>1}const Ge={_get:je,generateMultiframeWADOURIs:function(e){const t=[],r=je(e);if($e(r)){const n=r.intString("x00280008");for(let r=1;r<=n;r++)t.push(`${e}&frame=${r}`)}else t.push(e);return t},retrieveMultiframeDataset:function(e){const t=function(e){return e.indexOf("&frame=")}(e),r=-1===t?e:e.slice(0,t),n=parseInt(e.slice(t+7),10)||1;let a;return a=We[r]?We[r].dataSet:void 0,{dataSet:a,frame:n}},isMultiframeDataset:function(e){return $e(je(e))}};let Ve=0,We={},qe={};function Ze(){return{cacheSizeInBytes:Ve,numberOfDataSetsCached:Object.keys(We).length}}const Ye={isLoaded:function(e){return void 0!==We[e]},load:function(e,t=B,r){const{cornerstone:n,dicomParser:a}=xt;if(We[e])return new Promise((t=>{We[e].cacheCount++,t(We[e].dataSet)}));if(qe[e])return qe[e].cacheCount++,qe[e];const o=t(e,r),i=new Promise(((s,l)=>{o.then((async function(o){const c={isPartialContent:!1,fileTotalLength:null};if(!(o instanceof ArrayBuffer)){if(!o.arrayBuffer)return l(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));c.isPartialContent=o.flags.isPartialContent,c.fileTotalLength=o.flags.fileTotalLength,o=o.arrayBuffer}const u=new Uint8Array(o);let f;try{f=c.isPartialContent?await Be(u,t,{uri:e,imageId:r,fileTotalLength:c.fileTotalLength}):a.parseDicom(u)}catch(e){return l(e)}We[e]={dataSet:f,cacheCount:i.cacheCount},Ve+=f.byteArray.length,s(f),n.triggerEvent(n.events,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Ze()})}),l).then((()=>{delete qe[e]}),(()=>{delete qe[e]}))}));return i.cacheCount=1,qe[e]=i,i},unload:function(e){const{cornerstone:t}=xt;We[e]&&(We[e].cacheCount--,0===We[e].cacheCount&&(Ve-=We[e].dataSet.byteArray.length,delete We[e],t.triggerEvent(t.events,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Ze()})))},getInfo:Ze,purge:function(){We={},qe={},Ve=0},get:function(e){let t;if(e.includes("&frame=")){const{frame:r,dataSet:n}=Ge.retrieveMultiframeDataset(e);t=function(e,t){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o}=Ne(t);if(n||r>1){const{shared:r,perFrame:i}=Ue(n,a,e),s={elements:{...o,...r,...i}},l=Object.create(t);return Object.assign(l,s)}return t}(r,n)}else We[e]&&(t=We[e].dataSet);return t},update:function(e,t){const r=We[e];r?(Ve-=r.dataSet.byteArray.length,r.dataSet=t,Ve+=t.byteArray.length,xt.cornerstone.triggerEvent(xt.cornerstone.events,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Ze()})):console.error(`No loaded dataSet for uri ${e}`)}};function ze(e,t){const r=e.string("x00080008");if(r){const e=r.split("\\");if(e.length>t)return e[t]}}function He(e){let t=Me(e,"x00200037",6);return!t&&e.elements.x00209116&&(t=Me(e.elements.x00209116.items[0].dataSet,"x00200037",6)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return t}(e)),t}function Qe(e){let t=Me(e,"x00200032",3);return!t&&e.elements.x00209113&&(t=Me(e.elements.x00209113.items[0].dataSet,"x00200032",3)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return t}(e)),t}function Xe(e){let t=Me(e,"x00280030",2);return!t&&e.elements.x00289110&&(t=Me(e.elements.x00289110.items[0].dataSet,"x00280030",2)),t}function Ke(e){let t;return e.elements.x00180050?t=e.floatString("x00180050"):e.elements.x00289110&&e.elements.x00289110.items.length&&e.elements.x00289110.items[0].dataSet.elements.x00180050&&(t=e.elements.x00289110.items[0].dataSet.floatString("x00180050")),t}const Je=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(Array.isArray(r))return;const o=Re(r);if(t===n.MULTIFRAME){const e=Ge.retrieveMultiframeDataset(o.url);if(!e.dataSet)return;const t=function(e,t){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a}=Ne(e);if(n||r>1){const{shared:e,perFrame:o}=Ue(n,a,t);return{NumberOfFrames:r,PerFrameFunctionalInformation:o,SharedFunctionalInformation:e}}return{NumberOfFrames:r}}(e.dataSet,e.frame);return t}let i=o.url;o.frame&&(i=`${i}&frame=${o.frame}`);const s=Ye.get(i);if(s){if(t===n.GENERAL_STUDY)return{studyDescription:s.string("x00081030"),studyDate:a.parseDA(s.string("x00080020")),studyTime:a.parseTM(s.string("x00080030")||""),accessionNumber:s.string("x00080050")};if(t===n.GENERAL_SERIES)return{modality:s.string("x00080060"),seriesInstanceUID:s.string("x0020000e"),seriesNumber:s.intString("x00200011"),studyInstanceUID:s.string("x0020000d"),seriesDate:a.parseDA(s.string("x00080021")),seriesTime:a.parseTM(s.string("x00080031")||""),acquisitionDate:a.parseDA(s.string("x00080022")),acquisitionTime:a.parseTM(s.string("x00080032")||"")};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:s.string("x00080018"),instanceNumber:s.intString("x00200013"),lossyImageCompression:s.string("x00282110"),lossyImageCompressionRatio:s.floatString("x00282112"),lossyImageCompressionMethod:s.string("x00282114")};if(t===n.PATIENT)return{patientID:s.string("x00100020"),patientName:s.string("x00100010")};if(t===n.PATIENT_STUDY)return{patientAge:s.intString("x00101010"),patientSize:s.floatString("x00101020"),patientSex:s.string("x00100040"),patientWeight:s.floatString("x00101030")};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=s.string("x00080060"),t=ze(s,2);return{modality:e,imageType:s.string("x00080008"),imageSubType:t,imageOrientationPatient:He(s),imagePositionPatient:Qe(s),sliceThickness:Ke(s),pixelSpacing:Xe(s),numberOfFrames:s.uint16("x00280008"),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=He(s),t=Qe(s),r=Xe(s),n=Ke(s);let a=null,o=null;r&&(o=r[0],a=r[1]);let i=null,l=null;return e&&(i=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],l=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:s.string("x00200052"),rows:s.uint16("x00280010"),columns:s.uint16("x00280011"),imageOrientationPatient:e,rowCosines:i,columnCosines:l,imagePositionPatient:t,sliceThickness:n,sliceLocation:s.floatString("x00201041"),pixelSpacing:r,rowPixelSpacing:o,columnPixelSpacing:a}}if(t===n.CINE)return{frameTime:s.floatString("x00181063")};if(t===n.IMAGE_PIXEL)return _e(s);if(t===n.VOI_LUT){const e=Oe(s);return{windowCenter:Me(s,"x00281050",1),windowWidth:Me(s,"x00281051",1),voiLUTSequence:Ce(e,s.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:s.floatString("x00281052"),rescaleSlope:s.floatString("x00281053"),rescaleType:s.string("x00281054"),modalityLUTSequence:Ce(s.uint16("x00280103"),s.elements.x00283000)};if(t===n.SOP_COMMON)return{sopClassUID:s.string("x00080016"),sopInstanceUID:s.string("x00080018")};if(t===n.PET_ISOTOPE){const e=s.elements.x00540016;if(void 0===e)return;const t=e.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(t.string("x00181072")||""),radionuclideTotalDose:t.floatString("x00181074"),radionuclideHalfLife:t.floatString("x00181075")}}}if(t===n.OVERLAY_PLANE)return function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=e.elements[`${n}3000`];if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.byteArray[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:e.uint16(`${n}0010`),columns:e.uint16(`${n}0011`),type:e.string(`${n}0040`),x:e.int16(`${n}0050`,1)-1,y:e.int16(`${n}0050`,0)-1,pixelData:o,description:e.string(`${n}0022`),label:e.string(`${n}1500`),roiArea:e.string(`${n}1301`),roiMean:e.string(`${n}1302`),roiStandardDeviation:e.string(`${n}1303`)})}return{overlays:t}}(s);if("transferSyntax"===t){let e;try{e=s.string("x00020010")}catch(e){}return{transferSyntaxUID:e}}return t===n.PET_SERIES?{correctedImage:s.string("x00280051"),units:s.string("x00541001"),decayCorrection:s.string("x00541102")}:t===n.PET_IMAGE?{frameReferenceTime:s.floatString(s.string("x00541300")||""),actualFrameDuration:s.intString(s.string("x00181242"))}:"instance"===t?D(r,e,P):void 0}};let et=[];const tt={add:function(e){return"dicomfile:"+(et.push(e)-1)},get:function(e){return et[e]},remove:function(e){et[e]=void 0},purge:function(){et=[]}};var rt=a(713);function nt(e,t){const{dicomParser:r}=xt;if(e.elements.x7fe00010&&e.elements.x7fe00010.basicOffsetTable.length)return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t);if(function(e){return e.intString("x00280008")!==e.elements.x7fe00010.fragments.length}(e)){const n=r.createJPEGBasicOffsetTable(e,e.elements.x7fe00010);return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t,n)}const n=e.elements.x7fe00010.fragments,a=new rt.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),o=(0,rt.readSequenceItem)(a);if("xfffee000"!==o.tag)throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";a.seek(o.length);const i=a.position;if(t+1>n.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const s=i+n[t].offset+8,l=n[t].length;return new Uint8Array(a.byteArray.buffer.slice(a.byteArray.byteOffset+s,a.byteArray.byteOffset+s+l))}function at(e,t){return e&1<<t}const ot=function(e,t,r){const n=new Uint8Array(r);for(let a=0;a<r;a++){const r=e[Math.floor(a/8)+t],o=a%8;n[a]=at(r,o)?1:0}return n};const it=function(e,t){const r=e.elements.x7fe00010||e.elements.x7fe00008,n=e.uint16("x00280100"),a=e.uint16("x00280010"),o=e.uint16("x00280011");let i=e.uint16("x00280002");"YBR_FULL_422"===e.string("x00280004")&&(i=2,console.warn("Using SamplesPerPixel of 2 for YBR_FULL_422 photometric interpretation.\n See http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.3.html for more information."));const s=r.dataOffset,l=a*o*i;let c;if(8===n){if(c=s+t*l,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+l))}if(16===n){if(c=s+t*l*2,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+2*l))}if(1===n){if(c=s+t*l*.125,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return ot(e.byteArray,c,l)}if(32===n){if(c=s+t*l*4,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+4*l))}throw new Error("unsupported pixel format")};const st=function(e){const t=Re(e),r=parseInt(t.url,10),n=tt.get(r);return new Promise(((e,t)=>{const r=new FileReader;r.onload=t=>{const r=t.target.result;e(r)},r.onerror=t,r.readAsArrayBuffer(n)}))};const lt=function(e,t=0){const r=e.elements.x7fe00010||e.elements.x7fe00008;return r?r.encapsulatedPixelData?nt(e,t):it(e,t):null};function ct(e,t,r=0,n,a,o){const i=(new Date).getTime(),s={cancelFn:void 0,promise:void 0};return s.promise=new Promise(((l,c)=>{e.then((e=>{const u=lt(e,r),f=e.string("x00020010"),d=(new Date).getTime(),m=ye(t,u,f,a);!function(e,t){e.decache=function(){const e=Re(t);Ye.unload(e.url)}}(s,t),m.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=d-i,t.totalTimeInMS=r-i,void 0!==o&&void 0!==o.imageDoneCallback&&o.imageDoneCallback(t),l(t)}),(function(t){c({error:t,dataSet:e})}))}),(function(e){c({error:e})}))})),s}function ut(e){return"dicomweb"===e||"wadouri"===e?B:"dicomfile"===e?st:void 0}function ft(e,t={}){const r=Re(e);delete(t=Object.assign({},t)).loader;const n=ut(r.scheme);if(Ye.isLoaded(r.url)){return function(e,t,r=0,n,a){const o=(new Date).getTime();return{promise:new Promise(((i,s)=>{const l=(new Date).getTime();let c;try{const n=lt(e,r),o=e.string("x00020010");c=ye(t,n,o,a)}catch(t){return void s({error:t,dataSet:e})}c.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=l-o,t.totalTimeInMS=r-o,i(t)}),s)})),cancelFn:void 0}}(Ye.get(r.url,n,e),e,r.pixelDataFrame,r.url,t)}return ct(Ye.load(r.url,n,e),e,r.frame,r.url,t)}const dt={metaData:{getImagePixelModule:_e,getLUTs:Ce,getModalityLUTOutputPixelRepresentation:Oe,getNumberValues:Me,metaDataProvider:Je},dataSetCacheManager:Ye,fileManager:tt,getEncapsulatedImageFrame:nt,getUncompressedImageFrame:it,loadFileRequest:st,loadImageFromPromise:ct,getLoaderForScheme:ut,loadImage:ft,parseImageId:Re,unpackBinaryFrame:ot,register:function(e){e.registerImageLoader("dicomweb",ft),e.registerImageLoader("wadouri",ft),e.registerImageLoader("dicomfile",ft),e.metaData.addProvider(Je)}};const mt=function(e){Ie.register(e),dt.register(e)};let gt,ht;const pt={set cornerstone(e){gt=e,mt(gt)},get cornerstone(){if(!gt){if(gt=window&&window.cornerstone,!gt)throw new Error("cornerstoneDICOMImageLoader requires a copy of Cornerstone to work properly. Please add cornerstoneDICOMImageLoader.external.cornerstone = cornerstone; to your application.");mt(gt)}return gt},set dicomParser(e){ht=e},get dicomParser(){if(!ht){if(!window||!window.dicomParser)throw new Error("cornerstoneDICOMImageLoader requires a copy of dicomParser to work properly. Please add cornerstoneDICOMImageLoader.external.dicomParser = dicomParser; to your application.");ht=window.dicomParser}return ht}},xt=pt;function bt(e,t){const r=e.length,n=new Uint8ClampedArray(r);for(let a=0;a<r;++a)n[a]=e[a]>>t;return n}function wt(e,t,r){const n=e[`${t}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const a=xt.cornerstone.metaData.get("imagePixelModule",e.imageId);return a&&"function"==typeof a.then?a.then((e=>e?e[`${t}PaletteColorLookupTableData`]:r)):Promise.resolve(a?a[`${t}PaletteColorLookupTableData`]:r)}function yt(e,t,r){const n=e.columns*e.rows,a=e.pixelData;Promise.all([wt(e,"red",null),wt(e,"green",null),wt(e,"blue",null)]).then((([o,i,s])=>{if(!o||!i||!s)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const l=o.length;let c=0,u=0;const f=e.redPaletteColorLookupTableDescriptor[1],d=8===e.redPaletteColorLookupTableDescriptor[2]?0:8,m=bt(o,d),g=bt(i,d),h=bt(s,d);if(r)for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e],t[u++]=255}else for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e]}}))}const kt=function(e){R(e)};const Tt=function(e,t){if(t=t||e.transferSyntax,8===e.bitsAllocated&&"1.2.840.10008.1.2.4.50"===t&&(3===e.samplesPerPixel||4===e.samplesPerPixel))return!0},St={convertRGBColorByPixel:e,convertRGBColorByPlane:t,convertYBRFullByPixel:r,convertYBRFullByPlane:n,convertPALETTECOLOR:yt,wadouri:dt,wadors:Ie,configure:kt,convertColorSpace:X,createImage:ye,decodeImageFrame:he,decodeJPEGBaseline8BitColor:J,getImageFrame:pe,getPixelData:z,getMinMax:H,isColorImage:xe,isJPEGBaseline8BitColor:Tt,webWorkerManager:de,internal:U,external:pt}})(),o})()));
|
|
217414
217486
|
|
|
217415
217487
|
|
|
217416
217488
|
/***/ }),
|
|
@@ -393826,7 +393898,7 @@ function __disposeResources(env) {
|
|
|
393826
393898
|
/******/ // This function allow to reference async chunks
|
|
393827
393899
|
/******/ __webpack_require__.u = (chunkId) => {
|
|
393828
393900
|
/******/ // return url for filenames based on template
|
|
393829
|
-
/******/ return "" + ({"158":"histogram-worker","607":"suv-peak-worker","985":"polySeg"}[chunkId] || chunkId) + ".bundle." + {"10":"c626810bd199ab63f3a2","153":"
|
|
393901
|
+
/******/ return "" + ({"158":"histogram-worker","607":"suv-peak-worker","985":"polySeg"}[chunkId] || chunkId) + ".bundle." + {"10":"c626810bd199ab63f3a2","65":"d15cc84a0b991e182649","153":"42a66f99ced5972aa0c0","158":"89729ccb99d170ff2f2f","169":"d28df3cf2d600fc3e146","202":"f6d9ca4b1c16b1aa227f","210":"ea52c75bb27ab002dc4d","246":"912e9f8342cd5d6228e6","281":"719e9e222fecb4e9e9c6","286":"985c5ebbb2158c7e59ab","315":"f7f9e6c76811f8a6a30f","353":"5b11e6b395c5d5cc33bf","360":"9a0c682beae1ef7e40b1","372":"9891a9938b28db4b36ce","376":"ac0e23dc830cd982fd18","412":"836f106f6e2896dc42a5","417":"abf8bcee0f246002acb9","424":"1caecbb1bbefc271b621","497":"bbc07cef12d598653a65","498":"e5ccb2bc38e4bfdd564b","502":"823682db96d52df1b8cf","516":"e59c26f055d145ce835e","530":"87f8b13ff55bf7b2a6d1","571":"2b4e21bc61d7685a5fdb","591":"39fa1e6e7285929f2e29","604":"83f50929b208c60e48da","607":"15dcb8d1ab8e0528bfd9","658":"358716d6aee4c190f2cd","757":"1900204cf3e21d28e3b0","791":"ecf9b1f8892d5f8962a3","793":"e4c759b5cdfcc3c7494f","818":"b64fae7e982e16a82ca2","831":"9e1a3495947e5bb49756","842":"cccbb7e3611e3d220f07","888":"d3b2a82cb17155725342","904":"008f8a2095669f4eabba","931":"f6fa2a436ace89ebf60f","944":"93eddec203a43754e826","962":"868b30361a52b0ffa504","978":"c12902cf44dca926bcb8","985":"d8943427beee7694621a","993":"302a286ebb6e3fc0c35a","994":"3b5f396b62cce2990c03"}[chunkId] + ".js";
|
|
393830
393902
|
/******/ };
|
|
393831
393903
|
/******/ })();
|
|
393832
393904
|
/******/
|
|
@@ -393998,7 +394070,7 @@ function __disposeResources(env) {
|
|
|
393998
394070
|
/******/ };
|
|
393999
394071
|
/******/
|
|
394000
394072
|
/******/ __webpack_require__.f.miniCss = (chunkId, promises) => {
|
|
394001
|
-
/******/ var cssChunks = {"169":1,"210":1,"286":1,"
|
|
394073
|
+
/******/ var cssChunks = {"169":1,"210":1,"286":1,"424":1,"516":1,"757":1,"994":1};
|
|
394002
394074
|
/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
|
|
394003
394075
|
/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
|
|
394004
394076
|
/******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {
|
|
@@ -394013,7 +394085,7 @@ function __disposeResources(env) {
|
|
|
394013
394085
|
/******/ // no hmr
|
|
394014
394086
|
/******/
|
|
394015
394087
|
/******/ __webpack_require__.F.miniCss = (chunkId) => {
|
|
394016
|
-
/******/ if((!__webpack_require__.o(installedCssChunks, chunkId) || installedCssChunks[chunkId] === undefined) && /^(143|169|210|286|516|
|
|
394088
|
+
/******/ if((!__webpack_require__.o(installedCssChunks, chunkId) || installedCssChunks[chunkId] === undefined) && /^(143|169|210|286|424|516|757|994)$/.test(chunkId)) {
|
|
394017
394089
|
/******/ installedCssChunks[chunkId] = null;
|
|
394018
394090
|
/******/ var link = document.createElement('link');
|
|
394019
394091
|
/******/
|