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

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.378e95375a06144508ba.js} +40 -12
  3. package/dist/{998.bundle.b8ffa2bc390d5d4edf16.js → 129.bundle.1b625d18d376f42effc1.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.ec550834dd50b923108d.js} +5 -5
  6. package/dist/{783.bundle.126cd640a5fd49804d8e.js → 140.bundle.38a0dfa4b46a70e33664.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.0c81e6f43d76f29392c0.js} +5 -5
  10. package/dist/{699.bundle.2adb0c0ad7f7cb9e338a.js → 211.bundle.86d88aa73d5352e82c97.js} +33 -4
  11. package/dist/{776.bundle.9680d347bafb63f8688a.js → 218.bundle.77c26ca8507b4765c981.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.0e87c4c9afa24a9a2843.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.67d162cdbb2a84192cae.js} +24 -4
  20. package/dist/{907.bundle.13dc5f4b5581d12562b8.js → 444.bundle.5bc9c6c628d3f12a78c7.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.4a503e6689070df070de.js} +3 -3
  24. package/dist/{981.bundle.a0fabcf9845c1a623990.js → 555.bundle.0f587ef1e590e457a5ed.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.133ee5f2065b3338498e.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.55be56fa31b0f5c993c6.js} +12 -12
  31. package/dist/{448.bundle.70dc1363d8b2783dc51e.js → 806.bundle.f89c0302312b41de4227.js} +5 -5
  32. package/dist/{390.bundle.2751b81dbe439a40ba90.js → 827.bundle.05ca1cba07979c0e199f.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.98f5e69f10cc359c364c.js} +4 -4
  35. package/dist/{94.bundle.9b92ece5801a7df7d08c.js → 920.bundle.8ddd71fdf3cf8152cc74.js} +39 -9
  36. package/dist/{243.bundle.96439f589bc338b977ea.js → 989.bundle.944239c4bf1fec35fee8.js} +4 -4
  37. package/dist/app-config.js +5 -1
  38. package/dist/{app.bundle.cbecae40543f47cc8c7e.js → app.bundle.1c724ee4d081d129ddd5.js} +162728 -46021
  39. package/dist/app.bundle.css +5 -4
  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([[473],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[367],{
3
3
 
4
4
  /***/ 52454:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -293,6 +293,102 @@ class AnnotationFrameRange {
293
293
  }
294
294
 
295
295
 
296
+ /***/ }),
297
+
298
+ /***/ 25781:
299
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
300
+
301
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
302
+ /* harmony export */ i: () => (/* binding */ annotationHydration),
303
+ /* harmony export */ x: () => (/* binding */ getClosestImageIdForStackViewport)
304
+ /* harmony export */ });
305
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
306
+ /* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95778);
307
+ /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44753);
308
+
309
+
310
+
311
+ function annotationHydration(viewport, toolName, worldPoints, options) {
312
+ const viewReference = viewport.getViewReference();
313
+ const { viewPlaneNormal, FrameOfReferenceUID } = viewReference;
314
+ const annotation = {
315
+ annotationUID: options?.annotationUID || _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.uuidv4(),
316
+ data: {
317
+ handles: {
318
+ points: worldPoints,
319
+ },
320
+ },
321
+ highlighted: false,
322
+ autoGenerated: false,
323
+ invalidated: false,
324
+ isLocked: false,
325
+ isVisible: true,
326
+ metadata: {
327
+ toolName,
328
+ viewPlaneNormal,
329
+ FrameOfReferenceUID,
330
+ referencedImageId: getReferencedImageId(viewport, worldPoints[0], viewPlaneNormal),
331
+ ...options,
332
+ },
333
+ };
334
+ (0,_stateManagement__WEBPACK_IMPORTED_MODULE_1__/* .addAnnotation */ .lC)(annotation, viewport.element);
335
+ return annotation;
336
+ }
337
+ function getReferencedImageId(viewport, worldPos, viewPlaneNormal) {
338
+ let referencedImageId;
339
+ if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.StackViewport) {
340
+ referencedImageId = getClosestImageIdForStackViewport(viewport, worldPos, viewPlaneNormal);
341
+ }
342
+ else if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.BaseVolumeViewport) {
343
+ const targetId = getTargetId(viewport);
344
+ const volumeId = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.getVolumeId(targetId);
345
+ const imageVolume = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.cache.getVolume(volumeId);
346
+ referencedImageId = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.getClosestImageId(imageVolume, worldPos, viewPlaneNormal);
347
+ }
348
+ else {
349
+ throw new Error('getReferencedImageId: viewport must be a StackViewport or BaseVolumeViewport');
350
+ }
351
+ return referencedImageId;
352
+ }
353
+ function getTargetId(viewport) {
354
+ const targetId = viewport.getReferenceId?.();
355
+ if (targetId) {
356
+ return targetId;
357
+ }
358
+ if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.BaseVolumeViewport) {
359
+ return `volumeId:${getTargetVolumeId(viewport)}`;
360
+ }
361
+ throw new Error('getTargetId: viewport must have a getTargetId method');
362
+ }
363
+ function getTargetVolumeId(viewport) {
364
+ const actorEntries = viewport.getActors();
365
+ if (!actorEntries) {
366
+ return;
367
+ }
368
+ return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
369
+ }
370
+ function getClosestImageIdForStackViewport(viewport, worldPos, viewPlaneNormal) {
371
+ const imageIds = viewport.getImageIds();
372
+ if (!imageIds || !imageIds.length) {
373
+ return;
374
+ }
375
+ const distanceImagePairs = imageIds.map((imageId) => {
376
+ const { imagePositionPatient } = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.metaData.get('imagePlaneModule', imageId);
377
+ const distance = calculateDistanceToImage(worldPos, imagePositionPatient, viewPlaneNormal);
378
+ return { imageId, distance };
379
+ });
380
+ distanceImagePairs.sort((a, b) => a.distance - b.distance);
381
+ return distanceImagePairs[0].imageId;
382
+ }
383
+ function calculateDistanceToImage(worldPos, ImagePositionPatient, viewPlaneNormal) {
384
+ const dir = gl_matrix__WEBPACK_IMPORTED_MODULE_2__/* .vec3.create */ .eR.create();
385
+ gl_matrix__WEBPACK_IMPORTED_MODULE_2__/* .vec3.sub */ .eR.sub(dir, worldPos, ImagePositionPatient);
386
+ const dot = gl_matrix__WEBPACK_IMPORTED_MODULE_2__/* .vec3.dot */ .eR.dot(dir, viewPlaneNormal);
387
+ return Math.abs(dot);
388
+ }
389
+
390
+
391
+
296
392
  /***/ }),
