@ohif/app 3.9.0-beta.3 → 3.9.0-beta.30

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 (231) hide show
  1. package/dist/{117.bundle.a80b1511ef4b302fb7cc.js → 117.bundle.ba41cf7978afb629dcff.js} +66 -18
  2. package/dist/{889.bundle.5611d644c8cb24f864ff.js → 121.bundle.461cdd26c51e085deaec.js} +40 -12
  3. package/dist/{998.bundle.b8ffa2bc390d5d4edf16.js → 129.bundle.ccccc4e42658b699feca.js} +22 -21
  4. package/dist/{574.bundle.72bd5061ccd504235419.js → 139.bundle.679c4baad7c7f65ebabd.js} +25 -37
  5. package/dist/{989.bundle.bf6bc62794b717824f7e.js → 14.bundle.d598ec76439971a82907.js} +5 -5
  6. package/dist/{783.bundle.126cd640a5fd49804d8e.js → 140.bundle.62747296bb3696dd345f.js} +2 -2
  7. package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.79cc35bc3e6b792636cd.js} +334 -44
  8. package/dist/{544.bundle.e8227e98860e39636a00.js → 172.bundle.e3e82e398b39958577e6.js} +16 -30
  9. package/dist/{487.bundle.b1a29dcf2b152693935d.js → 194.bundle.9cd41c6e2b415f350d2c.js} +5 -5
  10. package/dist/{699.bundle.2adb0c0ad7f7cb9e338a.js → 211.bundle.ab7c92a8a4df9aec1b43.js} +33 -4
  11. package/dist/{776.bundle.9680d347bafb63f8688a.js → 218.bundle.4a08087f702d768af647.js} +14 -9
  12. package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.343bcd0be60d0ae61901.js} +396 -56
  13. package/dist/{530.bundle.17b9a34fefff133e5379.js → 265.bundle.b32a0cc143efa80ee3cc.js} +8 -12
  14. package/dist/{862.bundle.55dde21bab4c841b6259.js → 323.bundle.8e5137bf61179c8704d6.js} +5 -9
  15. package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.67c49f2e52829a5696a4.js} +7 -0
  16. package/dist/{550.bundle.a2267752bc8874fedfd5.js → 363.bundle.954d90c5692cbb941b4a.js} +226 -150
  17. package/dist/{473.bundle.6cd4be953853f35b29c3.js → 367.bundle.6a0746aeca702ae6eba6.js} +279 -29
  18. package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.02108fbb881fbe75b59c.js} +82 -11
  19. package/dist/{682.bundle.ec07ec1bc2f69f9d0d94.js → 382.bundle.d4252c006f2f98873356.js} +24 -4
  20. package/dist/{907.bundle.13dc5f4b5581d12562b8.js → 444.bundle.4cd603be188efd1315c0.js} +4 -4
  21. package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
  22. package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.3dcc63f03d9c252a9bee.js} +885 -312
  23. package/dist/{905.bundle.4105e428f61f925a310d.js → 552.bundle.d313d009d2c2e305dded.js} +3 -3
  24. package/dist/{981.bundle.a0fabcf9845c1a623990.js → 555.bundle.c6c0a1fe9e2c03f8af8c.js} +7 -6
  25. package/dist/{939.bundle.9d93b2e47c52338747a2.js → 612.bundle.297a033523539e0b47f9.js} +2 -2
  26. package/dist/{295.bundle.9926ff25c6dbf53845b1.js → 675.bundle.c9720f40fd7c7e9b7e54.js} +5 -9
  27. package/dist/{325.bundle.98612a2afacf5d63b25a.js → 717.bundle.3a92ee3bed8e262a711f.js} +32 -23
  28. package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
  29. package/dist/{121.bundle.b582314ec0024fdf2d15.js → 792.bundle.485ad2f98823a4b3feb1.js} +6 -10
  30. package/dist/{721.bundle.a210baa38d34b9bcacfd.js → 799.bundle.990e75c08a3433cf365e.js} +12 -12
  31. package/dist/{448.bundle.70dc1363d8b2783dc51e.js → 806.bundle.66255407803c821b5dd8.js} +5 -5
  32. package/dist/{390.bundle.2751b81dbe439a40ba90.js → 827.bundle.0ea035fe8a66ed623ca9.js} +446 -53
  33. package/dist/{297.bundle.194d8985ab974839b5b6.js → 837.bundle.ff9fe44bf863a5bceabc.js} +2 -2
  34. package/dist/{961.bundle.2c81565fe334d6cd2f9c.js → 853.bundle.c9ec20a34533e6a3cc9a.js} +4 -4
  35. package/dist/{94.bundle.9b92ece5801a7df7d08c.js → 920.bundle.a1610f58fa4bbb2fec10.js} +39 -9
  36. package/dist/{243.bundle.96439f589bc338b977ea.js → 989.bundle.846e557e47d4cae6d040.js} +4 -4
  37. package/dist/app-config.js +5 -1
  38. package/dist/app.bundle.css +5 -4
  39. package/dist/{app.bundle.cbecae40543f47cc8c7e.js → app.bundle.e7838557fb4fd76da32e.js} +162742 -46045
  40. package/dist/assets/images/action-new-dialog.svg +14 -0
  41. package/dist/assets/images/arrow-down.svg +5 -0
  42. package/dist/assets/images/arrow-left-small.svg +6 -0
  43. package/dist/assets/images/arrow-left.svg +6 -0
  44. package/dist/assets/images/arrow-right-small.svg +6 -0
  45. package/dist/assets/images/arrow-right.svg +6 -0
  46. package/dist/assets/images/calendar.svg +5 -0
  47. package/dist/assets/images/cancel.svg +8 -0
  48. package/dist/assets/images/checkbox-active.svg +9 -0
  49. package/dist/assets/images/checkbox-checked.svg +9 -0
  50. package/dist/assets/images/checkbox-default.svg +3 -0
  51. package/dist/assets/images/checkbox-unchecked.svg +3 -0
  52. package/dist/assets/images/chevron-down.svg +3 -0
  53. package/dist/assets/images/chevron-left.svg +3 -0
  54. package/dist/assets/images/chevron-menu.svg +12 -0
  55. package/dist/assets/images/chevron-next.svg +6 -0
  56. package/dist/assets/images/chevron-prev.svg +6 -0
  57. package/dist/assets/images/chevron-right.svg +3 -0
  58. package/dist/assets/images/circled-checkmark.svg +6 -0
  59. package/dist/assets/images/clipboard.svg +1 -0
  60. package/dist/assets/images/closeIcon.svg +3 -0
  61. package/dist/assets/images/content-next.svg +9 -0
  62. package/dist/assets/images/content-prev.svg +9 -0
  63. package/dist/assets/images/dotted-circle.svg +3 -0
  64. package/dist/assets/images/edit-patient.svg +15 -0
  65. package/dist/assets/images/exclamation.svg +9 -0
  66. package/dist/assets/images/external-link.svg +5 -0
  67. package/dist/assets/images/eye-hidden.svg +8 -0
  68. package/dist/assets/images/eye-visible.svg +6 -0
  69. package/dist/assets/images/focus-frame-target.svg +13 -0
  70. package/dist/assets/images/group-layers.svg +6 -0
  71. package/dist/assets/images/icon-add.svg +15 -0
  72. package/dist/assets/images/icon-alert-small.svg +8 -0
  73. package/dist/assets/images/icon-chevron-patient.svg +12 -0
  74. package/dist/assets/images/icon-clear-field.svg +8 -0
  75. package/dist/assets/images/icon-close.svg +8 -0
  76. package/dist/assets/images/icon-color-lut.svg +23 -0
  77. package/dist/assets/images/icon-delete.svg +17 -0
  78. package/dist/assets/images/icon-disclosure-close.svg +12 -0
  79. package/dist/assets/images/icon-disclosure-open.svg +12 -0
  80. package/dist/assets/images/icon-display-settings.svg +21 -0
  81. package/dist/assets/images/icon-more-menu.svg +17 -0
  82. package/dist/assets/images/icon-mpr-alt.svg +9 -0
  83. package/dist/assets/images/icon-multiple-patients.svg +21 -0
  84. package/dist/assets/images/icon-next-inactive.svg +6 -0
  85. package/dist/assets/images/icon-next.svg +6 -0
  86. package/dist/assets/images/icon-patient.svg +13 -0
  87. package/dist/assets/images/icon-pause.svg +6 -0
  88. package/dist/assets/images/icon-play.svg +6 -0
  89. package/dist/assets/images/icon-prev-inactive.svg +6 -0
  90. package/dist/assets/images/icon-prev.svg +6 -0
  91. package/dist/assets/images/icon-rename.svg +15 -0
  92. package/dist/assets/images/icon-search.svg +9 -0
  93. package/dist/assets/images/icon-settings.svg +13 -0
  94. package/dist/assets/images/icon-status-alert.svg +8 -0
  95. package/dist/assets/images/icon-tool-scissor.svg +17 -0
  96. package/dist/assets/images/icon-toolbar-back.svg +12 -0
  97. package/dist/assets/images/icon-transferring.svg +6 -0
  98. package/dist/assets/images/icon-upload.svg +6 -0
  99. package/dist/assets/images/icons-alert-outline.svg +8 -0
  100. package/dist/assets/images/illustration-investigational-use.svg +20 -0
  101. package/dist/assets/images/info-action.svg +10 -0
  102. package/dist/assets/images/info-link.svg +7 -0
  103. package/dist/assets/images/info.svg +3 -0
  104. package/dist/assets/images/launch-arrow.svg +7 -0
  105. package/dist/assets/images/launch-info.svg +8 -0
  106. package/dist/assets/images/layout-advanced-3d-four-up.svg +13 -0
  107. package/dist/assets/images/layout-advanced-3d-main.svg +12 -0
  108. package/dist/assets/images/layout-advanced-3d-only.svg +9 -0
  109. package/dist/assets/images/layout-advanced-3d-primary.svg +12 -0
  110. package/dist/assets/images/layout-advanced-axial-primary.svg +11 -0
  111. package/dist/assets/images/layout-advanced-mpr.svg +11 -0
  112. package/dist/assets/images/layout-common-1x1.svg +9 -0
  113. package/dist/assets/images/layout-common-1x2.svg +10 -0
  114. package/dist/assets/images/layout-common-2x2.svg +11 -0
  115. package/dist/assets/images/layout-common-2x3.svg +12 -0
  116. package/dist/assets/images/list-bullets.svg +10 -0
  117. package/dist/assets/images/loading-ohif-mark.svg +5 -0
  118. package/dist/assets/images/lock.svg +1 -0
  119. package/dist/assets/images/logo-ohif-small.svg +5 -0
  120. package/dist/assets/images/magnifier.svg +7 -0
  121. package/dist/assets/images/navigation-panel-right-hide.svg +5 -0
  122. package/dist/assets/images/navigation-panel-right-reveal.svg +5 -0
  123. package/dist/assets/images/next-arrow.svg +12 -0
  124. package/dist/assets/images/notifications-error.svg +8 -0
  125. package/dist/assets/images/notifications-info.svg +8 -0
  126. package/dist/assets/images/notifications-success.svg +6 -0
  127. package/dist/assets/images/notifications-warning.svg +8 -0
  128. package/dist/assets/images/notificationwarning-diamond.svg +10 -0
  129. package/dist/assets/images/ohif-logo-color-darkbg.svg +20 -0
  130. package/dist/assets/images/ohif-logo.svg +18 -0
  131. package/dist/assets/images/old-play.svg +9 -0
  132. package/dist/assets/images/old-stop.svg +9 -0
  133. package/dist/assets/images/old-trash.svg +9 -0
  134. package/dist/assets/images/panel-group-more.svg +6 -0
  135. package/dist/assets/images/panel-group-open-close.svg +6 -0
  136. package/dist/assets/images/pencil.svg +4 -0
  137. package/dist/assets/images/power-off.svg +11 -0
  138. package/dist/assets/images/prev-arrow.svg +12 -0
  139. package/dist/assets/images/profile.svg +1 -0
  140. package/dist/assets/images/push-left.svg +5 -0
  141. package/dist/assets/images/push-right.svg +5 -0
  142. package/dist/assets/images/row-add.svg +8 -0
  143. package/dist/assets/images/row-edit.svg +9 -0
  144. package/dist/assets/images/row-hidden.svg +11 -0
  145. package/dist/assets/images/row-lock.svg +7 -0
  146. package/dist/assets/images/row-shown.svg +9 -0
  147. package/dist/assets/images/row-unlock.svg +7 -0
  148. package/dist/assets/images/settings.svg +6 -0
  149. package/dist/assets/images/side-panel-close-left.svg +14 -0
  150. package/dist/assets/images/side-panel-close-right.svg +14 -0
  151. package/dist/assets/images/sorting-active-down.svg +6 -0
  152. package/dist/assets/images/sorting-active-up.svg +6 -0
  153. package/dist/assets/images/sorting.svg +6 -0
  154. package/dist/assets/images/status-alert-warning.svg +9 -0
  155. package/dist/assets/images/status-alert.svg +7 -0
  156. package/dist/assets/images/status-locked.svg +7 -0
  157. package/dist/assets/images/status-tracked.svg +7 -0
  158. package/dist/assets/images/status-untracked.svg +6 -0
  159. package/dist/assets/images/tab-4d.svg +13 -0
  160. package/dist/assets/images/tab-linear.svg +8 -0
  161. package/dist/assets/images/tab-patient-info.svg +7 -0
  162. package/dist/assets/images/tab-roi-threshold.svg +10 -0
  163. package/dist/assets/images/tab-segmentation.svg +11 -0
  164. package/dist/assets/images/tab-studies.svg +13 -0
  165. package/dist/assets/images/tool-3d-rotate.svg +20 -0
  166. package/dist/assets/images/tool-angle.svg +12 -0
  167. package/dist/assets/images/tool-annotate.svg +11 -0
  168. package/dist/assets/images/tool-bidirectional.svg +21 -0
  169. package/dist/assets/images/tool-calibrate.svg +19 -0
  170. package/dist/assets/images/tool-capture.svg +10 -0
  171. package/dist/assets/images/tool-cine.svg +9 -0
  172. package/dist/assets/images/tool-circle.svg +8 -0
  173. package/dist/assets/images/tool-create-threshold.svg +9 -0
  174. package/dist/assets/images/tool-crosshair.svg +14 -0
  175. package/dist/assets/images/tool-dicom-tag-browser.svg +15 -0
  176. package/dist/assets/images/tool-flip-horizontal.svg +10 -0
  177. package/dist/assets/images/tool-freehand-polygon.svg +37 -0
  178. package/dist/assets/images/tool-freehand-roi.svg +12 -0
  179. package/dist/assets/images/tool-freehand.svg +34 -0
  180. package/dist/assets/images/tool-fusion-color.svg +13 -0
  181. package/dist/assets/images/tool-invert.svg +10 -0
  182. package/dist/assets/images/tool-layout-default.svg +22 -0
  183. package/dist/assets/images/tool-length.svg +16 -0
  184. package/dist/assets/images/tool-magnetic-roi.svg +17 -0
  185. package/dist/assets/images/tool-magnify.svg +7 -0
  186. package/dist/assets/images/tool-measure-elipse.svg +12 -0
  187. package/dist/assets/images/tool-more-menu.svg +6 -0
  188. package/dist/assets/images/tool-move.svg +13 -0
  189. package/dist/assets/images/tool-polygon.svg +3 -0
  190. package/dist/assets/images/tool-quick-magnify.svg +11 -0
  191. package/dist/assets/images/tool-rectangle.svg +12 -0
  192. package/dist/assets/images/tool-reference-lines.svg +13 -0
  193. package/dist/assets/images/tool-reset.svg +9 -0
  194. package/dist/assets/images/tool-rotate-right.svg +12 -0
  195. package/dist/assets/images/tool-seg-brush.svg +9 -0
  196. package/dist/assets/images/tool-seg-eraser.svg +10 -0
  197. package/dist/assets/images/tool-seg-shape.svg +9 -0
  198. package/dist/assets/images/tool-seg-threshold.svg +17 -0
  199. package/dist/assets/images/tool-spline-roi.svg +14 -0
  200. package/dist/assets/images/tool-stack-image-sync.svg +10 -0
  201. package/dist/assets/images/tool-stack-scroll.svg +10 -0
  202. package/dist/assets/images/tool-toggle-dicom-overlay.svg +9 -0
  203. package/dist/assets/images/tool-ultrasound-bidirectional.svg +15 -0
  204. package/dist/assets/images/tool-window-level.svg +9 -0
  205. package/dist/assets/images/tool-zoom.svg +9 -0
  206. package/dist/assets/images/tracked.svg +6 -0
  207. package/dist/assets/images/ui-arrow-down.svg +3 -0
  208. package/dist/assets/images/ui-arrow-left.svg +3 -0
  209. package/dist/assets/images/ui-arrow-right.svg +3 -0
  210. package/dist/assets/images/ui-arrow-up.svg +3 -0
  211. package/dist/assets/images/unlink.svg +9 -0
  212. package/dist/assets/images/viewport-status-tracked.svg +13 -0
  213. package/dist/assets/images/viewport-window-level.svg +17 -0
  214. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  215. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  216. package/dist/google.js +1 -0
  217. package/dist/{histogram-worker.bundle.829e14ec12c2b41a4323.js → histogram-worker.bundle.6b31e5ed4c4a7a6998f2.js} +2 -2
  218. package/dist/index.html +1 -1
  219. package/dist/{polySeg.bundle.1799686b019040500219.js → polySeg.bundle.cc8400971fca41347b25.js} +3 -3
  220. package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.59ea76ac47db7a736234.js} +4 -4
  221. package/dist/sw.js +1 -1
  222. package/package.json +26 -23
  223. /package/dist/{998.css → 129.css} +0 -0
  224. /package/dist/{574.css → 139.css} +0 -0
  225. /package/dist/{544.css → 172.css} +0 -0
  226. /package/dist/{550.css → 363.css} +0 -0
  227. /package/dist/{325.css → 404.css} +0 -0
  228. /package/dist/{481.css → 717.css} +0 -0
  229. /package/dist/{726.bundle.c8de818cf1a3ff0cf7d2.js → 726.bundle.90d63d40a19b058034ee.js} +0 -0
  230. /package/dist/{835.bundle.4c0eaa2c1a427ee41817.js → 835.bundle.5d1951da8bbc6afdf3e0.js} +0 -0
  231. /package/dist/{931.bundle.d270a1fda9a2836c3cc5.js → 931.bundle.058f8de4606f27b31f4f.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[164,473],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[164,367],{
3
3
 
4
4
  /***/ 25271:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -7,7 +7,7 @@
7
7
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
8
8
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
9
9
  /* harmony export */ });
