@ohif/app 3.8.0-beta.8 → 3.8.0-beta.81

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 (99) hide show
  1. package/dist/{220.bundle.f7e1c96c94245e70f2be.js → 109.bundle.b4fee2a22b622839baf5.js} +4466 -3715
  2. package/dist/{471.bundle.49c8d281adbae4a2c4df.js → 121.bundle.47f05840a5b3cdf75543.js} +94 -113
  3. package/dist/141.bundle.556b4c1e4cab770417ac.js +8620 -0
  4. package/dist/{687.bundle.9065db35c01823286f08.js → 164.bundle.fadc7c5d634402c73b5f.js} +22 -38
  5. package/dist/17dd54813d5acc10bf8f.wasm +0 -0
  6. package/dist/183.bundle.a3e238998be71c4b2af8.js +30410 -0
  7. package/dist/{506.bundle.5731bb4349e266491225.js → 188.bundle.51dc4b37920f45594393.js} +23 -28
  8. package/dist/{342.bundle.e7c3d500f86fdfcc62b5.js → 206.bundle.fcaa081a0d1f68095c31.js} +1991 -1145
  9. package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
  10. package/dist/217.bundle.d44bbaa50b6fa563fe15.js +115126 -0
  11. package/dist/{451.bundle.57c21db5d003c75e9d61.js → 295.bundle.5ace95771ced62bdcab8.js} +111 -128
  12. package/dist/{125.bundle.253395f320b72180da63.js → 297.bundle.194d8985ab974839b5b6.js} +7 -8
  13. package/dist/{19.bundle.f77c5787b6d8ac0b638b.js → 325.bundle.fd8e0c18db4708d03a91.js} +477 -373
  14. package/dist/335.bundle.8400aa5a88697a6b9d53.js +2590 -0
  15. package/dist/{202.bundle.d3490836f71e001dd30f.js → 342.bundle.e6d0bba29351b5650a8c.js} +566 -868
  16. package/dist/{776.bundle.a2dedb405a12ffd7699b.js → 41.bundle.0905b258a90a7c6437bb.js} +7453 -3624
  17. package/dist/422.bundle.c6fd037b075dd54f1ba7.js +865 -0
  18. package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 433.bundle.e0018820758f5a86fa7f.js} +14797 -27561
  19. package/dist/445.bundle.38c6d2af64e41cd7c614.js +7835 -0
  20. package/dist/{126.bundle.6e7111d58bcc937ffd80.js → 448.bundle.5e6da31477887bf53016.js} +356 -430
  21. package/dist/487.bundle.89d973049defb3ba6cb7.js +1876 -0
  22. package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 530.bundle.207b38c15c4c01e4db0e.js} +104 -121
  23. package/dist/{250.bundle.aea3335667054bdefe36.js → 544.bundle.1c1f57118560046649c1.js} +37 -62
  24. package/dist/574.bundle.d648fea691d6709bf2b4.js +2652 -0
  25. package/dist/{181.css → 574.css} +1 -1
  26. package/dist/{410.bundle.15c855b0ff4a1a674fb8.js → 594.bundle.84076375b127b9c7f673.js} +183 -221
  27. package/dist/{221.bundle.aef554202c58483cb34e.js → 633.bundle.acab89baaa06a299d679.js} +365 -553
  28. package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 644.bundle.1e77691d2eeb96a423b0.js} +1852 -8945
  29. package/dist/{663.bundle.d7be28450db14266cdd0.js → 669.bundle.b17e8a621e38d92c653f.js} +310 -265
  30. package/dist/699.bundle.9367d7ef9f7615b2e733.js +772 -0
  31. package/dist/702.bundle.963481fbf871984b646f.js +8426 -0
  32. package/dist/722.bundle.afab1fe6bfcd569130ac.js +1083 -0
  33. package/dist/{359.bundle.45ecb3d28e8c22142606.js → 724.bundle.55f9f49816de931af91a.js} +165 -260
  34. package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 726.bundle.0b3d9277d22fe7e15b89.js} +512 -879
  35. package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 835.bundle.15aff0b7433bb0dd6d6d.js} +37 -30
  36. package/dist/{822.bundle.82cdc418f8f56da6060b.js → 862.bundle.d32ab08e64806b2e964d.js} +81 -97
  37. package/dist/{236.bundle.4e9924934a747afac132.js → 889.bundle.8ef8b723d0163d5d135c.js} +207 -199
  38. package/dist/{281.bundle.deb7492d143e7768d8bf.js → 905.bundle.8a96e1a75b7cfe5ec093.js} +157 -124
  39. package/dist/{814.bundle.c8c951d20039b63b865a.js → 907.bundle.5c88ed911bed18582da4.js} +16 -30
  40. package/dist/{417.bundle.af0a207c29b109f84159.js → 931.bundle.d270a1fda9a2836c3cc5.js} +26 -26
  41. package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 939.bundle.9d93b2e47c52338747a2.js} +7 -8
  42. package/dist/94.bundle.f5f2479c214180d05d42.js +778 -0
  43. package/dist/{12.bundle.b5ca13e5363f170ecb3b.js → 961.bundle.f4e52bc76d3044d05372.js} +20 -33
  44. package/dist/app-config.js +1 -0
  45. package/dist/app.bundle.css +16 -13
  46. package/dist/{app.bundle.a978edc59b9d82f2eb22.js → app.bundle.ed937512f7d19d61c411.js} +183396 -87682
  47. package/dist/assets/images/CT-AAA.png +0 -0
  48. package/dist/assets/images/CT-AAA2.png +0 -0
  49. package/dist/assets/images/CT-Air.png +0 -0
  50. package/dist/assets/images/CT-Bone.png +0 -0
  51. package/dist/assets/images/CT-Bones.png +0 -0
  52. package/dist/assets/images/CT-Cardiac.png +0 -0
  53. package/dist/assets/images/CT-Cardiac2.png +0 -0
  54. package/dist/assets/images/CT-Cardiac3.png +0 -0
  55. package/dist/assets/images/CT-Chest-Contrast-Enhanced.png +0 -0
  56. package/dist/assets/images/CT-Chest-Vessels.png +0 -0
  57. package/dist/assets/images/CT-Coronary-Arteries-2.png +0 -0
  58. package/dist/assets/images/CT-Coronary-Arteries-3.png +0 -0
  59. package/dist/assets/images/CT-Coronary-Arteries.png +0 -0
  60. package/dist/assets/images/CT-Cropped-Volume-Bone.png +0 -0
  61. package/dist/assets/images/CT-Fat.png +0 -0
  62. package/dist/assets/images/CT-Liver-Vasculature.png +0 -0
  63. package/dist/assets/images/CT-Lung.png +0 -0
  64. package/dist/assets/images/CT-MIP.png +0 -0
  65. package/dist/assets/images/CT-Muscle.png +0 -0
  66. package/dist/assets/images/CT-Pulmonary-Arteries.png +0 -0
  67. package/dist/assets/images/CT-Soft-Tissue.png +0 -0
  68. package/dist/assets/images/DTI-FA-Brain.png +0 -0
  69. package/dist/assets/images/MR-Angio.png +0 -0
  70. package/dist/assets/images/MR-Default.png +0 -0
  71. package/dist/assets/images/MR-MIP.png +0 -0
  72. package/dist/assets/images/MR-T2-Brain.png +0 -0
  73. package/dist/assets/images/VolumeRendering.png +0 -0
  74. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  75. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  76. package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js} +3 -3
  77. package/dist/histogram-worker.bundle.829e14ec12c2b41a4323.js +359 -0
  78. package/dist/index.html +1 -1
  79. package/dist/{index.worker.e62ecca63f1a2e124230.worker.js → index.worker.64c896c4316fcd506666.worker.js} +2 -2
  80. package/dist/index.worker.64c896c4316fcd506666.worker.js.map +1 -0
  81. package/dist/polySeg.bundle.f1a6ece1396dc1385155.js +249 -0
  82. package/dist/serve.json +12 -0
  83. package/dist/sw.js +1 -1
  84. package/package.json +26 -22
  85. package/dist/181.bundle.a62b9f0ec692299acb35.js +0 -1527
  86. package/dist/23.bundle.e008ad788170f2ed5569.js +0 -900
  87. package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
  88. package/dist/613.bundle.9e7072e5b575354fe51e.js +0 -532
  89. package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
  90. package/dist/75788f12450d4c5ed494.wasm +0 -0
  91. package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
  92. package/dist/788.bundle.207ac23c0dfa70cbe3fb.js +0 -2682
  93. package/dist/82.bundle.d6fdcca0f67540bb226a.js +0 -1049
  94. package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
  95. /package/dist/{19.css → 325.css} +0 -0
  96. /package/dist/{776.css → 41.css} +0 -0
  97. /package/dist/{579.css → 481.css} +0 -0
  98. /package/dist/{250.css → 544.css} +0 -0
  99. /package/dist/{221.css → 633.css} +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[471],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[121],{
3
3
 
4
- /***/ 56471:
4
+ /***/ 23121:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -13,14 +13,12 @@ __webpack_require__.d(__webpack_exports__, {
13
13
  });
14
14
 
15
15
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
16
- var react = __webpack_require__(43001);
16
+ var react = __webpack_require__(41766);
17
17
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
18
- var prop_types = __webpack_require__(3827);
18
+ var prop_types = __webpack_require__(11374);
19
19
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
20
- // EXTERNAL MODULE: ../../core/src/index.ts + 65 modules
21
- var src = __webpack_require__(71771);
22
- // EXTERNAL MODULE: ../../ui/src/index.js + 486 modules
23
- var ui_src = __webpack_require__(22582);
20
+ // EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
21
+ var src = __webpack_require__(5085);
24
22
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts
25
23
 
26
24
  const RESPONSE = {
@@ -28,15 +26,14 @@ const RESPONSE = {
28
26
  CANCEL: 0,
29
27
  HYDRATE_SEG: 5
30
28
  };
31
- function promptHydrateRT(_ref) {
32
- let {
33
- servicesManager,
34
- rtDisplaySet,
35
- viewportId,
36
- toolGroupId = 'default',
37
- preHydrateCallbacks,
38
- hydrateRTDisplaySet
39
- } = _ref;
29
+ function promptHydrateRT({
30
+ servicesManager,
31
+ rtDisplaySet,
32
+ viewportId,
33
+ toolGroupId = 'default',
34
+ preHydrateCallbacks,
35
+ hydrateRTDisplaySet
36
+ }) {
40
37
  const {
41
38
  uiViewportDialogService
42
39
  } = servicesManager.services;
@@ -60,11 +57,11 @@ function _askHydrate(uiViewportDialogService, viewportId) {
60
57
  return new Promise(function (resolve, reject) {
61
58
  const message = 'Do you want to open this Segmentation?';
62
59
  const actions = [{
63
- type: ui_src/* ButtonEnums.type */.LZ.dt.secondary,
60
+ type: src/* ButtonEnums.type */.Ny.NW.secondary,
64
61
  text: 'No',
65
62
  value: RESPONSE.CANCEL
66
63
  }, {
67
- type: ui_src/* ButtonEnums.type */.LZ.dt.primary,
64
+ type: src/* ButtonEnums.type */.Ny.NW.primary,
68
65
  text: 'Yes',
69
66
  value: RESPONSE.HYDRATE_SEG
70
67
  }];
@@ -81,55 +78,61 @@ function _askHydrate(uiViewportDialogService, viewportId) {
81
78
  onOutsideClick: () => {
82
79
  uiViewportDialogService.hide();
83
80
  resolve(RESPONSE.CANCEL);
81
+ },
82
+ onKeyPress: event => {
83
+ if (event.key === 'Enter') {
84
+ onSubmit(RESPONSE.HYDRATE_SEG);
85
+ }
84
86
  }
85
87
  });
86
88
  });
87
89
  }
88
90
  /* harmony default export */ const utils_promptHydrateRT = (promptHydrateRT);
89
91
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
90
- var es = __webpack_require__(69190);
92
+ var es = __webpack_require__(80619);
91
93
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/viewports/_getStatusComponent.tsx
92
94
 
93
95
 
94
96
 
95
- function _getStatusComponent(_ref) {
96
- let {
97
- isHydrated,
98
- onStatusClick
99
- } = _ref;
97
+ function _getStatusComponent({
98
+ isHydrated,
99
+ onStatusClick
100
+ }) {
100
101
  let ToolTipMessage = null;
101
102
  let StatusIcon = null;
102
- const {
103
- t
104
- } = (0,es/* useTranslation */.$G)('Common');
105
- const loadStr = t('LOAD');
106
103
  switch (isHydrated) {
107
104
  case true:
108
- StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
105
+ StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
109
106
  name: "status-alert"
110
107
  });
111
108
  ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "This Segmentation is loaded in the segmentation panel");
112
109
  break;
113
110
  case false:
114
- StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
111
+ StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
115
112
  className: "text-aqua-pale",
116
113
  name: "status-untracked"
117
114
  });
118
115
  ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "Click LOAD to load RTSTRUCT.");
