@ohif/app 3.9.0-beta.34 → 3.9.0-beta.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/{117.bundle.3c4b1267961545fed330.js → 117.bundle.17ae130d2bb21ef9d31f.js} +5 -56
  2. package/dist/{121.bundle.10a6e63661e3feffdcf7.js → 121.bundle.9d1bc02753725a6bb253.js} +1 -1
  3. package/dist/{129.bundle.aeffa00fc359c6c3302f.js → 129.bundle.3343ba9238f9e2e5cbd2.js} +4 -4
  4. package/dist/{164.bundle.02db16dcc1132b25d4ad.js → 164.bundle.e30009bee13acb6967da.js} +217 -260
  5. package/dist/{172.bundle.0456e70413768fec2ba8.js → 172.bundle.e0ee762bee7496d6491e.js} +2 -2
  6. package/dist/{211.bundle.00af31ef3a558ab871d7.js → 211.bundle.5bd4f255507c829f5ff4.js} +1 -1
  7. package/dist/{236.bundle.ed0702d760569f060757.js → 236.bundle.a7e2f9e0cb3668fb6937.js} +29 -78
  8. package/dist/{370.bundle.6b8d3e94eef8e83ced67.js → 370.bundle.26738a863fd92e6b0d96.js} +4 -4
  9. package/dist/{501.bundle.f6641d4f50c6f8c54b6a.js → 501.bundle.ae2420b042bb0e7f72a7.js} +131 -134
  10. package/dist/{717.bundle.613012c8a7150a0decd0.js → 717.bundle.51d5dae0d1cc8658aaa7.js} +2 -2
  11. package/dist/{367.bundle.498dd1c427fcbfb437e1.js → 914.bundle.2b3a856b7d41ac8298e6.js} +231 -243
  12. package/dist/{822.bundle.1f629123cfe2f9df861d.js → 944.bundle.8d9b702fa2251909ac5e.js} +102 -47
  13. package/dist/app.bundle.css +1 -1
  14. package/dist/{app.bundle.02add375b2062b5fdbc6.js → app.bundle.ee9bb1ee04281b69dd11.js} +121 -125
  15. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  16. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  17. package/dist/index.html +1 -1
  18. package/dist/{polySeg.bundle.0b510b43f66f641bb68a.js → polySeg.bundle.bbb334a78132a383ef54.js} +1 -1
  19. package/dist/{suv-peak-worker.bundle.42afdd68a04bee2d0f4e.js → suv-peak-worker.bundle.6347271d0c99d33d64cf.js} +3 -3
  20. package/dist/sw.js +1 -1
  21. package/package.json +19 -19
  22. /package/dist/{14.bundle.9b4d14b25846a32a3f92.js → 14.bundle.66f407f4f809ab6e4d2b.js} +0 -0
  23. /package/dist/{140.bundle.8bf87e14b2f8a73c0808.js → 140.bundle.3cdcfa8c0910716f39ad.js} +0 -0
  24. /package/dist/{194.bundle.a48813c253355c084c4f.js → 194.bundle.0097cbd10d2057a6d2fa.js} +0 -0
  25. /package/dist/{218.bundle.a759b880ba04ab0a245c.js → 218.bundle.efce3a1382a78705f8e5.js} +0 -0
  26. /package/dist/{363.bundle.fde0de340488759cbb08.js → 363.bundle.aaea135d087c8de5f246.js} +0 -0
  27. /package/dist/{382.bundle.43ffd547a510e627ecb9.js → 382.bundle.6bb12e638e417b57edc6.js} +0 -0
  28. /package/dist/{444.bundle.a73ab0a4184585ec4f39.js → 444.bundle.c8694a72ad83c14393c7.js} +0 -0
  29. /package/dist/{552.bundle.82767ceab03497a4c45b.js → 552.bundle.af6ca952ba2d5b48d438.js} +0 -0
  30. /package/dist/{555.bundle.0ffcf54e8f5a2871709f.js → 555.bundle.d0975692846ab3f51a49.js} +0 -0
  31. /package/dist/{799.bundle.4c98fd946d302e8271d6.js → 799.bundle.654b5001021a13206a0b.js} +0 -0
  32. /package/dist/{806.bundle.f0371b477bf9f5a59650.js → 806.bundle.8bed59eb74ae6d3a33e9.js} +0 -0
  33. /package/dist/{853.bundle.49c38ba82f8927866f55.js → 853.bundle.d4d75dbce98d1caed76a.js} +0 -0
  34. /package/dist/{920.bundle.71d43ce3953964226c3b.js → 920.bundle.55c841734b5d60121b31.js} +0 -0
  35. /package/dist/{989.bundle.5f3a4719f128f4a6e599.js → 989.bundle.71b69e3b9f41971c6e41.js} +0 -0
@@ -1014,8 +1014,8 @@ function WorkList({
1014
1014
  };
1015
1015
  });
1016
1016
  const hasStudies = numOfStudies > 0;
1017
- const versionNumber = "3.9.0-beta.34";
1018
- const commitHash = "430330f7e384d503cb6fc695a7a9642ddfaac313";
1017
+ const versionNumber = "3.9.0-beta.36";
1018
+ const commitHash = "649ffab4d97be875d42e1a3473a4354aac14e87d";
1019
1019
  const menuOptions = [{
1020
1020
  title: t('Header:About'),
1021
1021
  icon: 'info',
@@ -1895,27 +1895,27 @@ modes.push("@ohif/mode-preclinical-4d");
1895
1895
  async function loadModule(module) {
1896
1896
  if (typeof module !== 'string') return module;
1897
1897
  if (module === "@ohif/extension-default") {
1898
- const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(931), __webpack_require__.e(822), __webpack_require__.e(404)]).then(__webpack_require__.bind(__webpack_require__, 36822));
1898
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(931), __webpack_require__.e(944), __webpack_require__.e(404)]).then(__webpack_require__.bind(__webpack_require__, 16944));
1899
1899
  return imported.default;
1900
1900
  }
1901
1901
  if (module === "@ohif/extension-cornerstone") {
1902
- const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(722), __webpack_require__.e(445), __webpack_require__.e(363)]).then(__webpack_require__.bind(__webpack_require__, 11363));
1902
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(722), __webpack_require__.e(445), __webpack_require__.e(363)]).then(__webpack_require__.bind(__webpack_require__, 11363));
1903
1903
  return imported.default;
1904
1904
  }
1905
1905
  if (module === "@ohif/extension-measurement-tracking") {
1906
- const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(342), __webpack_require__.e(931), __webpack_require__.e(835), __webpack_require__.e(822), __webpack_require__.e(799), __webpack_require__.e(717)]).then(__webpack_require__.bind(__webpack_require__, 46718));
1906
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(342), __webpack_require__.e(931), __webpack_require__.e(835), __webpack_require__.e(944), __webpack_require__.e(799), __webpack_require__.e(717)]).then(__webpack_require__.bind(__webpack_require__, 46718));
1907
1907
  return imported.default;
1908
1908
  }
1909
1909
  if (module === "@ohif/extension-cornerstone-dicom-sr") {
1910
- const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(799)]).then(__webpack_require__.bind(__webpack_require__, 26799));
1910
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(799)]).then(__webpack_require__.bind(__webpack_require__, 26799));
1911
1911
  return imported.default;
1912
1912
  }
1913
1913
  if (module === "@ohif/extension-cornerstone-dicom-seg") {
1914
- const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(342), __webpack_require__.e(931), __webpack_require__.e(726), __webpack_require__.e(822), __webpack_require__.e(129)]).then(__webpack_require__.bind(__webpack_require__, 70282));
1914
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(644), __webpack_require__.e(342), __webpack_require__.e(931), __webpack_require__.e(726), __webpack_require__.e(944), __webpack_require__.e(129)]).then(__webpack_require__.bind(__webpack_require__, 70282));
1915
1915
  return imported.default;
1916
1916
  }
1917
1917
  if (module === "@ohif/extension-cornerstone-dynamic-volume") {
1918
- const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(722), __webpack_require__.e(194)]).then(__webpack_require__.bind(__webpack_require__, 73194));
1918
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(722), __webpack_require__.e(194)]).then(__webpack_require__.bind(__webpack_require__, 73194));
1919
1919
  return imported.default;
1920
1920
  }
1921
1921
  if (module === "@ohif/extension-dicom-microscopy") {
@@ -1931,7 +1931,7 @@ async function loadModule(module) {
1931
1931
  return imported.default;
1932
1932
  }
1933
1933
  if (module === "@ohif/extension-tmtv") {
1934
- const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(367), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(555)]).then(__webpack_require__.bind(__webpack_require__, 52555));
1934
+ const imported = await Promise.all(/* import() */[__webpack_require__.e(370), __webpack_require__.e(914), __webpack_require__.e(483), __webpack_require__.e(236), __webpack_require__.e(342), __webpack_require__.e(555)]).then(__webpack_require__.bind(__webpack_require__, 52555));
1935
1935
  return imported.default;
1936
1936
  }
1937
1937
  if (module === "@ohif/extension-test") {
@@ -6572,7 +6572,7 @@ const detectionOptions = {
6572
6572
  }
6573
6573
  });
6574
6574
  ;// CONCATENATED MODULE: ../../i18n/package.json
6575
- const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.9.0-beta.33"}');
6575
+ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"rE":"3.9.0-beta.35"}');
6576
6576
  ;// CONCATENATED MODULE: ../../i18n/src/utils.js
6577
6577
  const languagesMap = {
6578
6578
  ar: 'Arabic',
@@ -31662,7 +31662,7 @@ const InputMultiSelect = ({
31662
31662
  value: value,
31663
31663
  isMulti: true,
31664
31664
  isClearable: false,
31665
- isSearchable: false,
31665
+ isSearchable: true,
31666
31666
  closeMenuOnSelect: false,
31667
31667
  hideSelectedOptions: false,
31668
31668
  onChange: (selectedOptions, action) => {
@@ -186853,7 +186853,7 @@ function DatePickerWithRange({
186853
186853
  autoComplete: "off",
186854
186854
  value: start,
186855
186855
  onChange: e => handleInputChange(e, 'start'),
186856
- className: utils_cn('border-inputfield-main focus:border-inputfield-focus h-full w-full justify-start rounded border bg-black py-[6.5px] pl-[6.5px] pr-[6.5px] text-left text-sm font-normal hover:bg-black hover:text-white', !start && 'text-muted-foreground'),
186856
+ className: utils_cn('border-inputfield-main focus:border-inputfield-focus h-[32px] w-full justify-start rounded border bg-black py-[6.5px] pl-[6.5px] pr-[6.5px] text-left text-sm font-normal hover:bg-black hover:text-white', !start && 'text-muted-foreground'),
186857
186857
  "data-cy": "input-date-range-start"
186858
186858
  }))), /*#__PURE__*/react.createElement(components_Popover.PopoverContent, {
186859
186859
  className: "w-auto p-0",
@@ -187420,7 +187420,7 @@ webpackContext.id = 64692;
187420
187420
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(51884);
187421
187421
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(71702);
187422
187422
  /* harmony import */ var _loaders_volumeLoader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(82041);
187423
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(20228);
187423
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(35678);
187424
187424
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90601);
187425
187425
  /* harmony import */ var _helpers_volumeNewImageEventDispatcher__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(46820);
187426
187426
  /* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(11512);
@@ -187907,7 +187907,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
187907
187907
  return target;
187908
187908
  }
187909
187909
  const { viewPlaneNormal } = target;
187910
- const delta = viewRefSpecifier.sliceIndex - this.getCurrentImageIdIndex();
187910
+ const delta = viewRefSpecifier.sliceIndex - this.getSliceIndex();
187911
187911
  const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
187912
187912
  const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
187913
187913
  const { focalPoint, position } = camera;
@@ -187925,7 +187925,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
187925
187925
  if (options?.withNavigation) {
187926
187926
  return true;
187927
187927
  }
187928
- const currentSliceIndex = this.getCurrentImageIdIndex();
187928
+ const currentSliceIndex = this.getSliceIndex();
187929
187929
  const { sliceIndex } = viewRef;
187930
187930
  if (Array.isArray(sliceIndex)) {
187931
187931
  return (sliceIndex[0] <= currentSliceIndex && currentSliceIndex <= sliceIndex[1]);
@@ -188302,7 +188302,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
188302
188302
  }
188303
188303
  volumeId = actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
188304
188304
  }
188305
- const currentIndex = this.getCurrentImageIdIndex();
188305
+ const currentIndex = this.getSliceIndex();
188306
188306
  sliceIndex ??= currentIndex;
188307
188307
  const { viewPlaneNormal, focalPoint } = this.getCamera();
188308
188308
  const querySeparator = volumeId.indexOf('?') > -1 ? '&' : '?';
@@ -189231,8 +189231,8 @@ var metaData = __webpack_require__(55692);
189231
189231
  // EXTERNAL MODULE: ../../../node_modules/lodash.clonedeep/index.js
189232
189232
  var lodash_clonedeep = __webpack_require__(48463);
189233
189233
  var lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep);
189234
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
189235
- var utilities = __webpack_require__(20228);
189234
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
189235
+ var utilities = __webpack_require__(35678);
189236
189236
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
189237
189237
  var Viewport = __webpack_require__(11512);
189238
189238
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.js + 2 modules
@@ -189606,6 +189606,9 @@ class StackViewport extends Viewport/* default */.A {
189606
189606
  this.getCurrentImageIdIndex = () => {
189607
189607
  return this.currentImageIdIndex;
189608
189608
  };
189609
+ this.getSliceIndex = () => {
189610
+ return this.currentImageIdIndex;
189611
+ };
189609
189612
  this.getTargetImageIdIndex = () => {
189610
189613
  return this.targetImageIdIndex;
189611
189614
  };
@@ -190422,6 +190425,9 @@ class StackViewport extends Viewport/* default */.A {
190422
190425
  return;
190423
190426
  }
190424
190427
  const imagePlaneModule = metaData.get(enums.MetadataModules.IMAGE_PLANE, imageId);
190428
+ if (!imagePlaneModule) {
190429
+ return;
190430
+ }
190425
190431
  const { imagePositionPatient, frameOfReferenceUID: FrameOfReferenceUID } = imagePlaneModule;
190426
190432
  let { rowCosines, columnCosines } = imagePlaneModule;
190427
190433
  rowCosines ||= [1, 0, 0];
@@ -191201,8 +191207,8 @@ var enums = __webpack_require__(98362);
191201
191207
  var metaData = __webpack_require__(55692);
191202
191208
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.js
191203
191209
  var rendering_transform = __webpack_require__(18714);
191204
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
191205
- var utilities = __webpack_require__(20228);
191210
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
191211
+ var utilities = __webpack_require__(35678);
191206
191212
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
191207
191213
  var Viewport = __webpack_require__(11512);
191208
191214
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 5 modules
@@ -191973,7 +191979,7 @@ class VideoViewport extends Viewport/* default */.A {
191973
191979
  if (options.withNavigation) {
191974
191980
  return true;
191975
191981
  }
191976
- const currentIndex = this.getCurrentImageIdIndex();
191982
+ const currentIndex = this.getSliceIndex();
191977
191983
  if (Array.isArray(sliceIndex)) {
191978
191984
  return currentIndex >= sliceIndex[0] && currentIndex <= sliceIndex[1];
191979
191985
  }
@@ -192010,6 +192016,9 @@ class VideoViewport extends Viewport/* default */.A {
192010
192016
  getCurrentImageIdIndex() {
192011
192017
  return Math.round(this.videoElement.currentTime * this.fps);
192012
192018
  }
192019
+ getSliceIndex() {
192020
+ return this.getCurrentImageIdIndex();
192021
+ }
192013
192022
  getCamera() {
192014
192023
  const { parallelScale } = this.videoCamera;
192015
192024
  const canvasCenter = [
@@ -192113,7 +192122,7 @@ class VideoViewport extends Viewport/* default */.A {
192113
192122
  /* harmony import */ var _enums_ViewportStatus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17702);
192114
192123
  /* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21432);
192115
192124
  /* harmony import */ var _renderingEngineCache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(94070);
192116
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20228);
192125
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35678);
192117
192126
  /* harmony import */ var _utilities_hasNaNValues__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(73139);
192118
192127
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(88903);
192119
192128
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(71702);
@@ -192619,6 +192628,9 @@ class Viewport {
192619
192628
  getCurrentImageIdIndex() {
192620
192629
  throw new Error('Not implemented');
192621
192630
  }
192631
+ getSliceIndex() {
192632
+ throw new Error('Not implemented');
192633
+ }
192622
192634
  getReferenceId(_specifier) {
192623
192635
  return null;
192624
192636
  }
@@ -192904,7 +192916,7 @@ class Viewport {
192904
192916
  cameraFocalPoint,
192905
192917
  viewPlaneNormal,
192906
192918
  viewUp,
192907
- sliceIndex: viewRefSpecifier.sliceIndex ?? this.getCurrentImageIdIndex(),
192919
+ sliceIndex: viewRefSpecifier.sliceIndex ?? this.getSliceIndex(),
192908
192920
  };
192909
192921
  return target;
192910
192922
  }
@@ -193053,12 +193065,12 @@ class Viewport {
193053
193065
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
193054
193066
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88903);
193055
193067
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
193056
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20228);
193068
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35678);
193057
193069
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6203);
193058
193070
  /* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83853);
193059
193071
  /* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22350);
193060
193072
  /* harmony import */ var _utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97508);
193061
- /* harmony import */ var _utilities_getVolumeViewportScrollInfo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(62255);
193073
+ /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(44753);
193062
193074
 
193063
193075
 
193064
193076
 
@@ -193077,14 +193089,23 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/*
193077
193089
  const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
193078
193090
  return numberOfSlices;
193079
193091
  };
193092
+ this.getCurrentImageIdIndex = (volumeId) => {
193093
+ const { viewPlaneNormal, focalPoint } = this.getCamera();
193094
+ const imageData = this.getImageData(volumeId);
193095
+ if (!imageData) {
193096
+ return;
193097
+ }
193098
+ const { origin, direction, spacing } = imageData;
193099
+ const spacingInNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSpacingInNormalDirection)({ direction, spacing }, viewPlaneNormal);
193100
+ const sub = gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.create */ .eR.create();
193101
+ gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.sub */ .eR.sub(sub, focalPoint, origin);
193102
+ const distance = gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.dot */ .eR.dot(sub, viewPlaneNormal);
193103
+ return Math.round(Math.abs(distance) / spacingInNormal);
193104
+ };
193080
193105
  this.getSliceIndex = () => {
193081
193106
  const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
193082
193107
  return imageIndex;
193083
193108
  };
193084
- this.getCurrentImageIdIndex = (volumeId, useSlabThickness = true) => {
193085
- const { currentStepIndex } = (0,_utilities_getVolumeViewportScrollInfo__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this, volumeId || this.getVolumeId(), useSlabThickness);
193086
- return currentStepIndex;
193087
- };
193088
193109
  this.getCurrentImageId = () => {
193089
193110
  const actorEntry = this.getDefaultActor();
193090
193111
  if (!actorEntry || !(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
@@ -194719,8 +194740,8 @@ function storedPixelDataToCanvasImageDataPseudocolorLUTPET(image, lutFunction, c
194719
194740
  }
194720
194741
  /* harmony default export */ const rendering_storedPixelDataToCanvasImageDataPseudocolorLUTPET = (storedPixelDataToCanvasImageDataPseudocolorLUTPET);
194721
194742
 
194722
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
194723
- var utilities = __webpack_require__(20228);
194743
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
194744
+ var utilities = __webpack_require__(35678);
194724
194745
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js
194725
194746
 
194726
194747
 
@@ -195776,8 +195797,8 @@ function createVolumeMapper(imageData, vtkOpenGLTexture) {
195776
195797
  return volumeMapper;
195777
195798
  }
195778
195799
 
195779
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
195780
- var utilities = __webpack_require__(20228);
195800
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
195801
+ var utilities = __webpack_require__(35678);
195781
195802
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
195782
195803
  var enums = __webpack_require__(98362);
195783
195804
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js
@@ -195888,7 +195909,7 @@ var addImageSlicesToViewports = __webpack_require__(25271);
195888
195909
  /* harmony export */ });
195889
195910
  /* harmony import */ var _loaders_imageLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79220);
195890
195911
  /* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55692);
195891
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20228);
195912
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35678);
195892
195913
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
195893
195914
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13320);
195894
195915
 
@@ -196042,7 +196063,7 @@ function _isCurrentImagePTPrescaled(modality, imageVolume) {
196042
196063
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
196043
196064
  /* harmony export */ g: () => (/* binding */ resetVolumeNewImageState)
196044
196065
  /* harmony export */ });
196045
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20228);
196066
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35678);
196046
196067
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98362);
196047
196068
  /* harmony import */ var _getRenderingEngine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49184);
196048
196069
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6203);
@@ -196112,8 +196133,8 @@ var Events = __webpack_require__(11731);
196112
196133
  var renderingEngineCache = __webpack_require__(94070);
196113
196134
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
196114
196135
  var eventTarget = __webpack_require__(51884);
196115
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
196116
- var utilities = __webpack_require__(20228);
196136
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
196137
+ var utilities = __webpack_require__(35678);
196117
196138
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 27 modules
196118
196139
  var vtkClasses = __webpack_require__(69585);
196119
196140
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportType.js
@@ -203108,7 +203129,7 @@ Settings.getDefaultSettings().set('useCursors', true);
203108
203129
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
203109
203130
  /* harmony export */ });
203110
203131
  /* unused harmony export Cache */
203111
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20228);
203132
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35678);
203112
203133
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51884);
203113
203134
  /* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11731);
203114
203135
  /* harmony import */ var _classes_ImageVolume__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77076);
@@ -203590,8 +203611,8 @@ function isTypedArray(obj) {
203590
203611
  obj instanceof Float64Array);
203591
203612
  }
203592
203613
 
203593
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
203594
- var utilities = __webpack_require__(20228);
203614
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
203615
+ var utilities = __webpack_require__(35678);
203595
203616
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 27 modules
203596
203617
  var vtkClasses = __webpack_require__(69585);