10
- async function addImageSlicesToViewports(renderingEngine, stackInputs, viewportIds, immediateRender = false, suppressEvents = false) {
10
+ async function addImageSlicesToViewports(renderingEngine, stackInputs, viewportIds) {
11
11
  for (const viewportId of viewportIds) {
12
12
  const viewport = renderingEngine.getViewport(viewportId);
13
13
  if (!viewport) {
@@ -20,7 +20,7 @@ async function addImageSlicesToViewports(renderingEngine, stackInputs, viewportI
20
20
  }
21
21
  const addStackPromises = viewportIds.map(async (viewportId) => {
22
22
  const viewport = renderingEngine.getViewport(viewportId);
23
- return viewport.addImages(stackInputs, immediateRender, suppressEvents);
23
+ return viewport.addImages(stackInputs);
24
24
  });
25
25
  await Promise.all(addStackPromises);
26
26
  }
@@ -549,7 +549,7 @@ __webpack_require__.r(__webpack_exports__);
549
549
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
550
550
  /* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11731);
551
551
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51884);
552
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35678);
552
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20228);
553
553
  /* harmony import */ var _requestPool_imageLoadPoolManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(775);
554
554
  /* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(92136);
555
555
 
@@ -647,12 +647,24 @@ function createAndCacheDerivedImage(referencedImageId, options = {}, preventCach
647
647
  const { TypedArrayConstructor } = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getBufferConfiguration)(options.targetBufferType, length);
648
648
  const imageScalarData = new TypedArrayConstructor(skipCreateBuffer ? 1 : length);
649
649
  const derivedImageId = imageId;
650
- ['imagePixelModule', 'imagePlaneModule', 'generalSeriesModule'].forEach((type) => {
650
+ ['imagePlaneModule', 'generalSeriesModule'].forEach((type) => {
651
651
  _utilities__WEBPACK_IMPORTED_MODULE_4__.genericMetadataProvider.add(derivedImageId, {
652
652
  type,
653
653
  metadata: ___WEBPACK_IMPORTED_MODULE_6__.metaData.get(type, referencedImageId),
654
654
  });
655
655
  });
656
+ const imagePixelModule = ___WEBPACK_IMPORTED_MODULE_6__.metaData.get('imagePixelModule', referencedImageId);
657
+ _utilities__WEBPACK_IMPORTED_MODULE_4__.genericMetadataProvider.add(derivedImageId, {
658
+ type: 'imagePixelModule',
659
+ metadata: {
660
+ ...imagePixelModule,
661
+ bitsAllocated: 8,
662
+ bitsStored: 8,
663
+ highBit: 7,
664
+ samplesPerPixel: 1,
665
+ pixelRepresentation: 0,
666
+ },
667
+ });
656
668
  const localImage = createAndCacheLocalImage({ scalarData: imageScalarData, onCacheAdd, skipCreateBuffer }, imageId, true);
657
669
  const imageLoadObject = {
658
670
  promise: Promise.resolve(localImage),
@@ -818,7 +830,7 @@ __webpack_require__.r(__webpack_exports__);
818
830
  /* harmony import */ var _utilities_triggerEvent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13292);
819
831
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(48463);
820
832
  /* harmony import */ var lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep__WEBPACK_IMPORTED_MODULE_8__);
821
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35678);
833
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20228);
822
834
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(71702);
823
835
  /* harmony import */ var _utilities_cacheUtils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(51631);