119
116
  }
120
- const StatusArea = () => /*#__PURE__*/react.createElement("div", {
121
- className: "flex h-6 cursor-default text-sm leading-6 text-white"
122
- }, /*#__PURE__*/react.createElement("div", {
123
- className: "bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
124
- }, /*#__PURE__*/react.createElement(StatusIcon, null), /*#__PURE__*/react.createElement("span", {
125
- className: "ml-1"
126
- }, "RTSTRUCT")), !isHydrated && /*#__PURE__*/react.createElement("div", {
127
- className: "bg-primary-main hover:bg-primary-light ml-1 cursor-pointer rounded px-1.5 hover:text-black"
128
- // Using onMouseUp here because onClick is not working when the viewport is not active and is styled with pointer-events:none
129
- ,
130
- onMouseUp: onStatusClick
131
- }, loadStr));
132
- return /*#__PURE__*/react.createElement(react.Fragment, null, ToolTipMessage && /*#__PURE__*/react.createElement(ui_src/* Tooltip */.u, {
117
+ const StatusArea = () => {
118
+ const {
119
+ t
120
+ } = (0,es/* useTranslation */.Bd)('Common');
121
+ const loadStr = t('LOAD');
122
+ return /*#__PURE__*/react.createElement("div", {
123
+ className: "flex h-6 cursor-default text-sm leading-6 text-white"
124
+ }, /*#__PURE__*/react.createElement("div", {
125
+ className: "bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
126
+ }, /*#__PURE__*/react.createElement(StatusIcon, null), /*#__PURE__*/react.createElement("span", {
127
+ className: "ml-1"
128
+ }, "RTSTRUCT")), !isHydrated && /*#__PURE__*/react.createElement("div", {
129
+ className: "bg-primary-main hover:bg-primary-light ml-1 cursor-pointer rounded px-1.5 hover:text-black"
130
+ // Using onMouseUp here because onClick is not working when the viewport is not active and is styled with pointer-events:none
131
+ ,
132
+ onMouseUp: onStatusClick
133
+ }, loadStr));
134
+ };
135
+ return /*#__PURE__*/react.createElement(react.Fragment, null, ToolTipMessage && /*#__PURE__*/react.createElement(src/* Tooltip */.m_, {
133
136
  content: /*#__PURE__*/react.createElement(ToolTipMessage, null),
134
137
  position: "bottom-left"
135
138
  }, /*#__PURE__*/react.createElement(StatusArea, null)), !ToolTipMessage && /*#__PURE__*/react.createElement(StatusArea, null));
@@ -150,17 +153,12 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
150
153
 
151
154
 
152
155
 
153
-
154
- const {
155
- formatDate
156
- } = src.utils;
157
156
  const RT_TOOLGROUP_BASE_NAME = 'RTToolGroup';
158
157
  function OHIFCornerstoneRTViewport(props) {
159
158
  const {
160
159
  children,
161
160
  displaySets,
162
161
  viewportOptions,
163
- viewportLabel,
164
162
  servicesManager,
165
163
  extensionManager,
166
164
  commandsManager
@@ -170,7 +168,8 @@ function OHIFCornerstoneRTViewport(props) {
170
168
  toolGroupService,
171
169
  segmentationService,
172
170
  uiNotificationService,
173
- customizationService
171
+ customizationService,
172
+ viewportActionCornersService
174
173
  } = servicesManager.services;
175
174
  const viewportId = viewportOptions.viewportId;
176
175
  const toolGroupId = `${RT_TOOLGROUP_BASE_NAME}-${viewportId}`;
@@ -180,7 +179,7 @@ function OHIFCornerstoneRTViewport(props) {
180
179
  throw new Error('RT viewport should only have a single display set');
181
180
  }
182
181
  const rtDisplaySet = displaySets[0];
183
- const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.O_)();
182
+ const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.ih)();
184
183
 
185
184
  // States
186
185
  const [isToolGroupCreated, setToolGroupCreated] = (0,react.useState)(false);
@@ -224,20 +223,18 @@ function OHIFCornerstoneRTViewport(props) {
224
223
  setElement(null);
225
224
  };
226
225
  const storePresentationState = (0,react.useCallback)(() => {
227
- viewportGrid?.viewports.forEach(_ref => {
228
- let {
229
- viewportId
230
- } = _ref;
226
+ viewportGrid?.viewports.forEach(({
227
+ viewportId
228
+ }) => {
231
229
  commandsManager.runCommand('storePresentation', {
232
230
  viewportId
233
231
  });
234
232
  });
235
233
  }, [viewportGrid]);
236
- const hydrateRTDisplaySet = _ref2 => {
237
- let {
238
- rtDisplaySet,
239
- viewportId
240
- } = _ref2;
234
+ const hydrateRTDisplaySet = ({
235
+ rtDisplaySet,
236
+ viewportId
237
+ }) => {
241
238
  commandsManager.runCommand('loadSegmentationDisplaySetsForViewport', {
242
239
  displaySets: [rtDisplaySet],
243
240
  viewportId
@@ -260,12 +257,14 @@ function OHIFCornerstoneRTViewport(props) {
260
257
  orientation: viewportOptions.orientation,
261
258
  viewportId: viewportOptions.viewportId
262
259
  },
263
- onElementEnabled: onElementEnabled,
260
+ onElementEnabled: evt => {
261
+ props.onElementEnabled?.(evt);
262
+ onElementEnabled(evt);
263
+ },
264
264
  onElementDisabled: onElementDisabled
265
265
  }));
266
266
  }, [viewportId, rtDisplaySet, toolGroupId]);
267
267
  const onSegmentChange = (0,react.useCallback)(direction => {
268
- direction = direction === 'left' ? -1 : 1;
269
268
  const segmentationId = rtDisplaySet.displaySetInstanceUID;
270
269
  const segmentation = segmentationService.getSegmentation(segmentationId);
271
270
  const {
@@ -300,6 +299,8 @@ function OHIFCornerstoneRTViewport(props) {
300
299
  });
301
300
  }, [servicesManager, viewportId, rtDisplaySet, rtIsLoading]);
302
301
  (0,react.useEffect)(() => {
302
+ // I'm not sure what is this, since in RT we support Overlapping segments
303
+ // via contours
303
304
  const {
304
305
  unsubscribe
305
306
  } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_LOADING_COMPLETE, evt => {
@@ -321,11 +322,10 @@ function OHIFCornerstoneRTViewport(props) {
321
322
  (0,react.useEffect)(() => {
322
323
  const {
323
324
  unsubscribe
324
- } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, _ref3 => {
325
- let {
326
- percentComplete,
327
- numSegments
328
- } = _ref3;
325
+ } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, ({
326
+ percentComplete,
327
+ numSegments
328
+ }) => {
329
329
  setProcessingProgress({
330
330
  percentComplete,
331
331
  totalSegments: numSegments
@@ -340,10 +340,9 @@ function OHIFCornerstoneRTViewport(props) {
340
340
  Cleanup the SEG viewport when the viewport is destroyed
341
341
  */
342
342
  (0,react.useEffect)(() => {
343
- const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, _ref4 => {
344
- let {
345
- displaySetInstanceUIDs
346
- } = _ref4;
343
+ const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, ({
344
+ displaySetInstanceUIDs
345
+ }) => {
347
346
  const activeViewport = viewports.get(activeViewportId);
348
347
  if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
349
348
  viewportGridService.setDisplaySetsForViewport({
@@ -391,19 +390,7 @@ function OHIFCornerstoneRTViewport(props) {
391
390
  });
392
391
  });
393
392
  }
394
- const {
395
- PatientID,
396
- PatientName,
397
- PatientSex,
398
- PatientAge,
399
- SliceThickness,
400
- ManufacturerModelName,
401
- StudyDate,
402
- SeriesDescription,
403
- SpacingBetweenSlices,
404
- SeriesNumber
405
- } = referencedDisplaySetRef.current.metadata;
406
- const onStatusClick = async () => {
393
+ const onStatusClick = (0,react.useCallback)(async () => {
407
394
  // Before hydrating a RT and make it added to all viewports in the grid
408
395
  // that share the same frameOfReferenceUID, we need to store the viewport grid
409
396
  // presentation state, so that we can restore it after hydrating the RT. This is
@@ -416,38 +403,32 @@ function OHIFCornerstoneRTViewport(props) {
416
403
  viewportId
417
404
  });
418
405
  setIsHydrated(isHydrated);
419
- };
420
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* ViewportActionBar */.uY, {
421
- onDoubleClick: evt => {
422
- evt.stopPropagation();
423
- evt.preventDefault();
424
- },
425
- onArrowsClick: onSegmentChange,
426
- getStatusComponent: () => {
427
- return _getStatusComponent({
406
+ }, [hydrateRTDisplaySet, rtDisplaySet, storePresentationState, viewportId]);
407
+ (0,react.useEffect)(() => {
408
+ viewportActionCornersService.setComponents([{
409
+ viewportId,
410
+ id: 'viewportStatusComponent',
411
+ component: _getStatusComponent({
428
412
  isHydrated,
429
413
  onStatusClick
430
- });
431
- },
432
- studyData: {
433
- label: viewportLabel,
434
- useAltStyling: true,
435
- studyDate: formatDate(StudyDate),
436
- currentSeries: SeriesNumber,
437
- seriesDescription: `RT Viewport ${SeriesDescription}`,
438
- patientInformation: {
439
- patientName: PatientName ? src["default"].utils.formatPN(PatientName.Alphabetic) : '',
440
- patientSex: PatientSex || '',
441
- patientAge: PatientAge || '',
442
- MRN: PatientID || '',
443
- thickness: SliceThickness ? `${SliceThickness.toFixed(2)}mm` : '',
444
- spacing: SpacingBetweenSlices !== undefined ? `${SpacingBetweenSlices.toFixed(2)}mm` : '',
445
- scanner: ManufacturerModelName || ''
446
- }
447
- }
448
- }), /*#__PURE__*/react.createElement("div", {
414
+ }),
415
+ indexPriority: -100,
416
+ location: viewportActionCornersService.LOCATIONS.topLeft
417
+ }, {
418
+ viewportId,
419
+ id: 'viewportActionArrowsComponent',
420
+ component: /*#__PURE__*/react.createElement(src/* ViewportActionArrows */.$I, {
421
+ key: "actionArrows",
422
+ onArrowsClick: onSegmentChange,
423
+ className: viewportId === activeViewportId ? 'visible' : 'invisible group-hover:visible'
424
+ }),
425
+ indexPriority: 0,
426
+ location: viewportActionCornersService.LOCATIONS.topRight
427
+ }]);
428
+ }, [activeViewportId, isHydrated, onSegmentChange, onStatusClick, viewportActionCornersService, viewportId]);
429
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
449
430
  className: "relative flex h-full w-full flex-row overflow-hidden"
450
- }, rtIsLoading && /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorTotalPercent */.bk, {
431
+ }, rtIsLoading && /*#__PURE__*/react.createElement(src/* LoadingIndicatorTotalPercent */.pT, {
451
432
  className: "h-full w-full",
452
433
  totalNumbers: processingProgress.totalSegments,
453
434
  percentComplete: processingProgress.percentComplete,