203597
203618
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/cache.js
@@ -211676,8 +211697,8 @@ async function createAndCacheGeometry(geometryId, options) {
211676
211697
 
211677
211698
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
211678
211699
  var ProgressiveRetrieveImages = __webpack_require__(71090);
211679
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
211680
- var utilities = __webpack_require__(20228);
211700
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
211701
+ var utilities = __webpack_require__(35678);
211681
211702
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
211682
211703
  var triggerEvent = __webpack_require__(13292);
211683
211704
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 5 modules
@@ -211745,8 +211766,8 @@ function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{
211745
211766
  var enums = __webpack_require__(98362);
211746
211767
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
211747
211768
  var getRenderingEngine = __webpack_require__(49184);
211748
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
211749
- var utilities = __webpack_require__(20228);
211769
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
211770
+ var utilities = __webpack_require__(35678);
211750
211771
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/webWorkerManager/webWorkerManager.js
211751
211772
  var webWorkerManager = __webpack_require__(61874);
211752
211773
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js
@@ -212068,8 +212089,8 @@ const interleavedRetrieveConfiguration = [
212068
212089
 
212069
212090
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
212070
212091
  var imageLoader = __webpack_require__(79220);
212071
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
212072
- var utilities = __webpack_require__(20228);
212092
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
212093
+ var utilities = __webpack_require__(35678);
212073
212094
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
212074
212095
  var imageLoadPoolManager = __webpack_require__(775);
212075
212096
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
@@ -212370,7 +212391,7 @@ __webpack_require__.r(__webpack_exports__);
212370
212391
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
212371
212392
  /* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11731);
212372
212393
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51884);
212373
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20228);
212394
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35678);
212374
212395
  /* harmony import */ var _requestPool_imageLoadPoolManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(775);
212375
212396
  /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(92136);
212376
212397
 
@@ -212652,7 +212673,7 @@ __webpack_require__.r(__webpack_exports__);
212652
212673
  /* harmony import */ var _utilities_triggerEvent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13292);
212653
212674
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(48463);
212654
212675
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__);
212655
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20228);
212676
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35678);
212656
212677
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(71702);
212657
212678
  /* harmony import */ var _utilities_cacheUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(51631);
212658
212679
 
@@ -213054,7 +213075,7 @@ imageLoadPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPO
213054
213075
  /* harmony export */ R: () => (/* binding */ RequestPoolManager)
213055
213076
  /* harmony export */ });
213056
213077
  /* harmony import */ var _enums_RequestType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15453);
213057
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20228);
213078
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35678);
213058
213079
 
213059
213080
 
213060
213081
  class RequestPoolManager {
@@ -213699,73 +213720,6 @@ const getVolumeId = (targetId) => {
213699
213720
  };
213700
213721
 
213701
213722
 
213702
- /***/ }),
213703
-
213704
- /***/ 76399:
213705
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
213706
-
213707
- "use strict";
213708
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
213709
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
213710
- /* harmony export */ });
213711
- /* harmony import */ var _getSliceRange__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51849);
213712
- /* harmony import */ var _getTargetVolumeAndSpacingInNormalDir__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94172);
213713
-
213714
-
213715
- function getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness = false) {
213716
- const camera = viewport.getCamera();
213717
- const { focalPoint, viewPlaneNormal } = camera;
213718
- const { spacingInNormalDirection, actorUID } = (0,_getTargetVolumeAndSpacingInNormalDir__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(viewport, camera, volumeId, useSlabThickness);
213719
- if (!actorUID) {
213720
- throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
213721
- }
213722
- const actorEntry = viewport.getActor(actorUID);
213723
- if (!actorEntry) {
213724
- console.warn('No actor found for with actorUID of', actorUID);
213725
- return null;
213726
- }
213727
- const volumeActor = actorEntry.actor;
213728
- const sliceRange = (0,_getSliceRange__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(volumeActor, viewPlaneNormal, focalPoint);
213729
- return {
213730
- sliceRange,
213731
- spacingInNormalDirection,
213732
- camera,
213733
- };
213734
- }
213735
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getVolumeSliceRangeInfo);
213736
-
213737
-
213738
- /***/ }),
213739
-
213740
- /***/ 62255:
213741
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
213742
-
213743
- "use strict";
213744
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
213745
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
213746
- /* harmony export */ });
213747
- /* harmony import */ var _getVolumeSliceRangeInfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76399);
213748
-
213749
- function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
213750
- const { sliceRange, spacingInNormalDirection, camera } = (0,_getVolumeSliceRangeInfo__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(viewport, volumeId, useSlabThickness);
213751
- const { min, max, current } = sliceRange;
213752
- const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
213753
- const fraction = (current - min) / (max - min);
213754
- const floatingStepNumber = fraction * numScrollSteps;
213755
- const currentStepIndex = Math.round(floatingStepNumber);
213756
- return {
213757
- numScrollSteps,
213758
- currentStepIndex,
213759
- sliceRangeInfo: {
213760
- sliceRange,
213761
- spacingInNormalDirection,
213762
- camera,
213763
- },
213764
- };
213765
- }
213766
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getVolumeViewportScrollInfo);
213767
-
213768
-
213769
213723
  /***/ }),
213770
213724
 
213771
213725
  /***/ 73139:
@@ -213785,7 +213739,7 @@ function hasNaNValues(input) {
213785
213739
 
213786
213740
  /***/ }),
213787
213741
 
213788
- /***/ 20228:
213742
+ /***/ 35678:
213789
213743
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
213790
213744
 
213791
213745
  "use strict";
@@ -213842,8 +213796,8 @@ __webpack_require__.d(__webpack_exports__, {
213842
213796
  getVoiFromSigmoidRGBTransferFunction: () => (/* reexport */ getVoiFromSigmoidRGBTransferFunction),
213843
213797
  getVolumeActorCorners: () => (/* reexport */ getVolumeActorCorners/* default */.A),
213844
213798
  getVolumeId: () => (/* reexport */ getVolumeId/* getVolumeId */.A),
213845
- getVolumeSliceRangeInfo: () => (/* reexport */ getVolumeSliceRangeInfo/* default */.A),
213846
- getVolumeViewportScrollInfo: () => (/* reexport */ getVolumeViewportScrollInfo/* default */.A),
213799
+ getVolumeSliceRangeInfo: () => (/* reexport */ utilities_getVolumeSliceRangeInfo),
213800
+ getVolumeViewportScrollInfo: () => (/* reexport */ utilities_getVolumeViewportScrollInfo),
213847
213801
  getVolumeViewportsContainingSameVolumes: () => (/* reexport */ utilities_getVolumeViewportsContainingSameVolumes),
213848
213802
  hasFloatScalingParameters: () => (/* reexport */ hasFloatScalingParameters),
213849
213803
  hasNaNValues: () => (/* reexport */ hasNaNValues/* default */.A),
@@ -214753,12 +214707,54 @@ function imageToWorldCoords(imageId, imageCoords) {
214753
214707
  return Array.from(imageCoordsInWorld);
214754
214708
  }
214755
214709
 
214756
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeSliceRangeInfo.js
214757
- var getVolumeSliceRangeInfo = __webpack_require__(76399);
214758
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeViewportScrollInfo.js
214759
- var getVolumeViewportScrollInfo = __webpack_require__(62255);
214760
214710
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getSliceRange.js
214761
214711
  var getSliceRange = __webpack_require__(51849);
214712
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeSliceRangeInfo.js
214713
+
214714
+
214715
+ function getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness = false) {
214716
+ const camera = viewport.getCamera();
214717
+ const { focalPoint, viewPlaneNormal } = camera;
214718
+ const { spacingInNormalDirection, actorUID } = (0,getTargetVolumeAndSpacingInNormalDir/* default */.A)(viewport, camera, volumeId, useSlabThickness);
214719
+ if (!actorUID) {
214720
+ throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
214721
+ }
214722
+ const actorEntry = viewport.getActor(actorUID);
214723
+ if (!actorEntry) {
214724
+ console.warn('No actor found for with actorUID of', actorUID);
214725
+ return null;
214726
+ }
214727
+ const volumeActor = actorEntry.actor;
214728
+ const sliceRange = (0,getSliceRange/* default */.A)(volumeActor, viewPlaneNormal, focalPoint);
214729
+ return {
214730
+ sliceRange,
214731
+ spacingInNormalDirection,
214732
+ camera,
214733
+ };
214734
+ }
214735
+ /* harmony default export */ const utilities_getVolumeSliceRangeInfo = (getVolumeSliceRangeInfo);
214736
+
214737
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeViewportScrollInfo.js
214738
+
214739
+ function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
214740
+ const { sliceRange, spacingInNormalDirection, camera } = utilities_getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness);
214741
+ const { min, max, current } = sliceRange;
214742
+ const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
214743
+ const fraction = (current - min) / (max - min);
214744
+ const floatingStepNumber = fraction * numScrollSteps;
214745
+ const currentStepIndex = Math.round(floatingStepNumber);
214746
+ return {
214747
+ numScrollSteps,
214748
+ currentStepIndex,
214749
+ sliceRangeInfo: {
214750
+ sliceRange,
214751
+ spacingInNormalDirection,
214752
+ camera,
214753
+ },
214754
+ };
214755
+ }
214756
+ /* harmony default export */ const utilities_getVolumeViewportScrollInfo = (getVolumeViewportScrollInfo);
214757
+
214762
214758
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/snapFocalPointToSlice.js
214763
214759
 
