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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/{117.bundle.a80b1511ef4b302fb7cc.js → 117.bundle.ba41cf7978afb629dcff.js} +66 -18
  2. package/dist/{889.bundle.5611d644c8cb24f864ff.js → 121.bundle.461cdd26c51e085deaec.js} +40 -12
  3. package/dist/{998.bundle.b8ffa2bc390d5d4edf16.js → 129.bundle.ccccc4e42658b699feca.js} +22 -21
  4. package/dist/{574.bundle.72bd5061ccd504235419.js → 139.bundle.679c4baad7c7f65ebabd.js} +25 -37
  5. package/dist/{989.bundle.bf6bc62794b717824f7e.js → 14.bundle.d598ec76439971a82907.js} +5 -5
  6. package/dist/{783.bundle.126cd640a5fd49804d8e.js → 140.bundle.62747296bb3696dd345f.js} +2 -2
  7. package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.79cc35bc3e6b792636cd.js} +334 -44
  8. package/dist/{544.bundle.e8227e98860e39636a00.js → 172.bundle.e3e82e398b39958577e6.js} +16 -30
  9. package/dist/{487.bundle.b1a29dcf2b152693935d.js → 194.bundle.9cd41c6e2b415f350d2c.js} +5 -5
  10. package/dist/{699.bundle.2adb0c0ad7f7cb9e338a.js → 211.bundle.ab7c92a8a4df9aec1b43.js} +33 -4
  11. package/dist/{776.bundle.9680d347bafb63f8688a.js → 218.bundle.4a08087f702d768af647.js} +14 -9
  12. package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.343bcd0be60d0ae61901.js} +396 -56
  13. package/dist/{530.bundle.17b9a34fefff133e5379.js → 265.bundle.b32a0cc143efa80ee3cc.js} +8 -12
  14. package/dist/{862.bundle.55dde21bab4c841b6259.js → 323.bundle.8e5137bf61179c8704d6.js} +5 -9
  15. package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.67c49f2e52829a5696a4.js} +7 -0
  16. package/dist/{550.bundle.a2267752bc8874fedfd5.js → 363.bundle.954d90c5692cbb941b4a.js} +226 -150
  17. package/dist/{473.bundle.6cd4be953853f35b29c3.js → 367.bundle.6a0746aeca702ae6eba6.js} +279 -29
  18. package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.02108fbb881fbe75b59c.js} +82 -11
  19. package/dist/{682.bundle.ec07ec1bc2f69f9d0d94.js → 382.bundle.d4252c006f2f98873356.js} +24 -4
  20. package/dist/{907.bundle.13dc5f4b5581d12562b8.js → 444.bundle.4cd603be188efd1315c0.js} +4 -4
  21. package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
  22. package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.3dcc63f03d9c252a9bee.js} +885 -312
  23. package/dist/{905.bundle.4105e428f61f925a310d.js → 552.bundle.d313d009d2c2e305dded.js} +3 -3
  24. package/dist/{981.bundle.a0fabcf9845c1a623990.js → 555.bundle.c6c0a1fe9e2c03f8af8c.js} +7 -6
  25. package/dist/{939.bundle.9d93b2e47c52338747a2.js → 612.bundle.297a033523539e0b47f9.js} +2 -2
  26. package/dist/{295.bundle.9926ff25c6dbf53845b1.js → 675.bundle.c9720f40fd7c7e9b7e54.js} +5 -9
  27. package/dist/{325.bundle.98612a2afacf5d63b25a.js → 717.bundle.3a92ee3bed8e262a711f.js} +32 -23
  28. package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
  29. package/dist/{121.bundle.b582314ec0024fdf2d15.js → 792.bundle.485ad2f98823a4b3feb1.js} +6 -10
  30. package/dist/{721.bundle.a210baa38d34b9bcacfd.js → 799.bundle.990e75c08a3433cf365e.js} +12 -12
  31. package/dist/{448.bundle.70dc1363d8b2783dc51e.js → 806.bundle.66255407803c821b5dd8.js} +5 -5
  32. package/dist/{390.bundle.2751b81dbe439a40ba90.js → 827.bundle.0ea035fe8a66ed623ca9.js} +446 -53
  33. package/dist/{297.bundle.194d8985ab974839b5b6.js → 837.bundle.ff9fe44bf863a5bceabc.js} +2 -2
  34. package/dist/{961.bundle.2c81565fe334d6cd2f9c.js → 853.bundle.c9ec20a34533e6a3cc9a.js} +4 -4
  35. package/dist/{94.bundle.9b92ece5801a7df7d08c.js → 920.bundle.a1610f58fa4bbb2fec10.js} +39 -9
  36. package/dist/{243.bundle.96439f589bc338b977ea.js → 989.bundle.846e557e47d4cae6d040.js} +4 -4
  37. package/dist/app-config.js +5 -1
  38. package/dist/app.bundle.css +5 -4
  39. package/dist/{app.bundle.cbecae40543f47cc8c7e.js → app.bundle.e7838557fb4fd76da32e.js} +162742 -46045
  40. package/dist/assets/images/action-new-dialog.svg +14 -0
  41. package/dist/assets/images/arrow-down.svg +5 -0
  42. package/dist/assets/images/arrow-left-small.svg +6 -0
  43. package/dist/assets/images/arrow-left.svg +6 -0
  44. package/dist/assets/images/arrow-right-small.svg +6 -0
  45. package/dist/assets/images/arrow-right.svg +6 -0
  46. package/dist/assets/images/calendar.svg +5 -0
  47. package/dist/assets/images/cancel.svg +8 -0
  48. package/dist/assets/images/checkbox-active.svg +9 -0
  49. package/dist/assets/images/checkbox-checked.svg +9 -0
  50. package/dist/assets/images/checkbox-default.svg +3 -0
  51. package/dist/assets/images/checkbox-unchecked.svg +3 -0
  52. package/dist/assets/images/chevron-down.svg +3 -0
  53. package/dist/assets/images/chevron-left.svg +3 -0
  54. package/dist/assets/images/chevron-menu.svg +12 -0
  55. package/dist/assets/images/chevron-next.svg +6 -0
  56. package/dist/assets/images/chevron-prev.svg +6 -0
  57. package/dist/assets/images/chevron-right.svg +3 -0
  58. package/dist/assets/images/circled-checkmark.svg +6 -0
  59. package/dist/assets/images/clipboard.svg +1 -0
  60. package/dist/assets/images/closeIcon.svg +3 -0
  61. package/dist/assets/images/content-next.svg +9 -0
  62. package/dist/assets/images/content-prev.svg +9 -0
  63. package/dist/assets/images/dotted-circle.svg +3 -0
  64. package/dist/assets/images/edit-patient.svg +15 -0
  65. package/dist/assets/images/exclamation.svg +9 -0
  66. package/dist/assets/images/external-link.svg +5 -0
  67. package/dist/assets/images/eye-hidden.svg +8 -0
  68. package/dist/assets/images/eye-visible.svg +6 -0
  69. package/dist/assets/images/focus-frame-target.svg +13 -0
  70. package/dist/assets/images/group-layers.svg +6 -0
  71. package/dist/assets/images/icon-add.svg +15 -0
  72. package/dist/assets/images/icon-alert-small.svg +8 -0
  73. package/dist/assets/images/icon-chevron-patient.svg +12 -0
  74. package/dist/assets/images/icon-clear-field.svg +8 -0
  75. package/dist/assets/images/icon-close.svg +8 -0
  76. package/dist/assets/images/icon-color-lut.svg +23 -0
  77. package/dist/assets/images/icon-delete.svg +17 -0
  78. package/dist/assets/images/icon-disclosure-close.svg +12 -0
  79. package/dist/assets/images/icon-disclosure-open.svg +12 -0
  80. package/dist/assets/images/icon-display-settings.svg +21 -0
  81. package/dist/assets/images/icon-more-menu.svg +17 -0
  82. package/dist/assets/images/icon-mpr-alt.svg +9 -0
  83. package/dist/assets/images/icon-multiple-patients.svg +21 -0
  84. package/dist/assets/images/icon-next-inactive.svg +6 -0
  85. package/dist/assets/images/icon-next.svg +6 -0
  86. package/dist/assets/images/icon-patient.svg +13 -0
  87. package/dist/assets/images/icon-pause.svg +6 -0
  88. package/dist/assets/images/icon-play.svg +6 -0
  89. package/dist/assets/images/icon-prev-inactive.svg +6 -0
  90. package/dist/assets/images/icon-prev.svg +6 -0
  91. package/dist/assets/images/icon-rename.svg +15 -0
  92. package/dist/assets/images/icon-search.svg +9 -0
  93. package/dist/assets/images/icon-settings.svg +13 -0
  94. package/dist/assets/images/icon-status-alert.svg +8 -0
  95. package/dist/assets/images/icon-tool-scissor.svg +17 -0
  96. package/dist/assets/images/icon-toolbar-back.svg +12 -0
  97. package/dist/assets/images/icon-transferring.svg +6 -0
  98. package/dist/assets/images/icon-upload.svg +6 -0
  99. package/dist/assets/images/icons-alert-outline.svg +8 -0
  100. package/dist/assets/images/illustration-investigational-use.svg +20 -0
  101. package/dist/assets/images/info-action.svg +10 -0
  102. package/dist/assets/images/info-link.svg +7 -0
  103. package/dist/assets/images/info.svg +3 -0
  104. package/dist/assets/images/launch-arrow.svg +7 -0
  105. package/dist/assets/images/launch-info.svg +8 -0
  106. package/dist/assets/images/layout-advanced-3d-four-up.svg +13 -0
  107. package/dist/assets/images/layout-advanced-3d-main.svg +12 -0
  108. package/dist/assets/images/layout-advanced-3d-only.svg +9 -0
  109. package/dist/assets/images/layout-advanced-3d-primary.svg +12 -0
  110. package/dist/assets/images/layout-advanced-axial-primary.svg +11 -0
  111. package/dist/assets/images/layout-advanced-mpr.svg +11 -0
  112. package/dist/assets/images/layout-common-1x1.svg +9 -0
  113. package/dist/assets/images/layout-common-1x2.svg +10 -0
  114. package/dist/assets/images/layout-common-2x2.svg +11 -0
  115. package/dist/assets/images/layout-common-2x3.svg +12 -0
  116. package/dist/assets/images/list-bullets.svg +10 -0
  117. package/dist/assets/images/loading-ohif-mark.svg +5 -0
  118. package/dist/assets/images/lock.svg +1 -0
  119. package/dist/assets/images/logo-ohif-small.svg +5 -0
  120. package/dist/assets/images/magnifier.svg +7 -0
  121. package/dist/assets/images/navigation-panel-right-hide.svg +5 -0
  122. package/dist/assets/images/navigation-panel-right-reveal.svg +5 -0
  123. package/dist/assets/images/next-arrow.svg +12 -0
  124. package/dist/assets/images/notifications-error.svg +8 -0
  125. package/dist/assets/images/notifications-info.svg +8 -0
  126. package/dist/assets/images/notifications-success.svg +6 -0
  127. package/dist/assets/images/notifications-warning.svg +8 -0
  128. package/dist/assets/images/notificationwarning-diamond.svg +10 -0
  129. package/dist/assets/images/ohif-logo-color-darkbg.svg +20 -0
  130. package/dist/assets/images/ohif-logo.svg +18 -0
  131. package/dist/assets/images/old-play.svg +9 -0
  132. package/dist/assets/images/old-stop.svg +9 -0
  133. package/dist/assets/images/old-trash.svg +9 -0
  134. package/dist/assets/images/panel-group-more.svg +6 -0
  135. package/dist/assets/images/panel-group-open-close.svg +6 -0
  136. package/dist/assets/images/pencil.svg +4 -0
  137. package/dist/assets/images/power-off.svg +11 -0
  138. package/dist/assets/images/prev-arrow.svg +12 -0
  139. package/dist/assets/images/profile.svg +1 -0
  140. package/dist/assets/images/push-left.svg +5 -0
  141. package/dist/assets/images/push-right.svg +5 -0
  142. package/dist/assets/images/row-add.svg +8 -0
  143. package/dist/assets/images/row-edit.svg +9 -0
  144. package/dist/assets/images/row-hidden.svg +11 -0
  145. package/dist/assets/images/row-lock.svg +7 -0
  146. package/dist/assets/images/row-shown.svg +9 -0
  147. package/dist/assets/images/row-unlock.svg +7 -0
  148. package/dist/assets/images/settings.svg +6 -0
  149. package/dist/assets/images/side-panel-close-left.svg +14 -0
  150. package/dist/assets/images/side-panel-close-right.svg +14 -0
  151. package/dist/assets/images/sorting-active-down.svg +6 -0
  152. package/dist/assets/images/sorting-active-up.svg +6 -0
  153. package/dist/assets/images/sorting.svg +6 -0
  154. package/dist/assets/images/status-alert-warning.svg +9 -0
  155. package/dist/assets/images/status-alert.svg +7 -0
  156. package/dist/assets/images/status-locked.svg +7 -0
  157. package/dist/assets/images/status-tracked.svg +7 -0
  158. package/dist/assets/images/status-untracked.svg +6 -0
  159. package/dist/assets/images/tab-4d.svg +13 -0
  160. package/dist/assets/images/tab-linear.svg +8 -0
  161. package/dist/assets/images/tab-patient-info.svg +7 -0
  162. package/dist/assets/images/tab-roi-threshold.svg +10 -0
  163. package/dist/assets/images/tab-segmentation.svg +11 -0
  164. package/dist/assets/images/tab-studies.svg +13 -0
  165. package/dist/assets/images/tool-3d-rotate.svg +20 -0
  166. package/dist/assets/images/tool-angle.svg +12 -0
  167. package/dist/assets/images/tool-annotate.svg +11 -0
  168. package/dist/assets/images/tool-bidirectional.svg +21 -0
  169. package/dist/assets/images/tool-calibrate.svg +19 -0
  170. package/dist/assets/images/tool-capture.svg +10 -0
  171. package/dist/assets/images/tool-cine.svg +9 -0
  172. package/dist/assets/images/tool-circle.svg +8 -0
  173. package/dist/assets/images/tool-create-threshold.svg +9 -0
  174. package/dist/assets/images/tool-crosshair.svg +14 -0
  175. package/dist/assets/images/tool-dicom-tag-browser.svg +15 -0
  176. package/dist/assets/images/tool-flip-horizontal.svg +10 -0
  177. package/dist/assets/images/tool-freehand-polygon.svg +37 -0
  178. package/dist/assets/images/tool-freehand-roi.svg +12 -0
  179. package/dist/assets/images/tool-freehand.svg +34 -0
  180. package/dist/assets/images/tool-fusion-color.svg +13 -0
  181. package/dist/assets/images/tool-invert.svg +10 -0
  182. package/dist/assets/images/tool-layout-default.svg +22 -0
  183. package/dist/assets/images/tool-length.svg +16 -0
  184. package/dist/assets/images/tool-magnetic-roi.svg +17 -0
  185. package/dist/assets/images/tool-magnify.svg +7 -0
  186. package/dist/assets/images/tool-measure-elipse.svg +12 -0
  187. package/dist/assets/images/tool-more-menu.svg +6 -0
  188. package/dist/assets/images/tool-move.svg +13 -0
  189. package/dist/assets/images/tool-polygon.svg +3 -0
  190. package/dist/assets/images/tool-quick-magnify.svg +11 -0
  191. package/dist/assets/images/tool-rectangle.svg +12 -0
  192. package/dist/assets/images/tool-reference-lines.svg +13 -0
  193. package/dist/assets/images/tool-reset.svg +9 -0
  194. package/dist/assets/images/tool-rotate-right.svg +12 -0
  195. package/dist/assets/images/tool-seg-brush.svg +9 -0
  196. package/dist/assets/images/tool-seg-eraser.svg +10 -0
  197. package/dist/assets/images/tool-seg-shape.svg +9 -0
  198. package/dist/assets/images/tool-seg-threshold.svg +17 -0
  199. package/dist/assets/images/tool-spline-roi.svg +14 -0
  200. package/dist/assets/images/tool-stack-image-sync.svg +10 -0
  201. package/dist/assets/images/tool-stack-scroll.svg +10 -0
  202. package/dist/assets/images/tool-toggle-dicom-overlay.svg +9 -0
  203. package/dist/assets/images/tool-ultrasound-bidirectional.svg +15 -0
  204. package/dist/assets/images/tool-window-level.svg +9 -0
  205. package/dist/assets/images/tool-zoom.svg +9 -0
  206. package/dist/assets/images/tracked.svg +6 -0
  207. package/dist/assets/images/ui-arrow-down.svg +3 -0
  208. package/dist/assets/images/ui-arrow-left.svg +3 -0
  209. package/dist/assets/images/ui-arrow-right.svg +3 -0
  210. package/dist/assets/images/ui-arrow-up.svg +3 -0
  211. package/dist/assets/images/unlink.svg +9 -0
  212. package/dist/assets/images/viewport-status-tracked.svg +13 -0
  213. package/dist/assets/images/viewport-window-level.svg +17 -0
  214. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  215. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  216. package/dist/google.js +1 -0
  217. package/dist/{histogram-worker.bundle.829e14ec12c2b41a4323.js → histogram-worker.bundle.6b31e5ed4c4a7a6998f2.js} +2 -2
  218. package/dist/index.html +1 -1
  219. package/dist/{polySeg.bundle.1799686b019040500219.js → polySeg.bundle.cc8400971fca41347b25.js} +3 -3
  220. package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.59ea76ac47db7a736234.js} +4 -4
  221. package/dist/sw.js +1 -1
  222. package/package.json +26 -23
  223. /package/dist/{998.css → 129.css} +0 -0
  224. /package/dist/{574.css → 139.css} +0 -0
  225. /package/dist/{544.css → 172.css} +0 -0
  226. /package/dist/{550.css → 363.css} +0 -0
  227. /package/dist/{325.css → 404.css} +0 -0
  228. /package/dist/{481.css → 717.css} +0 -0
  229. /package/dist/{726.bundle.c8de818cf1a3ff0cf7d2.js → 726.bundle.90d63d40a19b058034ee.js} +0 -0
  230. /package/dist/{835.bundle.4c0eaa2c1a427ee41817.js → 835.bundle.5d1951da8bbc6afdf3e0.js} +0 -0
  231. /package/dist/{931.bundle.d270a1fda9a2836c3cc5.js → 931.bundle.058f8de4606f27b31f4f.js} +0 -0
