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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/{117.bundle.a80b1511ef4b302fb7cc.js → 117.bundle.ba41cf7978afb629dcff.js} +66 -18
  2. package/dist/{889.bundle.5611d644c8cb24f864ff.js → 121.bundle.378e95375a06144508ba.js} +40 -12
  3. package/dist/{998.bundle.b8ffa2bc390d5d4edf16.js → 129.bundle.1b625d18d376f42effc1.js} +22 -21
  4. package/dist/{574.bundle.72bd5061ccd504235419.js → 139.bundle.679c4baad7c7f65ebabd.js} +25 -37
  5. package/dist/{989.bundle.bf6bc62794b717824f7e.js → 14.bundle.ec550834dd50b923108d.js} +5 -5
  6. package/dist/{783.bundle.126cd640a5fd49804d8e.js → 140.bundle.38a0dfa4b46a70e33664.js} +2 -2
  7. package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.79cc35bc3e6b792636cd.js} +334 -44
  8. package/dist/{544.bundle.e8227e98860e39636a00.js → 172.bundle.e3e82e398b39958577e6.js} +16 -30
  9. package/dist/{487.bundle.b1a29dcf2b152693935d.js → 194.bundle.0c81e6f43d76f29392c0.js} +5 -5
  10. package/dist/{699.bundle.2adb0c0ad7f7cb9e338a.js → 211.bundle.86d88aa73d5352e82c97.js} +33 -4
  11. package/dist/{776.bundle.9680d347bafb63f8688a.js → 218.bundle.77c26ca8507b4765c981.js} +14 -9
  12. package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.343bcd0be60d0ae61901.js} +396 -56
  13. package/dist/{530.bundle.17b9a34fefff133e5379.js → 265.bundle.b32a0cc143efa80ee3cc.js} +8 -12
  14. package/dist/{862.bundle.55dde21bab4c841b6259.js → 323.bundle.8e5137bf61179c8704d6.js} +5 -9
  15. package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.67c49f2e52829a5696a4.js} +7 -0
  16. package/dist/{550.bundle.a2267752bc8874fedfd5.js → 363.bundle.0e87c4c9afa24a9a2843.js} +226 -150
  17. package/dist/{473.bundle.6cd4be953853f35b29c3.js → 367.bundle.6a0746aeca702ae6eba6.js} +279 -29
  18. package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.02108fbb881fbe75b59c.js} +82 -11
  19. package/dist/{682.bundle.ec07ec1bc2f69f9d0d94.js → 382.bundle.67d162cdbb2a84192cae.js} +24 -4
  20. package/dist/{907.bundle.13dc5f4b5581d12562b8.js → 444.bundle.5bc9c6c628d3f12a78c7.js} +4 -4
  21. package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
  22. package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.3dcc63f03d9c252a9bee.js} +885 -312
  23. package/dist/{905.bundle.4105e428f61f925a310d.js → 552.bundle.4a503e6689070df070de.js} +3 -3
  24. package/dist/{981.bundle.a0fabcf9845c1a623990.js → 555.bundle.0f587ef1e590e457a5ed.js} +7 -6
  25. package/dist/{939.bundle.9d93b2e47c52338747a2.js → 612.bundle.297a033523539e0b47f9.js} +2 -2
  26. package/dist/{295.bundle.9926ff25c6dbf53845b1.js → 675.bundle.c9720f40fd7c7e9b7e54.js} +5 -9
  27. package/dist/{325.bundle.98612a2afacf5d63b25a.js → 717.bundle.133ee5f2065b3338498e.js} +32 -23
  28. package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
  29. package/dist/{121.bundle.b582314ec0024fdf2d15.js → 792.bundle.485ad2f98823a4b3feb1.js} +6 -10
  30. package/dist/{721.bundle.a210baa38d34b9bcacfd.js → 799.bundle.55be56fa31b0f5c993c6.js} +12 -12
  31. package/dist/{448.bundle.70dc1363d8b2783dc51e.js → 806.bundle.f89c0302312b41de4227.js} +5 -5
  32. package/dist/{390.bundle.2751b81dbe439a40ba90.js → 827.bundle.05ca1cba07979c0e199f.js} +446 -53
  33. package/dist/{297.bundle.194d8985ab974839b5b6.js → 837.bundle.ff9fe44bf863a5bceabc.js} +2 -2
  34. package/dist/{961.bundle.2c81565fe334d6cd2f9c.js → 853.bundle.98f5e69f10cc359c364c.js} +4 -4
  35. package/dist/{94.bundle.9b92ece5801a7df7d08c.js → 920.bundle.8ddd71fdf3cf8152cc74.js} +39 -9
  36. package/dist/{243.bundle.96439f589bc338b977ea.js → 989.bundle.944239c4bf1fec35fee8.js} +4 -4
  37. package/dist/app-config.js +5 -1
  38. package/dist/{app.bundle.cbecae40543f47cc8c7e.js → app.bundle.1c724ee4d081d129ddd5.js} +162728 -46021
  39. package/dist/app.bundle.css +5 -4
  40. package/dist/assets/images/action-new-dialog.svg +14 -0
  41. package/dist/assets/images/arrow-down.svg +5 -0
  42. package/dist/assets/images/arrow-left-small.svg +6 -0
  43. package/dist/assets/images/arrow-left.svg +6 -0
  44. package/dist/assets/images/arrow-right-small.svg +6 -0
  45. package/dist/assets/images/arrow-right.svg +6 -0
  46. package/dist/assets/images/calendar.svg +5 -0
  47. package/dist/assets/images/cancel.svg +8 -0
  48. package/dist/assets/images/checkbox-active.svg +9 -0
  49. package/dist/assets/images/checkbox-checked.svg +9 -0
  50. package/dist/assets/images/checkbox-default.svg +3 -0
  51. package/dist/assets/images/checkbox-unchecked.svg +3 -0
  52. package/dist/assets/images/chevron-down.svg +3 -0
  53. package/dist/assets/images/chevron-left.svg +3 -0
  54. package/dist/assets/images/chevron-menu.svg +12 -0
  55. package/dist/assets/images/chevron-next.svg +6 -0
  56. package/dist/assets/images/chevron-prev.svg +6 -0
  57. package/dist/assets/images/chevron-right.svg +3 -0
  58. package/dist/assets/images/circled-checkmark.svg +6 -0
  59. package/dist/assets/images/clipboard.svg +1 -0
  60. package/dist/assets/images/closeIcon.svg +3 -0
  61. package/dist/assets/images/content-next.svg +9 -0
  62. package/dist/assets/images/content-prev.svg +9 -0
  63. package/dist/assets/images/dotted-circle.svg +3 -0
  64. package/dist/assets/images/edit-patient.svg +15 -0
  65. package/dist/assets/images/exclamation.svg +9 -0
  66. package/dist/assets/images/external-link.svg +5 -0
  67. package/dist/assets/images/eye-hidden.svg +8 -0
  68. package/dist/assets/images/eye-visible.svg +6 -0
  69. package/dist/assets/images/focus-frame-target.svg +13 -0
  70. package/dist/assets/images/group-layers.svg +6 -0
  71. package/dist/assets/images/icon-add.svg +15 -0
  72. package/dist/assets/images/icon-alert-small.svg +8 -0
  73. package/dist/assets/images/icon-chevron-patient.svg +12 -0
  74. package/dist/assets/images/icon-clear-field.svg +8 -0
  75. package/dist/assets/images/icon-close.svg +8 -0
  76. package/dist/assets/images/icon-color-lut.svg +23 -0
  77. package/dist/assets/images/icon-delete.svg +17 -0
  78. package/dist/assets/images/icon-disclosure-close.svg +12 -0
  79. package/dist/assets/images/icon-disclosure-open.svg +12 -0
  80. package/dist/assets/images/icon-display-settings.svg +21 -0
  81. package/dist/assets/images/icon-more-menu.svg +17 -0
  82. package/dist/assets/images/icon-mpr-alt.svg +9 -0
  83. package/dist/assets/images/icon-multiple-patients.svg +21 -0
  84. package/dist/assets/images/icon-next-inactive.svg +6 -0
  85. package/dist/assets/images/icon-next.svg +6 -0
  86. package/dist/assets/images/icon-patient.svg +13 -0
  87. package/dist/assets/images/icon-pause.svg +6 -0
  88. package/dist/assets/images/icon-play.svg +6 -0
  89. package/dist/assets/images/icon-prev-inactive.svg +6 -0
  90. package/dist/assets/images/icon-prev.svg +6 -0
  91. package/dist/assets/images/icon-rename.svg +15 -0
  92. package/dist/assets/images/icon-search.svg +9 -0
  93. package/dist/assets/images/icon-settings.svg +13 -0
  94. package/dist/assets/images/icon-status-alert.svg +8 -0
  95. package/dist/assets/images/icon-tool-scissor.svg +17 -0
  96. package/dist/assets/images/icon-toolbar-back.svg +12 -0
  97. package/dist/assets/images/icon-transferring.svg +6 -0
  98. package/dist/assets/images/icon-upload.svg +6 -0
  99. package/dist/assets/images/icons-alert-outline.svg +8 -0
  100. package/dist/assets/images/illustration-investigational-use.svg +20 -0
  101. package/dist/assets/images/info-action.svg +10 -0
  102. package/dist/assets/images/info-link.svg +7 -0
  103. package/dist/assets/images/info.svg +3 -0
  104. package/dist/assets/images/launch-arrow.svg +7 -0
  105. package/dist/assets/images/launch-info.svg +8 -0
  106. package/dist/assets/images/layout-advanced-3d-four-up.svg +13 -0
  107. package/dist/assets/images/layout-advanced-3d-main.svg +12 -0
  108. package/dist/assets/images/layout-advanced-3d-only.svg +9 -0
  109. package/dist/assets/images/layout-advanced-3d-primary.svg +12 -0
  110. package/dist/assets/images/layout-advanced-axial-primary.svg +11 -0
  111. package/dist/assets/images/layout-advanced-mpr.svg +11 -0
  112. package/dist/assets/images/layout-common-1x1.svg +9 -0
  113. package/dist/assets/images/layout-common-1x2.svg +10 -0
  114. package/dist/assets/images/layout-common-2x2.svg +11 -0
  115. package/dist/assets/images/layout-common-2x3.svg +12 -0
  116. package/dist/assets/images/list-bullets.svg +10 -0
  117. package/dist/assets/images/loading-ohif-mark.svg +5 -0
  118. package/dist/assets/images/lock.svg +1 -0
  119. package/dist/assets/images/logo-ohif-small.svg +5 -0
  120. package/dist/assets/images/magnifier.svg +7 -0
  121. package/dist/assets/images/navigation-panel-right-hide.svg +5 -0
  122. package/dist/assets/images/navigation-panel-right-reveal.svg +5 -0
  123. package/dist/assets/images/next-arrow.svg +12 -0
  124. package/dist/assets/images/notifications-error.svg +8 -0
  125. package/dist/assets/images/notifications-info.svg +8 -0
  126. package/dist/assets/images/notifications-success.svg +6 -0
  127. package/dist/assets/images/notifications-warning.svg +8 -0
  128. package/dist/assets/images/notificationwarning-diamond.svg +10 -0
  129. package/dist/assets/images/ohif-logo-color-darkbg.svg +20 -0
  130. package/dist/assets/images/ohif-logo.svg +18 -0
  131. package/dist/assets/images/old-play.svg +9 -0
  132. package/dist/assets/images/old-stop.svg +9 -0
  133. package/dist/assets/images/old-trash.svg +9 -0
  134. package/dist/assets/images/panel-group-more.svg +6 -0
  135. package/dist/assets/images/panel-group-open-close.svg +6 -0
  136. package/dist/assets/images/pencil.svg +4 -0
  137. package/dist/assets/images/power-off.svg +11 -0
  138. package/dist/assets/images/prev-arrow.svg +12 -0
  139. package/dist/assets/images/profile.svg +1 -0
  140. package/dist/assets/images/push-left.svg +5 -0
  141. package/dist/assets/images/push-right.svg +5 -0
  142. package/dist/assets/images/row-add.svg +8 -0
  143. package/dist/assets/images/row-edit.svg +9 -0
  144. package/dist/assets/images/row-hidden.svg +11 -0
  145. package/dist/assets/images/row-lock.svg +7 -0
  146. package/dist/assets/images/row-shown.svg +9 -0
  147. package/dist/assets/images/row-unlock.svg +7 -0
  148. package/dist/assets/images/settings.svg +6 -0
  149. package/dist/assets/images/side-panel-close-left.svg +14 -0
  150. package/dist/assets/images/side-panel-close-right.svg +14 -0
  151. package/dist/assets/images/sorting-active-down.svg +6 -0
  152. package/dist/assets/images/sorting-active-up.svg +6 -0
  153. package/dist/assets/images/sorting.svg +6 -0
  154. package/dist/assets/images/status-alert-warning.svg +9 -0
  155. package/dist/assets/images/status-alert.svg +7 -0
  156. package/dist/assets/images/status-locked.svg +7 -0
  157. package/dist/assets/images/status-tracked.svg +7 -0
  158. package/dist/assets/images/status-untracked.svg +6 -0
  159. package/dist/assets/images/tab-4d.svg +13 -0
  160. package/dist/assets/images/tab-linear.svg +8 -0
  161. package/dist/assets/images/tab-patient-info.svg +7 -0
  162. package/dist/assets/images/tab-roi-threshold.svg +10 -0
  163. package/dist/assets/images/tab-segmentation.svg +11 -0
  164. package/dist/assets/images/tab-studies.svg +13 -0
  165. package/dist/assets/images/tool-3d-rotate.svg +20 -0
  166. package/dist/assets/images/tool-angle.svg +12 -0
  167. package/dist/assets/images/tool-annotate.svg +11 -0
  168. package/dist/assets/images/tool-bidirectional.svg +21 -0
  169. package/dist/assets/images/tool-calibrate.svg +19 -0
  170. package/dist/assets/images/tool-capture.svg +10 -0
  171. package/dist/assets/images/tool-cine.svg +9 -0
  172. package/dist/assets/images/tool-circle.svg +8 -0
  173. package/dist/assets/images/tool-create-threshold.svg +9 -0
  174. package/dist/assets/images/tool-crosshair.svg +14 -0
  175. package/dist/assets/images/tool-dicom-tag-browser.svg +15 -0
  176. package/dist/assets/images/tool-flip-horizontal.svg +10 -0
  177. package/dist/assets/images/tool-freehand-polygon.svg +37 -0
  178. package/dist/assets/images/tool-freehand-roi.svg +12 -0
  179. package/dist/assets/images/tool-freehand.svg +34 -0
  180. package/dist/assets/images/tool-fusion-color.svg +13 -0
  181. package/dist/assets/images/tool-invert.svg +10 -0
  182. package/dist/assets/images/tool-layout-default.svg +22 -0
  183. package/dist/assets/images/tool-length.svg +16 -0
  184. package/dist/assets/images/tool-magnetic-roi.svg +17 -0
  185. package/dist/assets/images/tool-magnify.svg +7 -0
  186. package/dist/assets/images/tool-measure-elipse.svg +12 -0
  187. package/dist/assets/images/tool-more-menu.svg +6 -0
  188. package/dist/assets/images/tool-move.svg +13 -0
  189. package/dist/assets/images/tool-polygon.svg +3 -0
  190. package/dist/assets/images/tool-quick-magnify.svg +11 -0
  191. package/dist/assets/images/tool-rectangle.svg +12 -0
  192. package/dist/assets/images/tool-reference-lines.svg +13 -0
  193. package/dist/assets/images/tool-reset.svg +9 -0
  194. package/dist/assets/images/tool-rotate-right.svg +12 -0
  195. package/dist/assets/images/tool-seg-brush.svg +9 -0
  196. package/dist/assets/images/tool-seg-eraser.svg +10 -0
  197. package/dist/assets/images/tool-seg-shape.svg +9 -0
  198. package/dist/assets/images/tool-seg-threshold.svg +17 -0
  199. package/dist/assets/images/tool-spline-roi.svg +14 -0
  200. package/dist/assets/images/tool-stack-image-sync.svg +10 -0
  201. package/dist/assets/images/tool-stack-scroll.svg +10 -0
  202. package/dist/assets/images/tool-toggle-dicom-overlay.svg +9 -0
  203. package/dist/assets/images/tool-ultrasound-bidirectional.svg +15 -0
  204. package/dist/assets/images/tool-window-level.svg +9 -0
  205. package/dist/assets/images/tool-zoom.svg +9 -0
  206. package/dist/assets/images/tracked.svg +6 -0
  207. package/dist/assets/images/ui-arrow-down.svg +3 -0
  208. package/dist/assets/images/ui-arrow-left.svg +3 -0
  209. package/dist/assets/images/ui-arrow-right.svg +3 -0
  210. package/dist/assets/images/ui-arrow-up.svg +3 -0
  211. package/dist/assets/images/unlink.svg +9 -0
  212. package/dist/assets/images/viewport-status-tracked.svg +13 -0
  213. package/dist/assets/images/viewport-window-level.svg +17 -0
  214. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  215. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  216. package/dist/google.js +1 -0
  217. package/dist/{histogram-worker.bundle.829e14ec12c2b41a4323.js → histogram-worker.bundle.6b31e5ed4c4a7a6998f2.js} +2 -2
  218. package/dist/index.html +1 -1
  219. package/dist/{polySeg.bundle.1799686b019040500219.js → polySeg.bundle.cc8400971fca41347b25.js} +3 -3
  220. package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.59ea76ac47db7a736234.js} +4 -4
  221. package/dist/sw.js +1 -1
  222. package/package.json +26 -23
  223. /package/dist/{998.css → 129.css} +0 -0
  224. /package/dist/{574.css → 139.css} +0 -0
  225. /package/dist/{544.css → 172.css} +0 -0
  226. /package/dist/{550.css → 363.css} +0 -0
  227. /package/dist/{325.css → 404.css} +0 -0
  228. /package/dist/{481.css → 717.css} +0 -0
  229. /package/dist/{726.bundle.c8de818cf1a3ff0cf7d2.js → 726.bundle.90d63d40a19b058034ee.js} +0 -0
  230. /package/dist/{835.bundle.4c0eaa2c1a427ee41817.js → 835.bundle.5d1951da8bbc6afdf3e0.js} +0 -0
  231. /package/dist/{931.bundle.d270a1fda9a2836c3cc5.js → 931.bundle.058f8de4606f27b31f4f.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[390],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[827],{
3
3
 
4
- /***/ 47390:
4
+ /***/ 48827:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -33,9 +33,9 @@ __webpack_require__.d(utils_namespaceObject, {
33
33
  // EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
34
34
  var dicomweb_client_es = __webpack_require__(36922);
35
35
  // EXTERNAL MODULE: ../../core/src/index.ts + 72 modules
36
- var src = __webpack_require__(8633);
36
+ var src = __webpack_require__(75186);
37
37
  // EXTERNAL MODULE: ../../core/src/utils/sortStudy.ts
38
- var sortStudy = __webpack_require__(45476);
38
+ var sortStudy = __webpack_require__(75773);
39
39
  ;// CONCATENATED MODULE: ../../../extensions/default/src/DicomWebDataSource/qido.js
40
40
  /**
41
41
  * QIDO - Query based on ID for DICOM Objects
@@ -1887,6 +1887,7 @@ function createDicomJSONApi(dicomJsonConfig) {
1887
1887
  },
1888
1888
  series: {
1889
1889
  metadata: async ({
1890
+ filters,
1890
1891
  StudyInstanceUID,
1891
1892
  madeInClient = false,
1892
1893
  customSort
@@ -1901,6 +1902,12 @@ function createDicomJSONApi(dicomJsonConfig) {
1901
1902
  } else {
1902
1903
  series = study.series;
1903
1904
  }
1905
+ const seriesKeys = ['SeriesInstanceUID', 'SeriesInstanceUIDs', 'seriesInstanceUID', 'seriesInstanceUIDs'];
1906
+ const seriesFilter = seriesKeys.find(key => filters[key]);
1907
+ if (seriesFilter) {
1908
+ const seriesUIDs = filters[seriesFilter];
1909
+ series = series.filter(s => seriesUIDs.includes(s.SeriesInstanceUID));
1910
+ }
1904
1911
  const seriesSummaryMetadata = series.map(series => {
1905
1912
  const seriesSummary = {
1906
1913
  StudyInstanceUID: study.StudyInstanceUID,
@@ -2646,10 +2653,10 @@ var react = __webpack_require__(41766);
2646
2653
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
2647
2654
  var prop_types = __webpack_require__(11374);
2648
2655
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
2649
- // EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
2650
- var ui_src = __webpack_require__(5085);
2656
+ // EXTERNAL MODULE: ../../ui/src/index.js + 782 modules
2657
+ var ui_src = __webpack_require__(79047);
2651
2658
  // EXTERNAL MODULE: ./state/index.js + 1 modules
2652
- var state = __webpack_require__(15575);
2659
+ var state = __webpack_require__(81883);
2653
2660
  // EXTERNAL MODULE: ../node_modules/react-router-dom/dist/index.js
2654
2661
  var dist = __webpack_require__(37396);
2655
2662
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
@@ -2657,7 +2664,7 @@ var es = __webpack_require__(80619);
2657
2664
  // EXTERNAL MODULE: ../node_modules/react-router/dist/index.js
2658
2665
  var react_router_dist = __webpack_require__(10971);
2659
2666
  // EXTERNAL MODULE: ../../i18n/src/index.js + 150 modules
2660
- var i18n_src = __webpack_require__(912);
2667
+ var i18n_src = __webpack_require__(43608);
2661
2668
  ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/Toolbar.tsx
2662
2669
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2663
2670
 
@@ -2750,8 +2757,8 @@ function ViewerHeader({
2750
2757
  hotkeyDefinitions,
2751
2758
  hotkeyDefaults
2752
2759
  } = hotkeysManager;
2753
- const versionNumber = "3.9.0-beta.3";
2754
- const commitHash = "374065bc3bad9d212f9817a8d41546cc64cfabfb";
2760
+ const versionNumber = "3.9.0-beta.31";
2761
+ const commitHash = "93e760937f6587ba7481fcf3484ba9004ba49a62";
2755
2762
  const menuOptions = [{
2756
2763
  title: t('Header:About'),
2757
2764
  icon: 'info',
@@ -4115,13 +4122,13 @@ function getPanelModule({
4115
4122
  }
4116
4123
  /* harmony default export */ const src_getPanelModule = (getPanelModule);
4117
4124
  // EXTERNAL MODULE: ../../core/src/utils/isImage.js
4118
- var isImage = __webpack_require__(8094);
4125
+ var isImage = __webpack_require__(92087);
4119
4126
  // EXTERNAL MODULE: ../../core/src/utils/sopClassDictionary.js
4120
- var sopClassDictionary = __webpack_require__(48085);
4127
+ var sopClassDictionary = __webpack_require__(6342);
4121
4128
  // EXTERNAL MODULE: ../../core/src/classes/ImageSet.ts
4122
- var ImageSet = __webpack_require__(14169);
4129
+ var ImageSet = __webpack_require__(61378);
4123
4130
  // EXTERNAL MODULE: ../../core/src/utils/isDisplaySetReconstructable.js
4124
- var isDisplaySetReconstructable = __webpack_require__(13835);
4131
+ var isDisplaySetReconstructable = __webpack_require__(52378);
4125
4132
  ;// CONCATENATED MODULE: ../../../extensions/default/package.json
4126
4133
  const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-default"}');
4127
4134
  ;// CONCATENATED MODULE: ../../../extensions/default/src/id.js
@@ -4129,7 +4136,7 @@ const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-
4129
4136
  const id = package_namespaceObject.UU;
4130
4137
 
4131
4138
  // EXTERNAL MODULE: ../../core/src/utils/sortInstancesByPosition.ts
4132
- var sortInstancesByPosition = __webpack_require__(44563);
4139
+ var sortInstancesByPosition = __webpack_require__(7986);
4133
4140
  ;// CONCATENATED MODULE: ../../../extensions/default/src/utils/validations/checkMultiframe.ts
4134
4141
 
4135
4142
 
@@ -4151,7 +4158,7 @@ function checkMultiFrame(multiFrameInstance, messages) {
4151
4158
  }
4152
4159
  }
4153
4160
  // EXTERNAL MODULE: ../../core/src/utils/toNumber.js
4154
- var toNumber = __webpack_require__(58099);
4161
+ var toNumber = __webpack_require__(69508);
4155
4162
  ;// CONCATENATED MODULE: ../../../extensions/default/src/utils/validations/areAllImageDimensionsEqual.ts
4156
4163
 
4157
4164
 
@@ -4846,8 +4853,9 @@ function ToolbarLayoutSelectorWithServices({
4846
4853
  })));
4847
4854
  }