824
836
 
@@ -1115,8 +1127,22 @@ function generateVolumeScalarData(targetBuffer, scalarLength) {
1115
1127
  }
1116
1128
  let volumeScalarData;
1117
1129
  if (targetBuffer?.sharedArrayBuffer) {
1118
- const buffer = new SharedArrayBuffer(numBytes);
1119
- volumeScalarData = new TypedArrayConstructor(buffer);
1130
+ switch (targetBuffer.type) {
1131
+ case 'Float32Array':
1132
+ volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createFloat32SharedArray)(scalarLength);
1133
+ break;
1134
+ case 'Uint8Array':
1135
+ volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint8SharedArray)(scalarLength);
1136
+ break;
1137
+ case 'Uint16Array':
1138
+ volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint16SharedArray)(scalarLength);
1139
+ break;
1140
+ case 'Int16Array':
1141
+ volumeScalarData = (0,_utilities__WEBPACK_IMPORTED_MODULE_9__.createUint16SharedArray)(scalarLength);
1142
+ break;
1143
+ default:
1144
+ throw new Error('generateVolumeScalarData: SharedArrayBuffer is not supported for the specified target buffer type');
1145
+ }
1120
1146
  }
1121
1147
  else {
1122
1148
  volumeScalarData = new TypedArrayConstructor(scalarLength);
@@ -1203,7 +1229,7 @@ imageLoadPoolManager.setMaxSimultaneousRequests(_enums_RequestType__WEBPACK_IMPO
1203
1229
  /* harmony export */ R: () => (/* binding */ RequestPoolManager)
1204
1230
  /* harmony export */ });