214764
214760
  function snapFocalPointToSlice(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, deltaFrames) {
@@ -217144,7 +217140,7 @@ class CentralizedWorkerManager {
217144
217140
  /***/ 54578:
217145
217141
  /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
217146
217142
 
217147
- !function(e,t){ true?module.exports=t(__webpack_require__(92136),__webpack_require__(45561)):0}(this,((e,t)=>(()=>{"use strict";var r={578:(e,t,r)=>{const n=r(823),a=r(187),o=r(592),i=r(604),s=r(249),l=r(968),c=Object.prototype.toString,{Z_NO_FLUSH:u,Z_FINISH:f,Z_OK:d,Z_STREAM_END:m,Z_NEED_DICT:g,Z_STREAM_ERROR:h,Z_DATA_ERROR:p,Z_MEM_ERROR:x}=r(684);function b(e){this.options=a.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let r=n.inflateInit2(this.strm,t.windowBits);if(r!==d)throw new Error(i[r]);if(this.header=new l,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=o.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary),r!==d)))throw new Error(i[r])}function w(e,t){const r=new b(t);if(r.push(e),r.err)throw r.msg||i[r.err];return r.result}b.prototype.push=function(e,t){const r=this.strm,a=this.options.chunkSize,i=this.options.dictionary;let s,l,b;if(this.ended)return!1;for(l=t===~~t?t:!0===t?f:u,"[object ArrayBuffer]"===c.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(a),r.next_out=0,r.avail_out=a),s=n.inflate(r,l),s===g&&i&&(s=n.inflateSetDictionary(r,i),s===d?s=n.inflate(r,l):s===p&&(s=g));r.avail_in>0&&s===m&&r.state.wrap>0&&0!==e[r.next_in];)n.inflateReset(r),s=n.inflate(r,l);switch(s){case h:case p:case g:case x:return this.onEnd(s),this.ended=!0,!1}if(b=r.avail_out,r.next_out&&(0===r.avail_out||s===m))if("string"===this.options.to){let e=o.utf8border(r.output,r.next_out),t=r.next_out-e,n=o.buf2string(r.output,e);r.next_out=t,r.avail_out=a-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(n)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(s!==d||0!==b){if(s===m)return s=n.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},b.prototype.onData=function(e){this.chunks.push(e)},b.prototype.onEnd=function(e){e===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Hq=function(e,t){return(t=t||{}).raw=!0,w(e,t)},r(684)},187:e=>{const t=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);e.exports.assign=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const n=r.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const r in n)t(n,r)&&(e[r]=n[r])}}return e},e.exports.flattenChunks=e=>{let t=0;for(let r=0,n=e.length;r<n;r++)t+=e[r].length;const r=new Uint8Array(t);for(let t=0,n=0,a=e.length;t<a;t++){let a=e[t];r.set(a,n),n+=a.length}return r}},592:e=>{let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){t=!1}const r=new Uint8Array(256);for(let e=0;e<256;e++)r[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;r[254]=r[254]=1,e.exports.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,n,a,o,i=e.length,s=0;for(a=0;a<i;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),s+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(s),o=0,a=0;o<s;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),r<128?t[o++]=r:r<2048?(t[o++]=192|r>>>6,t[o++]=128|63&r):r<65536?(t[o++]=224|r>>>12,t[o++]=128|r>>>6&63,t[o++]=128|63&r):(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63,t[o++]=128|r>>>6&63,t[o++]=128|63&r);return t};e.exports.buf2string=(e,n)=>{const a=n||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,n));let o,i;const s=new Array(2*a);for(i=0,o=0;o<a;){let t=e[o++];if(t<128){s[i++]=t;continue}let n=r[t];if(n>4)s[i++]=65533,o+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&o<a;)t=t<<6|63&e[o++],n--;n>1?s[i++]=65533:t<65536?s[i++]=t:(t-=65536,s[i++]=55296|t>>10&1023,s[i++]=56320|1023&t)}}return((e,r)=>{if(r<65534&&e.subarray&&t)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let n="";for(let t=0;t<r;t++)n+=String.fromCharCode(e[t]);return n})(s,i)},e.exports.utf8border=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+r[e[n]]>t?n:t}},693:e=>{e.exports=(e,t,r,n)=>{let a=65535&e|0,o=e>>>16&65535|0,i=0;for(;0!==r;){i=r>2e3?2e3:r,r-=i;do{a=a+t[n++]|0,o=o+a|0}while(--i);a%=65521,o%=65521}return a|o<<16|0}},684:e=>{e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},863:e=>{const t=new Uint32Array((()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t})());e.exports=(e,r,n,a)=>{const o=t,i=a+n;e^=-1;for(let t=a;t<i;t++)e=e>>>8^o[255&(e^r[t])];return-1^e}},968:e=>{e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},365:e=>{const t=16209;e.exports=function(e,r){let n,a,o,i,s,l,c,u,f,d,m,g,h,p,x,b,w,y,k,T,S,D,v,P;const I=e.state;n=e.next_in,v=e.input,a=n+(e.avail_in-5),o=e.next_out,P=e.output,i=o-(r-e.avail_out),s=o+(e.avail_out-257),l=I.dmax,c=I.wsize,u=I.whave,f=I.wnext,d=I.window,m=I.hold,g=I.bits,h=I.lencode,p=I.distcode,x=(1<<I.lenbits)-1,b=(1<<I.distbits)-1;e:do{g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=h[m&x];t:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,0===y)P[o++]=65535&w;else{if(!(16&y)){if(0==(64&y)){w=h[(65535&w)+(m&(1<<y)-1)];continue t}if(32&y){I.mode=16191;break e}e.msg="invalid literal/length code",I.mode=t;break e}k=65535&w,y&=15,y&&(g<y&&(m+=v[n++]<<g,g+=8),k+=m&(1<<y)-1,m>>>=y,g-=y),g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=p[m&b];r:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,!(16&y)){if(0==(64&y)){w=p[(65535&w)+(m&(1<<y)-1)];continue r}e.msg="invalid distance code",I.mode=t;break e}if(T=65535&w,y&=15,g<y&&(m+=v[n++]<<g,g+=8,g<y&&(m+=v[n++]<<g,g+=8)),T+=m&(1<<y)-1,T>l){e.msg="invalid distance too far back",I.mode=t;break e}if(m>>>=y,g-=y,y=o-i,T>y){if(y=T-y,y>u&&I.sane){e.msg="invalid distance too far back",I.mode=t;break e}if(S=0,D=d,0===f){if(S+=c-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}else if(f<y){if(S+=c+f-y,y-=f,y<k){k-=y;do{P[o++]=d[S++]}while(--y);if(S=0,f<k){y=f,k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}}else if(S+=f-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}for(;k>2;)P[o++]=D[S++],P[o++]=D[S++],P[o++]=D[S++],k-=3;k&&(P[o++]=D[S++],k>1&&(P[o++]=D[S++]))}else{S=o-T;do{P[o++]=P[S++],P[o++]=P[S++],P[o++]=P[S++],k-=3}while(k>2);k&&(P[o++]=P[S++],k>1&&(P[o++]=P[S++]))}break}}break}}while(n<a&&o<s);k=g>>3,n-=k,g-=k<<3,m&=(1<<g)-1,e.next_in=n,e.next_out=o,e.avail_in=n<a?a-n+5:5-(n-a),e.avail_out=o<s?s-o+257:257-(o-s),I.hold=m,I.bits=g}},823:(e,t,r)=>{const n=r(693),a=r(863),o=r(365),i=r(446),{Z_FINISH:s,Z_BLOCK:l,Z_TREES:c,Z_OK:u,Z_STREAM_END:f,Z_NEED_DICT:d,Z_STREAM_ERROR:m,Z_DATA_ERROR:g,Z_MEM_ERROR:h,Z_BUF_ERROR:p,Z_DEFLATED:x}=r(684),b=16180,w=16190,y=16191,k=16192,T=16194,S=16199,D=16200,v=16206,P=16209,I=16210,E=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function A(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const _=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<b||t.mode>16211?1:0},L=e=>{if(_(e))return m;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=b,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,u},C=e=>{if(_(e))return m;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,L(e)},O=(e,t)=>{let r;if(_(e))return m;const n=e.state;return t<0?(r=0,t=-t):(r=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?m:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,C(e))},M=(e,t)=>{if(!e)return m;const r=new A;e.state=r,r.strm=e,r.window=null,r.mode=b;const n=O(e,t);return n!==u&&(e.state=null),n};let R,F,B=!0;const U=e=>{if(B){R=new Int32Array(512),F=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(i(1,e.lens,0,288,R,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;i(2,e.lens,0,32,F,0,e.work,{bits:5}),B=!1}e.lencode=R,e.lenbits=9,e.distcode=F,e.distbits=5},N=(e,t,r,n)=>{let a;const o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),n>=o.wsize?(o.window.set(t.subarray(r-o.wsize,r),0),o.wnext=0,o.whave=o.wsize):(a=o.wsize-o.wnext,a>n&&(a=n),o.window.set(t.subarray(r-n,r-n+a),o.wnext),(n-=a)?(o.window.set(t.subarray(r-n,r),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=a))),0};e.exports.inflateReset=C,e.exports.inflateReset2=O,e.exports.inflateResetKeep=L,e.exports.inflateInit=e=>M(e,15),e.exports.inflateInit2=M,e.exports.inflate=(e,t)=>{let r,A,L,C,O,M,R,F,B,j,$,G,V,W,q,Z,Y,z,H,Q,X,K,J=0;const ee=new Uint8Array(4);let te,re;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(_(e)||!e.output||!e.input&&0!==e.avail_in)return m;r=e.state,r.mode===y&&(r.mode=k),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,j=M,$=R,K=u;e:for(;;)switch(r.mode){case b:if(0===r.wrap){r.mode=k;break}for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(2&r.wrap&&35615===F){0===r.wbits&&(r.wbits=15),r.check=0,ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0),F=0,B=0,r.mode=16181;break}if(r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&F)<<8)+(F>>8))%31){e.msg="incorrect header check",r.mode=P;break}if((15&F)!==x){e.msg="unknown compression method",r.mode=P;break}if(F>>>=4,B-=4,X=8+(15&F),0===r.wbits&&(r.wbits=X),X>15||X>r.wbits){e.msg="invalid window size",r.mode=P;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=512&F?16189:y,F=0,B=0;break;case 16181:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.flags=F,(255&r.flags)!==x){e.msg="unknown compression method",r.mode=P;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=P;break}r.head&&(r.head.text=F>>8&1),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16182;case 16182:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.time=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,ee[2]=F>>>16&255,ee[3]=F>>>24&255,r.check=a(r.check,ee,4,0)),F=0,B=0,r.mode=16183;case 16183:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.xflags=255&F,r.head.os=F>>8),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16184;case 16184:if(1024&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length=F,r.head&&(r.head.extra_len=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0}else r.head&&(r.head.extra=null);r.mode=16185;case 16185:if(1024&r.flags&&(G=r.length,G>M&&(G=M),G&&(r.head&&(X=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(A.subarray(C,C+G),X)),512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,r.length-=G),r.length))break e;r.length=0,r.mode=16186;case 16186:if(2048&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.name+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=16187;case 16187:if(4096&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.comment+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.comment=null);r.mode=16188;case 16188:if(512&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(65535&r.check)){e.msg="header crc mismatch",r.mode=P;break}F=0,B=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=y;break;case 16189:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}e.adler=r.check=E(F),F=0,B=0,r.mode=w;case w:if(0===r.havedict)return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,d;e.adler=r.check=1,r.mode=y;case y:if(t===l||t===c)break e;case k:if(r.last){F>>>=7&B,B-=7&B,r.mode=v;break}for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}switch(r.last=1&F,F>>>=1,B-=1,3&F){case 0:r.mode=16193;break;case 1:if(U(r),r.mode=S,t===c){F>>>=2,B-=2;break e}break;case 2:r.mode=16196;break;case 3:e.msg="invalid block type",r.mode=P}F>>>=2,B-=2;break;case 16193:for(F>>>=7&B,B-=7&B;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if((65535&F)!=(F>>>16^65535)){e.msg="invalid stored block lengths",r.mode=P;break}if(r.length=65535&F,F=0,B=0,r.mode=T,t===c)break e;case T:r.mode=16195;case 16195:if(G=r.length,G){if(G>M&&(G=M),G>R&&(G=R),0===G)break e;L.set(A.subarray(C,C+G),O),M-=G,C+=G,R-=G,O+=G,r.length-=G;break}r.mode=y;break;case 16196:for(;B<14;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.nlen=257+(31&F),F>>>=5,B-=5,r.ndist=1+(31&F),F>>>=5,B-=5,r.ncode=4+(15&F),F>>>=4,B-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=P;break}r.have=0,r.mode=16197;case 16197:for(;r.have<r.ncode;){for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.lens[ne[r.have++]]=7&F,F>>>=3,B-=3}for(;r.have<19;)r.lens[ne[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,te={bits:r.lenbits},K=i(0,r.lens,0,19,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid code lengths set",r.mode=P;break}r.have=0,r.mode=16198;case 16198:for(;r.have<r.nlen+r.ndist;){for(;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Y<16)F>>>=q,B-=q,r.lens[r.have++]=Y;else{if(16===Y){for(re=q+2;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(F>>>=q,B-=q,0===r.have){e.msg="invalid bit length repeat",r.mode=P;break}X=r.lens[r.have-1],G=3+(3&F),F>>>=2,B-=2}else if(17===Y){for(re=q+3;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=3+(7&F),F>>>=3,B-=3}else{for(re=q+7;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=11+(127&F),F>>>=7,B-=7}if(r.have+G>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=P;break}for(;G--;)r.lens[r.have++]=X}}if(r.mode===P)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=P;break}if(r.lenbits=9,te={bits:r.lenbits},K=i(1,r.lens,0,r.nlen,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid literal/lengths set",r.mode=P;break}if(r.distbits=6,r.distcode=r.distdyn,te={bits:r.distbits},K=i(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,te),r.distbits=te.bits,K){e.msg="invalid distances set",r.mode=P;break}if(r.mode=S,t===c)break e;case S:r.mode=D;case D:if(M>=6&&R>=258){e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,o(e,$),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,r.mode===y&&(r.back=-1);break}for(r.back=0;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Z&&0==(240&Z)){for(z=q,H=Z,Q=Y;J=r.lencode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,r.length=Y,0===Z){r.mode=16205;break}if(32&Z){r.back=-1,r.mode=y;break}if(64&Z){e.msg="invalid literal/length code",r.mode=P;break}r.extra=15&Z,r.mode=16201;case 16201:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=16202;case 16202:for(;J=r.distcode[F&(1<<r.distbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(0==(240&Z)){for(z=q,H=Z,Q=Y;J=r.distcode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,64&Z){e.msg="invalid distance code",r.mode=P;break}r.offset=Y,r.extra=15&Z,r.mode=16203;case 16203:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.offset+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=P;break}r.mode=16204;case 16204:if(0===R)break e;if(G=$-R,r.offset>G){if(G=r.offset-G,G>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=P;break}G>r.wnext?(G-=r.wnext,V=r.wsize-G):V=r.wnext-G,G>r.length&&(G=r.length),W=r.window}else W=L,V=O-r.offset,G=r.length;G>R&&(G=R),R-=G,r.length-=G;do{L[O++]=W[V++]}while(--G);0===r.length&&(r.mode=D);break;case 16205:if(0===R)break e;L[O++]=r.length,R--,r.mode=D;break;case v:if(r.wrap){for(;B<32;){if(0===M)break e;M--,F|=A[C++]<<B,B+=8}if($-=R,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,O-$):n(r.check,L,$,O-$)),$=R,4&r.wrap&&(r.flags?F:E(F))!==r.check){e.msg="incorrect data check",r.mode=P;break}F=0,B=0}r.mode=16207;case 16207:if(r.wrap&&r.flags){for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=P;break}F=0,B=0}r.mode=16208;case 16208:K=f;break e;case P:K=g;break e;case I:return h;default:return m}return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,(r.wsize||$!==e.avail_out&&r.mode<P&&(r.mode<v||t!==s))&&N(e,e.output,e.next_out,$-e.avail_out)?(r.mode=I,h):(j-=e.avail_in,$-=e.avail_out,e.total_in+=j,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,e.next_out-$):n(r.check,L,$,e.next_out-$)),e.data_type=r.bits+(r.last?64:0)+(r.mode===y?128:0)+(r.mode===S||r.mode===T?256:0),(0===j&&0===$||t===s)&&K===u&&(K=p),K)},e.exports.inflateEnd=e=>{if(_(e))return m;let t=e.state;return t.window&&(t.window=null),e.state=null,u},e.exports.inflateGetHeader=(e,t)=>{if(_(e))return m;const r=e.state;return 0==(2&r.wrap)?m:(r.head=t,t.done=!1,u)},e.exports.inflateSetDictionary=(e,t)=>{const r=t.length;let a,o,i;return _(e)?m:(a=e.state,0!==a.wrap&&a.mode!==w?m:a.mode===w&&(o=1,o=n(o,t,r,0),o!==a.check)?g:(i=N(e,t,r,r),i?(a.mode=I,h):(a.havedict=1,u)))},e.exports.inflateInfo="pako inflate (from Nodeca project)"},446:e=>{const t=15,r=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),a=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);e.exports=(e,i,s,l,c,u,f,d)=>{const m=d.bits;let g,h,p,x,b,w,y=0,k=0,T=0,S=0,D=0,v=0,P=0,I=0,E=0,A=0,_=null;const L=new Uint16Array(16),C=new Uint16Array(16);let O,M,R,F=null;for(y=0;y<=t;y++)L[y]=0;for(k=0;k<l;k++)L[i[s+k]]++;for(D=m,S=t;S>=1&&0===L[S];S--);if(D>S&&(D=S),0===S)return c[u++]=20971520,c[u++]=20971520,d.bits=1,0;for(T=1;T<S&&0===L[T];T++);for(D<T&&(D=T),I=1,y=1;y<=t;y++)if(I<<=1,I-=L[y],I<0)return-1;if(I>0&&(0===e||1!==S))return-1;for(C[1]=0,y=1;y<t;y++)C[y+1]=C[y]+L[y];for(k=0;k<l;k++)0!==i[s+k]&&(f[C[i[s+k]]++]=k);if(0===e?(_=F=f,w=20):1===e?(_=r,F=n,w=257):(_=a,F=o,w=0),A=0,k=0,y=T,b=u,v=D,P=0,p=-1,E=1<<D,x=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){O=y-P,f[k]+1<w?(M=0,R=f[k]):f[k]>=w?(M=F[f[k]-w],R=_[f[k]-w]):(M=96,R=0),g=1<<y-P,h=1<<v,T=h;do{h-=g,c[b+(A>>P)+h]=O<<24|M<<16|R|0}while(0!==h);for(g=1<<y-1;A&g;)g>>=1;if(0!==g?(A&=g-1,A+=g):A=0,k++,0==--L[y]){if(y===S)break;y=i[s+f[k]]}if(y>D&&(A&x)!==p){for(0===P&&(P=D),b+=T,v=y-P,I=1<<v;v+P<S&&(I-=L[v+P],!(I<=0));)v++,I<<=1;if(E+=1<<v,1===e&&E>852||2===e&&E>592)return 1;p=A&x,c[p]=D<<24|v<<16|b-u|0}}return 0!==A&&(c[b+A]=y-P<<24|64<<16|0),d.bits=D,0}},604:e=>{e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},249:e=>{e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},464:t=>{t.exports=e},713:e=>{e.exports=t}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})();var o={};return(()=>{function e(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++)t[o++]=e[a++],t[o++]=e[a++],t[o++]=e[a++],t[o++]=255;else t.set(e)}function t(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++],t[a++]=255;else for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++]}function r(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128),t[o++]=255}else for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128)}}function n(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128),t[a++]=255}else for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128)}}a.r(o),a.d(o,{configure:()=>kt,convertColorSpace:()=>X,convertPALETTECOLOR:()=>yt,convertRGBColorByPixel:()=>e,convertRGBColorByPlane:()=>t,convertYBRFullByPixel:()=>r,convertYBRFullByPlane:()=>n,createImage:()=>ye,decodeImageFrame:()=>he,decodeJPEGBaseline8BitColor:()=>J,default:()=>St,external:()=>xt,getImageFrame:()=>pe,getMinMax:()=>H,getPixelData:()=>z,internal:()=>U,isColorImage:()=>xe,isJPEGBaseline8BitColor:()=>Tt,wadors:()=>Ie,wadouri:()=>dt,webWorkerManager:()=>de});const i=function(e,t,r){return t=t||0,e&&e.Value?e.Value.length<=t?r:e.Value[t]:r};const s=function(e,t,r){const n=i(e,t,r);if(void 0!==n)return parseFloat(n)};const l=function(e,t){const r=i(e,t);if(void 0!==r)return parseFloat(r)};const c=function(e,t){if(!e)return;if(!e.Value)return;if(!Array.isArray(e.Value))return;if(t&&e.Value.length<t)return;const r=[];for(let t=0;t<e.Value.length;t++)r.push(parseFloat(e.Value[t]));return r};function u(e){const t=e.indexOf(":");return e.substring(t+1)}function f(e,t=!0){return e&&e.Value?e.Value[0]&&t?e.Value[0]:e.Value:e}function d(e,t,r){return{shared:(t?Object.values(t[0]):[]).map((e=>e[0])).filter((e=>void 0!==e&&"object"==typeof e)),perFrame:(e?Object.values(e[r-1]):[]).map((e=>e.Value[0])).filter((e=>void 0!==e&&"object"==typeof e))}}function m(e){let{52009230:t,52009229:r,"00280008":n,...a}=e;return t=f(t,!1),r=f(r,!1),n=f(n),{PerFrameFunctionalGroupsSequence:t,SharedFunctionalGroupsSequence:r,NumberOfFrames:n,rest:a}}function g(e){const t=e.indexOf("/frames/")+8,r=e.slice(0,t),n=parseInt(e.slice(t),10);return{metadata:p[`${r}1`],frame:n}}const h={_retrieveMultiframeMetadata:g,retrieveMultiframeMetadata:function(e){return g(u(e))},isMultiframe:function(e){const t=i(e["00280008"]);return t&&t>1}};let p=[],x={};const b={add:function(e,t){const r=u(e);t.isMultiframe=h.isMultiframe(t),p[r]=t},get:function(e){const t=u(e),r=p[t];if(r&&!r?.isMultiframe)return r;const n=x[t];if(n)return n;const a=h._retrieveMultiframeMetadata(t);if(!a||!a.metadata)return;const{metadata:o,frame:i}=a;if(o){const e=function(e,t){const{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:a,rest:o}=m(t);if(r||a>1){const{shared:i,perFrame:s}=d(r,n,e),l=Object.assign(t,{frameNumber:e});return[...i,...s].forEach((e=>{Object.entries(e).forEach((([e,t])=>{l[e]=t}))})),Object.assign(o,{"00280008":a},l)}return t}(i,o);return x[t]=e,e}},remove:function(e){const t=u(e);p[t]=void 0,x[t]=void 0},purge:function(){p=[],x={}}};function w(e){return"RECON TOMO"===e||"RECON GATED TOMO"===e}function y(e){return i(e["00080060"]).includes("NM")}function k(e,t){const r=f(e["00080008"],!1);if(r)return r[t]}function T(e){let t=c(e["00200037"],6);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200037"],6))}return t}(e)),t}function S(e){let t=c(e["00200032"],3);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200032"],3))}return t}(e)),t}function D(e,t,r){const n={};for(const a of r)try{const r=t(a,e);if(r){const e={};for(const t in r)if(t in r){e[v(t)]=r[t]}Object.assign(n,e)}}catch(e){console.error(`Error retrieving ${a} data:`,e)}return n}const v=e=>e.charAt(0).toUpperCase()+e.slice(1),P=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function I(e,t){const r=c(e[t]);return r?r[0]:null}const E=function(e){return e?.Value?.length?Array.isArray(e.Value)?e.Value:"object"==typeof e.Value?(console.warn("Warning: Value should be an array, but an object was found. Encapsulating the object in an array."),[e.Value]):[]:[]};function A(e){const t=E(e["00186011"]);if(!t||!t.length)return null;return t.map((e=>{const t=I(e,"0018602C"),r=I(e,"0018602E"),n=I(e,"00186024"),a=I(e,"00186026");return{regionLocationMinY0:I(e,"0018601A"),regionLocationMaxY1:I(e,"0018601E"),regionLocationMinX0:I(e,"00186018"),regionLocationMaxX1:I(e,"0018601C"),referencePixelX0:I(e,"00186020"),referencePixelY0:I(e,"00186022"),physicalDeltaX:t,physicalDeltaY:r,physicalUnitsXDirection:n,physicalUnitsYDirection:a,referencePhysicalPixelValueY:I(e,"0018602A"),referencePhysicalPixelValueX:I(e,"00186028"),regionSpatialFormat:I(e,"00186012"),regionDataType:I(e,"00186014"),regionFlags:I(e,"00186016"),transducerFrequency:I(e,"00186030")}}))}function _(e,t){return{transferSyntaxUID:i(t["00020010"])||i(t["00083002"])}}const L=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(t===n.MULTIFRAME){const{metadata:e,frame:t}=h.retrieveMultiframeMetadata(r);if(!e)return;const{PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,NumberOfFrames:o}=m(e);if(n||o>1){const{shared:e,perFrame:r}=d(n,a,t);return{NumberOfFrames:o,PerFrameFunctionalInformation:r,SharedFunctionalInformation:e}}return{NumberOfFrames:o}}const o=b.get(r);if(o){if(t===n.GENERAL_STUDY)return{studyDescription:i(o["00081030"]),studyDate:a.parseDA(i(o["00080020"])),studyTime:a.parseTM(i(o["00080030"],0,"")),accessionNumber:i(o["00080050"])};if(t===n.GENERAL_SERIES)return{modality:i(o["00080060"]),seriesInstanceUID:i(o["0020000E"]),seriesNumber:l(o["00200011"]),studyInstanceUID:i(o["0020000D"]),seriesDate:a.parseDA(i(o["00080021"])),seriesTime:a.parseTM(i(o["00080031"],0,"")),acquisitionDate:a.parseDA(i(o["00080022"])),acquisitionTime:a.parseTM(i(o["00080032"],0,""))};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:i(o["00080018"]),instanceNumber:l(o["00200013"]),lossyImageCompression:i(o["00282110"]),lossyImageCompressionRatio:l(o["00282112"]),lossyImageCompressionMethod:i(o["00282114"])};if(t===n.PATIENT)return{patientID:i(o["00100020"]),patientName:i(o["00100010"])};if(t===n.PATIENT_STUDY)return{patientAge:l(o["00101010"]),patientSize:l(o["00101020"]),patientSex:i(o["00100040"]),patientWeight:l(o["00101030"])};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=i(o["00080060"]),t=k(o,2);return{modality:e,imageType:i(o["00080008"]),imageSubType:t,imageOrientationPatient:T(o),imagePositionPatient:S(o),sliceThickness:l(o["00180050"]),spacingBetweenSlices:l(o["00180088"]),pixelSpacing:c(o["00280030"],2),numberOfFrames:l(o["00280008"]),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=T(o),t=S(o),r=c(o["00280030"],2);let n=null,a=null;r&&(a=r[0],n=r[1]);let s=null,u=null;return e&&(s=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],u=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:i(o["00200052"]),rows:l(o["00280010"]),columns:l(o["00280011"]),imageOrientationPatient:e,rowCosines:s,columnCosines:u,imagePositionPatient:t,sliceThickness:l(o["00180050"]),sliceLocation:l(o["00201041"]),pixelSpacing:r,rowPixelSpacing:a,columnPixelSpacing:n}}if(t===n.ULTRASOUND_ENHANCED_REGION)return A(o);if(t===n.CALIBRATION){if("US"===i(o["00080060"])){return{sequenceOfUltrasoundRegions:A(o)}}}if(t===n.IMAGE_URL)return function(e,t){const{transferSyntaxUID:r}=_(e,t),n=xt.cornerstone.utilities.isVideoTransferSyntax(r),a=e.substring(7),o=a.replace("/frames/","/thumbnail/");let i=a.replace("/frames/","/rendered/");n&&(i=i.replace("/rendered/1","/rendered"));return{isVideo:n,rendered:i,thumbnail:o}}(r,o);if(t===n.CINE)return function(e,t){const r=i(t["00180040"]);return{cineRate:r,numberOfFrames:l(t["00280008"])}}(0,o);if(t===n.IMAGE_PIXEL)return{samplesPerPixel:l(o["00280002"]),photometricInterpretation:i(o["00280004"]),rows:l(o["00280010"]),columns:l(o["00280011"]),bitsAllocated:l(o["00280100"]),bitsStored:l(o["00280101"]),highBit:i(o["00280102"]),pixelRepresentation:l(o["00280103"]),planarConfiguration:l(o["00280006"]),pixelAspectRatio:i(o["00280034"]),smallestPixelValue:l(o["00280106"]),largestPixelValue:l(o["00280107"]),redPaletteColorLookupTableDescriptor:c(o["00281101"]),greenPaletteColorLookupTableDescriptor:c(o["00281102"]),bluePaletteColorLookupTableDescriptor:c(o["00281103"]),redPaletteColorLookupTableData:c(o["00281201"]),greenPaletteColorLookupTableData:c(o["00281202"]),bluePaletteColorLookupTableData:c(o["00281203"])};if(t===n.VOI_LUT)return{windowCenter:c(o["00281050"],1),windowWidth:c(o["00281051"],1)};if(t===n.MODALITY_LUT)return{rescaleIntercept:l(o["00281052"]),rescaleSlope:l(o["00281053"]),rescaleType:i(o["00281054"])};if(t===n.SOP_COMMON)return{sopClassUID:i(o["00080016"]),sopInstanceUID:i(o["00080018"])};if(t===n.PET_ISOTOPE){const e=i(o["00540016"]);if(void 0===e)return;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(i(e["00181072"],0,"")),radiopharmaceuticalStartDateTime:i(e["00181078"],0,""),radionuclideTotalDose:l(e["00181074"]),radionuclideHalfLife:l(e["00181075"])}}}return t===n.OVERLAY_PLANE?function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=i(e[`${n}3000`]);if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.Value[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:l(e[`${n}0010`]),columns:l(e[`${n}0011`]),type:i(e[`${n}0040`]),x:l(e[`${n}0050`],1)-1,y:l(e[`${n}0050`],0)-1,pixelData:o,description:i(e[`${n}0022`]),label:i(e[`${n}1500`]),roiArea:i(e[`${n}1301`]),roiMean:i(e[`${n}1302`]),roiStandardDeviation:i(e[`${n}1303`])})}return{overlays:t}}(o):"transferSyntax"===t?_(r,o):t===n.PET_SERIES?{correctedImage:i(o["00280051"]),units:i(o["00541001"]),decayCorrection:i(o["00541102"])}:t===n.PET_IMAGE?{frameReferenceTime:l(o["00541300"]),actualFrameDuration:l(o["00181242"])}:"instance"===t?D(r,e,P):void 0}};function C(e,t,r){if(r+e.length>t.length)return!1;let n=r;for(let r=0;r<e.length;r++)if(e[r]!==t[n++])return!1;return!0}const O=function(e,t,r){r=r||0;const n=function(e){const t=new Uint8Array(e.length);for(let r=0,n=e.length;r<n;r++)t[r]=e.charCodeAt(r);return t}(t);for(let t=r;t<e.length;t++)if(n[0]===e[t]&&C(n,e,t))return t;return-1};let M={open(e,t){e.open("get",t,!0)},beforeSend(){},beforeProcessing:e=>Promise.resolve(e.response),imageCreated(){},strict:!1,decodeConfig:{convertFloatPixelDataToInt:!0,use16BitDataType:!1}};function R(e){M=Object.assign(M,e)}function F(){return M}const B=function(e,t,r={},n={}){const{cornerstone:a}=xt,o=F(),i=e=>{if("function"==typeof o.errorInterceptor){const t=new Error("request failed");t.request=e,t.response=e.response,t.status=e.status,o.errorInterceptor(t)}},s=new XMLHttpRequest,l=new Promise(((l,c)=>{o.open(s,e,r,n);const u=o.beforeSend(s,t,r,n);s.responseType="arraybuffer";const f=Object.assign({},r,u);Object.keys(f).forEach((function(t){null!==f[t]&&("Accept"===t&&-1!==e.indexOf("accept=")||s.setRequestHeader(t,f[t]))})),n.deferred={resolve:l,reject:c},n.url=e,n.imageId=t,s.onloadstart=function(r){o.onloadstart&&o.onloadstart(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadstart",i)},s.onloadend=function(r){o.onloadend&&o.onloadend(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadend",i)},s.onreadystatechange=function(e){o.onreadystatechange?o.onreadystatechange(e,n):4===s.readyState&&(200===s.status||206===s.status?o.beforeProcessing(s).then(l).catch((()=>{i(s),c(s)})):(i(s),c(s)))},s.onprogress=function(e){const t=e.loaded;let r,a;e.lengthComputable&&(r=e.total,a=Math.round(t/r*100)),o.onprogress&&o.onprogress(e,n)},s.onerror=function(){i(s),c(s)},s.onabort=function(){i(s),c(s)},s.send()}));return l.xhr=s,l},U={xhrRequest:B,setOptions:R,getOptions:F};var N=a(464);const{ImageQualityStatus:j}=N.Enums;function $(e,t,r){r||={};const n=new Uint8Array(t),a=!!r?.isPartial;if(-1===e.indexOf("multipart"))return{contentType:e,imageQualityStatus:a?j.SUBRESOLUTION:j.FULL_RESOLUTION,pixelData:n};let{tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l}=r;if(o||=O(n,"\r\n\r\n"),-1===o)throw new Error("invalid response - no multipart mime header");if(!s){const e=function(e,t,r){t=t||0,r=r||e.length-t;let n="";for(let a=t;a<t+r;a++)n+=String.fromCharCode(e[a]);return n}(n,0,o);if(i=e.split("\r\n"),s=function(e){for(let t=0;t<e.length;t++)if("--"===e[t].substr(0,2))return e[t]}(i),!s)throw new Error("invalid response - no boundary marker")}const c=o+4,u=O(n,s,c);if(-1===u&&!a)throw new Error("invalid response - terminating boundary not found");return l||=function(e){for(let t=0;t<e.length;t++)if("Content-Type:"===e[t].substr(0,13))return e[t].substr(13).trim()}(i),r.tokenIndex=o,r.boundary=s,r.responseHeaders=i,r.multipartContentType=l,r.isPartial=-1===u,{contentType:l,extractDone:!a||-1!==u,tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l,pixelData:t.slice(c,u-2)}}const{ImageQualityStatus:G}=N.Enums;function V(e,t=!0){return t?e.imageQualityStatus??G.FULL_RESOLUTION:G.SUBRESOLUTION}const{ProgressiveIterator:W}=N.utilities;function q(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i={}}=n,s=o.minChunkSize||131072,l=new W("streamRequest");return l.generate((async(n,l)=>{const c=Object.assign({},r);Object.keys(c).forEach((function(t){null===c[t]&&(c[t]=void 0),"Accept"===t&&-1!==e.indexOf("accept=")&&(c[t]=void 0)}));try{const a=await fetch(e,{headers:r,signal:void 0});if(200!==a.status)throw new Error(`Couldn't retrieve ${e} got status ${a.status}`);const l=a.body.getReader(),c=a.headers,u=c.get("content-type"),f=Number(c.get("Content-Length"));let d=!1,m=i.encodedData,g=i.lastSize||0;for(i.isPartial=!0;!d;){const{done:r,value:a}=await l.read();if(m=Z(m,a),!m){if(d)throw new Error(`Done but no image frame available ${t}`);continue}if(d=r||m.byteLength===f,!d&&m.length<g+s)continue;g=m.length,i.isPartial=!r;const c=$(u,m,i),h=V(o,d),p={url:e,imageId:t,...c,percentComplete:r?100:100*c.pixelData?.length/f,imageQualityStatus:h,done:d};n.add(p,d)}}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}})(),console.error(e),l(e)}})),l.getNextPromise()}function Z(e,t){if(!e)return t;if(!t)return e;const r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}function Y(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i}=n,s=i.chunkSize||function(e,t,r){const n=t[r];if("function"!=typeof n)return n;const a=b.get(e);return n(a,e)}(t,o,"chunkSize")||65536,l=new Promise((async(t,n)=>{const l=Object.assign({},r);Object.keys(l).forEach((function(e){null!==l[e]&&void 0!==l[e]||delete l[e]}));try{i.encodedData||(i.chunkSize=s,i.rangesFetched=0);const r=function(e,t){const{totalBytes:r,encodedData:n,chunkSize:a=65536}=e,{rangeIndex:o=0}=t;if(!(-1!==o||r&&n))return[0,""];if(-1===o||n?.byteLength>r-a)return[n?.byteLength||0,""];return[n?.byteLength||0,a*(o+1)-1]}(i,o),{encodedData:n,responseHeaders:a}=await async function(e,t,r,n){r&&(t=Object.assign(t,{Range:`bytes=${r[0]}-${r[1]}`}));let{encodedData:a}=n;if(r[1]&&a?.byteLength>r[1])return n;const o=await fetch(e,{headers:t,signal:void 0}),i=await o.arrayBuffer(),s=new Uint8Array(i),{status:l}=o;let c;a?(c=new Uint8Array(a.length+s.length),c.set(a,0),c.set(s,a.length),n.rangesFetched=1):(c=new Uint8Array(s.length),c.set(s,0),n.rangesFetched++);n.encodedData=a=c,n.responseHeaders=o.headers;const u=o.headers.get("Content-Range");u?n.totalBytes=Number(u.split("/")[1]):206===l&&r?""===r[1]||a?.length<r[1]?n.totalBytes=a.byteLength:n.totalBytes=Number.MAX_SAFE_INTEGER:n.totalBytes=a?.byteLength;return n}(e,l,r,i),c=a.get("content-type"),{totalBytes:u}=i,f=u===n.byteLength,d=$(c,n,{isPartial:!0}),m=V(o,f||d.extractDone);t({...d,imageQualityStatus:m,percentComplete:d.extractDone?100:100*s/u})}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}else console.warn("rangeRequest:Caught",e)})(e),console.error(e),n(e)}}));return l}const z=function(e,t,r="application/octet-stream",n){const{streamingData:a,retrieveOptions:o={}}=n||{},i={Accept:r};let s=o.urlArguments?`${e}${-1===e.indexOf("?")?"?":"&"}${o.urlArguments}`:e;if(o.framesPath&&(s=s.replace("/frames/",o.framesPath)),a?.url!==s&&(n.streamingData={url:s}),void 0!==o.rangeIndex)return Y(s,t,i,n);if(o.streaming)return q(s,t,i,n);const l=B(s,t,i),{xhr:c}=l;return l.then((function(e){const t=$(c.getResponseHeader("Content-Type")||"application/octet-stream",new Uint8Array(e));return t.imageQualityStatus=V(o,!0),t}))};const H=function(e){let t,r=e[0],n=e[0];const a=e.length;for(let o=1;o<a;o++)t=e[o],r=Math.min(r,t),n=Math.max(n,t);return{min:r,max:n}};function Q(r,n,a){0===r.planarConfiguration?e(r.pixelData,n,a):t(r.pixelData,n,a)}function X(e,t,a){if("RGB"===e.photometricInterpretation)Q(e,t,a);else if("YBR_RCT"===e.photometricInterpretation)Q(e,t,a);else if("YBR_ICT"===e.photometricInterpretation)Q(e,t,a);else if("PALETTE COLOR"===e.photometricInterpretation)yt(e,t,a);else if("YBR_FULL_422"===e.photometricInterpretation)!function(e,t,r){if(void 0===e)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!=0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let a=0,o=0;if(r)for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=255,t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128),t[o++]=255}else for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128)}}(e.pixelData,t,a);else{if("YBR_FULL"!==e.photometricInterpretation)throw new Error(`No color space conversion for photometric interpretation ${e.photometricInterpretation}`);!function(e,t,a){0===e.planarConfiguration?r(e.pixelData,t,a):n(e.pixelData,t,a)}(e,t,a)}}function K(e){return function(e){let t;try{return decodeURIComponent(escape(e))}catch(r){if(t=r,t instanceof URIError)return e;throw t}}(String.fromCharCode.apply(null,Array.prototype.slice.apply(new Uint8Array(e))))}const J=function(e,t,r){const n=(new Date).getTime(),a=new Blob([t],{type:"image/jpeg"});return new Promise(((t,o)=>{const i=new FileReader;void 0===i.readAsBinaryString?i.readAsArrayBuffer(a):i.readAsBinaryString(a),i.onload=function(){const a=new Image;a.onload=function(){r.height=a.height,r.width=a.width,e.rows=a.height,e.columns=a.width;const o=r.getContext("2d");o.drawImage(this,0,0);const i=o.getImageData(0,0,a.width,a.height),s=(new Date).getTime();e.pixelData=new Uint8Array(i.data.buffer),e.imageData=i,e.decodeTimeInMS=s-n;const l=H(e.pixelData);e.smallestPixelValue=l.min,e.largestPixelValue=l.max,e.pixelDataLength=e.pixelData.length,t(e)},a.onerror=function(e){o(e)},void 0===i.readAsBinaryString?a.src=`data:image/jpeg;base64,${window.btoa(K(i.result))}`:a.src=`data:image/jpeg;base64,${window.btoa(i.result)}`},i.onerror=e=>{o(e)}}))};function ee(){return new Worker(a.p+"index.worker.f4bda803c15bc6359d5f.worker.js")}let te=0;const re=[],ne=[],ae=F(),oe={maxWebWorkers:navigator.hardwareConcurrency||1,startWebWorkersOnDemand:!0,webWorkerTaskPaths:[],taskConfiguration:{decodeTask:{initializeCodecsOnStartup:!1,strict:ae.strict}}};let ie;const se={maxWebWorkers:0,numWebWorkers:0,numTasksQueued:0,numTasksExecuting:0,numTasksCompleted:0,totalTaskTimeInMS:0,totalTimeDelayedInMS:0};function le(){if(re.length){for(let e=0;e<ne.length;e++)if("ready"===ne[e].status){ne[e].status="busy";const t=re.shift();t.start=(new Date).getTime();const r=(new Date).getTime();return se.totalTimeDelayedInMS+=r-t.added,ne[e].task=t,ne[e].worker.postMessage({taskType:t.taskType,workerIndex:e,data:t.data},t.transferList),void se.numTasksExecuting++}ne.length<ie.maxWebWorkers&&ue()}}function ce(e){if("initialize"===e.data.taskType)ne[e.data.workerIndex].status="ready",le();else{const t=ne[e.data.workerIndex].task.start,r="success"===e.data.status?"resolve":"reject";try{ne[e.data.workerIndex].task.deferred[r](e.data.result)}catch(e){console.warn("Caught error delivering response",e)}ne[e.data.workerIndex].task=void 0,se.numTasksExecuting--,ne[e.data.workerIndex].status="ready",se.numTasksCompleted++;const n=(new Date).getTime();se.totalTaskTimeInMS+=n-t,le()}}function ue(){if(ne.length>=ie.maxWebWorkers)return;const e=new ee;ne.push({worker:e,status:"initializing"}),e.addEventListener("message",ce),e.postMessage({taskType:"initialize",workerIndex:ne.length-1,config:ie})}function fe(e){if(ie=e=e||oe,ie.maxWebWorkers=ie.maxWebWorkers||navigator.hardwareConcurrency||1,!ie.startWebWorkersOnDemand)for(let e=0;e<ie.maxWebWorkers;e++)ue()}const de={initialize:fe,loadWebWorkerTask:function(e,t){ie.webWorkerTaskPaths.push(e),t&&(ie.taskConfiguration=Object.assign(ie.taskConfiguration,t));for(let t=0;t<ne.length;t++)ne[t].worker.postMessage({taskType:"loadWebWorkerTask",workerIndex:ne.length-1,sourcePath:e,config:ie})},addTask:function(e,t,r=0,n){ie||fe();let a={resolve:void 0,reject:void 0};const o=new Promise(((e,t)=>{a={resolve:e,reject:t}}));let i;for(i=0;i<re.length&&!(re[i].priority<r);i++);const s=te++;return re.splice(i,0,{taskId:s,taskType:e,status:"ready",added:(new Date).getTime(),data:t,deferred:a,priority:r,transferList:n}),le(),{taskId:s,promise:o}},getStatistics:function(){return se.maxWebWorkers=ie.maxWebWorkers,se.numWebWorkers=ne.length,se.numTasksQueued=re.length,se},setTaskPriority:function(e,t=0){for(let r=0;r<re.length;r++)if(re[r].taskId===e){const e=re.splice(r,1)[0];for(e.priority=t,r=0;r<re.length&&!(re[r].priority<t);r++);return re.splice(r,0,e),!0}return!1},cancelTask:function(e,t){for(let r=0;r<re.length;r++)if(re[r].taskId===e){return re.splice(r,1).deferred.reject(t),!0}return!1},webWorkers:ne,terminate:function(){for(let e=0;e<ne.length;e++)ne[e].worker.terminate();ne.length=0,ie=void 0}};var me=a(578);function ge(e,t,r,n,a){const o={...n};delete o.loader,delete o.streamingData;const i=o.priority||void 0,s=o.transferPixelData?[r.buffer]:void 0;return de.addTask("decodeTask",{imageFrame:e,transferSyntax:t,pixelData:r,options:o,decodeConfig:a},i,s).promise}window.pako={inflateRaw:me.Hq};const he=function(e,t,r,n,a={},o){switch(t){case"1.2.840.10008.1.2":case"1.2.840.10008.1.2.1":case"1.2.840.10008.1.2.2":case"1.2.840.10008.1.2.1.99":case"1.2.840.10008.1.2.5":case"1.2.840.10008.1.2.4.51":case"1.2.840.10008.1.2.4.57":case"1.2.840.10008.1.2.4.70":case"1.2.840.10008.1.2.4.80":case"1.2.840.10008.1.2.4.81":case"1.2.840.10008.1.2.4.90":case"1.2.840.10008.1.2.4.91":case"3.2.840.10008.1.2.4.96":case"1.2.840.10008.1.2.4.201":case"1.2.840.10008.1.2.4.202":case"1.2.840.10008.1.2.4.203":return ge(e,t,r,a,o);case"1.2.840.10008.1.2.4.50":return 8!==e.bitsAllocated||3!==e.samplesPerPixel&&4!==e.samplesPerPixel?ge(e,t,r,a,o):J(e,r,n)}return Promise.reject(new Error(`No decoder for transfer syntax ${t}`))};const pe=function(e){const{cornerstone:t}=xt,r=t.metaData.get("imagePixelModule",e);return{samplesPerPixel:r.samplesPerPixel,photometricInterpretation:r.photometricInterpretation,planarConfiguration:r.planarConfiguration,rows:r.rows,columns:r.columns,bitsAllocated:r.bitsAllocated,bitsStored:r.bitsStored,pixelRepresentation:r.pixelRepresentation,smallestPixelValue:r.smallestPixelValue,largestPixelValue:r.largestPixelValue,redPaletteColorLookupTableDescriptor:r.redPaletteColorLookupTableDescriptor,greenPaletteColorLookupTableDescriptor:r.greenPaletteColorLookupTableDescriptor,bluePaletteColorLookupTableDescriptor:r.bluePaletteColorLookupTableDescriptor,redPaletteColorLookupTableData:r.redPaletteColorLookupTableData,greenPaletteColorLookupTableData:r.greenPaletteColorLookupTableData,bluePaletteColorLookupTableData:r.bluePaletteColorLookupTableData,pixelData:void 0,imageId:e}};function xe(e){return"RGB"===e||"PALETTE COLOR"===e||"YBR_FULL"===e||"YBR_FULL_422"===e||"YBR_PARTIAL_422"===e||"YBR_PARTIAL_420"===e||"YBR_RCT"===e||"YBR_ICT"===e}let be="";function we(e){const t=function(e,t){let r;return Number.isInteger(e)&&Number.isInteger(t)&&(e>=0?t<=255?r=Uint8Array:t<=65535&&(r=Uint16Array):e>=-128&&t<=127?r=Int8Array:e>=-32768&&t<=32767&&(r=Int16Array)),r||Float32Array}(e.smallestPixelValue,e.largestPixelValue);if(!t)throw new Error("Could not apply a typed array to the pixel data");{const r=new t(e.pixelData);e.pixelData=r}}const ye=function(e,t,r,n={}){const a=n.useRGBA;if(n.preScale={enabled:!(!n.preScale||void 0===n.preScale.enabled)&&n.preScale.enabled},!t?.length)return Promise.reject(new Error("The pixel data is missing"));const{cornerstone:o}=xt,{MetadataModules:i}=o.Enums,s=document.createElement("canvas"),l=pe(e);if(l.decodeLevel=n.decodeLevel,n.allowFloatRendering=o.canRenderFloatTextures(),n.preScale.enabled){const t=function(e,t){const r=e.get("modalityLutModule",t)||{},n=e.get("generalSeriesModule",t)||{},{modality:a}=n,o={rescaleSlope:r.rescaleSlope,rescaleIntercept:r.rescaleIntercept,modality:a},i=e.get("scalingModule",t)||{};return{...o,..."PT"===a&&{suvbw:i.suvbw}}}(o.metaData,e);t&&(n.preScale={...n.preScale,scalingParameters:t})}n.isSharedArrayBuffer=n.targetBuffer?.arrayBuffer&&n.targetBuffer.arrayBuffer instanceof SharedArrayBuffer;const{decodeConfig:c}=F();c.use16BitDataType=!!(n&&"Uint16Array"===n.targetBuffer?.type||"Int16Array"===n.targetBuffer?.type)||(n.useNativeDataType||c.use16BitDataType),Object.keys(l).forEach((e=>{("function"==typeof l[e]||l[e]instanceof Promise)&&delete l[e]}));const u=he(l,r,t,s,n,c),{use16BitDataType:f}=c,d=xe(l.photometricInterpretation);return new Promise(((t,r)=>{u.then((function(r){if(n.skipCreateImage)return t(r);let l=!1;if(n.targetBuffer&&n.targetBuffer.type&&!d){const{arrayBuffer:e,type:t,offset:a=0,length:o}=n.targetBuffer,i=r.pixelDataLength,s=a,c=null!=o?o:i-s,u={Uint8Array,Uint16Array:f?Uint16Array:void 0,Int16Array:f?Int16Array:void 0,Float32Array};if(c!==r.pixelDataLength)throw new Error(`target array for image does not have the same length (${c}) as the decoded image length (${r.pixelDataLength}).`);const d=u[t],m=e?new d(e,s,c):new d(r.pixelData);if(c!==r.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");r.pixelData=m,l=!0}l||we(r);const c=o.metaData.get(i.IMAGE_PLANE,e)||{},u=o.metaData.get(i.VOI_LUT,e)||{},m=o.metaData.get(i.MODALITY_LUT,e)||{},g=o.metaData.get(i.SOP_COMMON,e)||{},h=o.metaData.get(i.CALIBRATION,e)||{},{rows:p,columns:x}=r;if(d){if(function(e,t){if(void 0===e)return!1;const{rows:r,columns:n,photometricInterpretation:a,pixelDataLength:o}=e;return a.endsWith("420")?o!==(3*Math.ceil(n/2)+Math.floor(n/2))*r:a.endsWith("422")?o!==(3*Math.ceil(n/2)+Math.floor(n/2))*Math.ceil(r/2)+Math.floor(r/2)*n:"RGB"!==a}(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})()));
217143
+ !function(e,t){ true?module.exports=t(__webpack_require__(92136),__webpack_require__(45561)):0}(this,((e,t)=>(()=>{"use strict";var r={578:(e,t,r)=>{const n=r(823),a=r(187),o=r(592),i=r(604),s=r(249),l=r(968),c=Object.prototype.toString,{Z_NO_FLUSH:u,Z_FINISH:f,Z_OK:d,Z_STREAM_END:m,Z_NEED_DICT:g,Z_STREAM_ERROR:h,Z_DATA_ERROR:p,Z_MEM_ERROR:x}=r(684);function b(e){this.options=a.assign({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;let r=n.inflateInit2(this.strm,t.windowBits);if(r!==d)throw new Error(i[r]);if(this.header=new l,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=o.string2buf(t.dictionary):"[object ArrayBuffer]"===c.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary),r!==d)))throw new Error(i[r])}function w(e,t){const r=new b(t);if(r.push(e),r.err)throw r.msg||i[r.err];return r.result}b.prototype.push=function(e,t){const r=this.strm,a=this.options.chunkSize,i=this.options.dictionary;let s,l,b;if(this.ended)return!1;for(l=t===~~t?t:!0===t?f:u,"[object ArrayBuffer]"===c.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(0===r.avail_out&&(r.output=new Uint8Array(a),r.next_out=0,r.avail_out=a),s=n.inflate(r,l),s===g&&i&&(s=n.inflateSetDictionary(r,i),s===d?s=n.inflate(r,l):s===p&&(s=g));r.avail_in>0&&s===m&&r.state.wrap>0&&0!==e[r.next_in];)n.inflateReset(r),s=n.inflate(r,l);switch(s){case h:case p:case g:case x:return this.onEnd(s),this.ended=!0,!1}if(b=r.avail_out,r.next_out&&(0===r.avail_out||s===m))if("string"===this.options.to){let e=o.utf8border(r.output,r.next_out),t=r.next_out-e,n=o.buf2string(r.output,e);r.next_out=t,r.avail_out=a-t,t&&r.output.set(r.output.subarray(e,e+t),0),this.onData(n)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(s!==d||0!==b){if(s===m)return s=n.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===r.avail_in)break}}return!0},b.prototype.onData=function(e){this.chunks.push(e)},b.prototype.onEnd=function(e){e===d&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=a.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},e.exports.Hq=function(e,t){return(t=t||{}).raw=!0,w(e,t)},r(684)},187:e=>{const t=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);e.exports.assign=function(e){const r=Array.prototype.slice.call(arguments,1);for(;r.length;){const n=r.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(const r in n)t(n,r)&&(e[r]=n[r])}}return e},e.exports.flattenChunks=e=>{let t=0;for(let r=0,n=e.length;r<n;r++)t+=e[r].length;const r=new Uint8Array(t);for(let t=0,n=0,a=e.length;t<a;t++){let a=e[t];r.set(a,n),n+=a.length}return r}},592:e=>{let t=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){t=!1}const r=new Uint8Array(256);for(let e=0;e<256;e++)r[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;r[254]=r[254]=1,e.exports.string2buf=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,r,n,a,o,i=e.length,s=0;for(a=0;a<i;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),s+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(s),o=0,a=0;o<s;a++)r=e.charCodeAt(a),55296==(64512&r)&&a+1<i&&(n=e.charCodeAt(a+1),56320==(64512&n)&&(r=65536+(r-55296<<10)+(n-56320),a++)),r<128?t[o++]=r:r<2048?(t[o++]=192|r>>>6,t[o++]=128|63&r):r<65536?(t[o++]=224|r>>>12,t[o++]=128|r>>>6&63,t[o++]=128|63&r):(t[o++]=240|r>>>18,t[o++]=128|r>>>12&63,t[o++]=128|r>>>6&63,t[o++]=128|63&r);return t};e.exports.buf2string=(e,n)=>{const a=n||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,n));let o,i;const s=new Array(2*a);for(i=0,o=0;o<a;){let t=e[o++];if(t<128){s[i++]=t;continue}let n=r[t];if(n>4)s[i++]=65533,o+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&o<a;)t=t<<6|63&e[o++],n--;n>1?s[i++]=65533:t<65536?s[i++]=t:(t-=65536,s[i++]=55296|t>>10&1023,s[i++]=56320|1023&t)}}return((e,r)=>{if(r<65534&&e.subarray&&t)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let n="";for(let t=0;t<r;t++)n+=String.fromCharCode(e[t]);return n})(s,i)},e.exports.utf8border=(e,t)=>{(t=t||e.length)>e.length&&(t=e.length);let n=t-1;for(;n>=0&&128==(192&e[n]);)n--;return n<0||0===n?t:n+r[e[n]]>t?n:t}},693:e=>{e.exports=(e,t,r,n)=>{let a=65535&e|0,o=e>>>16&65535|0,i=0;for(;0!==r;){i=r>2e3?2e3:r,r-=i;do{a=a+t[n++]|0,o=o+a|0}while(--i);a%=65521,o%=65521}return a|o<<16|0}},684:e=>{e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},863:e=>{const t=new Uint32Array((()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t})());e.exports=(e,r,n,a)=>{const o=t,i=a+n;e^=-1;for(let t=a;t<i;t++)e=e>>>8^o[255&(e^r[t])];return-1^e}},968:e=>{e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},365:e=>{const t=16209;e.exports=function(e,r){let n,a,o,i,s,l,c,u,f,d,m,g,h,p,x,b,w,y,k,T,S,D,v,P;const I=e.state;n=e.next_in,v=e.input,a=n+(e.avail_in-5),o=e.next_out,P=e.output,i=o-(r-e.avail_out),s=o+(e.avail_out-257),l=I.dmax,c=I.wsize,u=I.whave,f=I.wnext,d=I.window,m=I.hold,g=I.bits,h=I.lencode,p=I.distcode,x=(1<<I.lenbits)-1,b=(1<<I.distbits)-1;e:do{g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=h[m&x];t:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,0===y)P[o++]=65535&w;else{if(!(16&y)){if(0==(64&y)){w=h[(65535&w)+(m&(1<<y)-1)];continue t}if(32&y){I.mode=16191;break e}e.msg="invalid literal/length code",I.mode=t;break e}k=65535&w,y&=15,y&&(g<y&&(m+=v[n++]<<g,g+=8),k+=m&(1<<y)-1,m>>>=y,g-=y),g<15&&(m+=v[n++]<<g,g+=8,m+=v[n++]<<g,g+=8),w=p[m&b];r:for(;;){if(y=w>>>24,m>>>=y,g-=y,y=w>>>16&255,!(16&y)){if(0==(64&y)){w=p[(65535&w)+(m&(1<<y)-1)];continue r}e.msg="invalid distance code",I.mode=t;break e}if(T=65535&w,y&=15,g<y&&(m+=v[n++]<<g,g+=8,g<y&&(m+=v[n++]<<g,g+=8)),T+=m&(1<<y)-1,T>l){e.msg="invalid distance too far back",I.mode=t;break e}if(m>>>=y,g-=y,y=o-i,T>y){if(y=T-y,y>u&&I.sane){e.msg="invalid distance too far back",I.mode=t;break e}if(S=0,D=d,0===f){if(S+=c-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}else if(f<y){if(S+=c+f-y,y-=f,y<k){k-=y;do{P[o++]=d[S++]}while(--y);if(S=0,f<k){y=f,k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}}}else if(S+=f-y,y<k){k-=y;do{P[o++]=d[S++]}while(--y);S=o-T,D=P}for(;k>2;)P[o++]=D[S++],P[o++]=D[S++],P[o++]=D[S++],k-=3;k&&(P[o++]=D[S++],k>1&&(P[o++]=D[S++]))}else{S=o-T;do{P[o++]=P[S++],P[o++]=P[S++],P[o++]=P[S++],k-=3}while(k>2);k&&(P[o++]=P[S++],k>1&&(P[o++]=P[S++]))}break}}break}}while(n<a&&o<s);k=g>>3,n-=k,g-=k<<3,m&=(1<<g)-1,e.next_in=n,e.next_out=o,e.avail_in=n<a?a-n+5:5-(n-a),e.avail_out=o<s?s-o+257:257-(o-s),I.hold=m,I.bits=g}},823:(e,t,r)=>{const n=r(693),a=r(863),o=r(365),i=r(446),{Z_FINISH:s,Z_BLOCK:l,Z_TREES:c,Z_OK:u,Z_STREAM_END:f,Z_NEED_DICT:d,Z_STREAM_ERROR:m,Z_DATA_ERROR:g,Z_MEM_ERROR:h,Z_BUF_ERROR:p,Z_DEFLATED:x}=r(684),b=16180,w=16190,y=16191,k=16192,T=16194,S=16199,D=16200,v=16206,P=16209,I=16210,E=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function A(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const _=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<b||t.mode>16211?1:0},L=e=>{if(_(e))return m;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=b,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,u},C=e=>{if(_(e))return m;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,L(e)},O=(e,t)=>{let r;if(_(e))return m;const n=e.state;return t<0?(r=0,t=-t):(r=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?m:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,C(e))},M=(e,t)=>{if(!e)return m;const r=new A;e.state=r,r.strm=e,r.window=null,r.mode=b;const n=O(e,t);return n!==u&&(e.state=null),n};let R,F,B=!0;const U=e=>{if(B){R=new Int32Array(512),F=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(i(1,e.lens,0,288,R,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;i(2,e.lens,0,32,F,0,e.work,{bits:5}),B=!1}e.lencode=R,e.lenbits=9,e.distcode=F,e.distbits=5},N=(e,t,r,n)=>{let a;const o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new Uint8Array(o.wsize)),n>=o.wsize?(o.window.set(t.subarray(r-o.wsize,r),0),o.wnext=0,o.whave=o.wsize):(a=o.wsize-o.wnext,a>n&&(a=n),o.window.set(t.subarray(r-n,r-n+a),o.wnext),(n-=a)?(o.window.set(t.subarray(r-n,r),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=a,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=a))),0};e.exports.inflateReset=C,e.exports.inflateReset2=O,e.exports.inflateResetKeep=L,e.exports.inflateInit=e=>M(e,15),e.exports.inflateInit2=M,e.exports.inflate=(e,t)=>{let r,A,L,C,O,M,R,F,B,j,$,G,V,W,q,Z,Y,z,H,Q,X,K,J=0;const ee=new Uint8Array(4);let te,re;const ne=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(_(e)||!e.output||!e.input&&0!==e.avail_in)return m;r=e.state,r.mode===y&&(r.mode=k),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,j=M,$=R,K=u;e:for(;;)switch(r.mode){case b:if(0===r.wrap){r.mode=k;break}for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(2&r.wrap&&35615===F){0===r.wbits&&(r.wbits=15),r.check=0,ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0),F=0,B=0,r.mode=16181;break}if(r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&F)<<8)+(F>>8))%31){e.msg="incorrect header check",r.mode=P;break}if((15&F)!==x){e.msg="unknown compression method",r.mode=P;break}if(F>>>=4,B-=4,X=8+(15&F),0===r.wbits&&(r.wbits=X),X>15||X>r.wbits){e.msg="invalid window size",r.mode=P;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=512&F?16189:y,F=0,B=0;break;case 16181:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.flags=F,(255&r.flags)!==x){e.msg="unknown compression method",r.mode=P;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=P;break}r.head&&(r.head.text=F>>8&1),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16182;case 16182:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.time=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,ee[2]=F>>>16&255,ee[3]=F>>>24&255,r.check=a(r.check,ee,4,0)),F=0,B=0,r.mode=16183;case 16183:for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.head&&(r.head.xflags=255&F,r.head.os=F>>8),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0,r.mode=16184;case 16184:if(1024&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length=F,r.head&&(r.head.extra_len=F),512&r.flags&&4&r.wrap&&(ee[0]=255&F,ee[1]=F>>>8&255,r.check=a(r.check,ee,2,0)),F=0,B=0}else r.head&&(r.head.extra=null);r.mode=16185;case 16185:if(1024&r.flags&&(G=r.length,G>M&&(G=M),G&&(r.head&&(X=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(A.subarray(C,C+G),X)),512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,r.length-=G),r.length))break e;r.length=0,r.mode=16186;case 16186:if(2048&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.name+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=16187;case 16187:if(4096&r.flags){if(0===M)break e;G=0;do{X=A[C+G++],r.head&&X&&r.length<65536&&(r.head.comment+=String.fromCharCode(X))}while(X&&G<M);if(512&r.flags&&4&r.wrap&&(r.check=a(r.check,A,G,C)),M-=G,C+=G,X)break e}else r.head&&(r.head.comment=null);r.mode=16188;case 16188:if(512&r.flags){for(;B<16;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(65535&r.check)){e.msg="header crc mismatch",r.mode=P;break}F=0,B=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=y;break;case 16189:for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}e.adler=r.check=E(F),F=0,B=0,r.mode=w;case w:if(0===r.havedict)return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,d;e.adler=r.check=1,r.mode=y;case y:if(t===l||t===c)break e;case k:if(r.last){F>>>=7&B,B-=7&B,r.mode=v;break}for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}switch(r.last=1&F,F>>>=1,B-=1,3&F){case 0:r.mode=16193;break;case 1:if(U(r),r.mode=S,t===c){F>>>=2,B-=2;break e}break;case 2:r.mode=16196;break;case 3:e.msg="invalid block type",r.mode=P}F>>>=2,B-=2;break;case 16193:for(F>>>=7&B,B-=7&B;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if((65535&F)!=(F>>>16^65535)){e.msg="invalid stored block lengths",r.mode=P;break}if(r.length=65535&F,F=0,B=0,r.mode=T,t===c)break e;case T:r.mode=16195;case 16195:if(G=r.length,G){if(G>M&&(G=M),G>R&&(G=R),0===G)break e;L.set(A.subarray(C,C+G),O),M-=G,C+=G,R-=G,O+=G,r.length-=G;break}r.mode=y;break;case 16196:for(;B<14;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(r.nlen=257+(31&F),F>>>=5,B-=5,r.ndist=1+(31&F),F>>>=5,B-=5,r.ncode=4+(15&F),F>>>=4,B-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=P;break}r.have=0,r.mode=16197;case 16197:for(;r.have<r.ncode;){for(;B<3;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.lens[ne[r.have++]]=7&F,F>>>=3,B-=3}for(;r.have<19;)r.lens[ne[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,te={bits:r.lenbits},K=i(0,r.lens,0,19,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid code lengths set",r.mode=P;break}r.have=0,r.mode=16198;case 16198:for(;r.have<r.nlen+r.ndist;){for(;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Y<16)F>>>=q,B-=q,r.lens[r.have++]=Y;else{if(16===Y){for(re=q+2;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(F>>>=q,B-=q,0===r.have){e.msg="invalid bit length repeat",r.mode=P;break}X=r.lens[r.have-1],G=3+(3&F),F>>>=2,B-=2}else if(17===Y){for(re=q+3;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=3+(7&F),F>>>=3,B-=3}else{for(re=q+7;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=q,B-=q,X=0,G=11+(127&F),F>>>=7,B-=7}if(r.have+G>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=P;break}for(;G--;)r.lens[r.have++]=X}}if(r.mode===P)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=P;break}if(r.lenbits=9,te={bits:r.lenbits},K=i(1,r.lens,0,r.nlen,r.lencode,0,r.work,te),r.lenbits=te.bits,K){e.msg="invalid literal/lengths set",r.mode=P;break}if(r.distbits=6,r.distcode=r.distdyn,te={bits:r.distbits},K=i(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,te),r.distbits=te.bits,K){e.msg="invalid distances set",r.mode=P;break}if(r.mode=S,t===c)break e;case S:r.mode=D;case D:if(M>=6&&R>=258){e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,o(e,$),O=e.next_out,L=e.output,R=e.avail_out,C=e.next_in,A=e.input,M=e.avail_in,F=r.hold,B=r.bits,r.mode===y&&(r.back=-1);break}for(r.back=0;J=r.lencode[F&(1<<r.lenbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(Z&&0==(240&Z)){for(z=q,H=Z,Q=Y;J=r.lencode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,r.length=Y,0===Z){r.mode=16205;break}if(32&Z){r.back=-1,r.mode=y;break}if(64&Z){e.msg="invalid literal/length code",r.mode=P;break}r.extra=15&Z,r.mode=16201;case 16201:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.length+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=16202;case 16202:for(;J=r.distcode[F&(1<<r.distbits)-1],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(0==(240&Z)){for(z=q,H=Z,Q=Y;J=r.distcode[Q+((F&(1<<z+H)-1)>>z)],q=J>>>24,Z=J>>>16&255,Y=65535&J,!(z+q<=B);){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}F>>>=z,B-=z,r.back+=z}if(F>>>=q,B-=q,r.back+=q,64&Z){e.msg="invalid distance code",r.mode=P;break}r.offset=Y,r.extra=15&Z,r.mode=16203;case 16203:if(r.extra){for(re=r.extra;B<re;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}r.offset+=F&(1<<r.extra)-1,F>>>=r.extra,B-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=P;break}r.mode=16204;case 16204:if(0===R)break e;if(G=$-R,r.offset>G){if(G=r.offset-G,G>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=P;break}G>r.wnext?(G-=r.wnext,V=r.wsize-G):V=r.wnext-G,G>r.length&&(G=r.length),W=r.window}else W=L,V=O-r.offset,G=r.length;G>R&&(G=R),R-=G,r.length-=G;do{L[O++]=W[V++]}while(--G);0===r.length&&(r.mode=D);break;case 16205:if(0===R)break e;L[O++]=r.length,R--,r.mode=D;break;case v:if(r.wrap){for(;B<32;){if(0===M)break e;M--,F|=A[C++]<<B,B+=8}if($-=R,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,O-$):n(r.check,L,$,O-$)),$=R,4&r.wrap&&(r.flags?F:E(F))!==r.check){e.msg="incorrect data check",r.mode=P;break}F=0,B=0}r.mode=16207;case 16207:if(r.wrap&&r.flags){for(;B<32;){if(0===M)break e;M--,F+=A[C++]<<B,B+=8}if(4&r.wrap&&F!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=P;break}F=0,B=0}r.mode=16208;case 16208:K=f;break e;case P:K=g;break e;case I:return h;default:return m}return e.next_out=O,e.avail_out=R,e.next_in=C,e.avail_in=M,r.hold=F,r.bits=B,(r.wsize||$!==e.avail_out&&r.mode<P&&(r.mode<v||t!==s))&&N(e,e.output,e.next_out,$-e.avail_out)?(r.mode=I,h):(j-=e.avail_in,$-=e.avail_out,e.total_in+=j,e.total_out+=$,r.total+=$,4&r.wrap&&$&&(e.adler=r.check=r.flags?a(r.check,L,$,e.next_out-$):n(r.check,L,$,e.next_out-$)),e.data_type=r.bits+(r.last?64:0)+(r.mode===y?128:0)+(r.mode===S||r.mode===T?256:0),(0===j&&0===$||t===s)&&K===u&&(K=p),K)},e.exports.inflateEnd=e=>{if(_(e))return m;let t=e.state;return t.window&&(t.window=null),e.state=null,u},e.exports.inflateGetHeader=(e,t)=>{if(_(e))return m;const r=e.state;return 0==(2&r.wrap)?m:(r.head=t,t.done=!1,u)},e.exports.inflateSetDictionary=(e,t)=>{const r=t.length;let a,o,i;return _(e)?m:(a=e.state,0!==a.wrap&&a.mode!==w?m:a.mode===w&&(o=1,o=n(o,t,r,0),o!==a.check)?g:(i=N(e,t,r,r),i?(a.mode=I,h):(a.havedict=1,u)))},e.exports.inflateInfo="pako inflate (from Nodeca project)"},446:e=>{const t=15,r=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),n=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),a=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),o=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);e.exports=(e,i,s,l,c,u,f,d)=>{const m=d.bits;let g,h,p,x,b,w,y=0,k=0,T=0,S=0,D=0,v=0,P=0,I=0,E=0,A=0,_=null;const L=new Uint16Array(16),C=new Uint16Array(16);let O,M,R,F=null;for(y=0;y<=t;y++)L[y]=0;for(k=0;k<l;k++)L[i[s+k]]++;for(D=m,S=t;S>=1&&0===L[S];S--);if(D>S&&(D=S),0===S)return c[u++]=20971520,c[u++]=20971520,d.bits=1,0;for(T=1;T<S&&0===L[T];T++);for(D<T&&(D=T),I=1,y=1;y<=t;y++)if(I<<=1,I-=L[y],I<0)return-1;if(I>0&&(0===e||1!==S))return-1;for(C[1]=0,y=1;y<t;y++)C[y+1]=C[y]+L[y];for(k=0;k<l;k++)0!==i[s+k]&&(f[C[i[s+k]]++]=k);if(0===e?(_=F=f,w=20):1===e?(_=r,F=n,w=257):(_=a,F=o,w=0),A=0,k=0,y=T,b=u,v=D,P=0,p=-1,E=1<<D,x=E-1,1===e&&E>852||2===e&&E>592)return 1;for(;;){O=y-P,f[k]+1<w?(M=0,R=f[k]):f[k]>=w?(M=F[f[k]-w],R=_[f[k]-w]):(M=96,R=0),g=1<<y-P,h=1<<v,T=h;do{h-=g,c[b+(A>>P)+h]=O<<24|M<<16|R|0}while(0!==h);for(g=1<<y-1;A&g;)g>>=1;if(0!==g?(A&=g-1,A+=g):A=0,k++,0==--L[y]){if(y===S)break;y=i[s+f[k]]}if(y>D&&(A&x)!==p){for(0===P&&(P=D),b+=T,v=y-P,I=1<<v;v+P<S&&(I-=L[v+P],!(I<=0));)v++,I<<=1;if(E+=1<<v,1===e&&E>852||2===e&&E>592)return 1;p=A&x,c[p]=D<<24|v<<16|b-u|0}}return 0!==A&&(c[b+A]=y-P<<24|64<<16|0),d.bits=D,0}},604:e=>{e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},249:e=>{e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},464:t=>{t.exports=e},713:e=>{e.exports=t}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,a),o.exports}a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&!e;)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})();var o={};return(()=>{function e(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++)t[o++]=e[a++],t[o++]=e[a++],t[o++]=e[a++],t[o++]=255;else t.set(e)}function t(e,t,r){if(void 0===e)throw new Error("decodeRGB: rgbBuffer must be defined");if(e.length%3!=0)throw new Error(`decodeRGB: rgbBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++],t[a++]=255;else for(let r=0;r<n;r++)t[a++]=e[o++],t[a++]=e[i++],t[a++]=e[s++]}function r(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPixel: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPixel: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0;if(r)for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128),t[o++]=255}else for(let r=0;r<n;r++){const r=e[a++],n=e[a++],i=e[a++];t[o++]=r+1.402*(i-128),t[o++]=r-.34414*(n-128)-.71414*(i-128),t[o++]=r+1.772*(n-128)}}function n(e,t,r){if(void 0===e)throw new Error("convertYBRFullByPlane: ybrBuffer must be defined");if(e.length%3!=0)throw new Error(`convertYBRFullByPlane: ybrBuffer length ${e.length} must be divisible by 3`);const n=e.length/3;let a=0,o=0,i=n,s=2*n;if(r)for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128),t[a++]=255}else for(let r=0;r<n;r++){const r=e[o++],n=e[i++],l=e[s++];t[a++]=r+1.402*(l-128),t[a++]=r-.34414*(n-128)-.71414*(l-128),t[a++]=r+1.772*(n-128)}}a.r(o),a.d(o,{configure:()=>kt,convertColorSpace:()=>X,convertPALETTECOLOR:()=>yt,convertRGBColorByPixel:()=>e,convertRGBColorByPlane:()=>t,convertYBRFullByPixel:()=>r,convertYBRFullByPlane:()=>n,createImage:()=>ye,decodeImageFrame:()=>he,decodeJPEGBaseline8BitColor:()=>J,default:()=>St,external:()=>xt,getImageFrame:()=>pe,getMinMax:()=>H,getPixelData:()=>z,internal:()=>U,isColorImage:()=>xe,isJPEGBaseline8BitColor:()=>Tt,wadors:()=>Ie,wadouri:()=>dt,webWorkerManager:()=>de});const i=function(e,t,r){return t=t||0,e&&e.Value?e.Value.length<=t?r:e.Value[t]:r};const s=function(e,t,r){const n=i(e,t,r);if(void 0!==n)return parseFloat(n)};const l=function(e,t){const r=i(e,t);if(void 0!==r)return parseFloat(r)};const c=function(e,t){if(!e)return;if(!e.Value)return;if(!Array.isArray(e.Value))return;if(t&&e.Value.length<t)return;const r=[];for(let t=0;t<e.Value.length;t++)r.push(parseFloat(e.Value[t]));return r};function u(e){const t=e.indexOf(":");return e.substring(t+1)}function f(e,t=!0){return e&&e.Value?e.Value[0]&&t?e.Value[0]:e.Value:e}function d(e,t,r){return{shared:(t?Object.values(t[0]):[]).map((e=>e[0])).filter((e=>void 0!==e&&"object"==typeof e)),perFrame:(e?Object.values(e[r-1]):[]).map((e=>e.Value[0])).filter((e=>void 0!==e&&"object"==typeof e))}}function m(e){let{52009230:t,52009229:r,"00280008":n,...a}=e;return t=f(t,!1),r=f(r,!1),n=f(n),{PerFrameFunctionalGroupsSequence:t,SharedFunctionalGroupsSequence:r,NumberOfFrames:n,rest:a}}function g(e){const t=e.indexOf("/frames/")+8,r=e.slice(0,t),n=parseInt(e.slice(t),10);return{metadata:p[`${r}1`],frame:n}}const h={_retrieveMultiframeMetadata:g,retrieveMultiframeMetadata:function(e){return g(u(e))},isMultiframe:function(e){const t=i(e["00280008"]);return t&&t>1}};let p=[],x={};const b={add:function(e,t){const r=u(e);t.isMultiframe=h.isMultiframe(t),p[r]=t},get:function(e){const t=u(e),r=p[t];if(r&&!r?.isMultiframe)return r;const n=x[t];if(n)return n;const a=h._retrieveMultiframeMetadata(t);if(!a||!a.metadata)return;const{metadata:o,frame:i}=a;if(o){const e=function(e,t){const{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:a,rest:o}=m(t);if(r||a>1){const{shared:i,perFrame:s}=d(r,n,e),l=Object.assign(t,{frameNumber:e});return[...i,...s].forEach((e=>{Object.entries(e).forEach((([e,t])=>{l[e]=t}))})),Object.assign(o,{"00280008":a},l)}return t}(i,o);return x[t]=e,e}},remove:function(e){const t=u(e);p[t]=void 0,x[t]=void 0},purge:function(){p=[],x={}}};function w(e){return"RECON TOMO"===e||"RECON GATED TOMO"===e}function y(e){return i(e["00080060"]).includes("NM")}function k(e,t){const r=f(e["00080008"],!1);if(r)return r[t]}function T(e){let t=c(e["00200037"],6);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200037"],6))}return t}(e)),t}function S(e){let t=c(e["00200032"],3);return!t&&y(e)&&(t=function(e){let t;const r=k(e,2);if(r&&w(r)){const r=f(e["00540022"]);r&&(t=c(r["00200032"],3))}return t}(e)),t}function D(e,t,r){const n={};for(const a of r)try{const r=t(a,e);if(r){const e={};for(const t in r)if(t in r){e[v(t)]=r[t]}Object.assign(n,e)}}catch(e){console.error(`Error retrieving ${a} data:`,e)}return n}const v=e=>e.charAt(0).toUpperCase()+e.slice(1),P=["multiframeModule","generalSeriesModule","patientStudyModule","imagePlaneModule","nmMultiframeGeometryModule","imagePixelModule","modalityLutModule","voiLutModule","sopCommonModule","petIsotopeModule","overlayPlaneModule","transferSyntax","petSeriesModule","petImageModule"];function I(e,t){const r=c(e[t]);return r?r[0]:null}const E=function(e){return e?.Value?.length?Array.isArray(e.Value)?e.Value:"object"==typeof e.Value?(console.warn("Warning: Value should be an array, but an object was found. Encapsulating the object in an array."),[e.Value]):[]:[]};function A(e){const t=E(e["00186011"]);if(!t||!t.length)return null;return t.map((e=>{const t=I(e,"0018602C"),r=I(e,"0018602E"),n=I(e,"00186024"),a=I(e,"00186026");return{regionLocationMinY0:I(e,"0018601A"),regionLocationMaxY1:I(e,"0018601E"),regionLocationMinX0:I(e,"00186018"),regionLocationMaxX1:I(e,"0018601C"),referencePixelX0:I(e,"00186020"),referencePixelY0:I(e,"00186022"),physicalDeltaX:t,physicalDeltaY:r,physicalUnitsXDirection:n,physicalUnitsYDirection:a,referencePhysicalPixelValueY:I(e,"0018602A"),referencePhysicalPixelValueX:I(e,"00186028"),regionSpatialFormat:I(e,"00186012"),regionDataType:I(e,"00186014"),regionFlags:I(e,"00186016"),transducerFrequency:I(e,"00186030")}}))}function _(e,t){return{transferSyntaxUID:i(t["00020010"])||i(t["00083002"])}}const L=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(t===n.MULTIFRAME){const{metadata:e,frame:t}=h.retrieveMultiframeMetadata(r);if(!e)return;const{PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,NumberOfFrames:o}=m(e);if(n||o>1){const{shared:e,perFrame:r}=d(n,a,t);return{NumberOfFrames:o,PerFrameFunctionalInformation:r,SharedFunctionalInformation:e}}return{NumberOfFrames:o}}const o=b.get(r);if(o){if(t===n.GENERAL_STUDY)return{studyDescription:i(o["00081030"]),studyDate:a.parseDA(i(o["00080020"])),studyTime:a.parseTM(i(o["00080030"],0,"")),accessionNumber:i(o["00080050"])};if(t===n.GENERAL_SERIES)return{modality:i(o["00080060"]),seriesInstanceUID:i(o["0020000E"]),seriesNumber:l(o["00200011"]),studyInstanceUID:i(o["0020000D"]),seriesDate:a.parseDA(i(o["00080021"])),seriesTime:a.parseTM(i(o["00080031"],0,"")),acquisitionDate:a.parseDA(i(o["00080022"])),acquisitionTime:a.parseTM(i(o["00080032"],0,""))};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:i(o["00080018"]),instanceNumber:l(o["00200013"]),lossyImageCompression:i(o["00282110"]),lossyImageCompressionRatio:l(o["00282112"]),lossyImageCompressionMethod:i(o["00282114"])};if(t===n.PATIENT)return{patientID:i(o["00100020"]),patientName:i(o["00100010"])};if(t===n.PATIENT_STUDY)return{patientAge:l(o["00101010"]),patientSize:l(o["00101020"]),patientSex:i(o["00100040"]),patientWeight:l(o["00101030"])};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=i(o["00080060"]),t=k(o,2);return{modality:e,imageType:i(o["00080008"]),imageSubType:t,imageOrientationPatient:T(o),imagePositionPatient:S(o),sliceThickness:l(o["00180050"]),spacingBetweenSlices:l(o["00180088"]),pixelSpacing:c(o["00280030"],2),numberOfFrames:l(o["00280008"]),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=T(o),t=S(o),r=c(o["00280030"],2);let n=null,a=null;r&&(a=r[0],n=r[1]);let s=null,u=null;return e&&(s=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],u=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:i(o["00200052"]),rows:l(o["00280010"]),columns:l(o["00280011"]),imageOrientationPatient:e,rowCosines:s,columnCosines:u,imagePositionPatient:t,sliceThickness:l(o["00180050"]),sliceLocation:l(o["00201041"]),pixelSpacing:r,rowPixelSpacing:a,columnPixelSpacing:n}}if(t===n.ULTRASOUND_ENHANCED_REGION)return A(o);if(t===n.CALIBRATION){if("US"===i(o["00080060"])){return{sequenceOfUltrasoundRegions:A(o)}}}if(t===n.IMAGE_URL)return function(e,t){const{transferSyntaxUID:r}=_(e,t),n=xt.cornerstone.utilities.isVideoTransferSyntax(r),a=e.substring(7),o=a.replace("/frames/","/thumbnail/");let i=a.replace("/frames/","/rendered/");n&&(i=i.replace("/rendered/1","/rendered"));return{isVideo:n,rendered:i,thumbnail:o}}(r,o);if(t===n.CINE)return function(e,t){const r=i(t["00180040"]);return{cineRate:r,numberOfFrames:l(t["00280008"])}}(0,o);if(t===n.IMAGE_PIXEL)return{samplesPerPixel:l(o["00280002"]),photometricInterpretation:i(o["00280004"]),rows:l(o["00280010"]),columns:l(o["00280011"]),bitsAllocated:l(o["00280100"]),bitsStored:l(o["00280101"]),highBit:i(o["00280102"]),pixelRepresentation:l(o["00280103"]),planarConfiguration:l(o["00280006"]),pixelAspectRatio:i(o["00280034"]),smallestPixelValue:l(o["00280106"]),largestPixelValue:l(o["00280107"]),redPaletteColorLookupTableDescriptor:c(o["00281101"]),greenPaletteColorLookupTableDescriptor:c(o["00281102"]),bluePaletteColorLookupTableDescriptor:c(o["00281103"]),redPaletteColorLookupTableData:c(o["00281201"]),greenPaletteColorLookupTableData:c(o["00281202"]),bluePaletteColorLookupTableData:c(o["00281203"])};if(t===n.VOI_LUT)return{windowCenter:c(o["00281050"],1),windowWidth:c(o["00281051"],1)};if(t===n.MODALITY_LUT)return{rescaleIntercept:l(o["00281052"]),rescaleSlope:l(o["00281053"]),rescaleType:i(o["00281054"])};if(t===n.SOP_COMMON)return{sopClassUID:i(o["00080016"]),sopInstanceUID:i(o["00080018"])};if(t===n.PET_ISOTOPE){const e=i(o["00540016"]);if(void 0===e)return;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(i(e["00181072"],0,"")),radiopharmaceuticalStartDateTime:i(e["00181078"],0,""),radionuclideTotalDose:l(e["00181074"]),radionuclideHalfLife:l(e["00181075"])}}}return t===n.OVERLAY_PLANE?function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=i(e[`${n}3000`]);if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.Value[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:l(e[`${n}0010`]),columns:l(e[`${n}0011`]),type:i(e[`${n}0040`]),x:l(e[`${n}0050`],1)-1,y:l(e[`${n}0050`],0)-1,pixelData:o,description:i(e[`${n}0022`]),label:i(e[`${n}1500`]),roiArea:i(e[`${n}1301`]),roiMean:i(e[`${n}1302`]),roiStandardDeviation:i(e[`${n}1303`])})}return{overlays:t}}(o):"transferSyntax"===t?_(r,o):t===n.PET_SERIES?{correctedImage:i(o["00280051"]),units:i(o["00541001"]),decayCorrection:i(o["00541102"])}:t===n.PET_IMAGE?{frameReferenceTime:l(o["00541300"]),actualFrameDuration:l(o["00181242"])}:"instance"===t?D(r,e,P):void 0}};function C(e,t,r){if(r+e.length>t.length)return!1;let n=r;for(let r=0;r<e.length;r++)if(e[r]!==t[n++])return!1;return!0}const O=function(e,t,r){r=r||0;const n=function(e){const t=new Uint8Array(e.length);for(let r=0,n=e.length;r<n;r++)t[r]=e.charCodeAt(r);return t}(t);for(let t=r;t<e.length;t++)if(n[0]===e[t]&&C(n,e,t))return t;return-1};let M={open(e,t){e.open("get",t,!0)},beforeSend(){},beforeProcessing:e=>Promise.resolve(e.response),imageCreated(){},strict:!1,decodeConfig:{convertFloatPixelDataToInt:!0,use16BitDataType:!1}};function R(e){M=Object.assign(M,e)}function F(){return M}const B=function(e,t,r={},n={}){const{cornerstone:a}=xt,o=F(),i=e=>{if("function"==typeof o.errorInterceptor){const t=new Error("request failed");t.request=e,t.response=e.response,t.status=e.status,o.errorInterceptor(t)}},s=new XMLHttpRequest,l=new Promise(((l,c)=>{o.open(s,e,r,n);const u=o.beforeSend(s,t,r,n);s.responseType="arraybuffer";const f=Object.assign({},r,u);Object.keys(f).forEach((function(t){null!==f[t]&&("Accept"===t&&-1!==e.indexOf("accept=")||s.setRequestHeader(t,f[t]))})),n.deferred={resolve:l,reject:c},n.url=e,n.imageId=t,s.onloadstart=function(r){o.onloadstart&&o.onloadstart(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadstart",i)},s.onloadend=function(r){o.onloadend&&o.onloadend(r,n);const i={url:e,imageId:t};a.triggerEvent(a.events,"cornerstoneimageloadend",i)},s.onreadystatechange=function(e){o.onreadystatechange?o.onreadystatechange(e,n):4===s.readyState&&(200===s.status||206===s.status?o.beforeProcessing(s).then(l).catch((()=>{i(s),c(s)})):(i(s),c(s)))},s.onprogress=function(e){const t=e.loaded;let r,a;e.lengthComputable&&(r=e.total,a=Math.round(t/r*100)),o.onprogress&&o.onprogress(e,n)},s.onerror=function(){i(s),c(s)},s.onabort=function(){i(s),c(s)},s.send()}));return l.xhr=s,l},U={xhrRequest:B,setOptions:R,getOptions:F};var N=a(464);const{ImageQualityStatus:j}=N.Enums;function $(e,t,r){r||={};const n=new Uint8Array(t),a=!!r?.isPartial;if(-1===e.indexOf("multipart"))return{contentType:e,imageQualityStatus:a?j.SUBRESOLUTION:j.FULL_RESOLUTION,pixelData:n};let{tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l}=r;if(o||=O(n,"\r\n\r\n"),-1===o)throw new Error("invalid response - no multipart mime header");if(!s){const e=function(e,t,r){t=t||0,r=r||e.length-t;let n="";for(let a=t;a<t+r;a++)n+=String.fromCharCode(e[a]);return n}(n,0,o);if(i=e.split("\r\n"),s=function(e){for(let t=0;t<e.length;t++)if("--"===e[t].substr(0,2))return e[t]}(i),!s)throw new Error("invalid response - no boundary marker")}const c=o+4,u=O(n,s,c);if(-1===u&&!a)throw new Error("invalid response - terminating boundary not found");return l||=function(e){for(let t=0;t<e.length;t++)if("Content-Type:"===e[t].substr(0,13))return e[t].substr(13).trim()}(i),r.tokenIndex=o,r.boundary=s,r.responseHeaders=i,r.multipartContentType=l,r.isPartial=-1===u,{contentType:l,extractDone:!a||-1!==u,tokenIndex:o,responseHeaders:i,boundary:s,multipartContentType:l,pixelData:t.slice(c,u-2)}}const{ImageQualityStatus:G}=N.Enums;function V(e,t=!0){return t?e.imageQualityStatus??G.FULL_RESOLUTION:G.SUBRESOLUTION}const{ProgressiveIterator:W}=N.utilities;function q(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i={}}=n,s=o.minChunkSize||131072,l=new W("streamRequest");return l.generate((async(n,l)=>{const c=Object.assign({},r);Object.keys(c).forEach((function(t){null===c[t]&&(c[t]=void 0),"Accept"===t&&-1!==e.indexOf("accept=")&&(c[t]=void 0)}));try{const a=await fetch(e,{headers:r,signal:void 0});if(200!==a.status)throw new Error(`Couldn't retrieve ${e} got status ${a.status}`);const l=a.body.getReader(),c=a.headers,u=c.get("content-type"),f=Number(c.get("Content-Length"));let d=!1,m=i.encodedData,g=i.lastSize||0;for(i.isPartial=!0;!d;){const{done:r,value:a}=await l.read();if(m=Z(m,a),!m){if(d)throw new Error(`Done but no image frame available ${t}`);continue}if(d=r||m.byteLength===f,!d&&m.length<g+s)continue;g=m.length,i.isPartial=!r;const c=$(u,m,i),h=V(o,d),p={url:e,imageId:t,...c,percentComplete:r?100:100*c.pixelData?.length/f,imageQualityStatus:h,done:d};n.add(p,d)}}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}})(),console.error(e),l(e)}})),l.getNextPromise()}function Z(e,t){if(!e)return t;if(!t)return e;const r=new Uint8Array(e.length+t.length);return r.set(e,0),r.set(t,e.length),r}function Y(e,t,r={},n={}){const a=F(),{retrieveOptions:o={},streamingData:i}=n,s=i.chunkSize||function(e,t,r){const n=t[r];if("function"!=typeof n)return n;const a=b.get(e);return n(a,e)}(t,o,"chunkSize")||65536,l=new Promise((async(t,n)=>{const l=Object.assign({},r);Object.keys(l).forEach((function(e){null!==l[e]&&void 0!==l[e]||delete l[e]}));try{i.encodedData||(i.chunkSize=s,i.rangesFetched=0);const r=function(e,t){const{totalBytes:r,encodedData:n,chunkSize:a=65536}=e,{rangeIndex:o=0}=t;if(!(-1!==o||r&&n))return[0,""];if(-1===o||n?.byteLength>r-a)return[n?.byteLength||0,""];return[n?.byteLength||0,a*(o+1)-1]}(i,o),{encodedData:n,responseHeaders:a}=await async function(e,t,r,n){r&&(t=Object.assign(t,{Range:`bytes=${r[0]}-${r[1]}`}));let{encodedData:a}=n;if(r[1]&&a?.byteLength>r[1])return n;const o=await fetch(e,{headers:t,signal:void 0}),i=await o.arrayBuffer(),s=new Uint8Array(i),{status:l}=o;let c;a?(c=new Uint8Array(a.length+s.length),c.set(a,0),c.set(s,a.length),n.rangesFetched=1):(c=new Uint8Array(s.length),c.set(s,0),n.rangesFetched++);n.encodedData=a=c,n.responseHeaders=o.headers;const u=o.headers.get("Content-Range");u?n.totalBytes=Number(u.split("/")[1]):206===l&&r?""===r[1]||a?.length<r[1]?n.totalBytes=a.byteLength:n.totalBytes=Number.MAX_SAFE_INTEGER:n.totalBytes=a?.byteLength;return n}(e,l,r,i),c=a.get("content-type"),{totalBytes:u}=i,f=u===n.byteLength,d=$(c,n,{isPartial:!0}),m=V(o,f||d.extractDone);t({...d,imageQualityStatus:m,percentComplete:d.extractDone?100:100*s/u})}catch(e){(e=>{if("function"==typeof a.errorInterceptor){const e=new Error("request failed");a.errorInterceptor(e)}else console.warn("rangeRequest:Caught",e)})(e),console.error(e),n(e)}}));return l}const z=function(e,t,r="application/octet-stream",n){const{streamingData:a,retrieveOptions:o={}}=n||{},i={Accept:r};let s=o.urlArguments?`${e}${-1===e.indexOf("?")?"?":"&"}${o.urlArguments}`:e;if(o.framesPath&&(s=s.replace("/frames/",o.framesPath)),a?.url!==s&&(n.streamingData={url:s}),void 0!==o.rangeIndex)return Y(s,t,i,n);if(o.streaming)return q(s,t,i,n);const l=B(s,t,i),{xhr:c}=l;return l.then((function(e){const t=$(c.getResponseHeader("Content-Type")||"application/octet-stream",new Uint8Array(e));return t.imageQualityStatus=V(o,!0),t}))};const H=function(e){let t,r=e[0],n=e[0];const a=e.length;for(let o=1;o<a;o++)t=e[o],r=Math.min(r,t),n=Math.max(n,t);return{min:r,max:n}};function Q(r,n,a){0===r.planarConfiguration?e(r.pixelData,n,a):t(r.pixelData,n,a)}function X(e,t,a){if("RGB"===e.photometricInterpretation)Q(e,t,a);else if("YBR_RCT"===e.photometricInterpretation)Q(e,t,a);else if("YBR_ICT"===e.photometricInterpretation)Q(e,t,a);else if("PALETTE COLOR"===e.photometricInterpretation)yt(e,t,a);else if("YBR_FULL_422"===e.photometricInterpretation)!function(e,t,r){if(void 0===e)throw new Error("convertYBRFull422ByPixel: ybrBuffer must be defined");if(e.length%2!=0)throw new Error(`convertYBRFull422ByPixel: ybrBuffer length ${e.length} must be divisible by 2`);const n=e.length/2;let a=0,o=0;if(r)for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=255,t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128),t[o++]=255}else for(let r=0;r<n;r+=2){const r=e[a++],n=e[a++],i=e[a++],s=e[a++];t[o++]=r+1.402*(s-128),t[o++]=r-.34414*(i-128)-.71414*(s-128),t[o++]=r+1.772*(i-128),t[o++]=n+1.402*(s-128),t[o++]=n-.34414*(i-128)-.71414*(s-128),t[o++]=n+1.772*(i-128)}}(e.pixelData,t,a);else{if("YBR_FULL"!==e.photometricInterpretation)throw new Error(`No color space conversion for photometric interpretation ${e.photometricInterpretation}`);!function(e,t,a){0===e.planarConfiguration?r(e.pixelData,t,a):n(e.pixelData,t,a)}(e,t,a)}}function K(e){return function(e){let t;try{return decodeURIComponent(escape(e))}catch(r){if(t=r,t instanceof URIError)return e;throw t}}(String.fromCharCode.apply(null,Array.prototype.slice.apply(new Uint8Array(e))))}const J=function(e,t,r){const n=(new Date).getTime(),a=new Blob([t],{type:"image/jpeg"});return new Promise(((t,o)=>{const i=new FileReader;void 0===i.readAsBinaryString?i.readAsArrayBuffer(a):i.readAsBinaryString(a),i.onload=function(){const a=new Image;a.onload=function(){r.height=a.height,r.width=a.width,e.rows=a.height,e.columns=a.width;const o=r.getContext("2d");o.drawImage(this,0,0);const i=o.getImageData(0,0,a.width,a.height),s=(new Date).getTime();e.pixelData=new Uint8Array(i.data.buffer),e.imageData=i,e.decodeTimeInMS=s-n;const l=H(e.pixelData);e.smallestPixelValue=l.min,e.largestPixelValue=l.max,e.pixelDataLength=e.pixelData.length,t(e)},a.onerror=function(e){o(e)},void 0===i.readAsBinaryString?a.src=`data:image/jpeg;base64,${window.btoa(K(i.result))}`:a.src=`data:image/jpeg;base64,${window.btoa(i.result)}`},i.onerror=e=>{o(e)}}))};function ee(){return new Worker(a.p+"index.worker.f4bda803c15bc6359d5f.worker.js")}let te=0;const re=[],ne=[],ae=F(),oe={maxWebWorkers:navigator.hardwareConcurrency||1,startWebWorkersOnDemand:!0,webWorkerTaskPaths:[],taskConfiguration:{decodeTask:{initializeCodecsOnStartup:!1,strict:ae.strict}}};let ie;const se={maxWebWorkers:0,numWebWorkers:0,numTasksQueued:0,numTasksExecuting:0,numTasksCompleted:0,totalTaskTimeInMS:0,totalTimeDelayedInMS:0};function le(){if(re.length){for(let e=0;e<ne.length;e++)if("ready"===ne[e].status){ne[e].status="busy";const t=re.shift();t.start=(new Date).getTime();const r=(new Date).getTime();return se.totalTimeDelayedInMS+=r-t.added,ne[e].task=t,ne[e].worker.postMessage({taskType:t.taskType,workerIndex:e,data:t.data},t.transferList),void se.numTasksExecuting++}ne.length<ie.maxWebWorkers&&ue()}}function ce(e){if("initialize"===e.data.taskType)ne[e.data.workerIndex].status="ready",le();else{const t=ne[e.data.workerIndex].task.start,r="success"===e.data.status?"resolve":"reject";try{ne[e.data.workerIndex].task.deferred[r](e.data.result)}catch(e){console.warn("Caught error delivering response",e)}ne[e.data.workerIndex].task=void 0,se.numTasksExecuting--,ne[e.data.workerIndex].status="ready",se.numTasksCompleted++;const n=(new Date).getTime();se.totalTaskTimeInMS+=n-t,le()}}function ue(){if(ne.length>=ie.maxWebWorkers)return;const e=new ee;ne.push({worker:e,status:"initializing"}),e.addEventListener("message",ce),e.postMessage({taskType:"initialize",workerIndex:ne.length-1,config:ie})}function fe(e){if(ie=e=e||oe,ie.maxWebWorkers=ie.maxWebWorkers||navigator.hardwareConcurrency||1,!ie.startWebWorkersOnDemand)for(let e=0;e<ie.maxWebWorkers;e++)ue()}const de={initialize:fe,loadWebWorkerTask:function(e,t){ie.webWorkerTaskPaths.push(e),t&&(ie.taskConfiguration=Object.assign(ie.taskConfiguration,t));for(let t=0;t<ne.length;t++)ne[t].worker.postMessage({taskType:"loadWebWorkerTask",workerIndex:ne.length-1,sourcePath:e,config:ie})},addTask:function(e,t,r=0,n){ie||fe();let a={resolve:void 0,reject:void 0};const o=new Promise(((e,t)=>{a={resolve:e,reject:t}}));let i;for(i=0;i<re.length&&!(re[i].priority<r);i++);const s=te++;return re.splice(i,0,{taskId:s,taskType:e,status:"ready",added:(new Date).getTime(),data:t,deferred:a,priority:r,transferList:n}),le(),{taskId:s,promise:o}},getStatistics:function(){return se.maxWebWorkers=ie.maxWebWorkers,se.numWebWorkers=ne.length,se.numTasksQueued=re.length,se},setTaskPriority:function(e,t=0){for(let r=0;r<re.length;r++)if(re[r].taskId===e){const e=re.splice(r,1)[0];for(e.priority=t,r=0;r<re.length&&!(re[r].priority<t);r++);return re.splice(r,0,e),!0}return!1},cancelTask:function(e,t){for(let r=0;r<re.length;r++)if(re[r].taskId===e){return re.splice(r,1).deferred.reject(t),!0}return!1},webWorkers:ne,terminate:function(){for(let e=0;e<ne.length;e++)ne[e].worker.terminate();ne.length=0,ie=void 0}};var me=a(578);function ge(e,t,r,n,a){const o={...n};delete o.loader,delete o.streamingData;const i=o.priority||void 0,s=o.transferPixelData?[r.buffer]:void 0;return de.addTask("decodeTask",{imageFrame:e,transferSyntax:t,pixelData:r,options:o,decodeConfig:a},i,s).promise}window.pako={inflateRaw:me.Hq};const he=function(e,t,r,n,a={},o){switch(t){case"1.2.840.10008.1.2":case"1.2.840.10008.1.2.1":case"1.2.840.10008.1.2.2":case"1.2.840.10008.1.2.1.99":case"1.2.840.10008.1.2.5":case"1.2.840.10008.1.2.4.51":case"1.2.840.10008.1.2.4.57":case"1.2.840.10008.1.2.4.70":case"1.2.840.10008.1.2.4.80":case"1.2.840.10008.1.2.4.81":case"1.2.840.10008.1.2.4.90":case"1.2.840.10008.1.2.4.91":case"3.2.840.10008.1.2.4.96":case"1.2.840.10008.1.2.4.201":case"1.2.840.10008.1.2.4.202":case"1.2.840.10008.1.2.4.203":return ge(e,t,r,a,o);case"1.2.840.10008.1.2.4.50":return 8!==e.bitsAllocated||3!==e.samplesPerPixel&&4!==e.samplesPerPixel?ge(e,t,r,a,o):J(e,r,n)}return Promise.reject(new Error(`No decoder for transfer syntax ${t}`))};const pe=function(e){const{cornerstone:t}=xt,r=t.metaData.get("imagePixelModule",e);return{samplesPerPixel:r.samplesPerPixel,photometricInterpretation:r.photometricInterpretation,planarConfiguration:r.planarConfiguration,rows:r.rows,columns:r.columns,bitsAllocated:r.bitsAllocated,bitsStored:r.bitsStored,pixelRepresentation:r.pixelRepresentation,smallestPixelValue:r.smallestPixelValue,largestPixelValue:r.largestPixelValue,redPaletteColorLookupTableDescriptor:r.redPaletteColorLookupTableDescriptor,greenPaletteColorLookupTableDescriptor:r.greenPaletteColorLookupTableDescriptor,bluePaletteColorLookupTableDescriptor:r.bluePaletteColorLookupTableDescriptor,redPaletteColorLookupTableData:r.redPaletteColorLookupTableData,greenPaletteColorLookupTableData:r.greenPaletteColorLookupTableData,bluePaletteColorLookupTableData:r.bluePaletteColorLookupTableData,pixelData:void 0,imageId:e}};function xe(e){return"RGB"===e||"PALETTE COLOR"===e||"YBR_FULL"===e||"YBR_FULL_422"===e||"YBR_PARTIAL_422"===e||"YBR_PARTIAL_420"===e||"YBR_RCT"===e||"YBR_ICT"===e}let be="";function we(e){const t=function(e,t){let r;return Number.isInteger(e)&&Number.isInteger(t)&&(e>=0?t<=255?r=Uint8Array:t<=65535&&(r=Uint16Array):e>=-128&&t<=127?r=Int8Array:e>=-32768&&t<=32767&&(r=Int16Array)),r||Float32Array}(e.smallestPixelValue,e.largestPixelValue);if(!t)throw new Error("Could not apply a typed array to the pixel data");{const r=new t(e.pixelData);e.pixelData=r}}const ye=function(e,t,r,n={}){const a=n.useRGBA;if(n.preScale={enabled:!(!n.preScale||void 0===n.preScale.enabled)&&n.preScale.enabled},!t?.length)return Promise.reject(new Error("The pixel data is missing"));const{cornerstone:o}=xt,{MetadataModules:i}=o.Enums,s=document.createElement("canvas"),l=pe(e);if(l.decodeLevel=n.decodeLevel,n.allowFloatRendering=o.canRenderFloatTextures(),n.preScale.enabled){const t=function(e,t){const r=e.get("modalityLutModule",t)||{},n=e.get("generalSeriesModule",t)||{},{modality:a}=n,o={rescaleSlope:r.rescaleSlope,rescaleIntercept:r.rescaleIntercept,modality:a},i=e.get("scalingModule",t)||{};return{...o,..."PT"===a&&{suvbw:i.suvbw}}}(o.metaData,e);t&&(n.preScale={...n.preScale,scalingParameters:t})}n.isSharedArrayBuffer=n.targetBuffer?.arrayBuffer&&n.targetBuffer.arrayBuffer instanceof SharedArrayBuffer;const{decodeConfig:c}=F();c.use16BitDataType=!!(n&&"Uint16Array"===n.targetBuffer?.type||"Int16Array"===n.targetBuffer?.type)||(n.useNativeDataType||c.use16BitDataType),Object.keys(l).forEach((e=>{("function"==typeof l[e]||l[e]instanceof Promise)&&delete l[e]}));const u=he(l,r,t,s,n,c),{use16BitDataType:f}=c,d=xe(l.photometricInterpretation);return new Promise(((t,r)=>{u.then((function(r){if(n.skipCreateImage)return t(r);let l=!1;if(n.targetBuffer&&n.targetBuffer.type&&!d){const{arrayBuffer:e,type:t,offset:a=0,length:o}=n.targetBuffer,i=r.pixelDataLength,s=a,c=null!=o?o:i-s,u={Uint8Array,Uint16Array:f?Uint16Array:void 0,Int16Array:f?Int16Array:void 0,Float32Array};if(c!==r.pixelDataLength)throw new Error(`target array for image does not have the same length (${c}) as the decoded image length (${r.pixelDataLength}).`);const d=u[t],m=e?new d(e,s,c):new d(r.pixelData);if(c!==r.pixelDataLength)throw new Error("target array for image does not have the same length as the decoded image length.");r.pixelData=m,l=!0}l||we(r);const c=o.metaData.get(i.IMAGE_PLANE,e)||{},u=o.metaData.get(i.VOI_LUT,e)||{},m=o.metaData.get(i.MODALITY_LUT,e)||{},g=o.metaData.get(i.SOP_COMMON,e)||{},h=o.metaData.get(i.CALIBRATION,e)||{},{rows:p,columns:x}=r;if(d){if(function(e){if(void 0===e)return!1;const{rows:t,columns:r,photometricInterpretation:n,pixelDataLength:a}=e;return a!==4*r*t&&(n.endsWith("420")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*t:n.endsWith("422")?a===(3*Math.ceil(r/2)+Math.floor(r/2))*Math.ceil(t/2)+Math.floor(t/2)*r:"RGB"!==n)}(r)){s.height=r.rows,s.width=r.columns;let e=s.getContext("2d").createImageData(r.columns,r.rows);a||(e={...e,data:new Uint8ClampedArray(r.samplesPerPixel*r.columns*r.rows)}),X(r,e.data,a),r.imageData=e,r.pixelData=e.data,r.pixelDataLength=e.data.length}else if(!a&&r.pixelDataLength===4*p*x){const e=new Uint8Array(r.pixelData.length/4*3);r.pixelData=function(e,t){const r=e.length/4;let n=0,a=0;for(let o=0;o<r;o++)t[a++]=e[n++],t[a++]=e[n++],t[a++]=e[n++],n++;return t}(r.pixelData,e),r.pixelDataLength=r.pixelData.length}const e=H(r.pixelData);r.smallestPixelValue=e.min,r.largestPixelValue=e.max}const b={imageId:e,color:d,calibration:h,columnPixelSpacing:c.columnPixelSpacing,columns:r.columns,height:r.rows,preScale:r.preScale,intercept:m.rescaleIntercept?m.rescaleIntercept:0,slope:m.rescaleSlope?m.rescaleSlope:1,invert:"MONOCHROME1"===r.photometricInterpretation,minPixelValue:r.smallestPixelValue,maxPixelValue:r.largestPixelValue,rowPixelSpacing:c.rowPixelSpacing,rows:r.rows,sizeInBytes:r.pixelData.byteLength,width:r.columns,windowCenter:u.windowCenter?u.windowCenter[0]:void 0,windowWidth:u.windowWidth?u.windowWidth[0]:void 0,voiLUTFunction:u.voiLUTFunction?u.voiLUTFunction:void 0,decodeTimeInMS:r.decodeTimeInMS,floatPixelData:void 0,imageFrame:r,rgba:d&&a,getPixelData:()=>r.pixelData,getCanvas:void 0,numComps:void 0};var w;if(b.color&&(b.getCanvas=function(){if(be===e)return s;const t=b.columns,n=b.rows;s.height=n,s.width=t;const a=s.getContext("2d"),o=a.createImageData(t,n),i=r.pixelData;if(i.length===t*n*4)for(let e=0;e<i.length;e++)o.data[e]=i[e];else if(i.length===t*n*3){let e=0;for(let t=0;t<i.length;t+=3)o.data[e++]=i[t],o.data[e++]=i[t+1],o.data[e++]=i[t+2],o.data[e++]=255}return r.pixelData=o.data,r.pixelDataLength=o.data.length,r.imageData=o,a.putImageData(r.imageData,0,0),be=e,s}),m.modalityLUTSequence&&m.modalityLUTSequence.length>0&&("1.2.840.10008.5.1.4.1.1.12.1"!==(w=g.sopClassUID)&&"1.2.840.10008.5.1.4.1.1.12.2.1"!==w)&&(b.modalityLUT=m.modalityLUTSequence[0]),u.voiLUTSequence&&u.voiLUTSequence.length>0&&(b.voiLUT=u.voiLUTSequence[0]),b.color&&(b.windowWidth=256,b.windowCenter=128),void 0===b.windowCenter||void 0===b.windowWidth){const e=b.imageFrame.minAfterScale,t=b.imageFrame.maxAfterScale;b.windowWidth=t-e,b.windowCenter=(t+e)/2}t(b)}),r)}))},{ProgressiveIterator:ke}=N.utilities,{ImageQualityStatus:Te}=N.Enums,Se=new Set(["3.2.840.10008.1.2.4.96","1.2.840.10008.1.2.4.202","1.2.840.10008.1.2.4.203"]);function De(e){const t="1.2.840.10008.1.2";if(!e)return t;const r=e.split(";"),n={};r.forEach((e=>{const t=e.split("=");if(2!==t.length)return;const r=t[1].trim().replace(/"/g,"");n[t[0].trim()]=r}));const a={"image/jpeg":"1.2.840.10008.1.2.4.50","image/x-dicom-rle":"1.2.840.10008.1.2.5","image/x-jls":"1.2.840.10008.1.2.4.80","image/jls":"1.2.840.10008.1.2.4.80","image/jll":"1.2.840.10008.1.2.4.70","image/jp2":"1.2.840.10008.1.2.4.90","image/jpx":"1.2.840.10008.1.2.4.92","image/jphc":"3.2.840.10008.1.2.4.96","image/jxl":"1.2.840.10008.1.2.4.140"};return n["transfer-syntax"]?n["transfer-syntax"]:e&&!Object.keys(n).length&&a[e]?a[e]:n.type&&a[n.type]?a[n.type]:a[e]?a[e]:t}function ve(e,t=4){const r=e/100-.02;return r>1/4?Math.min(t,0):r>1/16?Math.min(t,1):r>1/64?Math.min(t,2):Math.min(t,3)}const Pe=function(e,t={}){const r=xt.cornerstone.imageRetrievalPoolManager,n=(new Date).getTime(),a=new ke("decompress"),o=t.requestType||"interaction",i=t.additionalDetails||{imageId:e},s=void 0===t.priority?5:t.priority,l=t.addToBeginning||!1,c=e.substring(7);return r.addRequest(async function(e,r,o){a.generate((async a=>{const i=ke.as(z(e,r,o,t));let s=10;for await(const e of i){const{pixelData:o,imageQualityStatus:i=Te.FULL_RESOLUTION,percentComplete:l,done:c=!0,extractDone:u=!0}=e,f=De(e.contentType);if(!u&&!Se.has(f))continue;const d=e.decodeLevel??(i===Te.FULL_RESOLUTION?0:ve(l,t.retrieveOptions?.decodeLevel));if(c||!(s<=d))try{const e={...t,decodeLevel:d},l=await ye(r,o,f,e),u=(new Date).getTime();l.loadTimeInMS=u-n,l.transferSyntaxUID=f,l.imageQualityStatus=i,a.add(l,c),s=d}catch(e){if(u)throw console.warn("Couldn't decode",e),e}}}))}.bind(this,c,e,"multipart/related; type=application/octet-stream; transfer-syntax=*"),o,i,s,l),{promise:a.getDonePromise(),cancelFn:void 0}};const Ie={metaData:{getNumberString:s,getNumberValue:l,getNumberValues:c,getValue:i,metaDataProvider:L},findIndexOfString:O,getPixelData:z,loadImage:Pe,metaDataManager:b,register:function(e){e.registerImageLoader("wadors",Pe),e.metaData.addProvider(L)}};function Ee(e,t){if(e.elements[t]&&6===e.elements[t].length)return[e.uint16(t,0),e.uint16(t,1),e.uint16(t,2)]}function Ae(e,t,r){const n=[],a=e.elements[t];for(let o=0;o<r[0];o++)16===r[2]?n[o]=e.uint16(t,o):n[o]=e.byteArray[o+a.dataOffset];return n}const _e=function(e){const t={samplesPerPixel:e.uint16("x00280002"),photometricInterpretation:e.string("x00280004"),rows:e.uint16("x00280010"),columns:e.uint16("x00280011"),bitsAllocated:e.uint16("x00280100"),bitsStored:e.uint16("x00280101"),highBit:e.uint16("x00280102"),pixelRepresentation:e.uint16("x00280103"),planarConfiguration:e.uint16("x00280006"),pixelAspectRatio:e.string("x00280034")};return function(e,t){0===e.uint16("x00280103")?(t.smallestPixelValue=e.uint16("x00280106"),t.largestPixelValue=e.uint16("x00280107")):(t.smallestPixelValue=e.int16("x00280106"),t.largestPixelValue=e.int16("x00280107"))}(e,t),"PALETTE COLOR"===t.photometricInterpretation&&e.elements.x00281101&&function(e,t){t.redPaletteColorLookupTableDescriptor=Ee(e,"x00281101"),t.greenPaletteColorLookupTableDescriptor=Ee(e,"x00281102"),t.bluePaletteColorLookupTableDescriptor=Ee(e,"x00281103"),0===t.redPaletteColorLookupTableDescriptor[0]&&(t.redPaletteColorLookupTableDescriptor[0]=65536,t.greenPaletteColorLookupTableDescriptor[0]=65536,t.bluePaletteColorLookupTableDescriptor[0]=65536);const r=t.redPaletteColorLookupTableDescriptor[0],n=e.elements.x00281201.length===r?8:16;t.redPaletteColorLookupTableDescriptor[2]!==n&&(t.redPaletteColorLookupTableDescriptor[2]=n,t.greenPaletteColorLookupTableDescriptor[2]=n,t.bluePaletteColorLookupTableDescriptor[2]=n),t.redPaletteColorLookupTableData=Ae(e,"x00281201",t.redPaletteColorLookupTableDescriptor),t.greenPaletteColorLookupTableData=Ae(e,"x00281202",t.greenPaletteColorLookupTableDescriptor),t.bluePaletteColorLookupTableData=Ae(e,"x00281203",t.bluePaletteColorLookupTableDescriptor)}(e,t),t};function Le(e,t){let r=t.uint16("x00283002",0);0===r&&(r=65535);let n=0;n=0===e?t.uint16("x00283002",1):t.int16("x00283002",1);const a={id:"1",firstValueMapped:n,numBitsPerEntry:t.uint16("x00283002",2),lut:[]};for(let n=0;n<r;n++)a.lut[n]=0===e?t.uint16("x00283006",n):t.int16("x00283006",n);return a}const Ce=function(e,t){if(!t||!t.items||!t.items.length)return;const r=[];for(let n=0;n<t.items.length;n++){const a=Le(e,t.items[n].dataSet);a&&r.push(a)}return r};const Oe=function(e){const t=e.string("x00080016");if("1.2.840.10008.5.1.4.1.1.2"===t||"1.2.840.10008.5.1.4.1.1.2.1"===t)return 1;const r=e.floatString("x00281052"),n=e.floatString("x00281053");if(void 0!==r&&void 0!==n){const t=function(e){const t=e.uint16("x00280103"),r=e.uint16("x00280101");return 0===t?0:-1<<r-1}(e);return t*n+r<0?1:0}return e.elements.x00283000&&e.elements.x00283000.length>0?0:e.uint16("x00280103")};const Me=function(e,t,r){const n=[],a=e.string(t);if(!a)return;const o=a.split("\\");if(!(r&&o.length<r)){for(let e=0;e<o.length;e++)n.push(parseFloat(o[e]));return n}};const Re=function(e){const t=e.indexOf(":");let r=e.substring(t+1);const n=r.indexOf("frame=");let a;if(-1!==n){const e=r.substring(n+6);a=parseInt(e,10),r=r.substring(0,n-1)}return{scheme:e.substring(0,t),url:r,frame:a,pixelDataFrame:void 0!==a?a-1:void 0}};function Fe(e){const{dicomParser:t}=xt;let r,n=t.parseDicom(e,{untilTag:"x7fe00010"});n.elements.x7fe00010||console.warn("Pixel data not found!");try{r=t.parseDicom(e)}catch(e){console.error(e),console.log("pixel data dataset:",e.dataSet),r=e.dataSet}return n.elements.x7fe00010=r.elements.x7fe00010,n=function(e){const t=e.elements.x7fe00010.fragments,r=e.byteArray.length;for(const e of t){const{position:t,length:n}=e;n>r-t&&(console.log(`Truncated fragment, changing fragment length from ${e.length} to ${r-t}`),e.length=r-t)}return e}(n),n}async function Be(e,t,r){const n=Fe(e),{uri:a,imageId:o,fileTotalLength:i}=r;return n.fetchMore=async function(s){const l=Object.assign({uri:a,imageId:o,fetchedLength:e.length,lengthToFetch:i-e.length},s),{fetchedLength:c,lengthToFetch:u}=l,{arrayBuffer:f}=await t(a,o,{byteRange:`${c}-${c+u}`}),d=new Uint8Array(f),m=new Uint8Array(n.byteArray.length+d.length);return m.set(n.byteArray),m.set(d,n.byteArray.length),Be(m,t,r)},n}function Ue(e,t,r){const n={};(t?Object.values(t.items[0].dataSet.elements):[]).map((e=>n[e.tag]=e));const a={};return(e?Object.values(e.items[r-1].dataSet.elements):[]).map((e=>a[e.tag]=e)),{shared:n,perFrame:a}}function Ne(e){if(!e)return;const{elements:t,...r}=e,{x52009230:n,x52009229:a,...o}=t;return{NumberOfFrames:e.intString("x00280008"),PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o,otherAttributtes:r}}function je(e){if(We[e])return We[e]}function $e(e){if(!e)return!1;const t=e.intString("x00280008");return t&&t>1}const Ge={_get:je,generateMultiframeWADOURIs:function(e){const t=[],r=je(e);if($e(r)){const n=r.intString("x00280008");for(let r=1;r<=n;r++)t.push(`${e}&frame=${r}`)}else t.push(e);return t},retrieveMultiframeDataset:function(e){const t=function(e){return e.indexOf("&frame=")}(e),r=-1===t?e:e.slice(0,t),n=parseInt(e.slice(t+7),10)||1;let a;return a=We[r]?We[r].dataSet:void 0,{dataSet:a,frame:n}},isMultiframeDataset:function(e){return $e(je(e))}};let Ve=0,We={},qe={};function Ze(){return{cacheSizeInBytes:Ve,numberOfDataSetsCached:Object.keys(We).length}}const Ye={isLoaded:function(e){return void 0!==We[e]},load:function(e,t=B,r){const{cornerstone:n,dicomParser:a}=xt;if(We[e])return new Promise((t=>{We[e].cacheCount++,t(We[e].dataSet)}));if(qe[e])return qe[e].cacheCount++,qe[e];const o=t(e,r),i=new Promise(((s,l)=>{o.then((async function(o){const c={isPartialContent:!1,fileTotalLength:null};if(!(o instanceof ArrayBuffer)){if(!o.arrayBuffer)return l(new Error("If not returning ArrayBuffer, must return object with `arrayBuffer` parameter"));c.isPartialContent=o.flags.isPartialContent,c.fileTotalLength=o.flags.fileTotalLength,o=o.arrayBuffer}const u=new Uint8Array(o);let f;try{f=c.isPartialContent?await Be(u,t,{uri:e,imageId:r,fileTotalLength:c.fileTotalLength}):a.parseDicom(u)}catch(e){return l(e)}We[e]={dataSet:f,cacheCount:i.cacheCount},Ve+=f.byteArray.length,s(f),n.triggerEvent(n.events,"datasetscachechanged",{uri:e,action:"loaded",cacheInfo:Ze()})}),l).then((()=>{delete qe[e]}),(()=>{delete qe[e]}))}));return i.cacheCount=1,qe[e]=i,i},unload:function(e){const{cornerstone:t}=xt;We[e]&&(We[e].cacheCount--,0===We[e].cacheCount&&(Ve-=We[e].dataSet.byteArray.length,delete We[e],t.triggerEvent(t.events,"datasetscachechanged",{uri:e,action:"unloaded",cacheInfo:Ze()})))},getInfo:Ze,purge:function(){We={},qe={},Ve=0},get:function(e){let t;if(e.includes("&frame=")){const{frame:r,dataSet:n}=Ge.retrieveMultiframeDataset(e);t=function(e,t){if(!t)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a,otherElements:o}=Ne(t);if(n||r>1){const{shared:r,perFrame:i}=Ue(n,a,e),s={elements:{...o,...r,...i}},l=Object.create(t);return Object.assign(l,s)}return t}(r,n)}else We[e]&&(t=We[e].dataSet);return t},update:function(e,t){const r=We[e];r?(Ve-=r.dataSet.byteArray.length,r.dataSet=t,Ve+=t.byteArray.length,xt.cornerstone.triggerEvent(xt.cornerstone.events,"datasetscachechanged",{uri:e,action:"updated",cacheInfo:Ze()})):console.error(`No loaded dataSet for uri ${e}`)}};function ze(e,t){const r=e.string("x00080008");if(r){const e=r.split("\\");if(e.length>t)return e[t]}}function He(e){let t=Me(e,"x00200037",6);return!t&&e.elements.x00209116&&(t=Me(e.elements.x00209116.items[0].dataSet,"x00200037",6)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200037",6))}return t}(e)),t}function Qe(e){let t=Me(e,"x00200032",3);return!t&&e.elements.x00209113&&(t=Me(e.elements.x00209113.items[0].dataSet,"x00200032",3)),t||(t=function(e){let t;const r=e.string("x00080060");if(r?.includes("NM")){const r=ze(e,2);r&&w(r)&&e.elements.x00540022&&(t=Me(e.elements.x00540022.items[0].dataSet,"x00200032",3))}return t}(e)),t}function Xe(e){let t=Me(e,"x00280030",2);return!t&&e.elements.x00289110&&(t=Me(e.elements.x00289110.items[0].dataSet,"x00280030",2)),t}function Ke(e){let t;return e.elements.x00180050?t=e.floatString("x00180050"):e.elements.x00289110&&e.elements.x00289110.items.length&&e.elements.x00289110.items[0].dataSet.elements.x00180050&&(t=e.elements.x00289110.items[0].dataSet.floatString("x00180050")),t}const Je=function e(t,r){const{MetadataModules:n}=xt.cornerstone.Enums,{dicomParser:a}=xt;if(Array.isArray(r))return;const o=Re(r);if(t===n.MULTIFRAME){const e=Ge.retrieveMultiframeDataset(o.url);if(!e.dataSet)return;const t=function(e,t){if(!e)return;const{NumberOfFrames:r,PerFrameFunctionalGroupsSequence:n,SharedFunctionalGroupsSequence:a}=Ne(e);if(n||r>1){const{shared:e,perFrame:o}=Ue(n,a,t);return{NumberOfFrames:r,PerFrameFunctionalInformation:o,SharedFunctionalInformation:e}}return{NumberOfFrames:r}}(e.dataSet,e.frame);return t}let i=o.url;o.frame&&(i=`${i}&frame=${o.frame}`);const s=Ye.get(i);if(s){if(t===n.GENERAL_STUDY)return{studyDescription:s.string("x00081030"),studyDate:a.parseDA(s.string("x00080020")),studyTime:a.parseTM(s.string("x00080030")||""),accessionNumber:s.string("x00080050")};if(t===n.GENERAL_SERIES)return{modality:s.string("x00080060"),seriesInstanceUID:s.string("x0020000e"),seriesNumber:s.intString("x00200011"),studyInstanceUID:s.string("x0020000d"),seriesDate:a.parseDA(s.string("x00080021")),seriesTime:a.parseTM(s.string("x00080031")||""),acquisitionDate:a.parseDA(s.string("x00080022")),acquisitionTime:a.parseTM(s.string("x00080032")||"")};if(t===n.GENERAL_IMAGE)return{sopInstanceUID:s.string("x00080018"),instanceNumber:s.intString("x00200013"),lossyImageCompression:s.string("x00282110"),lossyImageCompressionRatio:s.floatString("x00282112"),lossyImageCompressionMethod:s.string("x00282114")};if(t===n.PATIENT)return{patientID:s.string("x00100020"),patientName:s.string("x00100010")};if(t===n.PATIENT_STUDY)return{patientAge:s.intString("x00101010"),patientSize:s.floatString("x00101020"),patientSex:s.string("x00100040"),patientWeight:s.floatString("x00101030")};if(t===n.NM_MULTIFRAME_GEOMETRY){const e=s.string("x00080060"),t=ze(s,2);return{modality:e,imageType:s.string("x00080008"),imageSubType:t,imageOrientationPatient:He(s),imagePositionPatient:Qe(s),sliceThickness:Ke(s),pixelSpacing:Xe(s),numberOfFrames:s.uint16("x00280008"),isNMReconstructable:w(t)&&e.includes("NM")}}if(t===n.IMAGE_PLANE){const e=He(s),t=Qe(s),r=Xe(s),n=Ke(s);let a=null,o=null;r&&(o=r[0],a=r[1]);let i=null,l=null;return e&&(i=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])],l=[parseFloat(e[3]),parseFloat(e[4]),parseFloat(e[5])]),{frameOfReferenceUID:s.string("x00200052"),rows:s.uint16("x00280010"),columns:s.uint16("x00280011"),imageOrientationPatient:e,rowCosines:i,columnCosines:l,imagePositionPatient:t,sliceThickness:n,sliceLocation:s.floatString("x00201041"),pixelSpacing:r,rowPixelSpacing:o,columnPixelSpacing:a}}if(t===n.CINE)return{frameTime:s.floatString("x00181063")};if(t===n.IMAGE_PIXEL)return _e(s);if(t===n.VOI_LUT){const e=Oe(s);return{windowCenter:Me(s,"x00281050",1),windowWidth:Me(s,"x00281051",1),voiLUTSequence:Ce(e,s.elements.x00283010)}}if(t===n.MODALITY_LUT)return{rescaleIntercept:s.floatString("x00281052"),rescaleSlope:s.floatString("x00281053"),rescaleType:s.string("x00281054"),modalityLUTSequence:Ce(s.uint16("x00280103"),s.elements.x00283000)};if(t===n.SOP_COMMON)return{sopClassUID:s.string("x00080016"),sopInstanceUID:s.string("x00080018")};if(t===n.PET_ISOTOPE){const e=s.elements.x00540016;if(void 0===e)return;const t=e.items[0].dataSet;return{radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:a.parseTM(t.string("x00181072")||""),radionuclideTotalDose:t.floatString("x00181074"),radionuclideHalfLife:t.floatString("x00181075")}}}if(t===n.OVERLAY_PLANE)return function(e){const t=[];for(let r=0;r<=30;r+=2){let n=`x60${r.toString(16)}`;4===n.length&&(n=`x600${r.toString(16)}`);const a=e.elements[`${n}3000`];if(!a)continue;const o=[];for(let t=0;t<a.length;t++)for(let r=0;r<8;r++){const n=e.byteArray[a.dataOffset+t];o[8*t+r]=n>>r&1}t.push({rows:e.uint16(`${n}0010`),columns:e.uint16(`${n}0011`),type:e.string(`${n}0040`),x:e.int16(`${n}0050`,1)-1,y:e.int16(`${n}0050`,0)-1,pixelData:o,description:e.string(`${n}0022`),label:e.string(`${n}1500`),roiArea:e.string(`${n}1301`),roiMean:e.string(`${n}1302`),roiStandardDeviation:e.string(`${n}1303`)})}return{overlays:t}}(s);if("transferSyntax"===t){let e;try{e=s.string("x00020010")}catch(e){}return{transferSyntaxUID:e}}return t===n.PET_SERIES?{correctedImage:s.string("x00280051"),units:s.string("x00541001"),decayCorrection:s.string("x00541102")}:t===n.PET_IMAGE?{frameReferenceTime:s.floatString(s.string("x00541300")||""),actualFrameDuration:s.intString(s.string("x00181242"))}:"instance"===t?D(r,e,P):void 0}};let et=[];const tt={add:function(e){return"dicomfile:"+(et.push(e)-1)},get:function(e){return et[e]},remove:function(e){et[e]=void 0},purge:function(){et=[]}};var rt=a(713);function nt(e,t){const{dicomParser:r}=xt;if(e.elements.x7fe00010&&e.elements.x7fe00010.basicOffsetTable.length)return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t);if(function(e){return e.intString("x00280008")!==e.elements.x7fe00010.fragments.length}(e)){const n=r.createJPEGBasicOffsetTable(e,e.elements.x7fe00010);return r.readEncapsulatedImageFrame(e,e.elements.x7fe00010,t,n)}const n=e.elements.x7fe00010.fragments,a=new rt.ByteStream(e.byteArrayParser,e.byteArray,e.elements.x7fe00010.dataOffset),o=(0,rt.readSequenceItem)(a);if("xfffee000"!==o.tag)throw"dicomParser.readEncapsulatedPixelData: missing basic offset table xfffee000";a.seek(o.length);const i=a.position;if(t+1>n.length)throw"dicomParser.readEncapsulatedPixelData: frame exceeds number of fragments";const s=i+n[t].offset+8,l=n[t].length;return new Uint8Array(a.byteArray.buffer.slice(a.byteArray.byteOffset+s,a.byteArray.byteOffset+s+l))}function at(e,t){return e&1<<t}const ot=function(e,t,r){const n=new Uint8Array(r);for(let a=0;a<r;a++){const r=e[Math.floor(a/8)+t],o=a%8;n[a]=at(r,o)?1:0}return n};const it=function(e,t){const r=e.elements.x7fe00010||e.elements.x7fe00008,n=e.uint16("x00280100"),a=e.uint16("x00280010"),o=e.uint16("x00280011");let i=e.uint16("x00280002");"YBR_FULL_422"===e.string("x00280004")&&(i=2,console.warn("Using SamplesPerPixel of 2 for YBR_FULL_422 photometric interpretation.\n See http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.7.6.3.html for more information."));const s=r.dataOffset,l=a*o*i;let c;if(8===n){if(c=s+t*l,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+l))}if(16===n){if(c=s+t*l*2,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+2*l))}if(1===n){if(c=s+t*l*.125,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return ot(e.byteArray,c,l)}if(32===n){if(c=s+t*l*4,c>=e.byteArray.length)throw new Error("frame exceeds size of pixelData");return new Uint8Array(e.byteArray.buffer.slice(c,c+4*l))}throw new Error("unsupported pixel format")};const st=function(e){const t=Re(e),r=parseInt(t.url,10),n=tt.get(r);return new Promise(((e,t)=>{const r=new FileReader;r.onload=t=>{const r=t.target.result;e(r)},r.onerror=t,r.readAsArrayBuffer(n)}))};const lt=function(e,t=0){const r=e.elements.x7fe00010||e.elements.x7fe00008;return r?r.encapsulatedPixelData?nt(e,t):it(e,t):null};function ct(e,t,r=0,n,a,o){const i=(new Date).getTime(),s={cancelFn:void 0,promise:void 0};return s.promise=new Promise(((l,c)=>{e.then((e=>{const u=lt(e,r),f=e.string("x00020010"),d=(new Date).getTime(),m=ye(t,u,f,a);!function(e,t){e.decache=function(){const e=Re(t);Ye.unload(e.url)}}(s,t),m.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=d-i,t.totalTimeInMS=r-i,void 0!==o&&void 0!==o.imageDoneCallback&&o.imageDoneCallback(t),l(t)}),(function(t){c({error:t,dataSet:e})}))}),(function(e){c({error:e})}))})),s}function ut(e){return"dicomweb"===e||"wadouri"===e?B:"dicomfile"===e?st:void 0}function ft(e,t={}){const r=Re(e);delete(t=Object.assign({},t)).loader;const n=ut(r.scheme);if(Ye.isLoaded(r.url)){return function(e,t,r=0,n,a){const o=(new Date).getTime();return{promise:new Promise(((i,s)=>{const l=(new Date).getTime();let c;try{const n=lt(e,r),o=e.string("x00020010");c=ye(t,n,o,a)}catch(t){return void s({error:t,dataSet:e})}c.then((t=>{t.data=e,t.sharedCacheKey=n;const r=(new Date).getTime();t.loadTimeInMS=l-o,t.totalTimeInMS=r-o,i(t)}),s)})),cancelFn:void 0}}(Ye.get(r.url,n,e),e,r.pixelDataFrame,r.url,t)}return ct(Ye.load(r.url,n,e),e,r.frame,r.url,t)}const dt={metaData:{getImagePixelModule:_e,getLUTs:Ce,getModalityLUTOutputPixelRepresentation:Oe,getNumberValues:Me,metaDataProvider:Je},dataSetCacheManager:Ye,fileManager:tt,getEncapsulatedImageFrame:nt,getUncompressedImageFrame:it,loadFileRequest:st,loadImageFromPromise:ct,getLoaderForScheme:ut,loadImage:ft,parseImageId:Re,unpackBinaryFrame:ot,register:function(e){e.registerImageLoader("dicomweb",ft),e.registerImageLoader("wadouri",ft),e.registerImageLoader("dicomfile",ft),e.metaData.addProvider(Je)}};const mt=function(e){Ie.register(e),dt.register(e)};let gt,ht;const pt={set cornerstone(e){gt=e,mt(gt)},get cornerstone(){if(!gt){if(gt=window&&window.cornerstone,!gt)throw new Error("cornerstoneDICOMImageLoader requires a copy of Cornerstone to work properly. Please add cornerstoneDICOMImageLoader.external.cornerstone = cornerstone; to your application.");mt(gt)}return gt},set dicomParser(e){ht=e},get dicomParser(){if(!ht){if(!window||!window.dicomParser)throw new Error("cornerstoneDICOMImageLoader requires a copy of dicomParser to work properly. Please add cornerstoneDICOMImageLoader.external.dicomParser = dicomParser; to your application.");ht=window.dicomParser}return ht}},xt=pt;function bt(e,t){const r=e.length,n=new Uint8ClampedArray(r);for(let a=0;a<r;++a)n[a]=e[a]>>t;return n}function wt(e,t,r){const n=e[`${t}PaletteColorLookupTableData`];if(n)return Promise.resolve(n);const a=xt.cornerstone.metaData.get("imagePixelModule",e.imageId);return a&&"function"==typeof a.then?a.then((e=>e?e[`${t}PaletteColorLookupTableData`]:r)):Promise.resolve(a?a[`${t}PaletteColorLookupTableData`]:r)}function yt(e,t,r){const n=e.columns*e.rows,a=e.pixelData;Promise.all([wt(e,"red",null),wt(e,"green",null),wt(e,"blue",null)]).then((([o,i,s])=>{if(!o||!i||!s)throw new Error("The image does not have a complete color palette. R, G, and B palette data are required.");const l=o.length;let c=0,u=0;const f=e.redPaletteColorLookupTableDescriptor[1],d=8===e.redPaletteColorLookupTableDescriptor[2]?0:8,m=bt(o,d),g=bt(i,d),h=bt(s,d);if(r)for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e],t[u++]=255}else for(let e=0;e<n;++e){let e=a[c++];e<f?e=0:e>f+l-1?e=l-1:e-=f,t[u++]=m[e],t[u++]=g[e],t[u++]=h[e]}}))}const kt=function(e){R(e)};const Tt=function(e,t){if(t=t||e.transferSyntax,8===e.bitsAllocated&&"1.2.840.10008.1.2.4.50"===t&&(3===e.samplesPerPixel||4===e.samplesPerPixel))return!0},St={convertRGBColorByPixel:e,convertRGBColorByPlane:t,convertYBRFullByPixel:r,convertYBRFullByPlane:n,convertPALETTECOLOR:yt,wadouri:dt,wadors:Ie,configure:kt,convertColorSpace:X,createImage:ye,decodeImageFrame:he,decodeJPEGBaseline8BitColor:J,getImageFrame:pe,getPixelData:z,getMinMax:H,isColorImage:xe,isJPEGBaseline8BitColor:Tt,webWorkerManager:de,internal:U,external:pt}})(),o})()));
217148
217144
 
217149
217145
 
217150
217146
  /***/ }),
