@ohif/app 3.9.0-beta.4 → 3.9.0-beta.41

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 (233) hide show
  1. package/dist/{117.bundle.a80b1511ef4b302fb7cc.js → 117.bundle.1f7b56504d506e7259e3.js} +66 -69
  2. package/dist/{889.bundle.6df37a2db81b97f4a76a.js → 121.bundle.e65afd9bfd1a425d0050.js} +40 -12
  3. package/dist/{998.bundle.f2ba5b6c1aa0caa6d672.js → 129.bundle.0be30c39fe5d8557b083.js} +40 -25
  4. package/dist/{574.bundle.72bd5061ccd504235419.js → 139.bundle.09e5af0a9ae8a285af77.js} +25 -37
  5. package/dist/{989.bundle.bf32dc457ea9abccca09.js → 14.bundle.cfafff5ce33c8fe9e536.js} +5 -5
  6. package/dist/{783.bundle.1f650e1ef1b10d19870f.js → 140.bundle.ebaef33bd84b37213744.js} +2 -2
  7. package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.2b23bfbcb23497d7c87a.js} +548 -301
  8. package/dist/{544.bundle.e8227e98860e39636a00.js → 172.bundle.e0ee762bee7496d6491e.js} +16 -30
  9. package/dist/{487.bundle.a517b1d6cd2d82b9a7ea.js → 194.bundle.9044099acbadc4c02d04.js} +5 -5
  10. package/dist/{699.bundle.f62694527f6dfe417f81.js → 211.bundle.318a1dde2daf28c0ca7e.js} +43 -5
  11. package/dist/{776.bundle.91747df457143051f872.js → 218.bundle.e00a7676e115e4bd4f0f.js} +10 -12
  12. package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.34db90a140e37d34fd71.js} +544 -221
  13. package/dist/{530.bundle.17b9a34fefff133e5379.js → 265.bundle.b32a0cc143efa80ee3cc.js} +8 -12
  14. package/dist/{862.bundle.55dde21bab4c841b6259.js → 323.bundle.955cc8f5eb5c01295118.js} +5 -9
  15. package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.fcb2038060a062129d34.js} +7 -0
  16. package/dist/{550.bundle.4f728d9ab7a8c7685abd.js → 363.bundle.e7332abbff673d8a79e4.js} +234 -150
  17. package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.bd9884c274c26a54dfae.js} +101 -18
  18. package/dist/{682.bundle.0909fbf9a76430e4bbc9.js → 382.bundle.3060bce26740a347900b.js} +38 -5
  19. package/dist/{907.bundle.d2c612ec56380e73df89.js → 444.bundle.1a872eddff40579d7c84.js} +4 -4
  20. package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.0f1848f6a2cf34829fef.js} +16 -3
  21. package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.2f703ca4598a3be0d748.js} +950 -348
  22. package/dist/{905.bundle.c1c60224a599e789feb4.js → 552.bundle.61343aead612379fb815.js} +3 -3
  23. package/dist/{981.bundle.cccdc8caaa5a11f4a998.js → 555.bundle.e849661a6879ce530191.js} +14 -13
  24. package/dist/{939.bundle.9d93b2e47c52338747a2.js → 612.bundle.297a033523539e0b47f9.js} +2 -2
  25. package/dist/{295.bundle.9926ff25c6dbf53845b1.js → 675.bundle.c9720f40fd7c7e9b7e54.js} +5 -9
  26. package/dist/{325.bundle.1c54c1689fb4b1955e8c.js → 717.bundle.444382300af90e310557.js} +58 -26
  27. package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
  28. package/dist/{121.bundle.b582314ec0024fdf2d15.js → 792.bundle.485ad2f98823a4b3feb1.js} +6 -10
  29. package/dist/{721.bundle.0de8f780088aee87dbd9.js → 799.bundle.1dde0deef2be81924d9d.js} +12 -12
  30. package/dist/{448.bundle.077b4b50ee63487516eb.js → 806.bundle.05f48607cfe443d63fc6.js} +19 -6
  31. package/dist/{297.bundle.194d8985ab974839b5b6.js → 837.bundle.ff9fe44bf863a5bceabc.js} +2 -2
  32. package/dist/{961.bundle.6aea7b3de9e93a9ebab1.js → 853.bundle.72427df14c9e5f55b0d6.js} +4 -4
  33. package/dist/{473.bundle.6cd4be953853f35b29c3.js → 914.bundle.e15be8089bf422ed7b51.js} +512 -274
  34. package/dist/{94.bundle.08683468d52365475d9a.js → 920.bundle.2ce2755d7ba79de478a2.js} +39 -9
  35. package/dist/{390.bundle.5a21388b461ee51db594.js → 944.bundle.260e4bf5a03ad05d11b7.js} +655 -95
  36. package/dist/{243.bundle.391c2805222b849abc2c.js → 989.bundle.50e94f736258c5d8f5b6.js} +4 -4
  37. package/dist/app-config.js +5 -1
  38. package/dist/{app.bundle.9e22e72ec23a08cde379.js → app.bundle.6834e46debda9e53f119.js} +167495 -48675
  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-cobb-angle.svg +14 -0
  174. package/dist/assets/images/tool-create-threshold.svg +9 -0
  175. package/dist/assets/images/tool-crosshair.svg +14 -0
  176. package/dist/assets/images/tool-dicom-tag-browser.svg +15 -0
  177. package/dist/assets/images/tool-flip-horizontal.svg +10 -0
  178. package/dist/assets/images/tool-freehand-polygon.svg +37 -0
  179. package/dist/assets/images/tool-freehand-roi.svg +12 -0
  180. package/dist/assets/images/tool-freehand.svg +34 -0
  181. package/dist/assets/images/tool-fusion-color.svg +13 -0
  182. package/dist/assets/images/tool-invert.svg +10 -0
  183. package/dist/assets/images/tool-layout-default.svg +22 -0
  184. package/dist/assets/images/tool-length.svg +16 -0
  185. package/dist/assets/images/tool-magnetic-roi.svg +17 -0
  186. package/dist/assets/images/tool-magnify.svg +7 -0
  187. package/dist/assets/images/tool-measure-elipse.svg +12 -0
  188. package/dist/assets/images/tool-more-menu.svg +6 -0
  189. package/dist/assets/images/tool-move.svg +13 -0
  190. package/dist/assets/images/tool-polygon.svg +3 -0
  191. package/dist/assets/images/tool-quick-magnify.svg +11 -0
  192. package/dist/assets/images/tool-rectangle.svg +12 -0
  193. package/dist/assets/images/tool-reference-lines.svg +13 -0
  194. package/dist/assets/images/tool-reset.svg +9 -0
  195. package/dist/assets/images/tool-rotate-right.svg +12 -0
  196. package/dist/assets/images/tool-seg-brush.svg +9 -0
  197. package/dist/assets/images/tool-seg-eraser.svg +10 -0
  198. package/dist/assets/images/tool-seg-shape.svg +9 -0
  199. package/dist/assets/images/tool-seg-threshold.svg +17 -0
  200. package/dist/assets/images/tool-spline-roi.svg +14 -0
  201. package/dist/assets/images/tool-stack-image-sync.svg +10 -0
  202. package/dist/assets/images/tool-stack-scroll.svg +10 -0
  203. package/dist/assets/images/tool-toggle-dicom-overlay.svg +9 -0
  204. package/dist/assets/images/tool-ultrasound-bidirectional.svg +15 -0
  205. package/dist/assets/images/tool-window-level.svg +9 -0
  206. package/dist/assets/images/tool-window-region.svg +12 -0
  207. package/dist/assets/images/tool-zoom.svg +9 -0
  208. package/dist/assets/images/tracked.svg +6 -0
  209. package/dist/assets/images/ui-arrow-down.svg +3 -0
  210. package/dist/assets/images/ui-arrow-left.svg +3 -0
  211. package/dist/assets/images/ui-arrow-right.svg +3 -0
  212. package/dist/assets/images/ui-arrow-up.svg +3 -0
  213. package/dist/assets/images/unlink.svg +9 -0
  214. package/dist/assets/images/viewport-status-tracked.svg +13 -0
  215. package/dist/assets/images/viewport-window-level.svg +17 -0
  216. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  217. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  218. package/dist/google.js +1 -0
  219. package/dist/{histogram-worker.bundle.829e14ec12c2b41a4323.js → histogram-worker.bundle.6b31e5ed4c4a7a6998f2.js} +2 -2
  220. package/dist/index.html +1 -1
  221. package/dist/{polySeg.bundle.1799686b019040500219.js → polySeg.bundle.df492df5042827938ba4.js} +3 -3
  222. package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.8f4b505fad3d371489fe.js} +4 -4
  223. package/dist/sw.js +1 -1
  224. package/package.json +26 -23
  225. /package/dist/{998.css → 129.css} +0 -0
  226. /package/dist/{574.css → 139.css} +0 -0
  227. /package/dist/{544.css → 172.css} +0 -0
  228. /package/dist/{550.css → 363.css} +0 -0
  229. /package/dist/{325.css → 404.css} +0 -0
  230. /package/dist/{481.css → 717.css} +0 -0
  231. /package/dist/{726.bundle.c8de818cf1a3ff0cf7d2.js → 726.bundle.90d63d40a19b058034ee.js} +0 -0
  232. /package/dist/{835.bundle.4c0eaa2c1a427ee41817.js → 835.bundle.5d1951da8bbc6afdf3e0.js} +0 -0
  233. /package/dist/{931.bundle.d270a1fda9a2836c3cc5.js → 931.bundle.058f8de4606f27b31f4f.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[550],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[363],{
3
3
 
4
- /***/ 76255:
4
+ /***/ 40684:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -12,8 +12,8 @@
12
12
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41766);
13
13
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11374);
14
14
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
15
- /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5085);
16
- /* harmony import */ var _services_ViewportActionCornersService_ViewportActionCornersService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77954);
15
+ /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79047);
16
+ /* harmony import */ var _services_ViewportActionCornersService_ViewportActionCornersService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2447);
17
17
 
