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

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.787f5a848ed632a4d5fc.js} +90 -112
  3. package/dist/141.bundle.556b4c1e4cab770417ac.js +8620 -0
  4. package/dist/{687.bundle.9065db35c01823286f08.js → 164.bundle.d4598e491783753a8b6b.js} +22 -38
  5. package/dist/17dd54813d5acc10bf8f.wasm +0 -0
  6. package/dist/183.bundle.72bf18ad23ee6624986d.js +30394 -0
  7. package/dist/{506.bundle.5731bb4349e266491225.js → 188.bundle.b80554ec7df7dcd435a5.js} +23 -28
  8. package/dist/{342.bundle.e7c3d500f86fdfcc62b5.js → 206.bundle.f957e0d1cdff66dbac69.js} +1963 -1142
  9. package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
  10. package/dist/217.bundle.be1cc412f8e26be87d21.js +115079 -0
  11. package/dist/{451.bundle.57c21db5d003c75e9d61.js → 295.bundle.6f734abf8fa85b1a310d.js} +107 -127
  12. package/dist/{125.bundle.253395f320b72180da63.js → 297.bundle.194d8985ab974839b5b6.js} +7 -8
  13. package/dist/{19.bundle.f77c5787b6d8ac0b638b.js → 325.bundle.84909a08305556e9f924.js} +479 -371
  14. package/dist/335.bundle.c39d4aefe33aecab958f.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.7c943bb857ed37831905.js} +7295 -3536
  17. package/dist/422.bundle.bd6529c536f59807fbee.js +881 -0
  18. package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 433.bundle.4c77c1fe8fc90ac14218.js} +14737 -27555
  19. package/dist/445.bundle.38c6d2af64e41cd7c614.js +7835 -0
  20. package/dist/{126.bundle.6e7111d58bcc937ffd80.js → 448.bundle.deedeff5744e77510734.js} +362 -430
  21. package/dist/487.bundle.7890ca42826941ebcd60.js +1875 -0
  22. package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 530.bundle.7c94543955552475c56a.js} +98 -127
  23. package/dist/{663.bundle.d7be28450db14266cdd0.js → 540.bundle.079d43a6717e95c24392.js} +225 -188
  24. package/dist/{250.bundle.aea3335667054bdefe36.js → 544.bundle.1c1f57118560046649c1.js} +37 -62
  25. package/dist/574.bundle.be075ac52fb52b442a8b.js +2641 -0
  26. package/dist/{181.css → 574.css} +1 -1
  27. package/dist/{410.bundle.15c855b0ff4a1a674fb8.js → 594.bundle.0b1165661dd638820082.js} +183 -221
  28. package/dist/{221.bundle.aef554202c58483cb34e.js → 633.bundle.c1658e76f104cbd14cab.js} +349 -552
  29. package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 644.bundle.1e77691d2eeb96a423b0.js} +1852 -8945
  30. package/dist/699.bundle.4f01772e7ce6637de339.js +768 -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.e5794460c391ee9cba2c.js} +164 -259
  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.c0ee6e1d4d97e1353213.js} +77 -96
  37. package/dist/{236.bundle.4e9924934a747afac132.js → 889.bundle.7858e4b7ca1a2b12b64f.js} +207 -199
  38. package/dist/{281.bundle.deb7492d143e7768d8bf.js → 905.bundle.170908fe660fc6b40649.js} +157 -124
  39. package/dist/{814.bundle.c8c951d20039b63b865a.js → 907.bundle.dee4e30420caf07caea6.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.c452d9b0645277c2cf4e.js +784 -0
  43. package/dist/{12.bundle.b5ca13e5363f170ecb3b.js → 961.bundle.aaaaaba0ec015a3b85d8.js} +20 -33
  44. package/dist/app-config.js +1 -0
  45. package/dist/{app.bundle.a978edc59b9d82f2eb22.js → app.bundle.6c090a2d6d3ccc97a81d.js} +183240 -87650
  46. package/dist/app.bundle.css +16 -13
  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.63011312c3c79e717ea9.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
@@ -265,7 +262,6 @@ function OHIFCornerstoneRTViewport(props) {
265
262
  }));