1205
1231
  /* harmony import */ var _enums_RequestType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15453);
1206
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35678);
1232
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20228);
1207
1233
 
1208
1234
 
1209
1235
  class RequestPoolManager {
@@ -1554,7 +1580,7 @@ class CentralizedWorkerManager {
1554
1580
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61738);
1555
1581
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55965);
1556
1582
  /* harmony import */ var _synchronizers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42375);
1557
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2746);
1583
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
1558
1584
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(74119);
1559
1585
  /* harmony import */ var _cursors__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32916);
1560
1586
  /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40969);
@@ -1636,7 +1662,7 @@ class CentralizedWorkerManager {
1636
1662
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(48428);
1637
1663
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21009);
1638
1664
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(54177);
1639
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(2746);
1665
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(49574);
1640
1666
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(61738);
1641
1667
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(84901);
1642
1668
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90252);
@@ -2310,6 +2336,7 @@ class BidirectionalTool extends _base__WEBPACK_IMPORTED_MODULE_4__/* .Annotation
2310
2336
  viewUp: [...viewUp],
2311
2337
  FrameOfReferenceUID,
2312
2338
  referencedImageId,
2339
+ ...viewport.getViewReference({ points: [worldPos] }),
2313
2340
  },
2314
2341
  data: {
2315
2342
  handles: {
@@ -2630,7 +2657,7 @@ __webpack_require__.d(__webpack_exports__, {
2630
2657
  t0: () => (/* reexport */ SegmentationDisplayTool/* default */.A)