18
18
 
19
19
 
@@ -141,7 +141,7 @@ const useViewportActionCornersContext = () => (0,react__WEBPACK_IMPORTED_MODULE_
141
141
 
142
142
  /***/ }),
143
143
 
144
- /***/ 550:
144
+ /***/ 11363:
145
145
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
146
146
 
147
147
  // ESM COMPAT FLAG
@@ -152,8 +152,12 @@ __webpack_require__.d(__webpack_exports__, {
152
152
  ImageOverlayViewerTool: () => (/* reexport */ tools_ImageOverlayViewerTool),
153
153
  Types: () => (/* reexport */ types_namespaceObject),
154
154
  "default": () => (/* binding */ cornerstone_src),
155
+ findNearbyToolData: () => (/* reexport */ findNearbyToolData),
155
156
  getActiveViewportEnabledElement: () => (/* reexport */ getActiveViewportEnabledElement),
157
+ getEnabledElement: () => (/* reexport */ state/* getEnabledElement */.kJ),
158
+ getSOPInstanceAttributes: () => (/* reexport */ getSOPInstanceAttributes/* default */.A),
156
159
  measurementMappingUtils: () => (/* reexport */ utils_namespaceObject),
160
+ setEnabledElement: () => (/* reexport */ state/* setEnabledElement */.ye),
157
161
  toolNames: () => (/* reexport */ toolNames)
158
162
  });
159
163
 
@@ -182,7 +186,7 @@ var dist_esm = __webpack_require__(39371);
182
186
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
183
187
  var streaming_image_volume_loader_dist_esm = __webpack_require__(23722);
184
188
  // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
185
- var src = __webpack_require__(8633);
189
+ var src = __webpack_require__(75186);
186
190
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js
187
191
  var cornerstoneDICOMImageLoader_min = __webpack_require__(54578);
188
192
  var cornerstoneDICOMImageLoader_min_default = /*#__PURE__*/__webpack_require__.n(cornerstoneDICOMImageLoader_min);
@@ -260,8 +264,8 @@ function destroy() {
260
264
  }
261
265
  webWorkers.length = 0;
262
266
  }
263
- // EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
264
- var ui_src = __webpack_require__(5085);
267
+ // EXTERNAL MODULE: ../../ui/src/index.js + 782 modules
268
+ var ui_src = __webpack_require__(79047);
265
269
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/callInputDialog.tsx
266
270
 
267
271
 
@@ -437,7 +441,7 @@ function showLabelAnnotationPopup(measurement, uiDialogService, labelConfig) {
437
441
  }
438
442
  /* harmony default export */ const utils_callInputDialog = (callInputDialog);
439
443
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
440
- var state = __webpack_require__(71353);
444
+ var state = __webpack_require__(83910);
441
445
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/getActiveViewportEnabledElement.ts
442
446
 
443
447
 
@@ -558,7 +562,7 @@ function onCompletedCalibrationLine(servicesManager, csToolsEvent) {
558
562
  });
559
563
  }
560
564
  // EXTERNAL MODULE: ../../core/src/utils/index.js + 26 modules
561
- var utils = __webpack_require__(17541);
565
+ var utils = __webpack_require__(86890);
562
566
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/tools/OverlayPlaneModuleProvider.ts
563
567
 
564
568
  const _cachedOverlayMetadata = new Map();