297
393
 
298
394
  /***/ 42290:
@@ -2214,6 +2310,8 @@ __webpack_require__.d(__webpack_exports__, {
2214
2310
  Calculator: () => (/* reexport */ basic_Calculator)
2215
2311
  });
2216
2312
 
2313
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
2314
+ var esm = __webpack_require__(92136);
2217
2315
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/basic/Calculator.js
2218
2316
  class Calculator {
2219
2317
  }
@@ -2221,55 +2319,73 @@ class Calculator {
2221
2319
 
2222
2320
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/math/basic/BasicStatsCalculator.js
2223
2321
 
2322
+
2323
+ const { PointsManager } = esm.utilities;
2224
2324
  class BasicStatsCalculator extends basic_Calculator {
2225
2325
  static { this.max = [-Infinity]; }
2326
+ static { this.min = [Infinity]; }
2226
2327
  static { this.sum = [0]; }
2227
- static { this.sumSquares = [0]; }
2228
- static { this.squaredDiffSum = [0]; }
2229
2328
  static { this.count = 0; }
2230
- static { this.statsCallback = ({ value: newValue }) => {
2329
+ static { this.runMean = [0]; }
2330
+ static { this.m2 = [0]; }
2331
+ static { this.pointsInShape = PointsManager.create3(1024); }
2332
+ static statsInit(options) {
2333
+ if (options.noPointsCollection) {
2334
+ BasicStatsCalculator.pointsInShape = null;
2335
+ }
2336
+ }
2337
+ static { this.statsCallback = ({ value: newValue, pointLPS = null }) => {
2231
2338
  if (Array.isArray(newValue) &&
2232
2339
  newValue.length > 1 &&
2233
2340
  this.max.length === 1) {
2234
2341
  this.max.push(this.max[0], this.max[0]);
2342
+ this.min.push(this.min[0], this.min[0]);
2235
2343
  this.sum.push(this.sum[0], this.sum[0]);
2236
- this.sumSquares.push(this.sumSquares[0], this.sumSquares[0]);
2237
- this.squaredDiffSum.push(this.squaredDiffSum[0], this.squaredDiffSum[0]);
2344
+ this.runMean.push(0, 0);
2345
+ this.m2.push(this.m2[0], this.m2[0]);
2238
2346
  }
2347
+ this.pointsInShape?.push(pointLPS);
2239
2348
  const newArray = Array.isArray(newValue) ? newValue : [newValue];
2240
2349
  this.count += 1;
2241
- this.max.forEach((it, idx) => (this.max[idx] = Math.max(it, newArray[idx])));
2242
- this.sum.map((it, idx) => (this.sum[idx] += newArray[idx]));
2243
- this.sumSquares.map((it, idx) => (this.sumSquares[idx] += newArray[idx] ** 2));
2244
- this.squaredDiffSum.map((it, idx) => (this.squaredDiffSum[idx] += Math.pow(newArray[idx] - this.sum[idx] / this.count, 2)));
2350
+ this.max.map((it, idx) => {
2351
+ const value = newArray[idx];
2352
+ const delta = value - this.runMean[idx];
2353
+ this.sum[idx] += value;
2354
+ this.runMean[idx] += delta / this.count;
2355
+ const delta2 = value - this.runMean[idx];
2356
+ this.m2[idx] += delta * delta2;
2357
+ this.min[idx] = Math.min(this.min[idx], value);
2358
+ this.max[idx] = Math.max(it, value);
2359
+ });
2245
2360
  }; }
2246
- static { this.getStatistics = () => {
2361
+ static { this.getStatistics = (options) => {
2247
2362
  const mean = this.sum.map((sum) => sum / this.count);
2248
- const stdDev = this.squaredDiffSum.map((squaredDiffSum) => Math.sqrt(squaredDiffSum / this.count));
2249
- const stdDevWithSumSquare = this.sumSquares.map((it, idx) => Math.sqrt(this.sumSquares[idx] / this.count - mean[idx] ** 2));
2363
+ const stdDev = this.m2.map((squaredDiffSum) => Math.sqrt(squaredDiffSum / this.count));
2364
+ const unit = options?.unit || null;
2250
2365
  const named = {
2251
2366
  max: {
2252
2367
  name: 'max',
2253
2368
  label: 'Max Pixel',
2254
2369
  value: singleArrayAsNumber(this.max),
2255
- unit: null,
2370
+ unit,
2371
+ },
2372
+ min: {
2373
+ name: 'min',
2374
+ label: 'Min Pixel',
2375
+ value: singleArrayAsNumber(this.min),
2376
+ unit,
2256
2377
  },
2257
2378
  mean: {
2258
2379
  name: 'mean',
2259
2380
  label: 'Mean Pixel',
2260
2381
  value: singleArrayAsNumber(mean),
2261
- unit: null,
2382
+ unit,
2262
2383
  },
2263
2384
  stdDev: {
2264
2385
  name: 'stdDev',
2265
2386
  label: 'Standard Deviation',
2266
2387
  value: singleArrayAsNumber(stdDev),
2267
- unit: null,
2268
- },
2269
- stdDevWithSumSquare: {
2270
- name: 'stdDevWithSumSquare',
2271
- value: singleArrayAsNumber(stdDevWithSumSquare),
2272
- unit: null,
2388
+ unit,
2273
2389
  },
2274
2390
  count: {
2275
2391
  name: 'count',
@@ -2277,14 +2393,17 @@ class BasicStatsCalculator extends basic_Calculator {
2277
2393
  value: this.count,
2278
2394
  unit: null,
2279
2395
  },
2396
+ pointsInShape: this.pointsInShape,
2280
2397
  array: [],
2281
2398
  };
2282
- named.array.push(named.max, named.mean, named.stdDev, named.stdDevWithSumSquare, named.count);
2399
+ named.array.push(named.max, named.mean, named.stdDev, named.stdDev, named.count);
2283
2400
  this.max = [-Infinity];
2401
+ this.min = [Infinity];
2284
2402
  this.sum = [0];
2285
- this.sumSquares = [0];
2286
- this.squaredDiffSum = [0];
2403
+ this.m2 = [0];
2404
+ this.runMean = [0];
2287
2405
  this.count = 0;
2406
+ this.pointsInShape = PointsManager.create3(1024);
2288
2407
  return named;
2289
2408
  }; }
2290
2409
  }
@@ -6968,14 +7087,145 @@ __webpack_require__.r(__webpack_exports__);
6968
7087
 
6969
7088
  /***/ }),
6970
7089
 
6971
- /***/ 10413:
7090
+ /***/ 14149:
6972
7091
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6973
7092
 
7093
+ // ESM COMPAT FLAG
6974
7094
  __webpack_require__.r(__webpack_exports__);
6975
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
6976
- /* harmony export */ colorbar: () => (/* reexport module object */ _colorbar__WEBPACK_IMPORTED_MODULE_0__)
6977
- /* harmony export */ });
6978
- /* harmony import */ var _colorbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64690);
7095
+
7096
+ // EXPORTS
7097
+ __webpack_require__.d(__webpack_exports__, {
7098
+ colorbar: () => (/* reexport */ colorbar),
7099
+ windowLevel: () => (/* reexport */ windowlevel_namespaceObject)
7100
+ });
7101
+
7102
+ // NAMESPACE OBJECT: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/index.js
7103
+ var windowlevel_namespaceObject = {};
7104
+ __webpack_require__.r(windowlevel_namespaceObject);
7105
+ __webpack_require__.d(windowlevel_namespaceObject, {
7106
+ calculateMinMaxMean: () => (calculateMinMaxMean),
7107
+ extractWindowLevelRegionToolData: () => (extractWindowLevelRegionToolData),
7108
+ getLuminanceFromRegion: () => (getLuminanceFromRegion)
7109
+ });
7110
+
7111
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/colorbar/index.js
7112
+ var colorbar = __webpack_require__(64690);
7113
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/getLuminanceFromRegion.js
7114
+ function getLuminanceFromRegion(imageData, x, y, width, height) {
7115
+ const luminance = [];
7116
+ let index = 0;
7117
+ const pixelData = imageData.scalarData;
7118
+ let spIndex, row, column;
7119
+ if (imageData.color) {
7120
+ for (row = 0; row < height; row++) {
7121
+ for (column = 0; column < width; column++) {
7122
+ spIndex = ((row + y) * imageData.columns + (column + x)) * 4;
7123
+ const red = pixelData[spIndex];
7124
+ const green = pixelData[spIndex + 1];
7125
+ const blue = pixelData[spIndex + 2];
7126
+ luminance[index++] = 0.2126 * red + 0.7152 * green + 0.0722 * blue;
7127
+ }
7128
+ }
7129
+ }
7130
+ else {
7131
+ for (row = 0; row < height; row++) {
7132
+ for (column = 0; column < width; column++) {
7133
+ spIndex = (row + y) * imageData.columns + (column + x);
7134
+ luminance[index++] = pixelData[spIndex];
7135
+ }
7136
+ }
7137
+ }
7138
+ return luminance;
7139
+ }
7140
+
7141
+
7142
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/calculateMinMaxMean.js
7143
+ function calculateMinMaxMean(pixelLuminance, globalMin, globalMax) {
7144
+ const numPixels = pixelLuminance.length;
7145
+ let min = globalMax;
7146
+ let max = globalMin;
7147
+ let sum = 0;
7148
+ if (numPixels < 2) {
7149
+ return {
7150
+ min,
7151
+ max,
7152
+ mean: (globalMin + globalMax) / 2,
7153
+ };
7154
+ }
7155
+ for (let index = 0; index < numPixels; index++) {
7156
+ const spv = pixelLuminance[index];
7157
+ min = Math.min(min, spv);
7158
+ max = Math.max(max, spv);
7159
+ sum += spv;
7160
+ }
7161
+ return {
7162
+ min,
7163
+ max,
7164
+ mean: sum / numPixels,
7165
+ };
7166
+ }
7167
+
7168
+
7169
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
7170
+ var esm = __webpack_require__(92136);
7171
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/extractWindowLevelRegionToolData.js
7172
+
7173
+ function extractWindowLevelRegionToolData(viewport) {
7174
+ if (viewport instanceof esm.VolumeViewport) {
7175
+ return extractImageDataVolume(viewport);
7176
+ }
7177
+ if (viewport instanceof esm.StackViewport) {
7178
+ return extractImageDataStack(viewport);
7179
+ }
7180
+ throw new Error('Viewport not supported');
7181
+ }
7182
+ function extractImageDataVolume(viewport) {
7183
+ const { scalarData, width, height } = esm.utilities.getCurrentVolumeViewportSlice(viewport);
7184
+ const { min: minPixelValue, max: maxPixelValue } = esm.utilities.getMinMax(scalarData);
7185
+ const volumeId = viewport.getVolumeId();
7186
+ const volume = esm.cache.getVolume(volumeId);
7187
+ const { metadata, cornerstoneImageMetaData } = volume;
7188
+ const { Rows: rows, Columns: columns } = metadata;
7189
+ const { color } = cornerstoneImageMetaData;
7190
+ return {
7191
+ scalarData,
7192
+ width,
7193
+ height,
7194
+ minPixelValue,
7195
+ maxPixelValue,
7196
+ rows,
7197
+ columns,
7198
+ color,
7199
+ };
7200
+ }
7201
+ function extractImageDataStack(viewport) {
7202
+ const imageData = viewport.getImageData();
7203
+ const { scalarData } = imageData;
7204
+ const { min: minPixelValue, max: maxPixelValue } = esm.utilities.getMinMax(scalarData);
7205
+ const width = imageData.dimensions[0];
7206
+ const height = imageData.dimensions[1];
7207
+ const { rows, columns, color } = viewport.getCornerstoneImage();
7208
+ return {
7209
+ scalarData,
7210
+ width,
7211
+ height,
7212
+ minPixelValue,
7213
+ maxPixelValue,
7214
+ rows,
7215
+ columns,
7216
+ color,
7217
+ };
7218
+ }
7219
+
7220
+
7221
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/windowlevel/index.js
7222
+
7223
+
7224
+
7225
+
7226
+
7227
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/index.js
7228
+
6979
7229
 
6980
7230
 
6981
7231
 
@@ -1,4 +1,4 @@
1
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[806],{
1
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[370],{
2
2
 
3
3
  /***/ 93858:
4
4
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -1840,6 +1840,40 @@ function wheelListener(evt) {
1840
1840
  /* harmony default export */ const wheel_wheelListener = (wheelListener);
1841
1841
 
1842
1842
 
1843
+ /***/ }),
1844
+
1845
+ /***/ 99595:
1846
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1847
+
1848
+ "use strict";
1849
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1850
+ /* harmony export */ Q: () => (/* binding */ checkAndDefineTextBoxProperty),
1851
+ /* harmony export */ d: () => (/* binding */ checkAndDefineCachedStatsProperty)
1852
+ /* harmony export */ });
1853
+ const checkAndDefineTextBoxProperty = (annotation) => {
1854
+ if (!annotation.data) {
1855
+ annotation.data = {};
1856
+ }
1857
+ if (!annotation.data.handles) {
1858
+ annotation.data.handles = {};
1859
+ }
1860
+ if (!annotation.data.handles.textBox) {
1861
+ annotation.data.handles.textBox = {};
1862
+ }
1863
+ return annotation;
1864
+ };
1865
+ const checkAndDefineCachedStatsProperty = (annotation) => {
1866
+ if (!annotation.data) {
1867
+ annotation.data = {};
1868
+ }
1869
+ if (!annotation.data.cachedStats) {
1870
+ annotation.data.cachedStats = {};
1871
+ }
1872
+ return annotation;
1873
+ };
1874
+
1875
+
1876
+
1843
1877
  /***/ }),