2631
2658
  });
2632
2659
 
2633
- // UNUSED EXPORTS: AngleTool, AnnotationDisplayTool, ArrowAnnotateTool, BaseTool, BidirectionalTool, BrushTool, CircleROIStartEndThresholdTool, CircleROITool, CircleScissorsTool, CobbAngleTool, CrosshairsTool, DragProbeTool, EllipticalROITool, EraserTool, KeyImageTool, LengthTool, LivewireContourSegmentationTool, LivewireContourTool, MIPJumpToClickTool, MagnifyTool, OrientationMarkerTool, OverlayGridTool, PaintFillTool, PanTool, PlanarRotateTool, ProbeTool, RectangleROIStartEndThresholdTool, RectangleROIThresholdTool, RectangleROITool, RectangleScissorsTool, ReferenceCursors, ReferenceLines, ReferenceLinesTool, ScaleOverlayTool, SculptorTool, SegmentSelectTool, SegmentationIntersectionTool, SphereScissorsTool, SplineContourSegmentationTool, SplineROITool, StackScrollMouseWheelTool, StackScrollTool, TrackballRotateTool, UltrasoundDirectionalTool, VolumeRotateMouseWheelTool, WindowLevelTool, ZoomTool
2660
+ // UNUSED EXPORTS: AngleTool, AnnotationDisplayTool, ArrowAnnotateTool, BaseTool, BidirectionalTool, BrushTool, CircleROIStartEndThresholdTool, CircleROITool, CircleScissorsTool, CobbAngleTool, CrosshairsTool, DragProbeTool, EllipticalROITool, EraserTool, KeyImageTool, LengthTool, LivewireContourSegmentationTool, LivewireContourTool, MIPJumpToClickTool, MagnifyTool, OrientationMarkerTool, OverlayGridTool, PaintFillTool, PanTool, PlanarRotateTool, ProbeTool, RectangleROIStartEndThresholdTool, RectangleROIThresholdTool, RectangleROITool, RectangleScissorsTool, ReferenceCursors, ReferenceLines, ReferenceLinesTool, ScaleOverlayTool, SculptorTool, SegmentSelectTool, SegmentationIntersectionTool, SphereScissorsTool, SplineContourSegmentationTool, SplineROITool, StackScrollMouseWheelTool, StackScrollTool, TrackballRotateTool, UltrasoundDirectionalTool, VolumeRotateMouseWheelTool, WindowLevelRegionTool, WindowLevelTool, ZoomTool
2634
2661
 
2635
2662
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/base/index.js
2636
2663
  var base = __webpack_require__(96214);
@@ -2640,6 +2667,8 @@ var PanTool = __webpack_require__(25294);
2640
2667
  var TrackballRotateTool = __webpack_require__(15924);
2641
2668
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/WindowLevelTool.js
2642
2669
  var WindowLevelTool = __webpack_require__(455);
2670
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/WindowLevelRegionTool.js
2671
+ var WindowLevelRegionTool = __webpack_require__(60747);
2643
2672
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/StackScrollTool.js
2644
2673
  var StackScrollTool = __webpack_require__(20132);
2645
2674
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/PlanarRotateTool.js
@@ -2722,8 +2751,8 @@ var esm = __webpack_require__(92136);
2722
2751
  var stateManagement = __webpack_require__(95778);
2723
2752
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/annotationLocking.js
2724
2753
  var annotationLocking = __webpack_require__(48428);
2725
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/index.js + 17 modules
2726
- var drawingSvg = __webpack_require__(2746);
2754
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/index.js + 18 modules
2755
+ var drawingSvg = __webpack_require__(49574);
2727
2756
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/viewportFilters/index.js + 4 modules
2728
2757
  var viewportFilters = __webpack_require__(90252);
2729
2758
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/cursors/elementCursor.js
@@ -3259,6 +3288,7 @@ var SegmentSelectTool = __webpack_require__(34041);
3259
3288
 
3260
3289
 
3261
3290
 
3291
+
3262
3292
 
3263
3293
 
3264
3294
  /***/ }),
@@ -3313,6 +3343,102 @@ class AnnotationFrameRange {
3313
3343
  }
3314
3344
 
3315
3345
 