@@ -1,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
@@ -182,7 +182,7 @@ var dist_esm = __webpack_require__(39371);
182
182
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
183
183
  var streaming_image_volume_loader_dist_esm = __webpack_require__(23722);
184
184
  // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
185
- var src = __webpack_require__(8633);
185
+ var src = __webpack_require__(75186);
186
186
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js
187
187
  var cornerstoneDICOMImageLoader_min = __webpack_require__(54578);
188
188
  var cornerstoneDICOMImageLoader_min_default = /*#__PURE__*/__webpack_require__.n(cornerstoneDICOMImageLoader_min);
@@ -260,8 +260,8 @@ function destroy() {
260
260
  }
261
261
  webWorkers.length = 0;
262
262
  }
263
- // EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
264
- var ui_src = __webpack_require__(5085);
263
+ // EXTERNAL MODULE: ../../ui/src/index.js + 782 modules
264
+ var ui_src = __webpack_require__(79047);
265
265
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/callInputDialog.tsx
266
266
 
267
267
 
@@ -437,7 +437,7 @@ function showLabelAnnotationPopup(measurement, uiDialogService, labelConfig) {
437
437
  }
438
438
  /* harmony default export */ const utils_callInputDialog = (callInputDialog);
439
439
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
440
- var state = __webpack_require__(71353);
440
+ var state = __webpack_require__(83910);
441
441
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/getActiveViewportEnabledElement.ts
442
442
 