4848
4855
  function LayoutSelector({
4849
- rows,
4850
- columns,
4856
+ rows = 3,
4857
+ columns = 4,
4858
+ onLayoutChange = () => {},
4851
4859
  className,
4852
4860
  onSelection,
4853
4861
  onSelectionPreset,
@@ -4856,6 +4864,7 @@ function LayoutSelector({
4856
4864
  ...rest
4857
4865
  }) {
4858
4866
  const [isOpen, setIsOpen] = (0,react.useState)(false);
4867
+ const dropdownRef = (0,react.useRef)(null);
4859
4868
  const {
4860
4869
  customizationService
4861
4870
  } = servicesManager.services;
@@ -4863,15 +4872,21 @@ function LayoutSelector({
4863
4872
  const advancedPresets = customizationService.get('advancedPresets') || generateAdvancedPresets({
4864
4873
  servicesManager
4865
4874
  });
4866
- const closeOnOutsideClick = () => {
4867
- if (isOpen) {
4875
+ const closeOnOutsideClick = event => {
4876
+ if (isOpen && dropdownRef.current) {
4868
4877
  setIsOpen(false);
4869
4878
  }
4870
4879
  };
4871
4880
  (0,react.useEffect)(() => {
4872
- window.addEventListener('click', closeOnOutsideClick);
4881
+ if (!isOpen) {
4882
+ return;
4883
+ }
4884
+ setTimeout(() => {
4885
+ window.addEventListener('click', closeOnOutsideClick);
4886
+ }, 0);
4873
4887
  return () => {
4874
4888
  window.removeEventListener('click', closeOnOutsideClick);
4889
+ dropdownRef.current = null;
4875
4890
  };
4876
4891
  }, [isOpen]);
4877
4892
  const onInteractionHandler = () => {
@@ -4887,7 +4902,8 @@ function LayoutSelector({
4887
4902
  rounded: rest.rounded,
4888
4903
  disableToolTip: tooltipDisabled,
4889
4904
  dropdownContent: DropdownContent !== null && /*#__PURE__*/react.createElement("div", {
4890
- className: "flex "
4905
+ className: "flex",
4906
+ ref: dropdownRef
4891
4907
  }, /*#__PURE__*/react.createElement("div", {
4892
4908
  className: "bg-secondary-dark flex flex-col gap-2.5 p-2"
4893
4909
  }, /*#__PURE__*/react.createElement("div", {
@@ -4935,11 +4951,6 @@ LayoutSelector.propTypes = {
4935
4951
  onLayoutChange: (prop_types_default()).func,
4936
4952
  servicesManager: (prop_types_default()).object.isRequired
4937
4953
  };
4938
- LayoutSelector.defaultProps = {
4939
- columns: 4,
4940
- rows: 3,
4941
- onLayoutChange: () => {}
4942
- };
4943
4954
  /* harmony default export */ const ToolbarLayoutSelector = (ToolbarLayoutSelectorWithServices);
4944
4955
  ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/ToolbarSplitButtonWithServices.tsx
4945
4956
  function ToolbarSplitButtonWithServices_extends() { ToolbarSplitButtonWithServices_extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return ToolbarSplitButtonWithServices_extends.apply(this, arguments); }
@@ -4986,7 +4997,6 @@ function ToolbarSplitButtonWithServices({
4986
4997
  });
4987
4998
  }
4988
4999
  ToolbarSplitButtonWithServices.propTypes = {
4989
- isRadio: (prop_types_default()).bool,
4990
5000
  groupId: (prop_types_default()).string,
4991
5001
  primary: prop_types_default().shape({
4992
5002
  id: (prop_types_default()).string.isRequired,
@@ -5016,10 +5026,6 @@ ToolbarSplitButtonWithServices.propTypes = {
5016
5026
  })
5017
5027
  })
5018
5028
  };
5019
- ToolbarSplitButtonWithServices.defaultProps = {
5020
- isRadio: false,
5021
- isAction: false
5022
- };
5023
5029
  /* harmony default export */ const Toolbar_ToolbarSplitButtonWithServices = (ToolbarSplitButtonWithServices);
5024
5030
  ;// CONCATENATED MODULE: ../../../extensions/default/src/Toolbar/ToolbarButtonGroupWithServices.tsx
5025
5031
 
@@ -5055,7 +5061,7 @@ function ToolbarButtonGroupWithServices({
5055
5061
  return /*#__PURE__*/react.createElement(ui_src/* ButtonGroup */.e2, null, getSplitButtonItems(items));
5056
5062
  }
5057
5063
  /* harmony default export */ const Toolbar_ToolbarButtonGroupWithServices = (ToolbarButtonGroupWithServices);
5058
- ;// CONCATENATED MODULE: ../../../extensions/default/src/components/ProgressDropdownWithService/ProgressDropdownWithService.tsx
5064
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/Components/ProgressDropdownWithService.tsx
5059
5065
 
5060
5066
 
5061
5067
  const workflowStepsToDropdownOptions = (steps = []) => steps.map(step => ({
@@ -5136,9 +5142,6 @@ function ProgressDropdownWithService({
5136
5142
  onChange: handleDropdownChange
5137
5143
  });
5138
5144
  }
5139
- /* harmony default export */ const ProgressDropdownWithService_ProgressDropdownWithService = (ProgressDropdownWithService);
5140
- ;// CONCATENATED MODULE: ../../../extensions/default/src/components/ProgressDropdownWithService/index.js
5141
-
5142
5145
  ;// CONCATENATED MODULE: ../../../extensions/default/src/getToolbarModule.tsx
5143
5146
 
5144
5147
 
@@ -5179,7 +5182,7 @@ function getToolbarModule({
5179
5182
  defaultComponent: Toolbar_ToolbarButtonGroupWithServices
5180
5183
  }, {
5181
5184
  name: 'ohif.progressDropdown',
5182
- defaultComponent: ProgressDropdownWithService_ProgressDropdownWithService
5185
+ defaultComponent: ProgressDropdownWithService
5183
5186
  }, {
5184
5187
  name: 'evaluate.group.promoteToPrimary',
5185
5188
  evaluate: ({
@@ -5377,7 +5380,7 @@ function adaptItem(item, subProps) {
5377
5380
  return newItem;
5378
5381
  }
5379
5382
  // EXTERNAL MODULE: ../../ui/src/components/ContextMenu/ContextMenu.tsx
5380
- var ContextMenu = __webpack_require__(59852);
5383
+ var ContextMenu = __webpack_require__(117);
5381
5384
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
5382
5385
  var dist_esm = __webpack_require__(39371);
5383
5386
  ;// CONCATENATED MODULE: ../../../extensions/default/src/CustomizableContextMenu/ContextMenuController.tsx
@@ -6275,7 +6278,7 @@ const findViewportsByPosition = (state, {
6275
6278
  };
6276
6279
  /* harmony default export */ const src_findViewportsByPosition = (findViewportsByPosition);
6277
6280
  // EXTERNAL MODULE: ./index.js + 35 modules
6278
- var index = __webpack_require__(68870);
6281
+ var index = __webpack_require__(40335);
6279
6282
  ;// CONCATENATED MODULE: ../../../extensions/default/src/commandsModule.ts
6280
6283
 
6281
6284
 
@@ -6840,7 +6843,7 @@ const commandsModule = ({
6840
6843
  };
6841
6844
  };
6842
6845
  /* harmony default export */ const src_commandsModule = (commandsModule);
6843
- ;// CONCATENATED MODULE: ../../../extensions/default/src/hpMNGrid.ts
6846
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/hpMNGrid.ts
6844
6847
  /**
6845
6848
  * This hanging protocol can be activated on the primary mode by directly
6846
6849
  * referencing it in a URL or by directly including it within a mode, e.g.:
@@ -7057,7 +7060,7 @@ const hpMN = {
7057
7060
  numberOfPriorsReferenced: -1
7058
7061
  };
7059
7062
  /* harmony default export */ const hpMNGrid = (hpMN);
7060
- ;// CONCATENATED MODULE: ../../../extensions/default/src/hpCompare.ts
7063
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/hpCompare.ts
7061
7064
  const defaultDisplaySetSelector = {
7062
7065
  studyMatchingRules: [{
7063
7066
  // The priorInstance is a study counter that indicates what position this study is in
@@ -7166,9 +7169,9 @@ const hpMNCompare = {
7166
7169
  protocolMatchingRules: [{
7167
7170
  id: 'Two Studies',
7168
7171
  weight: 1000,
7172
+ // is there a second study or in another work the attribute
7173
+ // studyInstanceUIDsIndex that we get from prior should not be null
7169
7174
  attribute: 'StudyInstanceUID',
7170
- // The 'from' attribute says where to get the 'attribute' value from. In this case
7171
- // prior means the second study in the study list.
7172
7175
  from: 'prior',
7173
7176
  required: true,
7174
7177
  constraint: {
@@ -7224,9 +7227,344 @@ const hpMNCompare = {
7224
7227
  }]
7225
7228
  };
7226
7229
  /* harmony default export */ const hpCompare = (hpMNCompare);
7230
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/mammoDisplaySetSelector.ts
7231
+ const priorStudyMatchingRules = [{
7232
+ // The priorInstance is a study counter that indicates what position this study is in
7233
+ // and the value comes from the options parameter.
7234
+ attribute: 'studyInstanceUIDsIndex',
7235
+ from: 'options',
7236
+ required: true,
7237
+ constraint: {
7238
+ equals: {
7239
+ value: 1
7240
+ }
7241
+ }
7242
+ }];
7243
+ const currentStudyMatchingRules = [{
7244
+ // The priorInstance is a study counter that indicates what position this study is in
7245
+ // and the value comes from the options parameter.
7246
+ attribute: 'studyInstanceUIDsIndex',
7247
+ from: 'options',
7248
+ required: true,
7249
+ constraint: {
7250
+ equals: {
7251
+ value: 0
7252
+ }
7253
+ }
7254
+ }];
7255
+ const LCCSeriesMatchingRules = [{
7256
+ weight: 10,
7257
+ attribute: 'ViewCode',
7258
+ constraint: {
7259
+ contains: 'SCT:399162004'
7260
+ }
7261
+ }, {
7262
+ weight: 5,
7263
+ attribute: 'PatientOrientation',
7264
+ constraint: {
7265
+ contains: 'L'
7266
+ }
7267
+ }, {
7268
+ weight: 20,
7269
+ attribute: 'SeriesDescription',
7270
+ constraint: {
7271
+ contains: 'L CC'
7272
+ }
7273
+ }];
7274
+ const RCCSeriesMatchingRules = [{
7275
+ weight: 10,
7276
+ attribute: 'ViewCode',
7277
+ constraint: {
7278
+ contains: 'SCT:399162004'
7279
+ }
7280
+ }, {
7281
+ weight: 5,
7282
+ attribute: 'PatientOrientation',
7283
+ constraint: {
7284
+ equals: ['P', 'L']
7285
+ }
7286
+ }, {
7287
+ attribute: 'PatientOrientation',
7288
+ constraint: {
7289
+ doesNotEqual: ['A', 'R']
7290
+ },
7291
+ required: true
7292
+ }, {
7293
+ weight: 20,
7294
+ attribute: 'SeriesDescription',
7295
+ constraint: {
7296
+ contains: 'CC'
7297
+ }
7298
+ }];
7299
+ const LMLOSeriesMatchingRules = [{
7300
+ weight: 10,
7301
+ attribute: 'ViewCode',
7302
+ constraint: {
7303
+ contains: 'SCT:399368009'
7304
+ }
7305
+ }, {
7306
+ weight: 0,
7307
+ attribute: 'ViewCode',
7308
+ constraint: {
7309
+ doesNotEqual: 'SCT:399162004'
7310
+ },
7311
+ required: true
7312
+ }, {
7313
+ weight: 5,
7314
+ attribute: 'PatientOrientation',
7315
+ constraint: {
7316
+ equals: ['A', 'R']
7317
+ }
7318
+ }, {
7319
+ weight: 20,
7320
+ attribute: 'SeriesDescription',
7321
+ constraint: {
7322
+ contains: 'L MLO'
7323
+ }
7324
+ }];
7325
+ const RMLOSeriesMatchingRules = [{
7326
+ weight: 10,
7327
+ attribute: 'ViewCode',
7328
+ constraint: {
7329
+ contains: 'SCT:399368009'
7330
+ }
7331
+ }, {
7332
+ attribute: 'ViewCode',
7333
+ constraint: {
7334
+ doesNotEqual: 'SCT:399162004'
7335
+ },
7336
+ required: true
7337
+ }, {
7338
+ attribute: 'PatientOrientation',
7339
+ constraint: {
7340
+ doesNotContain: ['P', 'FL']
7341
+ },
7342
+ required: true
7343
+ }, {
7344
+ weight: 5,
7345
+ attribute: 'PatientOrientation',
7346
+ constraint: {
7347
+ equals: ['P', 'L']
7348
+ }
7349
+ }, {
7350
+ weight: 5,
7351
+ attribute: 'PatientOrientation',
7352
+ constraint: {
7353
+ equals: ['A', 'FR']
7354
+ }
7355
+ }, {
7356
+ weight: 20,
7357
+ attribute: 'SeriesDescription',
7358
+ constraint: {
7359
+ contains: 'R MLO'
7360
+ }
7361
+ }, {
7362
+ attribute: 'SeriesDescription',
7363
+ required: true,
7364
+ constraint: {
7365
+ doesNotContain: 'CC'
7366
+ }
7367
+ }, {
7368
+ attribute: 'SeriesDescription',
7369
+ required: true,
7370
+ constraint: {
7371
+ doesNotEqual: 'L MLO'
7372
+ },
7373
+ required: true
7374
+ }];
7375
+ const RCC = {
7376
+ seriesMatchingRules: RCCSeriesMatchingRules,
7377
+ studyMatchingRules: currentStudyMatchingRules
7378
+ };
7379
+ const RCCPrior = {
7380
+ seriesMatchingRules: RCCSeriesMatchingRules,
7381
+ studyMatchingRules: priorStudyMatchingRules
7382
+ };
7383
+ const LCC = {
7384
+ seriesMatchingRules: LCCSeriesMatchingRules,
7385
+ studyMatchingRules: currentStudyMatchingRules
7386
+ };
7387
+ const LCCPrior = {
7388
+ seriesMatchingRules: LCCSeriesMatchingRules,
7389
+ studyMatchingRules: priorStudyMatchingRules
7390
+ };
7391
+ const RMLO = {
7392
+ seriesMatchingRules: RMLOSeriesMatchingRules,
7393
+ studyMatchingRules: currentStudyMatchingRules
7394
+ };
7395
+ const RMLOPrior = {
7396
+ seriesMatchingRules: RMLOSeriesMatchingRules,
7397
+ studyMatchingRules: priorStudyMatchingRules
7398
+ };
7399
+ const LMLO = {
7400
+ seriesMatchingRules: LMLOSeriesMatchingRules,
7401
+ studyMatchingRules: currentStudyMatchingRules
7402
+ };
7403
+ const LMLOPrior = {
7404
+ seriesMatchingRules: LMLOSeriesMatchingRules,
7405
+ studyMatchingRules: priorStudyMatchingRules
7406
+ };
7407
+
7408
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/hpMammo.ts
7409
+
7410
+ const rightDisplayArea = {
7411
+ storeAsInitialCamera: true,
7412
+ imageArea: [0.8, 0.8],
7413
+ imageCanvasPoint: {
7414
+ imagePoint: [0, 0.5],
7415
+ canvasPoint: [0, 0.5]
7416
+ }
7417
+ };
7418
+ const leftDisplayArea = {
7419
+ storeAsInitialCamera: true,
7420
+ imageArea: [0.8, 0.8],
7421
+ imageCanvasPoint: {
7422
+ imagePoint: [1, 0.5],
7423
+ canvasPoint: [1, 0.5]
7424
+ }
7425
+ };
7426
+ const hpMammography = {
7427
+ id: '@ohif/hpMammo',
7428
+ hasUpdatedPriorsInformation: false,
7429
+ name: 'Mammography Breast Screening',
7430
+ protocolMatchingRules: [{
7431
+ id: 'Mammography',
7432
+ weight: 150,
7433
+ attribute: 'ModalitiesInStudy',
7434
+ constraint: {
7435
+ contains: 'MG'
7436
+ },
7437
+ required: true
7438
+ }, {
7439
+ id: 'numberOfImages',
7440
+ attribute: 'numberOfDisplaySetsWithImages',
7441
+ constraint: {
7442
+ greaterThan: 2
7443
+ },
7444
+ required: true
7445
+ }],
7446
+ toolGroupIds: ['default'],
7447
+ displaySetSelectors: {
7448
+ RCC: RCC,
7449
+ LCC: LCC,
7450
+ RMLO: RMLO,
7451
+ LMLO: LMLO,
7452
+ RCCPrior: RCCPrior,
7453
+ LCCPrior: LCCPrior,
7454
+ RMLOPrior: RMLOPrior,
7455
+ LMLOPrior: LMLOPrior
7456
+ },
7457
+ stages: [{
7458
+ name: 'CC/MLO',
7459
+ viewportStructure: {
7460
+ type: 'grid',
7461
+ layoutType: 'grid',
7462
+ properties: {
7463
+ rows: 2,
7464
+ columns: 2
7465
+ }
7466
+ },
7467
+ viewports: [{
7468
+ viewportOptions: {
7469
+ toolGroupId: 'default',
7470
+ displayArea: leftDisplayArea,
7471
+ // flipHorizontal: true,
7472
+ // rotation: 180,
7473
+ allowUnmatchedView: true
7474
+ },
7475
+ displaySets: [{
7476
+ id: 'RCC'
7477
+ }]
7478
+ }, {
7479
+ viewportOptions: {
7480
+ toolGroupId: 'default',
7481
+ // flipHorizontal: true,
7482
+ displayArea: rightDisplayArea,
7483
+ allowUnmatchedView: true
7484
+ },
7485
+ displaySets: [{
7486
+ id: 'LCC'
7487
+ }]
7488
+ }, {
7489
+ viewportOptions: {
7490
+ toolGroupId: 'default',
7491
+ displayArea: leftDisplayArea,
7492
+ // rotation: 180,
7493
+ // flipHorizontal: true,
7494
+ allowUnmatchedView: true
7495
+ },
7496
+ displaySets: [{
7497
+ id: 'RMLO'
7498
+ }]
7499
+ }, {
7500
+ viewportOptions: {
7501
+ toolGroupId: 'default',
7502
+ displayArea: rightDisplayArea,
7503
+ // flipHorizontal: true,
7504
+ allowUnmatchedView: true
7505
+ },
7506
+ displaySets: [{
7507
+ id: 'LMLO'
7508
+ }]
7509
+ }]
7510
+ },
7511
+ // Compare CC current/prior top/bottom
7512
+ {
7513
+ name: 'CC compare',
7514
+ viewportStructure: {
7515
+ type: 'grid',
7516
+ layoutType: 'grid',
7517
+ properties: {
7518
+ rows: 2,
7519
+ columns: 2
7520
+ }
7521
+ },
7522
+ viewports: [{
7523
+ viewportOptions: {
7524
+ toolGroupId: 'default',
7525
+ displayArea: leftDisplayArea,
7526
+ flipHorizontal: true,
7527
+ rotation: 180
7528
+ },
7529
+ displaySets: [{
7530
+ id: 'RCC'
7531
+ }]
7532
+ }, {
7533
+ viewportOptions: {
7534
+ toolGroupId: 'default',
7535
+ flipHorizontal: true,
7536
+ displayArea: rightDisplayArea
7537
+ },
7538
+ displaySets: [{
7539
+ id: 'LCC'
7540
+ }]
7541
+ }, {
7542
+ viewportOptions: {
7543
+ toolGroupId: 'default',
7544
+ displayArea: leftDisplayArea,
7545
+ flipHorizontal: true
7546
+ },
7547
+ displaySets: [{
7548
+ id: 'RCCPrior'
7549
+ }]
7550
+ }, {
7551
+ viewportOptions: {
7552
+ toolGroupId: 'default',
7553
+ displayArea: rightDisplayArea
7554
+ },
7555
+ displaySets: [{
7556
+ id: 'LCCPrior'
7557
+ }]
7558
+ }]
7559
+ }],
7560
+ // Indicates it is prior aware, but will work with no priors
7561
+ numberOfPriorsReferenced: 0
7562
+ };
7563
+ /* harmony default export */ const hpMammo = (hpMammography);
7227
7564
  ;// CONCATENATED MODULE: ../../../extensions/default/src/getHangingProtocolModule.js
7228
7565
 
7229
7566
 
7567
+
7230
7568
  const defaultProtocol = {
7231
7569
  id: 'default',
7232
7570
  locked: true,
@@ -7240,9 +7578,6 @@ const defaultProtocol = {
7240
7578
  editableBy: {},
7241
7579
  protocolMatchingRules: [],
7242
7580
  toolGroupIds: ['default'],
7243
- hpInitiationCriteria: {
7244
- minSeriesLoaded: 1
7245
- },
7246
7581
  // -1 would be used to indicate active only, whereas other values are
7247
7582
  // the number of required priors referenced - so 0 means active with
7248
7583
  // 0 or more priors.
@@ -7333,7 +7668,15 @@ function getHangingProtocolModule() {
7333
7668
  {
7334
7669
  name: hpCompare.id,
7335
7670
  protocol: hpCompare
7336
- }];
7671
+ }, {
7672
+ name: hpMammo.id,
7673
+ protocol: hpMammo
7674
+ }
7675
+ // {
7676
+ // name: hpScale.id,
7677
+ // protocol: hpScale,
7678
+ // },
7679
+ ];
7337
7680
  }
7338
7681
  /* harmony default export */ const src_getHangingProtocolModule = (getHangingProtocolModule);
7339
7682
  ;// CONCATENATED MODULE: ../../../extensions/default/src/Panels/DataSourceSelector.tsx
@@ -7951,7 +8294,7 @@ function getCustomizationModule({
7951
8294
  factory: dataSourceName => new GoogleCloudDataSourceConfigurationAPI(dataSourceName, servicesManager, extensionManager)
7952
8295
  }, {
7953
8296
  id: 'progressDropdownWithServiceComponent',
7954
- component: ProgressDropdownWithService_ProgressDropdownWithService
8297
+ component: ProgressDropdownWithService
7955
8298
  }]
7956
8299
  }];
7957
8300
  }
@@ -8013,7 +8356,7 @@ function getPTImageIdInstanceMetadata(imageId) {
8013
8356
  if (!dicomMetaData) {
8014
8357
  throw new Error('dicom metadata are required');
8015
8358
  }
8016
- if (dicomMetaData.SeriesDate === undefined || dicomMetaData.SeriesTime === undefined || dicomMetaData.CorrectedImage === undefined || dicomMetaData.Units === undefined || !dicomMetaData.RadiopharmaceuticalInformationSequence || dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideHalfLife === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideTotalDose === undefined || dicomMetaData.DecayCorrection === undefined || dicomMetaData.AcquisitionDate === undefined || dicomMetaData.AcquisitionTime === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartDateTime === undefined && dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartTime === undefined) {
8359
+ if (dicomMetaData.SeriesDate === undefined || dicomMetaData.SeriesTime === undefined || dicomMetaData.CorrectedImage === undefined || dicomMetaData.Units === undefined || !dicomMetaData.RadiopharmaceuticalInformationSequence || dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose === undefined || dicomMetaData.DecayCorrection === undefined || dicomMetaData.AcquisitionDate === undefined || dicomMetaData.AcquisitionTime === undefined || dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartDateTime === undefined && dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime === undefined) {
8017
8360
  throw new Error('required metadata are missing');
8018
8361
  }
8019
8362
  if (dicomMetaData.PatientWeight === undefined) {
@@ -8022,10 +8365,10 @@ function getPTImageIdInstanceMetadata(imageId) {
8022
8365
  const instanceMetadata = {
8023
8366
  CorrectedImage: dicomMetaData.CorrectedImage,
8024
8367
  Units: dicomMetaData.Units,
8025
- RadionuclideHalfLife: dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideHalfLife,
8026
- RadionuclideTotalDose: dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadionuclideTotalDose,
8027
- RadiopharmaceuticalStartDateTime: dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartDateTime,
8028
- RadiopharmaceuticalStartTime: dicomMetaData.RadiopharmaceuticalInformationSequence[0].RadiopharmaceuticalStartTime,
8368
+ RadionuclideHalfLife: dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideHalfLife,
8369
+ RadionuclideTotalDose: dicomMetaData.RadiopharmaceuticalInformationSequence.RadionuclideTotalDose,
8370
+ RadiopharmaceuticalStartDateTime: dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartDateTime,
8371
+ RadiopharmaceuticalStartTime: dicomMetaData.RadiopharmaceuticalInformationSequence.RadiopharmaceuticalStartTime,
8029
8372
  DecayCorrection: dicomMetaData.DecayCorrection,
8030
8373
  PatientWeight: dicomMetaData.PatientWeight,
8031
8374
  SeriesDate: dicomMetaData.SeriesDate,
@@ -8072,10 +8415,55 @@ function convertInterfaceDateToString(date) {
8072
8415
  return dateString;
8073
8416
  }
8074
8417
 
8418
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/viewCode.ts
8419
+ /* harmony default export */ const viewCode = (displaySet => {
8420
+ const ViewCodeSequence = displaySet?.images[0]?.ViewCodeSequence[0];
8421
+ if (!ViewCodeSequence) {
8422
+ return undefined;
8423
+ }
8424
+ const {
8425
+ CodingSchemeDesignator,
8426
+ CodeValue
8427
+ } = ViewCodeSequence;
8428
+ if (!CodingSchemeDesignator || !CodeValue) {
8429
+ return undefined;
8430
+ }
8431
+ return `${CodingSchemeDesignator}:${CodeValue}`;
8432
+ });
8433
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/laterality.ts
8434
+ /* harmony default export */ const laterality = (displaySet => {
8435
+ const frameAnatomy = displaySet?.images?.[0]?.SharedFunctionalGroupsSequence?.[0]?.FrameAnatomySequence?.[0];
8436
+ if (!frameAnatomy) {
8437
+ return undefined;
8438
+ }
8439
+ const laterality = frameAnatomy?.FrameLaterality;
8440
+ return laterality;
8441
+ });
8442
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/registerHangingProtocolAttributes.ts
8443
+
8444
+
8445
+ function registerHangingProtocolAttributes({
8446
+ servicesManager
8447
+ }) {
8448
+ const {
8449
+ hangingProtocolService
8450
+ } = servicesManager.services;
8451
+ hangingProtocolService.addCustomAttribute('ViewCode', 'View Code Designator:Value', viewCode);
8452
+ hangingProtocolService.addCustomAttribute('Laterality', 'Laterality of object', laterality);
8453
+ }
8454
+ ;// CONCATENATED MODULE: ../../../extensions/default/src/hangingprotocols/index.ts
8455
+
8456
+
8457
+
8458
+
8459
+
8460
+
8461
+
8075
8462
  ;// CONCATENATED MODULE: ../../../extensions/default/src/init.ts
8076
8463
 
8077
8464
 
8078
8465
 
8466
+
8079
8467
  const init_metadataProvider = src.classes.MetadataProvider;
8080
8468
 
8081
8469
  /**
@@ -8144,6 +8532,11 @@ function init({
8144
8532
  clearOnModeExit: true
8145
8533
  });
8146
8534
 
8535
+ // Adds extra custom attributes for use by hanging protocols
8536
+ registerHangingProtocolAttributes({
8537
+ servicesManager
8538
+ });
8539
+
8147
8540
  // Function to process and subscribe to events for a given set of commands and listeners
8148
8541
  const subscribeToEvents = listeners => {
8149
8542
  Object.entries(listeners).forEach(([event, commands]) => {