3346
+ /***/ }),
3347
+
3348
+ /***/ 25781:
3349
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3350
+
3351
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3352
+ /* harmony export */ x: () => (/* binding */ getClosestImageIdForStackViewport)
3353
+ /* harmony export */ });
3354
+ /* unused harmony export annotationHydration */
3355
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
3356
+ /* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95778);
3357
+ /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44753);
3358
+
3359
+
3360
+
3361
+ function annotationHydration(viewport, toolName, worldPoints, options) {
3362
+ const viewReference = viewport.getViewReference();
3363
+ const { viewPlaneNormal, FrameOfReferenceUID } = viewReference;
3364
+ const annotation = {
3365
+ annotationUID: options?.annotationUID || utilities.uuidv4(),
3366
+ data: {
3367
+ handles: {
3368
+ points: worldPoints,
3369
+ },
3370
+ },
3371
+ highlighted: false,
3372
+ autoGenerated: false,
3373
+ invalidated: false,
3374
+ isLocked: false,
3375
+ isVisible: true,
3376
+ metadata: {
3377
+ toolName,
3378
+ viewPlaneNormal,
3379
+ FrameOfReferenceUID,
3380
+ referencedImageId: getReferencedImageId(viewport, worldPoints[0], viewPlaneNormal),
3381
+ ...options,
3382
+ },
3383
+ };
3384
+ addAnnotation(annotation, viewport.element);
3385
+ return annotation;
3386
+ }
3387
+ function getReferencedImageId(viewport, worldPos, viewPlaneNormal) {
3388
+ let referencedImageId;
3389
+ if (viewport instanceof StackViewport) {
3390
+ referencedImageId = getClosestImageIdForStackViewport(viewport, worldPos, viewPlaneNormal);
3391
+ }
3392
+ else if (viewport instanceof BaseVolumeViewport) {
3393
+ const targetId = getTargetId(viewport);
3394
+ const volumeId = utilities.getVolumeId(targetId);
3395
+ const imageVolume = cache.getVolume(volumeId);
3396
+ referencedImageId = utilities.getClosestImageId(imageVolume, worldPos, viewPlaneNormal);
3397
+ }
3398
+ else {
3399
+ throw new Error('getReferencedImageId: viewport must be a StackViewport or BaseVolumeViewport');
3400
+ }
3401
+ return referencedImageId;
3402
+ }
3403
+ function getTargetId(viewport) {
3404
+ const targetId = viewport.getReferenceId?.();
3405
+ if (targetId) {
3406
+ return targetId;
3407
+ }
3408
+ if (viewport instanceof BaseVolumeViewport) {
3409
+ return `volumeId:${getTargetVolumeId(viewport)}`;
3410
+ }
3411
+ throw new Error('getTargetId: viewport must have a getTargetId method');
3412
+ }
3413
+ function getTargetVolumeId(viewport) {
3414
+ const actorEntries = viewport.getActors();
3415
+ if (!actorEntries) {
3416
+ return;
3417
+ }
3418
+ return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
3419
+ }
3420
+ function getClosestImageIdForStackViewport(viewport, worldPos, viewPlaneNormal) {
3421
+ const imageIds = viewport.getImageIds();
3422
+ if (!imageIds || !imageIds.length) {
3423
+ return;
3424
+ }
3425
+ const distanceImagePairs = imageIds.map((imageId) => {
3426
+ const { imagePositionPatient } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.metaData.get('imagePlaneModule', imageId);
3427
+ const distance = calculateDistanceToImage(worldPos, imagePositionPatient, viewPlaneNormal);
3428
+ return { imageId, distance };
3429
+ });
3430
+ distanceImagePairs.sort((a, b) => a.distance - b.distance);
3431
+ return distanceImagePairs[0].imageId;
3432
+ }
3433
+ function calculateDistanceToImage(worldPos, ImagePositionPatient, viewPlaneNormal) {
3434
+ const dir = gl_matrix__WEBPACK_IMPORTED_MODULE_2__/* .vec3.create */ .eR.create();
3435
+ gl_matrix__WEBPACK_IMPORTED_MODULE_2__/* .vec3.sub */ .eR.sub(dir, worldPos, ImagePositionPatient);
3436
+ const dot = gl_matrix__WEBPACK_IMPORTED_MODULE_2__/* .vec3.dot */ .eR.dot(dir, viewPlaneNormal);
3437
+ return Math.abs(dot);
3438
+ }
3439
+
3440
+
3441
+
3316
3442
  /***/ }),
3317
3443
 
3318
3444
  /***/ 42290:
@@ -3795,6 +3921,9 @@ function _createCinePlayContext(viewport, playClipOptions) {
3795
3921
  /***/ 88484:
3796
3922
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3797
3923
 
3924
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3925
+ /* harmony export */ Ay: () => (__WEBPACK_DEFAULT_EXPORT__)
3926
+ /* harmony export */ });
3798
3927
  /* unused harmony exports clip, clipToBox */
3799
3928
  function clip(val, low, high) {
3800
3929
  return Math.min(Math.max(low, val), high);
@@ -3803,7 +3932,7 @@ function clipToBox(point, box) {
3803
3932
  point.x = clip(point.x, 0, box.width);
3804
3933
  point.y = clip(point.y, 0, box.height);
3805
3934
  }
3806
- /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (clip)));
3935
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (clip);
3807
3936
 
3808
3937
 
3809
3938
  /***/ }),