266
263
  }, [viewportId, rtDisplaySet, toolGroupId]);
267
264
  const onSegmentChange = (0,react.useCallback)(direction => {
268
- direction = direction === 'left' ? -1 : 1;
269
265
  const segmentationId = rtDisplaySet.displaySetInstanceUID;
270
266
  const segmentation = segmentationService.getSegmentation(segmentationId);
271
267
  const {
@@ -300,6 +296,8 @@ function OHIFCornerstoneRTViewport(props) {
300
296
  });
301
297
  }, [servicesManager, viewportId, rtDisplaySet, rtIsLoading]);
302
298
  (0,react.useEffect)(() => {
299
+ // I'm not sure what is this, since in RT we support Overlapping segments
300
+ // via contours
303
301
  const {
304
302
  unsubscribe
305
303
  } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_LOADING_COMPLETE, evt => {
@@ -321,11 +319,10 @@ function OHIFCornerstoneRTViewport(props) {
321
319
  (0,react.useEffect)(() => {
322
320
  const {
323
321
  unsubscribe
324
- } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, _ref3 => {
325
- let {
326
- percentComplete,
327
- numSegments
328
- } = _ref3;
322
+ } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, ({
323
+ percentComplete,
324
+ numSegments
325
+ }) => {
329
326
  setProcessingProgress({
330
327
  percentComplete,
331
328
  totalSegments: numSegments
@@ -340,10 +337,9 @@ function OHIFCornerstoneRTViewport(props) {
340
337
  Cleanup the SEG viewport when the viewport is destroyed
341
338
  */
342
339
  (0,react.useEffect)(() => {
343
- const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, _ref4 => {
344
- let {
345
- displaySetInstanceUIDs
346
- } = _ref4;
340
+ const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, ({
341
+ displaySetInstanceUIDs
342
+ }) => {
347
343
  const activeViewport = viewports.get(activeViewportId);
348
344
  if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
349
345
  viewportGridService.setDisplaySetsForViewport({
@@ -391,19 +387,7 @@ function OHIFCornerstoneRTViewport(props) {
391
387
  });
392
388
  });
393
389
  }
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 () => {
390
+ const onStatusClick = (0,react.useCallback)(async () => {
407
391
  // Before hydrating a RT and make it added to all viewports in the grid
408
392
  // that share the same frameOfReferenceUID, we need to store the viewport grid
409
393
  // presentation state, so that we can restore it after hydrating the RT. This is
@@ -416,38 +400,32 @@ function OHIFCornerstoneRTViewport(props) {
416
400
  viewportId
417
401
  });
418
402
  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({
403
+ }, [hydrateRTDisplaySet, rtDisplaySet, storePresentationState, viewportId]);
404
+ (0,react.useEffect)(() => {
405
+ viewportActionCornersService.setComponents([{
406
+ viewportId,
407
+ id: 'viewportStatusComponent',
408
+ component: _getStatusComponent({
428
409
  isHydrated,
429
410
  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", {
411
+ }),
412
+ indexPriority: -100,
413
+ location: viewportActionCornersService.LOCATIONS.topLeft
414
+ }, {
415
+ viewportId,
416
+ id: 'viewportActionArrowsComponent',
417
+ component: /*#__PURE__*/react.createElement(src/* ViewportActionArrows */.$I, {
418
+ key: "actionArrows",
419
+ onArrowsClick: onSegmentChange,
420
+ className: viewportId === activeViewportId ? 'visible' : 'invisible group-hover:visible'
421
+ }),
422
+ indexPriority: 0,
423
+ location: viewportActionCornersService.LOCATIONS.topRight
424
+ }]);
425
+ }, [activeViewportId, isHydrated, onSegmentChange, onStatusClick, viewportActionCornersService, viewportId]);
426
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
449
427
  className: "relative flex h-full w-full flex-row overflow-hidden"
450
- }, rtIsLoading && /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorTotalPercent */.bk, {
428
+ }, rtIsLoading && /*#__PURE__*/react.createElement(src/* LoadingIndicatorTotalPercent */.pT, {
451
429
  className: "h-full w-full",
452
430
  totalNumbers: processingProgress.totalSegments,
453
431
  percentComplete: processingProgress.percentComplete,