443
443
 
@@ -558,7 +558,7 @@ function onCompletedCalibrationLine(servicesManager, csToolsEvent) {
558
558
  });
559
559
  }
560
560
  // EXTERNAL MODULE: ../../core/src/utils/index.js + 26 modules
561
- var utils = __webpack_require__(17541);
561
+ var utils = __webpack_require__(86890);
562
562
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/tools/OverlayPlaneModuleProvider.ts
563
563
 
564
564
  const _cachedOverlayMetadata = new Map();
@@ -861,6 +861,7 @@ function initCornerstoneTools(configuration = {}) {
861
861
  (0,dist_esm.addTool)(dist_esm.SplineROITool);
862
862
  (0,dist_esm.addTool)(dist_esm.LivewireContourTool);
863
863
  (0,dist_esm.addTool)(dist_esm.OrientationMarkerTool);
864
+ (0,dist_esm.addTool)(dist_esm.PlanarFreehandContourSegmentationTool);
864
865
 
865
866
  // Modify annotation tools to use dashed lines on SR
866
867
  const annotationStyle = {
@@ -911,13 +912,14 @@ const toolNames = {
911
912
  SplineROI: dist_esm.SplineROITool.toolName,
912
913
  LivewireContour: dist_esm.LivewireContourTool.toolName,
913
914
  PlanarFreehandROI: dist_esm.PlanarFreehandROITool.toolName,
914
- OrientationMarker: dist_esm.OrientationMarkerTool.toolName
915
+ OrientationMarker: dist_esm.OrientationMarkerTool.toolName,
916
+ PlanarFreehandContourSegmentation: dist_esm.PlanarFreehandContourSegmentationTool.toolName
915
917
  };
916
918
 
917
919
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js
918
920
  /* harmony default export */ const supportedTools = (['Length', 'EllipticalROI', 'CircleROI', 'Bidirectional', 'ArrowAnnotate', 'Angle', 'CobbAngle', 'Probe', 'RectangleROI', 'PlanarFreehandROI', 'SplineROI', 'LivewireContour', 'Probe', 'UltrasoundDirectionalTool']);
919
921
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/utils/getSOPInstanceAttributes.js
920
- var getSOPInstanceAttributes = __webpack_require__(1663);
922
+ var getSOPInstanceAttributes = __webpack_require__(20928);
921
923
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts
922
924
 
923
925
 
@@ -957,12 +959,12 @@ const Length = {
957
959
  SOPInstanceUID,
958
960
  SeriesInstanceUID,
959
961
  StudyInstanceUID
960
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
962
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
961
963
  let displaySet;
962
964
  if (SOPInstanceUID) {
963
965
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
964
966
  } else {
965
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
967
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
966
968
  }
967
969
  const {
968
970
  points,
@@ -980,6 +982,7 @@ const Length = {
980
982
  metadata,
981
983
  referenceSeriesUID: SeriesInstanceUID,
982
984
  referenceStudyUID: StudyInstanceUID,
985
+ referencedImageId,
983
986
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
984
987
  toolName: metadata.toolName,
985
988
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1009,15 +1012,12 @@ function getMappedAnnotations(annotation, displaySetService) {
1009
1012
  const annotations = [];
1010
1013
  Object.keys(cachedStats).forEach(targetId => {
1011
1014
  const targetStats = cachedStats[targetId];
1012
- if (!referencedImageId) {
1013
- throw new Error('Non-acquisition plane measurement mapping not supported');
1014
- }
1015
1015
  const {
1016
1016
  SOPInstanceUID,
1017
1017
  SeriesInstanceUID,
1018
1018
  frameNumber
1019
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
1020
- const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1019
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1020
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1021
1021
  const {
1022
1022
  SeriesNumber
1023
1023
  } = displaySet;
@@ -1196,12 +1196,12 @@ const Bidirectional = {
1196
1196
  SOPInstanceUID,
1197
1197
  SeriesInstanceUID,
1198
1198
  StudyInstanceUID
1199
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
1199
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1200
1200
  let displaySet;
1201
1201
  if (SOPInstanceUID) {
1202
1202
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1203
1203
  } else {
1204
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1204
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1205
1205
  }
1206
1206
  const {
1207
1207
  points,
@@ -1219,6 +1219,7 @@ const Bidirectional = {
1219
1219
  metadata,
1220
1220
  referenceSeriesUID: SeriesInstanceUID,
1221
1221
  referenceStudyUID: StudyInstanceUID,
1222
+ referencedImageId,
1222
1223
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
1223
1224
  toolName: metadata.toolName,
1224
1225
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1249,15 +1250,12 @@ function Bidirectional_getMappedAnnotations(annotation, displaySetService) {
1249
1250
  const annotations = [];
1250
1251
  Object.keys(cachedStats).forEach(targetId => {
1251
1252
  const targetStats = cachedStats[targetId];
1252
- if (!referencedImageId) {
1253
- throw new Error('Non-acquisition plane measurement mapping not supported');
1254
- }
1255
1253
  const {
1256
1254
  SOPInstanceUID,
1257
1255
  SeriesInstanceUID,
1258
1256
  frameNumber
1259
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
1260
- const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1257
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1258
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1261
1259
  const {
1262
1260
  SeriesNumber
1263
1261
  } = displaySet;
@@ -1391,12 +1389,12 @@ const EllipticalROI = {
1391
1389
  SOPInstanceUID,
1392
1390
  SeriesInstanceUID,
1393
1391
  StudyInstanceUID
1394
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
1392
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1395
1393
  let displaySet;
1396
1394
  if (SOPInstanceUID) {
1397
1395
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1398
1396
  } else {
1399
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1397
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1400
1398
  }
1401
1399
  const {
1402
1400
  points,
@@ -1414,6 +1412,7 @@ const EllipticalROI = {
1414
1412
  metadata,
1415
1413
  referenceSeriesUID: SeriesInstanceUID,
1416
1414
  referenceStudyUID: StudyInstanceUID,
1415
+ referencedImageId,
1417
1416
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
1418
1417
  toolName: metadata.toolName,
1419
1418
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1443,16 +1442,12 @@ function EllipticalROI_getMappedAnnotations(annotation, displaySetService) {
1443
1442
  const annotations = [];
1444
1443
  Object.keys(cachedStats).forEach(targetId => {
1445
1444
  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
1445
  const {
1451
1446
  SOPInstanceUID,
1452
1447
  SeriesInstanceUID,
1453
1448
  frameNumber
1454
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
1455
- const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1449
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1450
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1456
1451
  const {
1457
1452
  SeriesNumber
1458
1453
  } = displaySet;
@@ -1572,7 +1567,7 @@ function EllipticalROI_getDisplayText(mappedAnnotations, displaySet, customizati
1572
1567
 
1573
1568
  const CircleROI = {
1574
1569
  toAnnotation: measurement => {},
1575
- toMeasurement: (csToolsEventDetail, DisplaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
1570
+ toMeasurement: (csToolsEventDetail, displaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
1576
1571
  const {
1577
1572
  annotation,
1578
1573
  viewportId
@@ -1599,18 +1594,18 @@ const CircleROI = {
1599
1594
  SOPInstanceUID,
1600
1595
  SeriesInstanceUID,
1601
1596
  StudyInstanceUID
1602
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
1597
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1603
1598
  let displaySet;
1604
1599
  if (SOPInstanceUID) {
1605
- displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1600
+ displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1606
1601
  } else {
1607
- displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1602
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1608
1603
  }
1609
1604
  const {
1610
1605
  points,
1611
1606
  textBox
1612
1607
  } = data.handles;
1613
- const mappedAnnotations = CircleROI_getMappedAnnotations(annotation, DisplaySetService);
1608
+ const mappedAnnotations = CircleROI_getMappedAnnotations(annotation, displaySetService);
1614
1609
  const displayText = CircleROI_getDisplayText(mappedAnnotations, displaySet, customizationService);
1615
1610
  const getReport = () => CircleROI_getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService);
1616
1611
  return {
@@ -1622,6 +1617,7 @@ const CircleROI = {
1622
1617
  metadata,
1623
1618
  referenceSeriesUID: SeriesInstanceUID,
1624
1619
  referenceStudyUID: StudyInstanceUID,
1620
+ referencedImageId,
1625
1621
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
1626
1622
  toolName: metadata.toolName,
1627
1623
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1633,7 +1629,7 @@ const CircleROI = {
1633
1629
  };
1634
1630
  }
1635
1631
  };
1636
- function CircleROI_getMappedAnnotations(annotation, DisplaySetService) {
1632
+ function CircleROI_getMappedAnnotations(annotation, displaySetService) {
1637
1633
  const {
1638
1634
  metadata,
1639
1635
  data
@@ -1651,16 +1647,12 @@ function CircleROI_getMappedAnnotations(annotation, DisplaySetService) {
1651
1647
  const annotations = [];
1652
1648
  Object.keys(cachedStats).forEach(targetId => {
1653
1649
  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
1650
  const {
1659
1651
  SOPInstanceUID,
1660
1652
  SeriesInstanceUID,
1661
1653
  frameNumber
1662
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
1663
- const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1654
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1655
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1664
1656
  const {
1665
1657
  SeriesNumber
1666
1658
  } = displaySet;
@@ -1812,12 +1804,12 @@ const ArrowAnnotate_Length = {
1812
1804
  SOPInstanceUID,
1813
1805
  SeriesInstanceUID,
1814
1806
  StudyInstanceUID
1815
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
1807
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1816
1808
  let displaySet;
1817
1809
  if (SOPInstanceUID) {
1818
1810
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1819
1811
  } else {
1820
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1812
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1821
1813
  }
1822
1814
  const {
1823
1815
  points,
@@ -1834,6 +1826,7 @@ const ArrowAnnotate_Length = {
1834
1826
  metadata,
1835
1827
  referenceSeriesUID: SeriesInstanceUID,
1836
1828
  referenceStudyUID: StudyInstanceUID,
1829
+ referencedImageId,
1837
1830
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
1838
1831
  toolName: metadata.toolName,
1839
1832
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1863,8 +1856,8 @@ function ArrowAnnotate_getMappedAnnotations(annotation, displaySetService) {
1863
1856
  SOPInstanceUID,
1864
1857
  SeriesInstanceUID,
1865
1858
  frameNumber
1866
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
1867
- const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1859
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1860
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1868
1861
  const {
1869
1862
  SeriesNumber
1870
1863
  } = displaySet;
@@ -1940,12 +1933,12 @@ const CobbAngle = {
1940
1933
  SOPInstanceUID,
1941
1934
  SeriesInstanceUID,
1942
1935
  StudyInstanceUID
1943
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
1936
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1944
1937
  let displaySet;
1945
1938
  if (SOPInstanceUID) {
1946
1939
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
1947
1940
  } else {
1948
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
1941
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
1949
1942
  }
1950
1943
  const {
1951
1944
  points,
@@ -1963,6 +1956,7 @@ const CobbAngle = {
1963
1956
  metadata,
1964
1957
  referenceSeriesUID: SeriesInstanceUID,
1965
1958
  referenceStudyUID: StudyInstanceUID,
1959
+ referencedImageId,
1966
1960
  frameNumber: mappedAnnotations?.[0]?.frameNumber || 1,
1967
1961
  toolName: metadata.toolName,
1968
1962
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -1974,7 +1968,7 @@ const CobbAngle = {
1974
1968
  };
1975
1969
  }
1976
1970
  };
1977
- function CobbAngle_getMappedAnnotations(annotation, DisplaySetService) {
1971
+ function CobbAngle_getMappedAnnotations(annotation, displaySetService) {
1978
1972
  const {
1979
1973
  metadata,
1980
1974
  data
@@ -1992,15 +1986,12 @@ function CobbAngle_getMappedAnnotations(annotation, DisplaySetService) {
1992
1986
  const annotations = [];
1993
1987
  Object.keys(cachedStats).forEach(targetId => {
1994
1988
  const targetStats = cachedStats[targetId];
1995
- if (!referencedImageId) {
1996
- throw new Error('Non-acquisition plane measurement mapping not supported');
1997
- }
1998
1989
  const {
1999
1990
  SOPInstanceUID,
2000
1991
  SeriesInstanceUID,
2001
1992
  frameNumber
2002
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
2003
- const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
1993
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
1994
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2004
1995
  const {
2005
1996
  SeriesNumber
2006
1997
  } = displaySet;
@@ -2125,12 +2116,12 @@ const Angle = {
2125
2116
  SOPInstanceUID,
2126
2117
  SeriesInstanceUID,
2127
2118
  StudyInstanceUID
2128
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
2119
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2129
2120
  let displaySet;
2130
2121
  if (SOPInstanceUID) {
2131
2122
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
2132
2123
  } else {
2133
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
2124
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2134
2125
  }
2135
2126
  const {
2136
2127
  points,
@@ -2155,11 +2146,12 @@ const Angle = {
2155
2146
  displayText: displayText,
2156
2147
  data: data.cachedStats,
2157
2148
  type: getValueTypeFromToolType(toolName),
2158
- getReport
2149
+ getReport,
2150
+ referencedImageId
2159
2151
  };
2160
2152
  }
2161
2153
  };
2162
- function Angle_getMappedAnnotations(annotation, DisplaySetService) {
2154
+ function Angle_getMappedAnnotations(annotation, displaySetService) {
2163
2155
  const {
2164
2156
  metadata,
2165
2157
  data
@@ -2177,15 +2169,12 @@ function Angle_getMappedAnnotations(annotation, DisplaySetService) {
2177
2169
  const annotations = [];
2178
2170
  Object.keys(cachedStats).forEach(targetId => {
2179
2171
  const targetStats = cachedStats[targetId];
2180
- if (!referencedImageId) {
2181
- throw new Error('Non-acquisition plane measurement mapping not supported');
2182
- }
2183
2172
  const {
2184
2173
  SOPInstanceUID,
2185
2174
  SeriesInstanceUID,
2186
2175
  frameNumber
2187
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
2188
- const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
2176
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2177
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2189
2178
  const {
2190
2179
  SeriesNumber
2191
2180
  } = displaySet;
@@ -2289,7 +2278,7 @@ const PlanarFreehandROI = {
2289
2278
  * @param {Function} getValueTypeFromToolType Function to get value type from tool type
2290
2279
  * @returns {Measurement} Measurement instance
2291
2280
  */
2292
- toMeasurement: (csToolsEventDetail, DisplaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
2281
+ toMeasurement: (csToolsEventDetail, displaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
2293
2282
  const {
2294
2283
  annotation
2295
2284
  } = csToolsEventDetail;
@@ -2316,12 +2305,12 @@ const PlanarFreehandROI = {
2316
2305
  SeriesInstanceUID,
2317
2306
  frameNumber,
2318
2307
  StudyInstanceUID
2319
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
2308
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2320
2309
  let displaySet;
2321
2310
  if (SOPInstanceUID) {
2322
- displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
2311
+ displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
2323
2312
  } else {
2324
- displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
2313
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2325
2314
  }
2326
2315
  return {
2327
2316
  uid: annotationUID,
@@ -2333,10 +2322,11 @@ const PlanarFreehandROI = {
2333
2322
  frameNumber,
2334
2323
  referenceSeriesUID: SeriesInstanceUID,
2335
2324
  referenceStudyUID: StudyInstanceUID,
2325
+ referencedImageId,
2336
2326
  toolName: metadata.toolName,
2337
2327
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
2338
2328
  label: data.label,
2339
- displayText: PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationService),
2329
+ displayText: PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationService, displaySetService),
2340
2330
  data: data.cachedStats,
2341
2331
  type: getValueTypeFromToolType(toolName),
2342
2332
  getReport: () => getColumnValueReport(annotation, customizationService)
@@ -2404,7 +2394,7 @@ function getColumnValueReport(annotation, customizationService) {
2404
2394
  * @param {Object} displaySet - The display set object.
2405
2395
  * @returns {string[]} - An array of display text.
2406
2396
  */
2407
- function PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationService) {
2397
+ function PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationService, displaySetService) {
2408
2398
  const {
2409
2399
  PlanarFreehandROI
2410
2400
  } = customizationService.get('cornerstone.measurements');
@@ -2415,13 +2405,10 @@ function PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationS
2415
2405
  metadata,
2416
2406
  data
2417
2407
  } = annotation;
2418
- if (!data.cachedStats || !data.cachedStats[`imageId:${metadata.referencedImageId}`]) {
2419
- return [];
2420
- }
2421
2408
  const {
2422
2409
  SOPInstanceUID,
2423
2410
  frameNumber
2424
- } = (0,getSOPInstanceAttributes/* default */.A)(metadata.referencedImageId);
2411
+ } = (0,getSOPInstanceAttributes/* default */.A)(metadata.referencedImageId, displaySetService, annotation);
2425
2412
  const displayTextArray = [];
2426
2413
  const instance = displaySet.images.find(image => image.SOPInstanceUID === SOPInstanceUID);
2427
2414
  let InstanceNumber;
@@ -2436,17 +2423,20 @@ function PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationS
2436
2423
  if (SeriesNumber) {
2437
2424
  displayTextArray.push(`S: ${SeriesNumber}${instanceText}${frameText}`);
2438
2425
  }
2439
- const stats = data.cachedStats[`imageId:${metadata.referencedImageId}`];
2426
+ const stats = data.cachedStats[`imageId:${metadata.referencedImageId}`] || Array.from(Object.values(data.cachedStats))[0];
2427
+ if (!stats) {
2428
+ return displayTextArray;
2429
+ }
2440
2430
  const roundValues = values => {
2441
2431
  if (Array.isArray(values)) {
2442
2432
  return values.map(value => {
2443
2433
  if (isNaN(value)) {
2444
2434
  return value;
2445
2435
  }
2446
- return src.utils.roundNumber(value);
2436
+ return src.utils.roundNumber(value, 2);
2447
2437
  });
2448
2438
  }
2449
- return isNaN(values) ? values : src.utils.roundNumber(values);
2439
+ return isNaN(values) ? values : src.utils.roundNumber(values, 2);
2450
2440
  };
2451
2441
  const findUnitForValue = (displayTextItems, value) => displayTextItems.find(({
2452
2442
  type,
@@ -2475,7 +2465,7 @@ function PlanarFreehandROI_getDisplayText(annotation, displaySet, customizationS
2475
2465
 
2476
2466
  const RectangleROI = {
2477
2467
  toAnnotation: measurement => {},
2478
- toMeasurement: (csToolsEventDetail, DisplaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
2468
+ toMeasurement: (csToolsEventDetail, displaySetService, CornerstoneViewportService, getValueTypeFromToolType, customizationService) => {
2479
2469
  const {
2480
2470
  annotation,
2481
2471
  viewportId
@@ -2502,18 +2492,18 @@ const RectangleROI = {
2502
2492
  SOPInstanceUID,
2503
2493
  SeriesInstanceUID,
2504
2494
  StudyInstanceUID
2505
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
2495
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2506
2496
  let displaySet;
2507
2497
  if (SOPInstanceUID) {
2508
- displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
2498
+ displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
2509
2499
  } else {
2510
- displaySet = DisplaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
2500
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2511
2501
  }
2512
2502
  const {
2513
2503
  points,
2514
2504
  textBox
2515
2505
  } = data.handles;
2516
- const mappedAnnotations = RectangleROI_getMappedAnnotations(annotation, DisplaySetService);
2506
+ const mappedAnnotations = RectangleROI_getMappedAnnotations(annotation, displaySetService);
2517
2507
  const displayText = RectangleROI_getDisplayText(mappedAnnotations, displaySet, customizationService);
2518
2508
  const getReport = () => RectangleROI_getReport(mappedAnnotations, points, FrameOfReferenceUID, customizationService);
2519
2509
  return {
@@ -2525,6 +2515,7 @@ const RectangleROI = {
2525
2515
  metadata,
2526
2516
  referenceSeriesUID: SeriesInstanceUID,
2527
2517
  referenceStudyUID: StudyInstanceUID,
2518
+ referencedImageId,
2528
2519
  frameNumber: mappedAnnotations[0]?.frameNumber || 1,
2529
2520
  toolName: metadata.toolName,
2530
2521
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -2536,7 +2527,7 @@ const RectangleROI = {
2536
2527
  };
2537
2528
  }
2538
2529
  };
2539
- function RectangleROI_getMappedAnnotations(annotation, DisplaySetService) {
2530
+ function RectangleROI_getMappedAnnotations(annotation, displaySetService) {
2540
2531
  const {
2541
2532
  metadata,
2542
2533
  data
@@ -2554,16 +2545,12 @@ function RectangleROI_getMappedAnnotations(annotation, DisplaySetService) {
2554
2545
  const annotations = [];
2555
2546
  Object.keys(cachedStats).forEach(targetId => {
2556
2547
  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
2548
  const {
2562
2549
  SOPInstanceUID,
2563
2550
  SeriesInstanceUID,
2564
2551
  frameNumber
2565
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
2566
- const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
2552
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
2553
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
2567
2554
  const {
2568
2555
  SeriesNumber
2569
2556
  } = displaySet;
@@ -3087,12 +3074,12 @@ const Probe = {
3087
3074
  SOPInstanceUID,
3088
3075
  SeriesInstanceUID,
3089
3076
  StudyInstanceUID
3090
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
3077
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
3091
3078
  let displaySet;
3092
3079
  if (SOPInstanceUID) {
3093
3080
  displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
3094
3081
  } else {
3095
- displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID);
3082
+ displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
3096
3083
  }
3097
3084
  const {
3098
3085
  points
@@ -3108,6 +3095,7 @@ const Probe = {
3108
3095
  metadata,
3109
3096
  referenceSeriesUID: SeriesInstanceUID,
3110
3097
  referenceStudyUID: StudyInstanceUID,
3098
+ referencedImageId,
3111
3099
  frameNumber: mappedAnnotations?.[0]?.frameNumber || 1,
3112
3100
  toolName: metadata.toolName,
3113
3101
  displaySetInstanceUID: displaySet.displaySetInstanceUID,
@@ -3119,7 +3107,7 @@ const Probe = {
3119
3107
  };
3120
3108
  }
3121
3109
  };
3122
- function Probe_getMappedAnnotations(annotation, DisplaySetService) {
3110
+ function Probe_getMappedAnnotations(annotation, displaySetService) {
3123
3111
  const {
3124
3112
  metadata,
3125
3113
  data
@@ -3137,15 +3125,12 @@ function Probe_getMappedAnnotations(annotation, DisplaySetService) {
3137
3125
  const annotations = [];
3138
3126
  Object.keys(cachedStats).forEach(targetId => {
3139
3127
  const targetStats = cachedStats[targetId];
3140
- if (!referencedImageId) {
3141
- throw new Error('Non-acquisition plane measurement mapping not supported');
3142
- }
3143
3128
  const {
3144
3129
  SOPInstanceUID,
3145
3130
  SeriesInstanceUID,
3146
3131
  frameNumber
3147
- } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
3148
- const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
3132
+ } = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, displaySetService, annotation);
3133
+ const displaySet = displaySetService.getDisplaySetsForSeries(SeriesInstanceUID)[0];
3149
3134
  const {
3150
3135
  SeriesNumber
3151
3136
  } = displaySet;
@@ -3925,7 +3910,7 @@ function _getVolumesFromViewport(viewport) {
3925
3910
  return viewport ? viewport.getActors().map(actor => esm.cache.getVolume(actor.uid)) : [];
3926
3911
  }
3927
3912
  function _getVolumeFromViewport(viewport) {
3928
- const volumes = _getVolumesFromViewport(viewport);
3913
+ const volumes = _getVolumesFromViewport(viewport).filter(volume => volume);
3929
3914
  const dynamicVolume = volumes.find(volume => volume.isDynamicVolume());
3930
3915
  return dynamicVolume ?? volumes[0];
3931
3916
  }
@@ -4944,12 +4929,16 @@ async function init({
4944
4929
  clearOnModeExit: true
4945
4930
  });
4946
4931
  const labelmapRepresentation = dist_esm.Enums.SegmentationRepresentations.Labelmap;
4932
+ const contourRepresentation = dist_esm.Enums.SegmentationRepresentations.Contour;
4947
4933
  dist_esm.segmentation.config.setGlobalRepresentationConfig(labelmapRepresentation, {
4948
4934
  fillAlpha: 0.5,
4949
4935
  fillAlphaInactive: 0.2,
4950
4936
  outlineOpacity: 1,
4951
4937
  outlineOpacityInactive: 0.65
4952
4938
  });
4939
+ dist_esm.segmentation.config.setGlobalRepresentationConfig(contourRepresentation, {
4940
+ renderFill: false
4941
+ });
4953
4942
  const metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
4954
4943
  esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingImageVolume', streaming_image_volume_loader_dist_esm/* cornerstoneStreamingImageVolumeLoader */.FC);
4955
4944
  esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingDynamicImageVolume', streaming_image_volume_loader_dist_esm/* cornerstoneStreamingDynamicImageVolumeLoader */.Mr);
@@ -5037,9 +5026,13 @@ async function init({
5037
5026
  const {
5038
5027
  element
5039
5028
  } = evt.detail;
5029
+ const enabledElement = (0,esm.getEnabledElement)(element);
5030
+ if (!enabledElement) {
5031
+ return;
5032
+ }
5040
5033
  const {
5041
5034
  viewportId
5042
- } = (0,esm.getEnabledElement)(element);
5035
+ } = enabledElement;
5043
5036
  commandsManager.runCommand('resetCrosshairs', {
5044
5037
  viewportId
5045
5038
  });
@@ -5101,8 +5094,8 @@ function _showCPURenderingModal(uiModalService, hangingProtocolService) {
5101
5094
  }
5102
5095
  });
5103
5096
  }
5104
- // EXTERNAL MODULE: ../../../node_modules/react-dropzone/dist/es/index.js + 5 modules
5105
- var es = __webpack_require__(5013);
5097
+ // EXTERNAL MODULE: ../../../node_modules/react-dropzone/dist/es/index.js + 4 modules
5098
+ var es = __webpack_require__(92854);
5106
5099
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
5107
5100
  var prop_types = __webpack_require__(11374);
5108
5101
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
@@ -5791,6 +5784,11 @@ const tools = {
5791
5784
  }],
5792
5785
  enabled: [{
5793
5786
  toolName: toolNames.SegmentationDisplay
5787
+ }, {
5788
+ toolName: toolNames.PlanarFreehandContourSegmentation,
5789
+ configuration: {
5790
+ displayOnePointAsCrosshairs: true
5791
+ }
5794
5792
  }]
5795
5793
  };
5796
5794
  function getCustomizationModule() {
@@ -6068,7 +6066,9 @@ const CornerstoneViewportDownloadForm = ({
6068
6066
  // for some reason we need a reset camera here, and I don't know why
6069
6067
  downloadViewport.resetCamera();
6070
6068
  const presentation = activeViewport.getViewPresentation();
6071
- downloadViewport.setView(activeViewport.getViewReference(), presentation);
6069
+ if (downloadViewport.setView) {
6070
+ downloadViewport.setView(activeViewport.getViewReference(), presentation);
6071
+ }
6072
6072
  downloadViewport.render();
6073
6073
  });
6074
6074
  });
@@ -9351,6 +9351,7 @@ class SegmentationService extends src/* PubSubService */.Rc {
9351
9351
  };
9352
9352
  this.addSegmentationRepresentationToToolGroup = async (toolGroupId, segmentationId, hydrateSegmentation = false, representationType = dist_esm.Enums.SegmentationRepresentations.Labelmap, suppressEvents = false) => {
9353
9353
  const segmentation = this.getSegmentation(segmentationId);
9354
+ toolGroupId = toolGroupId || this._getApplicableToolGroupId();
9354
9355
  if (!segmentation) {
9355
9356
  throw new Error(`Segmentation with segmentationId ${segmentationId} not found.`);
9356
9357
  }
@@ -10784,7 +10785,23 @@ class CornerstoneCacheService {
10784
10785
  }
10785
10786
  async invalidateViewportData(viewportData, invalidatedDisplaySetInstanceUID, dataSource, displaySetService) {
10786
10787
  if (viewportData.viewportType === esm.Enums.ViewportType.STACK) {
10787
- return this._getCornerstoneStackImageIds(displaySetService.getDisplaySetByUID(invalidatedDisplaySetInstanceUID), dataSource);
10788
+ const displaySet = displaySetService.getDisplaySetByUID(invalidatedDisplaySetInstanceUID);
10789
+ const imageIds = this._getCornerstoneStackImageIds(displaySet, dataSource);
10790
+
10791
+ // remove images from the cache to be able to re-load them
10792
+ imageIds.forEach(imageId => {
10793
+ if (esm.cache.getImageLoadObject(imageId)) {
10794
+ esm.cache.removeImageLoadObject(imageId);
10795
+ }
10796
+ });
10797
+ return {
10798
+ viewportType: esm.Enums.ViewportType.STACK,
10799
+ data: {
10800
+ StudyInstanceUID: displaySet.StudyInstanceUID,
10801
+ displaySetInstanceUID: invalidatedDisplaySetInstanceUID,
10802
+ imageIds
10803
+ }
10804
+ };
10788
10805
  }
10789
10806
 
10790
10807
  // Todo: grab the volume and get the id from the viewport itself
@@ -10814,32 +10831,48 @@ class CornerstoneCacheService {
10814
10831
  const newViewportData = await this._getVolumeViewportData(dataSource, displaySets, viewportData.viewportType);
10815
10832
  return newViewportData;
10816
10833
  }
10817
- _getStackViewportData(dataSource, displaySets, initialImageIndex, viewportType) {
10818
- // For Stack Viewport we don't have fusion currently
10819
- const displaySet = displaySets[0];
10834
+ async _getStackViewportData(dataSource, displaySets, initialImageIndex, viewportType) {
10835
+ const overlayDisplaySets = displaySets.filter(ds => ds.isOverlayDisplaySet);
10836
+ const nonOverlayDisplaySets = displaySets.filter(ds => !ds.isOverlayDisplaySet);
10837
+
10838
+ // load overlays if they are not loaded
10839
+ for (const overlayDisplaySet of overlayDisplaySets) {
10840
+ if (overlayDisplaySet.load && overlayDisplaySet.load instanceof Function) {
10841
+ const {
10842
+ userAuthenticationService
10843
+ } = this.servicesManager.services;
10844
+ const headers = userAuthenticationService.getAuthorizationHeader();
10845
+ await overlayDisplaySet.load({
10846
+ headers
10847
+ });
10848
+ }
10849
+ }
10850
+ const displaySet = nonOverlayDisplaySets[0];
10820
10851
  let stackImageIds = this.stackImageIds.get(displaySet.displaySetInstanceUID);
10821
10852
  if (!stackImageIds) {
10822
10853
  stackImageIds = this._getCornerstoneStackImageIds(displaySet, dataSource);
10823
10854
  this.stackImageIds.set(displaySet.displaySetInstanceUID, stackImageIds);
10824
10855
  }
10825
- const {
10826
- displaySetInstanceUID,
10827
- StudyInstanceUID,
10828
- isCompositeStack
10829
- } = displaySet;
10830
- const StackViewportData = {
10831
- viewportType,
10832
- data: {
10856
+
10857
+ // Ensuring the first non-overlay `displaySet` is always the primary one
10858
+ const StackViewportData = [displaySet, ...overlayDisplaySets].map(ds => {
10859
+ const {
10860
+ displaySetInstanceUID,
10861
+ StudyInstanceUID,
10862
+ isCompositeStack
10863
+ } = ds;
10864
+ return {
10833
10865
  StudyInstanceUID,
10834
10866
  displaySetInstanceUID,
10835
10867
  isCompositeStack,
10836
- imageIds: stackImageIds
10837
- }
10868
+ imageIds: stackImageIds,
10869
+ initialImageIndex
10870
+ };
10871
+ });
10872
+ return {
10873
+ viewportType,
10874
+ data: StackViewportData
10838
10875
  };
10839
- if (typeof initialImageIndex === 'number') {
10840
- StackViewportData.data.initialImageIndex = initialImageIndex;
10841
- }
10842
- return StackViewportData;
10843
10876
  }
10844
10877
  async _getVolumeViewportData(dataSource, displaySets, viewportType) {
10845
10878
  // Todo: Check the cache for multiple scenarios to see if we need to
@@ -11696,16 +11729,25 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
11696
11729
  }
11697
11730
  async _setStackViewport(viewport, viewportData, viewportInfo, presentations = {}) {
11698
11731
  const displaySetOptions = viewportInfo.getDisplaySetOptions();
11732
+ const displaySetInstanceUIDs = viewportData.data.map(data => data.displaySetInstanceUID);
11733
+
11734
+ // based on the cache service construct always the first one is the non-overlay
11735
+ // and the rest are overlays
11736
+
11737
+ this.viewportsDisplaySets.set(viewport.id, [...displaySetInstanceUIDs]);
11699
11738
  const {
11700
- imageIds,
11701
11739
  initialImageIndex,
11702
- displaySetInstanceUID
11703
- } = viewportData.data;
11704
- this.viewportsDisplaySets.set(viewport.id, [displaySetInstanceUID]);
11740
+ imageIds
11741
+ } = viewportData.data[0];
11705
11742
  let initialImageIndexToUse = presentations?.positionPresentation?.initialImageIndex ?? initialImageIndex;
11706
11743
  if (initialImageIndexToUse === undefined || initialImageIndexToUse === null) {
11707
11744
  initialImageIndexToUse = this._getInitialImageIndexForViewport(viewportInfo, imageIds) || 0;
11708
11745
  }
11746
+ const {
11747
+ rotation,
11748
+ flipHorizontal,
11749
+ displayArea
11750
+ } = viewportInfo.getViewportOptions();
11709
11751
  const properties = {
11710
11752
  ...presentations.lutPresentation?.properties
11711
11753
  };
@@ -11732,11 +11774,25 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
11732
11774
  properties.colormap = colormap;
11733
11775
  }
11734
11776
  }
11777
+ this._handleOverlays(viewport);
11735
11778
  return viewport.setStack(imageIds, initialImageIndexToUse).then(() => {
11736
11779
  viewport.setProperties({
11737
11780
  ...properties
11738
11781
  });
11739
11782
  this.setPresentations(viewport.id, presentations);
11783
+ if (displayArea) {
11784
+ viewport.setDisplayArea(displayArea);
11785
+ }
11786
+ if (rotation) {
11787
+ viewport.setProperties({
11788
+ rotation
11789
+ });
11790
+ }
11791
+ if (flipHorizontal) {
11792
+ viewport.setCamera({
11793
+ flipHorizontal: true
11794
+ });
11795
+ }
11740
11796
  });
11741
11797
  }
11742
11798
  _getInitialImageIndexForViewport(viewportInfo, imageIds) {
@@ -11907,6 +11963,24 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
11907
11963
  viewport.setProperties(properties, volumeId);
11908
11964
  });
11909
11965
  this.setPresentations(viewport.id, presentations);
11966
+ this._handleOverlays(viewport);
11967
+ const toolGroup = toolGroupService.getToolGroupForViewport(viewport.id);
11968
+ dist_esm.utilities.segmentation.triggerSegmentationRender(toolGroup.id);
11969
+ const imageIndex = this._getInitialImageIndexForViewport(viewportInfo);
11970
+ if (imageIndex !== undefined) {
11971
+ dist_esm.utilities.jumpToSlice(viewport.element, {
11972
+ imageIndex
11973
+ });
11974
+ }
11975
+ viewport.render();
11976
+ this._broadcastEvent(this.EVENTS.VIEWPORT_VOLUMES_CHANGED, {
11977
+ viewportInfo
11978
+ });
11979
+ }
11980
+ _handleOverlays(viewport) {
11981
+ const {
11982
+ displaySetService
11983
+ } = this.servicesManager.services;
11910
11984
 
11911
11985
  // load any secondary displaySets
11912
11986
  const displaySetInstanceUIDs = this.viewportsDisplaySets.get(viewport.id);
@@ -11923,18 +11997,6 @@ class CornerstoneViewportService extends src/* PubSubService */.Rc {
11923
11997
  // get segmentations only returns the hydrated segmentations
11924
11998
  this._addSegmentationRepresentationToToolGroupIfNecessary(displaySetInstanceUIDs, viewport);
11925
11999
  }
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
12000
  }
11939
12001
  _addSegmentationRepresentationToToolGroupIfNecessary(displaySetInstanceUIDs, viewport) {
11940
12002
  const {
@@ -12631,9 +12693,9 @@ const id = package_namespaceObject.UU;
12631
12693
 
12632
12694
 
12633
12695
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/services/ViewportActionCornersService/ViewportActionCornersService.ts
12634
- var ViewportActionCornersService = __webpack_require__(77954);
12696
+ var ViewportActionCornersService = __webpack_require__(2447);
12635
12697
  // EXTERNAL MODULE: ../../../extensions/cornerstone/src/contextProviders/ViewportActionCornersProvider.tsx
12636
- var ViewportActionCornersProvider = __webpack_require__(76255);
12698
+ var ViewportActionCornersProvider = __webpack_require__(40684);
12637
12699
  // EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
12638
12700
  var lodash_debounce = __webpack_require__(14771);
12639
12701
  var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
@@ -13069,7 +13131,7 @@ const {
13069
13131
  getDynamicVolumeInfo
13070
13132
  } = volumeLoaderHelpers ?? {};
13071
13133
  const Component = /*#__PURE__*/react.lazy(() => {
13072
- return __webpack_require__.e(/* import() */ 574).then(__webpack_require__.bind(__webpack_require__, 71574));
13134
+ return __webpack_require__.e(/* import() */ 139).then(__webpack_require__.bind(__webpack_require__, 56139));
13073
13135
  });
13074
13136
  const OHIFCornerstoneViewport = props => {
13075
13137
  return /*#__PURE__*/react.createElement(react.Suspense, {
@@ -13210,14 +13272,14 @@ const cornerstoneExtension = {
13210
13272
 
13211
13273
  /***/ }),
13212
13274
 
13213
- /***/ 77954:
13275
+ /***/ 2447:
13214
13276
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13215
13277
 
13216
13278
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13217
13279
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
13218
13280
  /* 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);
13281
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75186);
13282
+ /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79047);
13221
13283
  var _ViewportActionCornersService;
13222
13284
 
13223
13285
 
@@ -13276,7 +13338,7 @@ ViewportActionCornersService.REGISTRATION = {
13276
13338
 
13277
13339
  /***/ }),
13278
13340
 
13279
- /***/ 71353:
13341
+ /***/ 83910:
13280
13342
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13281
13343
 
13282
13344
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -13318,7 +13380,7 @@ const reset = () => {
13318
13380
 
13319
13381
  /***/ }),
13320
13382
 
13321
- /***/ 1663:
13383
+ /***/ 20928:
13322
13384
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13323
13385
 
13324
13386
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
@@ -13334,12 +13396,26 @@ const reset = () => {
13334
13396
  * @param {string} imageId The image id of the referenced image
13335
13397
  * @returns
13336
13398
  */
13337
- function getSOPInstanceAttributes(imageId) {
13399
+ function getSOPInstanceAttributes(imageId, displaySetService, annotation) {
13338
13400
  if (imageId) {
13339
13401
  return _getUIDFromImageID(imageId);
13340
13402
  }
13341
-
13342
- // Todo: implement for volume viewports and use the referencedSeriesInstanceUID
13403
+ const {
13404
+ metadata
13405
+ } = annotation;
13406
+ const {
13407
+ volumeId
13408
+ } = metadata;
13409
+ const displaySet = displaySetService.getDisplaySetsBy(displaySet => volumeId.includes(displaySet.uid))[0];
13410
+ const {
13411
+ StudyInstanceUID,
13412
+ SeriesInstanceUID
13413
+ } = displaySet;
13414
+ return {
13415
+ SOPInstanceUID: undefined,
13416
+ SeriesInstanceUID,
13417
+ StudyInstanceUID
13418
+ };
13343
13419
  }
13344
13420
  function _getUIDFromImageID(imageId) {
13345
13421
  const instance = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.metaData.get('instance', imageId);