@@ -861,6 +865,8 @@ function initCornerstoneTools(configuration = {}) {
861
865
  (0,dist_esm.addTool)(dist_esm.SplineROITool);
862
866
  (0,dist_esm.addTool)(dist_esm.LivewireContourTool);
863
867
  (0,dist_esm.addTool)(dist_esm.OrientationMarkerTool);
868
+ (0,dist_esm.addTool)(dist_esm.WindowLevelRegionTool);
869
+ (0,dist_esm.addTool)(dist_esm.PlanarFreehandContourSegmentationTool);
864
870
 
865
871
  // Modify annotation tools to use dashed lines on SR
866
872
  const annotationStyle = {
@@ -911,13 +917,15 @@ const toolNames = {
911
917
  SplineROI: dist_esm.SplineROITool.toolName,
912
918
  LivewireContour: dist_esm.LivewireContourTool.toolName,
913
919
  PlanarFreehandROI: dist_esm.PlanarFreehandROITool.toolName,
914
- OrientationMarker: dist_esm.OrientationMarkerTool.toolName
920
+ OrientationMarker: dist_esm.OrientationMarkerTool.toolName,
921
+ WindowLevelRegion: dist_esm.WindowLevelRegionTool.toolName,
922
+ PlanarFreehandContourSegmentation: dist_esm.PlanarFreehandContourSegmentationTool.toolName
915
923
  };
916
924
 
917
925
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js
918
926
  /* harmony default export */ const supportedTools = (['Length', 'EllipticalROI', 'CircleROI', 'Bidirectional', 'ArrowAnnotate', 'Angle', 'CobbAngle', 'Probe', 'RectangleROI', 'PlanarFreehandROI', 'SplineROI', 'LivewireContour', 'Probe', 'UltrasoundDirectionalTool']);
919
927
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/utils/getSOPInstanceAttributes.js
920
- var getSOPInstanceAttributes = __webpack_require__(1663);
928
+ var getSOPInstanceAttributes = __webpack_require__(20928);
921
929
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts
922
930
 
923
931
 
@@ -957,12 +965,12 @@ const Length = {
957
965
  SOPInstanceUID,
958
966
  SeriesInstanceUID,
959
967
  StudyInstanceUID
960
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
968
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
961
969
  let displaySet;
962
970
  if (SOPInstanceUID) {
963
971
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
964
972
  } else {
965
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
973
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
966
974
  }
967
975
  const {
968
976
  points,
@@ -980,6 +988,7 @@ const Length = {
980
988
  metadata,
981
989
  referenceSeriesUID: SeriesInstanceUID,
982
990
  referenceStudyUID: StudyInstanceUID,
991
+ referencedImageId,
983
992
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
984
993
  toolName: metadata.toolName,
985
994
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1009,15 +1018,12 @@ function getMappedAnnotations(annotation, displaySetService) {
1009
1018
  const annotations = [];
1010
1019
  Object.keys(cachedStats).forEach(targetId => {
1011
1020
  const targetStats = cachedStats[targetId];
1012
- if (!referencedImageId) {
1013
- throw new Error('Non-acquisition plane measurement mapping not supported');
1014
- }
1015
1021
  const {
1016
1022
  SOPInstanceUID,
1017
1023
  SeriesInstanceUID,
1018
1024
  frameNumber
1019
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
1020
- const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1025
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1026
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1021
1027
  const {
1022
1028
  SeriesNumber
1023
1029
  } = displaySet;
@@ -1196,12 +1202,12 @@ const Bidirectional = {
1196
1202
  SOPInstanceUID,
1197
1203
  SeriesInstanceUID,
1198
1204
  StudyInstanceUID
1199
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
1205
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1200
1206
  let displaySet;
1201
1207
  if (SOPInstanceUID) {
1202
1208
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1203
1209
  } else {
1204
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1210
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1205
1211
  }
1206
1212
  const {
1207
1213
  points,
@@ -1219,6 +1225,7 @@ const Bidirectional = {
1219
1225
  metadata,
1220
1226
  referenceSeriesUID: SeriesInstanceUID,
1221
1227
  referenceStudyUID: StudyInstanceUID,
1228
+ referencedImageId,
1222
1229
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
1223
1230
  toolName: metadata.toolName,
1224
1231
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1249,15 +1256,12 @@ function Bidirectional_getMappedAnnotations(annotation, displaySetService) {
1249
1256
  const annotations = [];
1250
1257
  Object.keys(cachedStats).forEach(targetId => {
1251
1258
  const targetStats = cachedStats[targetId];
1252
- if (!referencedImageId) {
1253
- throw new Error('Non-acquisition plane measurement mapping not supported');
1254
- }
1255
1259
  const {
1256
1260
  SOPInstanceUID,
1257
1261
  SeriesInstanceUID,
1258
1262
  frameNumber
1259
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
1260
- const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1263
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1264
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1261
1265
  const {
1262
1266
  SeriesNumber
1263
1267
  } = displaySet;
@@ -1391,12 +1395,12 @@ const EllipticalROI = {
1391
1395
  SOPInstanceUID,
1392
1396
  SeriesInstanceUID,
1393
1397
  StudyInstanceUID
1394
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
1398
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1395
1399
  let displaySet;
1396
1400
  if (SOPInstanceUID) {
1397
1401
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1398
1402
  } else {
1399
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1403
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1400
1404
  }
1401
1405
  const {
1402
1406
  points,
@@ -1414,6 +1418,7 @@ const EllipticalROI = {
1414
1418
  metadata,
1415
1419
  referenceSeriesUID: SeriesInstanceUID,
1416
1420
  referenceStudyUID: StudyInstanceUID,
1421
+ referencedImageId,
1417
1422
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
1418
1423
  toolName: metadata.toolName,
1419
1424
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1443,16 +1448,12 @@ function EllipticalROI_getMappedAnnotations(annotation, displaySetService) {
1443
1448
  const annotations = [];
1444
1449
  Object.keys(cachedStats).forEach(targetId => {
1445
1450
  const targetStats = cachedStats[targetId];
1446
- if (!referencedImageId) {
1447
- // Todo: Non-acquisition plane measurement mapping not supported yet
1448
- throw new Error('Non-acquisition plane measurement mapping not supported');
1449
- }
1450
1451
  const {
1451
1452
  SOPInstanceUID,
1452
1453
  SeriesInstanceUID,
1453
1454
  frameNumber
1454
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
1455
- const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1455
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1456
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1456
1457
  const {
1457
1458
  SeriesNumber
1458
1459
  } = displaySet;
@@ -1572,7 +1573,7 @@ function EllipticalROI_getDisplayText(mappedAnnotations, displaySet, customizati
1572
1573
 
1573
1574
  const CircleROI = {
1574
1575
  toAnnotation: measurement => {},
1575
- toMeasurement: (csToolsEventDetail, DisplaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
1576
+ toMeasurement: (csToolsEventDetail, displaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
1576
1577
  const {
1577
1578
  annotation,
1578
1579
  viewportId
@@ -1599,18 +1600,18 @@ const CircleROI = {
1599
1600
  SOPInstanceUID,
1600
1601
  SeriesInstanceUID,
1601
1602
  StudyInstanceUID
1602
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
1603
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1603
1604
  let displaySet;
1604
1605
  if (SOPInstanceUID) {
1605
- displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1606
+ displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1606
1607
  } else {
1607
- displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1608
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1608
1609
  }
1609
1610
  const {
1610
1611
  points,
1611
1612
  textBox
1612
1613
  } = data.handles;
1613
- const mappedAnnotations = CircleROI_getMappedAnnotations(annotation, DisplaySetService);
1614
+ const mappedAnnotations = CircleROI_getMappedAnnotations(annotation, displaySetService);
1614
1615
  const displayText = CircleROI_getDisplayText(mappedAnnotations, displaySet, customizationService);
1615
1616
  const getReport = () => CircleROI_getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService);
1616
1617
  return {
@@ -1622,6 +1623,7 @@ const CircleROI = {
1622
1623
  metadata,
1623
1624
  referenceSeriesUID: SeriesInstanceUID,
1624
1625
  referenceStudyUID: StudyInstanceUID,
1626
+ referencedImageId,
1625
1627
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
1626
1628
  toolName: metadata.toolName,
1627
1629
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1633,7 +1635,7 @@ const CircleROI = {
1633
1635
  };
1634
1636
  }
1635
1637
  };
1636
- function CircleROI_getMappedAnnotations(annotation, DisplaySetService) {
1638
+ function CircleROI_getMappedAnnotations(annotation, displaySetService) {
1637
1639
  const {
1638
1640
  metadata,
1639
1641
  data
@@ -1651,16 +1653,12 @@ function CircleROI_getMappedAnnotations(annotation, DisplaySetService) {
1651
1653
  const annotations = [];
1652
1654
  Object.keys(cachedStats).forEach(targetId => {
1653
1655
  const targetStats = cachedStats[targetId];
1654
- if (!referencedImageId) {
1655
- // Todo: Non-acquisition plane measurement mapping not supported yet
1656
- throw new Error('Non-acquisition plane measurement mapping not supported');
1657
- }
1658
1656
  const {
1659
1657
  SOPInstanceUID,
1660
1658
  SeriesInstanceUID,
1661
1659
  frameNumber
1662
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
1663
- const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1660
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1661
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1664
1662
  const {
1665
1663
  SeriesNumber
1666
1664
  } = displaySet;
@@ -1812,12 +1810,12 @@ const ArrowAnnotate_Length = {
1812
1810
  SOPInstanceUID,
1813
1811
  SeriesInstanceUID,
1814
1812
  StudyInstanceUID
1815
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
1813
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1816
1814
  let displaySet;
1817
1815
  if (SOPInstanceUID) {
1818
1816
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1819
1817
  } else {
1820
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1818
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1821
1819
  }
1822
1820
  const {
1823
1821
  points,
@@ -1834,6 +1832,7 @@ const ArrowAnnotate_Length = {
1834
1832
  metadata,
1835
1833
  referenceSeriesUID: SeriesInstanceUID,
1836
1834
  referenceStudyUID: StudyInstanceUID,
1835
+ referencedImageId,
1837
1836
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
1838
1837
  toolName: metadata.toolName,
1839
1838
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1863,8 +1862,8 @@ function ArrowAnnotate_getMappedAnnotations(annotation, displaySetService) {
1863
1862
  SOPInstanceUID,
1864
1863
  SeriesInstanceUID,
1865
1864
  frameNumber
1866
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
1867
- const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1865
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1866
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1868
1867
  const {
1869
1868
  SeriesNumber
1870
1869
  } = displaySet;
@@ -1940,12 +1939,12 @@ const CobbAngle = {
1940
1939
  SOPInstanceUID,
1941
1940
  SeriesInstanceUID,
1942
1941
  StudyInstanceUID
1943
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
1942
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1944
1943
  let displaySet;
1945
1944
  if (SOPInstanceUID) {
1946
1945
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1947
1946
  } else {
1948
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1947
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1949
1948
  }
1950
1949
  const {
1951
1950
  points,
@@ -1963,6 +1962,7 @@ const CobbAngle = {
1963
1962
  metadata,
1964
1963
  referenceSeriesUID: SeriesInstanceUID,
1965
1964
  referenceStudyUID: StudyInstanceUID,
1965
+ referencedImageId,
1966
1966
  frameNumber: mappedAnnotations?.[0]?.frameNumber || 1,
1967
1967
  toolName: metadata.toolName,
1968
1968
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1974,7 +1974,7 @@ const CobbAngle = {
1974
1974
  };
1975
1975
  }
1976
1976
  };
1977
- function CobbAngle_getMappedAnnotations(annotation, DisplaySetService) {
1977
+ function CobbAngle_getMappedAnnotations(annotation, displaySetService) {
1978
1978
  const {
1979
1979
  metadata,
1980
1980
  data
@@ -1992,15 +1992,12 @@ function CobbAngle_getMappedAnnotations(annotation, DisplaySetService) {
1992
1992
  const annotations = [];
1993
1993
  Object.keys(cachedStats).forEach(targetId => {
1994
1994
  const targetStats = cachedStats[targetId];
1995
- if (!referencedImageId) {
1996
- throw new Error('Non-acquisition plane measurement mapping not supported');
1997
- }
1998
1995
  const {
1999
1996
  SOPInstanceUID,
2000
1997
  SeriesInstanceUID,
2001
1998
  frameNumber
2002
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
2003
- const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1999
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2000
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2004
2001
  const {
2005
2002
  SeriesNumber
2006
2003
  } = displaySet;
@@ -2125,12 +2122,12 @@ const Angle = {
2125
2122
  SOPInstanceUID,
2126
2123
  SeriesInstanceUID,
2127
2124
  StudyInstanceUID
2128
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
2125
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2129
2126
  let displaySet;
2130
2127
  if (SOPInstanceUID) {
2131
2128
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
2132
2129
  } else {
2133
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
2130
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2134
2131
  }
2135
2132
  const {
2136
2133
  points,
@@ -2155,11 +2152,12 @@ const Angle = {
2155
2152
  displayText: displayText,
2156
2153
  data: data.cachedStats,
2157
2154
  type: getValueTypeFromToolType(toolName),
2158
- getReport
2155
+ getReport,
2156
+ referencedImageId
2159
2157
  };
2160
2158
  }
2161
2159
  };
2162
- function Angle_getMappedAnnotations(annotation, DisplaySetService) {
2160
+ function Angle_getMappedAnnotations(annotation, displaySetService) {
2163
2161
  const {
2164
2162
  metadata,
2165
2163
  data
@@ -2177,15 +2175,12 @@ function Angle_getMappedAnnotations(annotation, DisplaySetService) {
2177
2175
  const annotations = [];
2178
2176
  Object.keys(cachedStats).forEach(targetId => {
2179
2177
  const targetStats = cachedStats[targetId];
2180
- if (!referencedImageId) {
2181
- throw new Error('Non-acquisition plane measurement mapping not supported');
2182
- }
2183
2178
  const {
2184
2179
  SOPInstanceUID,
2185
2180
  SeriesInstanceUID,
2186
2181
  frameNumber
2187
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
2188
- const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
2182
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2183
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2189
2184
  const {
2190
2185
  SeriesNumber
2191
2186
  } = displaySet;
@@ -2289,7 +2284,7 @@ const PlanarFreehandROI = {
2289
2284
  * @param {Function} getValueTypeFromToolType Function to get value type from tool type
2290
2285
  * @returns {Measurement} Measurement instance
2291
2286
  */
2292
- toMeasurement: (csToolsEventDetail, DisplaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
2287
+ toMeasurement: (csToolsEventDetail, displaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
2293
2288
  const {
2294
2289
  annotation
2295
2290
  } = csToolsEventDetail;
@@ -2316,12 +2311,12 @@ const PlanarFreehandROI = {
2316
2311
  SeriesInstanceUID,
2317
2312
  frameNumber,
2318
2313
  StudyInstanceUID
2319
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
2314
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2320
2315
  let displaySet;
2321
2316
  if (SOPInstanceUID) {
2322
- displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
2317
+ displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
2323
2318
  } else {
2324
- displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
2319
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2325
2320
  }
2326
2321
  return {
2327
2322
  uid: annotationUID,
@@ -2333,10 +2328,11 @@ const PlanarFreehandROI = {
2333
2328
  frameNumber,
2334
2329
  referenceSeriesUID: SeriesInstanceUID,
2335
2330
  referenceStudyUID: StudyInstanceUID,
2331
+ referencedImageId,
2336
2332
  toolName: metadata.toolName,
2337
2333
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
2338
2334
  label: data.label,
2339
- displayText: PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationService),
2335
+ displayText: PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationService, displaySetService),
2340
2336
  data: data.cachedStats,
2341
2337
  type: getValueTypeFromToolType(toolName),
2342
2338
  getReport: () => getColumnValueReport(annotation, customizationService)
@@ -2404,7 +2400,7 @@ function getColumnValueReport(annotation, customizationService) {
2404
2400
  * @param {Object} displaySet - The display set object.
2405
2401
  * @returns {string[]} - An array of display text.
2406
2402
  */
2407
- function PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationService) {
2403
+ function PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationService, displaySetService) {
2408
2404
  const {
2409
2405
  PlanarFreehandROI
2410
2406
  } = customizationService.get('cornerstone.measurements');
@@ -2415,13 +2411,10 @@ function PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationS
2415
2411
  metadata,
2416
2412
  data
2417
2413
  } = annotation;
2418
- if (!data.cachedStats || !data.cachedStats[`imageId:${metadata.referencedImageId}`]) {
2419
- return [];
2420
- }
2421
2414
  const {
2422
2415
  SOPInstanceUID,
2423
2416
  frameNumber
2424
- } = (0,getSOPInstanceAttributes/* default */.A)(metadata.referencedImageId);
2417
+ } = (0,getSOPInstanceAttributes/* default */.A)(metadata.referencedImageId, displaySetService, annotation);
2425
2418
  const displayTextArray = [];
2426
2419
  const instance = displaySet.images.find(image => image.SOPInstanceUID === SOPInstanceUID);
2427
2420
  let InstanceNumber;
@@ -2436,17 +2429,20 @@ function PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationS
2436
2429
  if (SeriesNumber) {
2437
2430
  displayTextArray.push(`S: ${SeriesNumber}${instanceText}${frameText}`);
2438
2431
  }
2439
- const stats = data.cachedStats[`imageId:${metadata.referencedImageId}`];
2432
+ const stats = data.cachedStats[`imageId:${metadata.referencedImageId}`] || Array.from(Object.values(data.cachedStats))[0];
2433
+ if (!stats) {
2434
+ return displayTextArray;
2435
+ }
2440
2436
  const roundValues = values => {
2441
2437
  if (Array.isArray(values)) {
2442
2438
  return values.map(value => {
2443
2439
  if (isNaN(value)) {
2444
2440
  return value;
2445
2441
  }
2446
- return src.utils.roundNumber(value);
2442
+ return src.utils.roundNumber(value, 2);
2447
2443
  });
2448
2444
  }
2449
- return isNaN(values) ? values : src.utils.roundNumber(values);
2445
+ return isNaN(values) ? values : src.utils.roundNumber(values, 2);
2450
2446
  };
2451
2447
  const findUnitForValue = (displayTextItems, value) => displayTextItems.find(({
2452
2448
  type,
@@ -2475,7 +2471,7 @@ function PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationS
2475
2471
 
2476
2472
  const RectangleROI = {
2477
2473
  toAnnotation: measurement => {},
2478
- toMeasurement: (csToolsEventDetail, DisplaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
2474
+ toMeasurement: (csToolsEventDetail, displaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
2479
2475
  const {
2480
2476
  annotation,
2481
2477
  viewportId
@@ -2502,18 +2498,18 @@ const RectangleROI = {
2502
2498
  SOPInstanceUID,
2503
2499
  SeriesInstanceUID,
2504
2500
  StudyInstanceUID
2505
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
2501
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2506
2502
  let displaySet;
2507
2503
  if (SOPInstanceUID) {
2508
- displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
2504
+ displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
2509
2505
  } else {
2510
- displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
2506
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2511
2507
  }
2512
2508
  const {
2513
2509
  points,
2514
2510
  textBox
2515
2511
  } = data.handles;
2516
- const mappedAnnotations = RectangleROI_getMappedAnnotations(annotation, DisplaySetService);
2512
+ const mappedAnnotations = RectangleROI_getMappedAnnotations(annotation, displaySetService);
2517
2513
  const displayText = RectangleROI_getDisplayText(mappedAnnotations, displaySet, customizationService);
2518
2514
  const getReport = () => RectangleROI_getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService);
2519
2515
  return {
@@ -2525,6 +2521,7 @@ const RectangleROI = {
2525
2521
  metadata,
2526
2522
  referenceSeriesUID: SeriesInstanceUID,
2527
2523
  referenceStudyUID: StudyInstanceUID,
2524
+ referencedImageId,
2528
2525
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
2529
2526
  toolName: metadata.toolName,
2530
2527
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -2536,7 +2533,7 @@ const RectangleROI = {
2536
2533
  };
2537
2534
  }
2538
2535
  };
2539
- function RectangleROI_getMappedAnnotations(annotation, DisplaySetService) {
2536
+ function RectangleROI_getMappedAnnotations(annotation, displaySetService) {
2540
2537
  const {
2541
2538
  metadata,
2542
2539
  data
@@ -2554,16 +2551,12 @@ function RectangleROI_getMappedAnnotations(annotation, DisplaySetService) {
2554
2551
  const annotations = [];
2555
2552
  Object.keys(cachedStats).forEach(targetId => {
2556
2553
  const targetStats = cachedStats[targetId];
2557
- if (!referencedImageId) {
2558
- // Todo: Non-acquisition plane measurement mapping not supported yet
2559
- throw new Error('Non-acquisition plane measurement mapping not supported');
2560
- }
2561
2554
  const {
2562
2555
  SOPInstanceUID,
2563
2556
  SeriesInstanceUID,
2564
2557
  frameNumber
2565
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
2566
- const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
2558
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2559
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2567
2560
  const {
2568
2561
  SeriesNumber
2569
2562
  } = displaySet;
@@ -3087,12 +3080,12 @@ const Probe = {
3087
3080
  SOPInstanceUID,
3088
3081
  SeriesInstanceUID,
3089
3082
  StudyInstanceUID
3090
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
3083
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
3091
3084
  let displaySet;
3092
3085
  if (SOPInstanceUID) {
3093
3086
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
3094
3087
  } else {
3095
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
3088
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
3096
3089
  }
3097
3090
  const {
3098
3091
  points
@@ -3108,6 +3101,7 @@ const Probe = {
3108
3101
  metadata,
3109
3102
  referenceSeriesUID: SeriesInstanceUID,
3110
3103
  referenceStudyUID: StudyInstanceUID,
3104
+ referencedImageId,
3111
3105
  frameNumber: mappedAnnotations?.[0]?.frameNumber || 1,
3112
3106
  toolName: metadata.toolName,
3113
3107
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -3119,7 +3113,7 @@ const Probe = {
3119
3113
  };
3120
3114
  }
3121
3115
  };
3122
- function Probe_getMappedAnnotations(annotation, DisplaySetService) {
3116
+ function Probe_getMappedAnnotations(annotation, displaySetService) {
3123
3117
  const {
3124
3118
  metadata,
3125
3119
  data
@@ -3137,15 +3131,12 @@ function Probe_getMappedAnnotations(annotation, DisplaySetService) {
3137
3131
  const annotations = [];
3138
3132
  Object.keys(cachedStats).forEach(targetId => {
3139
3133
  const targetStats = cachedStats[targetId];
3140
- if (!referencedImageId) {
3141
- throw new Error('Non-acquisition plane measurement mapping not supported');
3142
- }
3143
3134
  const {
3144
3135
  SOPInstanceUID,
3145
3136
  SeriesInstanceUID,
3146
3137
  frameNumber
3147
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
3148
- const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
3138
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
3139
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
3149
3140
  const {
3150
3141
  SeriesNumber
3151
3142
  } = displaySet;
@@ -3925,7 +3916,7 @@ function _getVolumesFromViewport(viewport) {
3925
3916
  return viewport ? viewport.getActors().map(actor => esm.cache.getVolume(actor.uid)) : [];
3926
3917
  }
3927
3918
  function _getVolumeFromViewport(viewport) {
3928
- const volumes = _getVolumesFromViewport(viewport);
3919
+ const volumes = _getVolumesFromViewport(viewport).filter(volume => volume);
3929
3920
  const dynamicVolume = volumes.find(volume => volume.isDynamicVolume());
3930
3921
  return dynamicVolume ?? volumes[0];
3931
3922
  }
@@ -4944,12 +4935,16 @@ async function init({
4944
4935
  clearOnModeExit: true
4945
4936
  });
4946
4937
  const labelmapRepresentation = dist_esm.Enums.SegmentationRepresentations.Labelmap;
4938
+ const contourRepresentation = dist_esm.Enums.SegmentationRepresentations.Contour;
4947
4939
  dist_esm.segmentation.config.setGlobalRepresentationConfig(labelmapRepresentation, {
4948
4940
  fillAlpha: 0.5,
4949
4941
  fillAlphaInactive: 0.2,
4950
4942
  outlineOpacity: 1,
4951
4943
  outlineOpacityInactive: 0.65
4952
4944
  });
4945
+ dist_esm.segmentation.config.setGlobalRepresentationConfig(contourRepresentation, {
4946
+ renderFill: false
4947
+ });
4953
4948
  const metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
4954
4949
  esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingImageVolume', streaming_image_volume_loader_dist_esm/* cornerstoneStreamingImageVolumeLoader */.FC);
4955
4950
  esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingDynamicImageVolume', streaming_image_volume_loader_dist_esm/* cornerstoneStreamingDynamicImageVolumeLoader */.Mr);
@@ -5037,9 +5032,13 @@ async function init({
5037
5032
  const {
5038
5033
  element
5039
5034
  } = evt.detail;
5035
+ const enabledElement = (0,esm.getEnabledElement)(element);
5036
+ if (!enabledElement) {
5037
+ return;
5038
+ }
5040
5039
  const {
5041
5040
  viewportId
5042
- } = (0,esm.getEnabledElement)(element);
5041
+ } = enabledElement;
5043
5042
  commandsManager.runCommand('resetCrosshairs', {
5044
5043
  viewportId
5045
5044
  });
@@ -5101,8 +5100,8 @@ function _showCPURenderingModal(uiModalService, hangingProtocolService) {
5101
5100
  }
5102
5101
  });
5103
5102
  }
5104
- // EXTERNAL MODULE: ../../../node_modules/react-dropzone/dist/es/index.js + 5 modules
5105
- var es = __webpack_require__(5013);
5103
+ // EXTERNAL MODULE: ../../../node_modules/react-dropzone/dist/es/index.js + 4 modules
5104
+ var es = __webpack_require__(92854);
5106
5105
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
5107
5106
  var prop_types = __webpack_require__(11374);
5108
5107
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
@@ -5791,6 +5790,11 @@ const tools = {
5791
5790
  }],
5792
5791
  enabled: [{
5793
5792
  toolName: toolNames.SegmentationDisplay
5793
+ }, {
5794
+ toolName: toolNames.PlanarFreehandContourSegmentation,
5795
+ configuration: {
5796
+ displayOnePointAsCrosshairs: true
5797
+ }
5794
5798
  }]
5795
5799
  };
5796
5800
  function getCustomizationModule() {
@@ -6068,7 +6072,9 @@ const CornerstoneViewportDownloadForm = ({
6068
6072
  // for some reason we need a reset camera here, and I don't know why
6069
6073
  downloadViewport.resetCamera();
6070
6074
  const presentation = activeViewport.getViewPresentation();
6071
- downloadViewport.setView(activeViewport.getViewReference(), presentation);
6075
+ if (downloadViewport.setView) {
6076
+ downloadViewport.setView(activeViewport.getViewReference(), presentation);
6077
+ }
6072
6078
  downloadViewport.render();
6073
6079
  });
6074
6080
  });
@@ -9351,6 +9357,7 @@ class SegmentationService extends src/* PubSubService */.Rc {
9351
9357
  };
9352
9358
  this.addSegmentationRepresentationToToolGroup = async (toolGroupId, segmentationId, hydrateSegmentation = false, representationType = dist_esm.Enums.SegmentationRepresentations.Labelmap, suppressEvents = false) => {
9353
9359
  const segmentation = this.getSegmentation(segmentationId);
9360
+ toolGroupId = toolGroupId || this._getApplicableToolGroupId();
9354
9361
  if (!segmentation) {
9355
9362
  throw new Error(`Segmentation with segmentationId ${segmentationId} not found.`);
9356
9363
  }
@@ -10784,7 +10791,23 @@ class CornerstoneCacheService {
10784
10791
  }
10785
10792
  async invalidateViewportData(viewportData, invalidatedDisplaySetInstanceUID, dataSource, displaySetService) {
10786
10793
  if (viewportData.viewportType === esm.Enums.ViewportType.STACK) {
10787
- return this._getCornerstoneStackImageIds(displaySetService.getDisplaySetByUID(invalidatedDisplaySetInstanceUID), dataSource);
10794
+ const displaySet = displaySetService.getDisplaySetByUID(invalidatedDisplaySetInstanceUID);
10795
+ const imageIds = this._getCornerstoneStackImageIds(displaySet, dataSource);
10796
+
10797
+ // remove images from the cache to be able to re-load them
10798
+ imageIds.forEach(imageId => {
10799
+ if (esm.cache.getImageLoadObject(imageId)) {
10800
+ esm.cache.removeImageLoadObject(imageId);
10801
+ }
10802
+ });
10803
+ return {
10804
+ viewportType: esm.Enums.ViewportType.STACK,
10805
+ data: {
10806
+ StudyInstanceUID: displaySet.StudyInstanceUID,
10807
+ displaySetInstanceUID: invalidatedDisplaySetInstanceUID,
10808
+ imageIds
10809
+ }
10810
+ };
10788
10811
  }
10789
10812
 
10790
10813
  // Todo: grab the volume and get the id from the viewport itself
@@ -10814,32 +10837,48 @@ class CornerstoneCacheService {
10814
10837
  const newViewportData = await this._getVolumeViewportData(dataSource, displaySets, viewportData.viewportType);
10815
10838
  return newViewportData;
10816
10839
  }
10817
- _getStackViewportData(dataSource, displaySets, initialImageIndex, viewportType) {
10818
- // For Stack Viewport we don't have fusion currently
10819
- const displaySet = displaySets[0];
10840
+ async _getStackViewportData(dataSource, displaySets, initialImageIndex, viewportType) {
10841
+ const overlayDisplaySets = displaySets.filter(ds => ds.isOverlayDisplaySet);
10842
+ const nonOverlayDisplaySets = displaySets.filter(ds => !ds.isOverlayDisplaySet);
10843
+
10844
+ // load overlays if they are not loaded
10845
+ for (const overlayDisplaySet of overlayDisplaySets) {
10846
+ if (overlayDisplaySet.load && overlayDisplaySet.load instanceof Function) {
10847
+ const {
10848
+ userAuthenticationService
10849
+ } = this.servicesManager.services;
10850
+ const headers = userAuthenticationService.getAuthorizationHeader();
10851
+ await overlayDisplaySet.load({
10852
+ headers
10853
+ });
10854
+ }
10855
+ }
10856
+ const displaySet = nonOverlayDisplaySets[0];
10820
10857
  let stackImageIds = this.stackImageIds.get(displaySet.displaySetInstanceUID);
10821
10858
  if (!stackImageIds) {
10822
10859
  stackImageIds = this._getCornerstoneStackImageIds(displaySet, dataSource);
10823
10860
  this.stackImageIds.set(displaySet.displaySetInstanceUID, stackImageIds);
10824
10861
  }
10825
- const {
10826
- displaySetInstanceUID,
10827
- StudyInstanceUID,
10828
- isCompositeStack
10829
- } = displaySet;
10830
- const StackViewportData = {
10831
- viewportType,
10832
- data: {
10862
+
10863
+ // Ensuring the first non-overlay `displaySet` is always the primary one
10864
+ const StackViewportData = [displaySet, ...overlayDisplaySets].map(ds => {
10865
+ const {
10866
+ displaySetInstanceUID,
10867
+ StudyInstanceUID,
10868
+ isCompositeStack
10869
+ } = ds;
10870
+ return {
10833
10871
  StudyInstanceUID,
10834
10872
  displaySetInstanceUID,
10835
10873
  isCompositeStack,
10836
- imageIds: stackImageIds
10837
- }
10874
+ imageIds: stackImageIds,
10875
+ initialImageIndex
10876
+ };
10877
+ });
10878
+ return {
10879
+ viewportType,
10880
+ data: StackViewportData
10838
10881
  };
10839
- if (typeof initialImageIndex === 'number') {
10840
- StackViewportData.data.initialImageIndex = initialImageIndex;
10841
- }
10842
- return StackViewportData;
10843
10882
  }
10844
10883
  async _getVolumeViewportData(dataSource, displaySets, viewportType) {
10845
10884
  // Todo: Check the cache for multiple scenarios to see if we need to
@@ -11696,16 +11735,25 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
11696
11735
  }
11697
11736
  async _setStackViewport(viewport, viewportData, viewportInfo, presentations = {}) {
11698
11737
  const displaySetOptions = viewportInfo.getDisplaySetOptions();
11738
+ const displaySetInstanceUIDs = viewportData.data.map(data => data.displaySetInstanceUID);
11739
+
11740
+ // based on the cache service construct always the first one is the non-overlay
11741
+ // and the rest are overlays
11742
+
11743
+ this.viewportsDisplaySets.set(viewport.id, [...displaySetInstanceUIDs]);
11699
11744
  const {
11700
- imageIds,
11701
11745
  initialImageIndex,
11702
- displaySetInstanceUID
11703
- } = viewportData.data;
11704
- this.viewportsDisplaySets.set(viewport.id, [displaySetInstanceUID]);
11746
+ imageIds
11747
+ } = viewportData.data[0];
11705
11748
  let initialImageIndexToUse = presentations?.positionPresentation?.initialImageIndex ?? initialImageIndex;
11706
11749
  if (initialImageIndexToUse === undefined || initialImageIndexToUse === null) {
11707
11750
  initialImageIndexToUse = this._getInitialImageIndexForViewport(viewportInfo, imageIds) || 0;
11708
11751
  }
11752
+ const {
11753
+ rotation,
11754
+ flipHorizontal,
11755
+ displayArea
11756
+ } = viewportInfo.getViewportOptions();
11709
11757
  const properties = {
11710
11758
  ...presentations.lutPresentation?.properties
11711
11759
  };
@@ -11732,11 +11780,25 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
11732
11780
  properties.colormap = colormap;
11733
11781
  }
11734
11782
  }
11783
+ this._handleOverlays(viewport);
11735
11784
  return viewport.setStack(imageIds, initialImageIndexToUse).then(() => {
11736
11785
  viewport.setProperties({
11737
11786
  ...properties
11738
11787
  });
11739
11788
  this.setPresentations(viewport.id, presentations);
11789
+ if (displayArea) {
11790
+ viewport.setDisplayArea(displayArea);
11791
+ }
11792
+ if (rotation) {
11793
+ viewport.setProperties({
11794
+ rotation
11795
+ });
11796
+ }
11797
+ if (flipHorizontal) {
11798
+ viewport.setCamera({
11799
+ flipHorizontal: true
11800
+ });
11801
+ }
11740
11802
  });
11741
11803
  }
11742
11804
  _getInitialImageIndexForViewport(viewportInfo, imageIds) {
@@ -11907,6 +11969,24 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
11907
11969
  viewport.setProperties(properties, volumeId);
11908
11970
  });
11909
11971
  this.setPresentations(viewport.id, presentations);
11972
+ this._handleOverlays(viewport);
11973
+ const toolGroup = toolGroupService.getToolGroupForViewport(viewport.id);
11974
+ dist_esm.utilities.segmentation.triggerSegmentationRender(toolGroup.id);
11975
+ const imageIndex = this._getInitialImageIndexForViewport(viewportInfo);
11976
+ if (imageIndex !== undefined) {
11977
+ dist_esm.utilities.jumpToSlice(viewport.element, {
11978
+ imageIndex
11979
+ });
11980
+ }
11981
+ viewport.render();
11982
+ this._broadcastEvent(this.EVENTS.VIEWPORT_VOLUMES_CHANGED, {
11983
+ viewportInfo
11984
+ });
11985
+ }
11986
+ _handleOverlays(viewport) {
11987
+ const {
11988
+ displaySetService
11989
+ } = this.servicesManager.services;
11910
11990
 
11911
11991
  // load any secondary displaySets
11912
11992
  const displaySetInstanceUIDs = this.viewportsDisplaySets.get(viewport.id);
@@ -11923,18 +12003,6 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
11923
12003
  // get segmentations only returns the hydrated segmentations
11924
12004
  this._addSegmentationRepresentationToToolGroupIfNecessary(displaySetInstanceUIDs, viewport);
11925
12005
  }
11926
- const toolGroup = toolGroupService.getToolGroupForViewport(viewport.id);
11927
- dist_esm.utilities.segmentation.triggerSegmentationRender(toolGroup.id);
11928
- const imageIndex = this._getInitialImageIndexForViewport(viewportInfo);
11929
- if (imageIndex !== undefined) {
11930
- dist_esm.utilities.jumpToSlice(viewport.element, {
11931
- imageIndex
11932
- });
11933
- }
11934
- viewport.render();
11935
- this._broadcastEvent(this.EVENTS.VIEWPORT_VOLUMES_CHANGED, {
11936
- viewportInfo
11937
- });
11938
12006
  }
11939
12007
  _addSegmentationRepresentationToToolGroupIfNecessary(displaySetInstanceUIDs, viewport) {
11940
12008
  const {
@@ -12631,9 +12699,9 @@ const id = package_namespaceObject.UU;
12631
12699
 
12632
12700
 
12633
12701
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/services/ViewportActionCornersService/ViewportActionCornersService.ts
12634
- var ViewportActionCornersService = __webpack_require__(77954);
12702
+ var ViewportActionCornersService = __webpack_require__(2447);
12635
12703
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/contextProviders/ViewportActionCornersProvider.tsx
12636
- var ViewportActionCornersProvider = __webpack_require__(76255);
12704
+ var ViewportActionCornersProvider = __webpack_require__(40684);
12637
12705
  // EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
12638
12706
  var lodash_debounce = __webpack_require__(14771);
12639
12707
  var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
@@ -13059,6 +13127,8 @@ function src_extends() { src_extends = Object.assign ? Object.assign.bind() : fu
13059
13127
 
13060
13128
 
13061
13129
 
13130
+
13131
+
13062
13132
 
13063
13133
 
13064
13134
 
@@ -13069,7 +13139,7 @@ const {
13069
13139
  getDynamicVolumeInfo
13070
13140
  } = volumeLoaderHelpers ?? {};
13071
13141
  const Component = /*#__PURE__*/react.lazy(() => {
13072
- return __webpack_require__.e(/* import() */ 574).then(__webpack_require__.bind(__webpack_require__, 71574));
13142
+ return __webpack_require__.e(/* import() */ 139).then(__webpack_require__.bind(__webpack_require__, 56139));
13073
13143
  });
13074
13144
  const OHIFCornerstoneViewport = props => {
13075
13145
  return /*#__PURE__*/react.createElement(react.Suspense, {
@@ -13210,14 +13280,14 @@ const cornerstoneExtension = {
13210
13280
 
13211
13281
  /***/ }),
13212
13282
 
13213
- /***/ 77954:
13283
+ /***/ 2447:
13214
13284
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13215
13285
 
13216
13286
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13217
13287
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
13218
13288
  /* harmony export */ });
13219
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8633);
13220
- /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5085);
13289
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75186);
13290
+ /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79047);
13221
13291
  var _ViewportActionCornersService;
13222
13292
 
13223
13293
 
@@ -13276,7 +13346,7 @@ ViewportActionCornersService.REGISTRATION = {
13276
13346
 
13277
13347
  /***/ }),
13278
13348
 
13279
- /***/ 71353:
13349
+ /***/ 83910:
13280
13350
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13281
13351
 
13282
13352
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -13318,7 +13388,7 @@ const reset = () => {
13318
13388
 
13319
13389
  /***/ }),
13320
13390
 
13321
- /***/ 1663:
13391
+ /***/ 20928:
13322
13392
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13323
13393
 
13324
13394
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -13334,12 +13404,26 @@ const reset = () => {
13334
13404
  * @param {string} imageId The image id of the referenced image
13335
13405
  * @returns
13336
13406
  */
13337
- function getSOPInstanceAttributes(imageId) {
13407
+ function getSOPInstanceAttributes(imageId, displaySetService, annotation) {
13338
13408
  if (imageId) {
13339
13409
  return _getUIDFromImageID(imageId);
13340
13410
  }
13341
-
13342
- // Todo: implement for volume viewports and use the referencedSeriesInstanceUID
13411
+ const {
13412
+ metadata
13413
+ } = annotation;
13414
+ const {
13415
+ volumeId
13416
+ } = metadata;
13417
+ const displaySet = displaySetService.getDisplaySetsBy(displaySet => volumeId.includes(displaySet.uid))[0];
13418
+ const {
13419
+ StudyInstanceUID,
13420
+ SeriesInstanceUID
13421
+ } = displaySet;
13422
+ return {
13423
+ SOPInstanceUID: undefined,
13424
+ SeriesInstanceUID,
13425
+ StudyInstanceUID
13426
+ };
13343
13427
  }
13344
13428
  function _getUIDFromImageID(imageId) {
13345
13429
  const instance = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.metaData.get('instance', imageId);