1844
1878
 
1845
1879
  /***/ 95778:
@@ -2522,7 +2556,7 @@ class AdvancedMagnifyViewportManager {
2522
2556
  /* harmony export */ });
2523
2557
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
2524
2558
  /* harmony import */ var _distancePointToContour__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7783);
2525
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2746);
2559
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49574);
2526
2560
  /* harmony import */ var _utilities_math__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(73047);
2527
2561
 
2528
2562
 
@@ -3836,7 +3870,7 @@ function registerOpenContourEndEditLoop(toolInstance) {
3836
3870
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3837
3871
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
3838
3872
  /* harmony export */ });
3839
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2746);
3873
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49574);
3840
3874
  /* harmony import */ var _utilities_math__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73047);
3841
3875
  /* harmony import */ var _findOpenUShapedContourVectorToPeak__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51051);
3842
3876
  /* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75534);
@@ -4009,10 +4043,42 @@ function renderOpenContourBeingEdited(enabledElement, svgDrawingHelper, annotati
4009
4043
  const polylineUIDToRender = 'preview-1';
4010
4044
  (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_0__.drawPolyline)(svgDrawingHelper, annotation.annotationUID, polylineUIDToRender, fusedCanvasPoints, options);
4011
4045
  }
4046
+ function renderPointContourWithMarker(enabledElement, svgDrawingHelper, annotation) {
4047
+ if (annotation.parentAnnotationUID) {
4048
+ return;
4049
+ }
4050
+ const { viewport } = enabledElement;
4051
+ const options = this._getRenderingOptions(enabledElement, annotation);
4052
+ const canvasPolyline = annotation.data.contour.polyline.map((worldPos) => viewport.worldToCanvas(worldPos));
4053
+ const childContours = (0,_utilities_contours__WEBPACK_IMPORTED_MODULE_3__.getContourHolesDataCanvas)(annotation, viewport);
4054
+ const polylineUID = '1';
4055
+ const center = canvasPolyline[0];
4056
+ const radius = 6;
4057
+ const numberOfPoints = 100;
4058
+ const circlePoints = [];
4059
+ for (let i = 0; i < numberOfPoints; i++) {
4060
+ const angle = (i / numberOfPoints) * 2 * Math.PI;
4061
+ const x = center[0] + radius * Math.cos(angle);
4062
+ const y = center[1] + radius * Math.sin(angle);
4063
+ circlePoints.push([x, y]);
4064
+ }
4065
+ const crosshair = [
4066
+ [center[0] - radius * 2, center[1]],
4067
+ [center[0] + radius * 2, center[1]],
4068
+ [center[0], center[1] - radius * 2],
4069
+ [center[0], center[1] + radius * 2],
4070
+ ];
4071
+ (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_0__.drawPath)(svgDrawingHelper, annotation.annotationUID, polylineUID + '-crosshair_v', [crosshair[0], crosshair[1]], options);
4072
+ (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_0__.drawPath)(svgDrawingHelper, annotation.annotationUID, polylineUID + '-crosshair_h', [crosshair[2], crosshair[3]], options);
4073
+ const allContours = [circlePoints, ...childContours];
4074
+ (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_0__.drawPath)(svgDrawingHelper, annotation.annotationUID, polylineUID, allContours, options);
4075
+ }
4012
4076
  function registerRenderMethods(toolInstance) {
4013
4077
  toolInstance.renderContour = renderContour.bind(toolInstance);
4014
4078
  toolInstance.renderClosedContour = renderClosedContour.bind(toolInstance);
4015
4079
  toolInstance.renderOpenContour = renderOpenContour.bind(toolInstance);
4080
+ toolInstance.renderPointContourWithMarker =
4081
+ renderPointContourWithMarker.bind(toolInstance);
4016
4082
  toolInstance.renderOpenUShapedContour =
4017
4083
  renderOpenUShapedContour.bind(toolInstance);
4018
4084
  toolInstance.renderContourBeingDrawn =
@@ -4738,8 +4804,8 @@ var stateManagement_segmentation = __webpack_require__(63421);
4738
4804
  var enums = __webpack_require__(84901);
4739
4805
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/annotationState.js
4740
4806
  var annotationState = __webpack_require__(38296);
4741
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/index.js + 17 modules
4742
- var drawingSvg = __webpack_require__(2746);
4807
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/index.js + 18 modules
4808
+ var drawingSvg = __webpack_require__(49574);
4743
4809
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/base/AnnotationTool.js
4744
4810
  var AnnotationTool = __webpack_require__(52454);
4745
4811
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/index.js
@@ -5149,6 +5215,8 @@ function deleteConfigCache(segmentationRepresentationUID) {
5149
5215
 
5150
5216
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/segmentation/index.js + 31 modules
5151
5217
  var stateManagement_segmentation = __webpack_require__(63421);
5218
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/annotationHydration.js
5219
+ var annotationHydration = __webpack_require__(25781);
5152
5220
  // EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/Core/CellArray.js
5153
5221
  var CellArray = __webpack_require__(24768);
5154
5222
  // EXTERNAL MODULE: ../../../node_modules/@kitware/vtk.js/Common/Core/Points.js
@@ -5218,6 +5286,7 @@ var contourSegmentation = __webpack_require__(7259);
5218
5286
 
5219
5287
 
5220
5288
 
5289
+
5221
5290
  function handleContourSegmentation(viewport, geometryIds, annotationUIDsMap, contourRepresentation, contourRepresentationConfig) {
5222
5291
  const addOrUpdateFn = annotationUIDsMap.size
5223
5292
  ? updateContourSets
@@ -5303,10 +5372,10 @@ function addContourSetsToElement(viewport, geometryIds, contourRepresentation, c
5303
5372
  highlighted: false,
5304
5373
  autoGenerated: false,
5305
5374
  invalidated: false,
5306
- isLocked: false,
5375
+ isLocked: true,
5307
5376
  isVisible: true,
5308
5377
  metadata: {
5309
- referencedImageId: viewport.getCurrentImageId(),
5378
+ referencedImageId: (0,annotationHydration/* getClosestImageIdForStackViewport */.x)(viewport, points[0], viewport.getCamera().viewPlaneNormal),
5310
5379
  toolName: 'PlanarFreehandContourSegmentationTool',