@@ -5159,6 +5288,7 @@ function getViewportForAnnotation(annotation) {
5159
5288
 
5160
5289
  // EXPORTS
5161
5290
  __webpack_require__.d(__webpack_exports__, {
5291
+ clip: () => (/* reexport */ clip/* default */.Ay),
5162
5292
  debounce: () => (/* reexport */ debounce/* default */.A),
5163
5293
  getCalibratedLengthUnitsAndScale: () => (/* reexport */ getCalibratedUnits/* getCalibratedLengthUnitsAndScale */.Op),
5164
5294
  math: () => (/* reexport */ math),
@@ -5172,7 +5302,7 @@ __webpack_require__.d(__webpack_exports__, {
5172
5302
  triggerAnnotationRenderForViewportIds: () => (/* reexport */ triggerAnnotationRenderForViewportIds/* default */.A)
5173
5303
  });
5174
5304
 
5175
- // UNUSED EXPORTS: annotationFrameRange, boundingBox, calibrateImageSpacing, cine, clip, contourSegmentation, contours, drawing, dynamicVolume, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, getCalibratedAspect, getCalibratedProbeUnitsAndValue, getSphereBoundsInfo, getViewportForAnnotation, isObject, jumpToSlice, orientation, planar, planarFreehandROITool, pointInSurroundingSphereCallback, rectangleROITool, segmentation, stackContextPrefetch, stackPrefetch, touch, triggerAnnotationRender, triggerEvent, viewport, viewportFilters, voi
5305
+ // UNUSED EXPORTS: annotationFrameRange, annotationHydration, boundingBox, calibrateImageSpacing, cine, contourSegmentation, contours, drawing, dynamicVolume, getAnnotationNearPoint, getAnnotationNearPointOnEnabledElement, getCalibratedAspect, getCalibratedProbeUnitsAndValue, getClosestImageIdForStackViewport, getSphereBoundsInfo, getViewportForAnnotation, isObject, jumpToSlice, orientation, planar, planarFreehandROITool, pointInSurroundingSphereCallback, rectangleROITool, segmentation, stackContextPrefetch, stackPrefetch, touch, triggerAnnotationRender, triggerEvent, viewport, viewportFilters, voi
5176
5306
 
5177
5307
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
5178
5308
  var esm = __webpack_require__(92136);
@@ -5212,6 +5342,8 @@ var annotationFrameRange = __webpack_require__(41209);
5212
5342
  var pointInSurroundingSphereCallback = __webpack_require__(5093);
5213
5343
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/getViewportForAnnotation.js
5214
5344
  var getViewportForAnnotation = __webpack_require__(39490);
5345
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/annotationHydration.js
5346
+ var annotationHydration = __webpack_require__(25781);
5215
5347
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/index.js
5216
5348
  var contours = __webpack_require__(75534);
5217
5349
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/segmentation/index.js
@@ -5251,8 +5383,8 @@ var touch = __webpack_require__(54868);
5251
5383
  var dynamicVolume = __webpack_require__(16390);
5252
5384
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/polyData/utils.js
5253
5385
  var utils = __webpack_require__(46514);
5254
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/index.js
5255
- var voi = __webpack_require__(10413);
5386
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/index.js + 4 modules
5387
+ var voi = __webpack_require__(14149);
5256
5388
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contourSegmentation/index.js
5257
5389
  var contourSegmentation = __webpack_require__(7259);
5258
5390
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/index.js
@@ -5291,6 +5423,7 @@ var contourSegmentation = __webpack_require__(7259);
5291
5423
 
5292
5424
 
5293
5425
 
5426
+
5294
5427
 
5295
5428
 
5296
5429
  const roundNumber = esm.utilities.roundNumber;
@@ -5383,6 +5516,8 @@ __webpack_require__.d(__webpack_exports__, {
5383
5516
 
5384
5517
  // UNUSED EXPORTS: Calculator
5385
5518
 
5519
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
5520
+ var esm = __webpack_require__(92136);
5386
5521
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/basic/Calculator.js
5387
5522
  class Calculator {
5388
5523
  }
@@ -5390,55 +5525,73 @@ class Calculator {
5390
5525
 
5391
5526
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/basic/BasicStatsCalculator.js
5392
5527
 
5528
+
5529
+ const { PointsManager } = esm.utilities;
5393
5530
  class BasicStatsCalculator extends basic_Calculator {
5394
5531
  static { this.max = [-Infinity]; }
5532
+ static { this.min = [Infinity]; }
5395
5533
  static { this.sum = [0]; }
5396
- static { this.sumSquares = [0]; }
5397
- static { this.squaredDiffSum = [0]; }
5398
5534
  static { this.count = 0; }
5399
- static { this.statsCallback = ({ value: newValue }) => {
5535
+ static { this.runMean = [0]; }
5536
+ static { this.m2 = [0]; }
5537
+ static { this.pointsInShape = PointsManager.create3(1024); }
5538
+ static statsInit(options) {
5539
+ if (options.noPointsCollection) {
5540
+ BasicStatsCalculator.pointsInShape = null;
5541
+ }
5542
+ }
5543
+ static { this.statsCallback = ({ value: newValue, pointLPS = null }) => {
5400
5544
  if (Array.isArray(newValue) &&
5401
5545
  newValue.length > 1 &&
5402
5546
  this.max.length === 1) {
5403
5547
  this.max.push(this.max[0], this.max[0]);
5548
+ this.min.push(this.min[0], this.min[0]);
5404
5549
  this.sum.push(this.sum[0], this.sum[0]);
5405
- this.sumSquares.push(this.sumSquares[0], this.sumSquares[0]);
5406
- this.squaredDiffSum.push(this.squaredDiffSum[0], this.squaredDiffSum[0]);
5550
+ this.runMean.push(0, 0);
5551
+ this.m2.push(this.m2[0], this.m2[0]);
5407
5552
  }
5553
+ this.pointsInShape?.push(pointLPS);
5408
5554
  const newArray = Array.isArray(newValue) ? newValue : [newValue];
5409
5555
  this.count += 1;
5410
- this.max.forEach((it, idx) => (this.max[idx] = Math.max(it, newArray[idx])));
5411
- this.sum.map((it, idx) => (this.sum[idx] += newArray[idx]));
5412
- this.sumSquares.map((it, idx) => (this.sumSquares[idx] += newArray[idx] ** 2));
5413
- this.squaredDiffSum.map((it, idx) => (this.squaredDiffSum[idx] += Math.pow(newArray[idx] - this.sum[idx] / this.count, 2)));
5556
+ this.max.map((it, idx) => {
5557
+ const value = newArray[idx];
5558
+ const delta = value - this.runMean[idx];
5559
+ this.sum[idx] += value;
5560
+ this.runMean[idx] += delta / this.count;
5561
+ const delta2 = value - this.runMean[idx];
5562
+ this.m2[idx] += delta * delta2;
5563
+ this.min[idx] = Math.min(this.min[idx], value);
5564
+ this.max[idx] = Math.max(it, value);
5565
+ });
5414
5566
  }; }
5415
- static { this.getStatistics = () => {
5567
+ static { this.getStatistics = (options) => {
5416
5568
  const mean = this.sum.map((sum) => sum / this.count);
5417
- const stdDev = this.squaredDiffSum.map((squaredDiffSum) => Math.sqrt(squaredDiffSum / this.count));
5418
- const stdDevWithSumSquare = this.sumSquares.map((it, idx) => Math.sqrt(this.sumSquares[idx] / this.count - mean[idx] ** 2));
5569
+ const stdDev = this.m2.map((squaredDiffSum) => Math.sqrt(squaredDiffSum / this.count));
5570
+ const unit = options?.unit || null;
5419
5571
  const named = {
5420
5572
  max: {
5421
5573
  name: 'max',
5422
5574
  label: 'Max Pixel',
5423
5575
  value: singleArrayAsNumber(this.max),
5424
- unit: null,
5576
+ unit,
5577
+ },
5578
+ min: {
5579
+ name: 'min',
5580
+ label: 'Min Pixel',
5581
+ value: singleArrayAsNumber(this.min),
5582
+ unit,
5425
5583
  },
5426
5584
  mean: {
5427
5585
  name: 'mean',
5428
5586
  label: 'Mean Pixel',
5429
5587
  value: singleArrayAsNumber(mean),
5430
- unit: null,
5588
+ unit,
5431
5589
  },
5432
5590
  stdDev: {
5433
5591
  name: 'stdDev',
5434
5592
  label: 'Standard Deviation',
5435
5593
  value: singleArrayAsNumber(stdDev),
5436
- unit: null,
5437
- },
5438
- stdDevWithSumSquare: {
5439
- name: 'stdDevWithSumSquare',
5440
- value: singleArrayAsNumber(stdDevWithSumSquare),
5441
- unit: null,
5594
+ unit,
5442
5595
  },
5443
5596
  count: {
5444
5597
  name: 'count',
@@ -5446,14 +5599,17 @@ class BasicStatsCalculator extends basic_Calculator {
5446
5599
  value: this.count,
5447
5600
  unit: null,
5448
5601
  },
5602
+ pointsInShape: this.pointsInShape,
5449
5603
  array: [],
5450
5604
  };
5451
- named.array.push(named.max, named.mean, named.stdDev, named.stdDevWithSumSquare, named.count);
5605
+ named.array.push(named.max, named.mean, named.stdDev, named.stdDev, named.count);
5452
5606
  this.max = [-Infinity];
5607
+ this.min = [Infinity];
5453
5608
  this.sum = [0];
5454
- this.sumSquares = [0];
5455
- this.squaredDiffSum = [0];
5609
+ this.m2 = [0];
5610
+ this.runMean = [0];
5456
5611
  this.count = 0;
5612
+ this.pointsInShape = PointsManager.create3(1024);
5457
5613
  return named;
5458
5614
  }; }
5459
5615
  }
@@ -10157,10 +10313,144 @@ var ColorbarRangeTextPosition;
10157
10313
 
10158
10314
  /***/ }),
10159
10315
 
10160
- /***/ 10413:
10161
- /***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
10316
+ /***/ 14149:
10317
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10318
+
10319
+
10320
+ // EXPORTS
10321
+ __webpack_require__.d(__webpack_exports__, {
10322
+ windowLevel: () => (/* reexport */ windowlevel_namespaceObject)
10323
+ });
10324
+
10325
+ // UNUSED EXPORTS: colorbar
10326
+
10327
+ // NAMESPACE OBJECT: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/index.js
10328
+ var windowlevel_namespaceObject = {};
10329
+ __webpack_require__.r(windowlevel_namespaceObject);
10330
+ __webpack_require__.d(windowlevel_namespaceObject, {
10331
+ calculateMinMaxMean: () => (calculateMinMaxMean),
10332
+ extractWindowLevelRegionToolData: () => (extractWindowLevelRegionToolData),
10333
+ getLuminanceFromRegion: () => (getLuminanceFromRegion)
10334
+ });
10335
+
10336
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/colorbar/index.js
10337
+ var colorbar = __webpack_require__(64690);
10338
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/getLuminanceFromRegion.js
10339
+ function getLuminanceFromRegion(imageData, x, y, width, height) {
10340
+ const luminance = [];
10341
+ let index = 0;
10342
+ const pixelData = imageData.scalarData;
10343
+ let spIndex, row, column;
10344
+ if (imageData.color) {
10345
+ for (row = 0; row < height; row++) {
10346
+ for (column = 0; column < width; column++) {
10347
+ spIndex = ((row + y) * imageData.columns + (column + x)) * 4;
10348
+ const red = pixelData[spIndex];
10349
+ const green = pixelData[spIndex + 1];
10350
+ const blue = pixelData[spIndex + 2];
10351
+ luminance[index++] = 0.2126 * red + 0.7152 * green + 0.0722 * blue;
10352
+ }
10353
+ }
10354
+ }
10355
+ else {
10356
+ for (row = 0; row < height; row++) {
10357
+ for (column = 0; column < width; column++) {
10358
+ spIndex = (row + y) * imageData.columns + (column + x);
10359
+ luminance[index++] = pixelData[spIndex];
10360
+ }
10361
+ }
10362
+ }
10363
+ return luminance;
10364
+ }
10365
+
10366
+
10367
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/calculateMinMaxMean.js
10368
+ function calculateMinMaxMean(pixelLuminance, globalMin, globalMax) {
10369
+ const numPixels = pixelLuminance.length;
10370
+ let min = globalMax;
10371
+ let max = globalMin;
10372
+ let sum = 0;
10373
+ if (numPixels < 2) {
10374
+ return {
10375
+ min,
10376
+ max,
10377
+ mean: (globalMin + globalMax) / 2,
10378
+ };
10379
+ }
10380
+ for (let index = 0; index < numPixels; index++) {
10381
+ const spv = pixelLuminance[index];
10382
+ min = Math.min(min, spv);
10383
+ max = Math.max(max, spv);
10384
+ sum += spv;
10385
+ }
10386
+ return {
10387
+ min,
10388
+ max,
10389
+ mean: sum / numPixels,
10390
+ };
10391
+ }
10392
+
10393
+
10394
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
10395
+ var esm = __webpack_require__(92136);
10396
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/extractWindowLevelRegionToolData.js
10397
+
10398
+ function extractWindowLevelRegionToolData(viewport) {
10399
+ if (viewport instanceof esm.VolumeViewport) {
10400
+ return extractImageDataVolume(viewport);
10401
+ }
10402
+ if (viewport instanceof esm.StackViewport) {
10403
+ return extractImageDataStack(viewport);
10404
+ }
10405
+ throw new Error('Viewport not supported');
10406
+ }
10407
+ function extractImageDataVolume(viewport) {
10408
+ const { scalarData, width, height } = esm.utilities.getCurrentVolumeViewportSlice(viewport);
10409
+ const { min: minPixelValue, max: maxPixelValue } = esm.utilities.getMinMax(scalarData);
10410
+ const volumeId = viewport.getVolumeId();
10411
+ const volume = esm.cache.getVolume(volumeId);
10412
+ const { metadata, cornerstoneImageMetaData } = volume;
10413
+ const { Rows: rows, Columns: columns } = metadata;
10414
+ const { color } = cornerstoneImageMetaData;
10415
+ return {
10416
+ scalarData,
10417
+ width,
10418
+ height,
10419
+ minPixelValue,
10420
+ maxPixelValue,
10421
+ rows,
10422
+ columns,
10423
+ color,
10424
+ };
10425
+ }
10426
+ function extractImageDataStack(viewport) {
10427
+ const imageData = viewport.getImageData();
10428
+ const { scalarData } = imageData;
10429
+ const { min: minPixelValue, max: maxPixelValue } = esm.utilities.getMinMax(scalarData);
10430
+ const width = imageData.dimensions[0];
10431
+ const height = imageData.dimensions[1];
10432
+ const { rows, columns, color } = viewport.getCornerstoneImage();
10433
+ return {
10434
+ scalarData,
10435
+ width,
10436
+ height,
10437
+ minPixelValue,
10438
+ maxPixelValue,
10439
+ rows,
10440
+ columns,
10441
+ color,
10442
+ };
10443
+ }
10444
+
10445
+
10446
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/index.js
10447
+
10448
+
10449
+
10450
+
10451
+
10452
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/index.js
10162
10453
 
10163
- /* harmony import */ var _colorbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64690);
10164
10454
 
10165
10455
 
10166
10456