@@ -374776,7 +374772,7 @@ function __disposeResources(env) {
374776
374772
  /******/ // This function allow to reference async chunks
374777
374773
  /******/ __webpack_require__.u = (chunkId) => {
374778
374774
  /******/ // return url for filenames based on template
374779
- /******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg","584":"suv-peak-worker"}[chunkId] || chunkId) + ".bundle." + {"14":"9b4d14b25846a32a3f92","54":"6b31e5ed4c4a7a6998f2","109":"b4fee2a22b622839baf5","121":"10a6e63661e3feffdcf7","129":"aeffa00fc359c6c3302f","139":"6eb8039adf55b8c9ca62","140":"8bf87e14b2f8a73c0808","172":"0456e70413768fec2ba8","194":"a48813c253355c084c4f","211":"00af31ef3a558ab871d7","218":"a759b880ba04ab0a245c","236":"ed0702d760569f060757","265":"b32a0cc143efa80ee3cc","323":"1fd7c8d38a76f9ad0a16","342":"11ecb4c2b7014443a64b","363":"fde0de340488759cbb08","367":"498dd1c427fcbfb437e1","370":"6b8d3e94eef8e83ced67","382":"43ffd547a510e627ecb9","404":"5410f69ce69c9857c805","444":"a73ab0a4184585ec4f39","445":"38c6d2af64e41cd7c614","483":"016de3c3ec209d9fa42a","525":"d3a56dc9f62df5e11019","552":"82767ceab03497a4c45b","555":"0ffcf54e8f5a2871709f","572":"0b510b43f66f641bb68a","584":"42afdd68a04bee2d0f4e","612":"297a033523539e0b47f9","644":"1e77691d2eeb96a423b0","675":"c9720f40fd7c7e9b7e54","717":"613012c8a7150a0decd0","722":"1242e0348afc63ca4f5e","726":"90d63d40a19b058034ee","792":"485ad2f98823a4b3feb1","799":"4c98fd946d302e8271d6","806":"f0371b477bf9f5a59650","822":"1f629123cfe2f9df861d","835":"5d1951da8bbc6afdf3e0","837":"ff9fe44bf863a5bceabc","853":"49c38ba82f8927866f55","920":"71d43ce3953964226c3b","931":"058f8de4606f27b31f4f","989":"5f3a4719f128f4a6e599"}[chunkId] + ".js";
374775
+ /******/ return "" + ({"54":"histogram-worker","525":"dicom-microscopy-viewer","572":"polySeg","584":"suv-peak-worker"}[chunkId] || chunkId) + ".bundle." + {"14":"66f407f4f809ab6e4d2b","54":"6b31e5ed4c4a7a6998f2","109":"b4fee2a22b622839baf5","121":"9d1bc02753725a6bb253","129":"3343ba9238f9e2e5cbd2","139":"6eb8039adf55b8c9ca62","140":"3cdcfa8c0910716f39ad","172":"e0ee762bee7496d6491e","194":"0097cbd10d2057a6d2fa","211":"5bd4f255507c829f5ff4","218":"efce3a1382a78705f8e5","236":"a7e2f9e0cb3668fb6937","265":"b32a0cc143efa80ee3cc","323":"1fd7c8d38a76f9ad0a16","342":"11ecb4c2b7014443a64b","363":"aaea135d087c8de5f246","370":"26738a863fd92e6b0d96","382":"6bb12e638e417b57edc6","404":"5410f69ce69c9857c805","444":"c8694a72ad83c14393c7","445":"38c6d2af64e41cd7c614","483":"016de3c3ec209d9fa42a","525":"d3a56dc9f62df5e11019","552":"af6ca952ba2d5b48d438","555":"d0975692846ab3f51a49","572":"bbb334a78132a383ef54","584":"6347271d0c99d33d64cf","612":"297a033523539e0b47f9","644":"1e77691d2eeb96a423b0","675":"c9720f40fd7c7e9b7e54","717":"51d5dae0d1cc8658aaa7","722":"1242e0348afc63ca4f5e","726":"90d63d40a19b058034ee","792":"485ad2f98823a4b3feb1","799":"654b5001021a13206a0b","806":"8bed59eb74ae6d3a33e9","835":"5d1951da8bbc6afdf3e0","837":"ff9fe44bf863a5bceabc","853":"d4d75dbce98d1caed76a","914":"2b3a856b7d41ac8298e6","920":"55c841734b5d60121b31","931":"058f8de4606f27b31f4f","944":"8d9b702fa2251909ac5e","989":"71b69e3b9f41971c6e41"}[chunkId] + ".js";
374780
374776
  /******/ };
374781
374777
  /******/ })();
374782
374778
  /******/