5311
5380
  FrameOfReferenceUID: viewport.getFrameOfReferenceUID(),
5312
5381
  viewPlaneNormal: viewport.getCamera().viewPlaneNormal,
@@ -5433,7 +5502,7 @@ async function addLabelmapToElement(element, labelMapData, segmentationRepresent
5433
5502
  actorUID: segmentationRepresentationUID,
5434
5503
  },
5435
5504
  ];
5436
- await (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.addImageSlicesToViewports)(renderingEngine, stackInputs, [viewportId], immediateRender, suppressEvents);
5505
+ await (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.addImageSlicesToViewports)(renderingEngine, stackInputs, [viewportId]);
5437
5506
  }
5438
5507
  }
5439
5508
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addLabelmapToElement);
@@ -7331,9 +7400,11 @@ function _addInterpolatedContour(interpolated3DPoints, handlePoints, sliceIndex,
7331
7400
  const points = interpolated3DPoints.points;
7332
7401
  const { viewport } = eventData;
7333
7402
  const interpolatedAnnotation = createPolylineToolData(points, handlePoints, referencedToolData);
7334
- const targetId = viewport.getReferenceId({ sliceIndex });
7335
- interpolatedAnnotation.metadata.referencedImageId = targetId;
7336
- interpolatedAnnotation.metadata.sliceIndex = sliceIndex;
7403
+ const viewRef = viewport.getViewReference({ sliceIndex });
7404
+ if (!viewRef) {
7405
+ throw new Error(`Can't find slice ${sliceIndex}`);
7406
+ }
7407
+ Object.assign(interpolatedAnnotation.metadata, viewRef);
7337
7408
  stateManagement_annotation.state.addAnnotation(interpolatedAnnotation, viewport.element);
7338
7409
  referencedToolData.onInterpolationComplete?.(interpolatedAnnotation, referencedToolData);
7339
7410
  const { parentAnnotationUID } = referencedToolData;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[682],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[382],{
3
3
 
4
- /***/ 82682:
4
+ /***/ 72382:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -16,7 +16,7 @@ __webpack_require__.d(__webpack_exports__, {
16
16
  });
17
17
 
18
18
  // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
19
- var src = __webpack_require__(8633);
19
+ var src = __webpack_require__(75186);
20
20
  // EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
21
21
  var i18next = __webpack_require__(92344);
22
22
  ;// CONCATENATED MODULE: ../../../modes/longitudinal/package.json
@@ -111,6 +111,11 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage
111
111
  toolName: toolNames.SegmentationDisplay
112
112
  }, {
113
113
  toolName: toolNames.CalibrationLine
114
+ }, {
115
+ toolName: toolNames.PlanarFreehandContourSegmentation,
116
+ configuration: {
117
+ displayOnePointAsCrosshairs: true
118
+ }
114
119
  }, {
115
120
  toolName: toolNames.UltrasoundDirectional
116
121
  }, {
@@ -178,6 +183,11 @@ function initSRToolGroup(extensionManager, toolGroupService) {
178
183
  toolName: SRToolNames.SRPlanarFreehandROI
179
184
  }, {
180
185
  toolName: SRToolNames.SRRectangleROI
186
+ }, {
187
+ toolName: SRToolNames.SRPlanarFreehandContourSegmentation,
188
+ configuration: {
189
+ displayOnePointAsCrosshairs: true
190
+ }
181
191
  }],
182
192
  enabled: [{
183
193
  toolName: SRToolNames.DICOMSRDisplay,
@@ -265,11 +275,21 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager, m
265
275
  toolName: toolNames.PlanarFreehandROI
266
276
  }, {
267
277
  toolName: toolNames.SegmentationDisplay
278
+ }, {
279
+ toolName: toolNames.PlanarFreehandContourSegmentation,
280
+ configuration: {
281
+ displayOnePointAsCrosshairs: true
282
+ }
268
283
  }],
269
284
  disabled: [{
270
285
  toolName: toolNames.Crosshairs,
271
286
  configuration: {
272
- viewportIndicators: false,
287
+ viewportIndicators: true,
288
+ viewportIndicatorsConfig: {
289
+ circleRadius: 5,
290
+ xOffset: 0.95,
291
+ yOffset: 0.05
292
+ },
273
293
  disableOnPassive: true,
274
294
  autoPan: {
275
295
  enabled: false,
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[907],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[444],{
3
3
 
4
- /***/ 55907:
4
+ /***/ 34444:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -22,7 +22,7 @@ const id = package_namespaceObject.UU;
22
22
  const SOPClassHandlerId = `${id}.sopClassHandlerModule.dicom-pdf`;
23
23
 
24
24
  // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
25
- var src = __webpack_require__(8633);
25
+ var src = __webpack_require__(75186);
26
26
  ;// CONCATENATED MODULE: ../../../extensions/dicom-pdf/src/getSopClassHandlerModule.js
27
27
 
28
28
 
@@ -109,7 +109,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
109
109
 
110
110
 
111
111
  const Component = /*#__PURE__*/react.lazy(() => {
112
- return __webpack_require__.e(/* import() */ 297).then(__webpack_require__.bind(__webpack_require__, 46297));
112
+ return __webpack_require__.e(/* import() */ 837).then(__webpack_require__.bind(__webpack_require__, 70218));
113
113
  });
114
114
  const OHIFCornerstonePdfViewport = props => {
115
115
  return /*#__PURE__*/react.createElement(react.Suspense, {