@ohif/app 3.8.0-beta.7 → 3.8.0-beta.70

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 (93) hide show
  1. package/dist/{220.bundle.f7e1c96c94245e70f2be.js → 109.bundle.b4fee2a22b622839baf5.js} +4466 -3715
  2. package/dist/{471.bundle.49c8d281adbae4a2c4df.js → 121.bundle.21827fec690c01ee9ab3.js} +85 -112
  3. package/dist/{19.bundle.e5579df6d7b74af50b1d.js → 155.bundle.0dabe8513b605b01ac3d.js} +334 -287
  4. package/dist/{687.bundle.9d0330ea5d61fe3117da.js → 164.bundle.0b1a2be351543c1433e8.js} +22 -38
  5. package/dist/17dd54813d5acc10bf8f.wasm +0 -0
  6. package/dist/{506.bundle.ab8226d3d81abe874544.js → 188.bundle.81e83b073b6fd4ae0058.js} +23 -28
  7. package/dist/191.bundle.7d89c921abefd1140d50.js +30360 -0
  8. package/dist/{221.bundle.c2dc03d8fa4235dc1285.js → 2.bundle.04dbbf67a52fe109749c.js} +351 -546
  9. package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
  10. package/dist/290.bundle.952de53057f98e2c5ef0.js +8883 -0
  11. package/dist/{451.bundle.57c21db5d003c75e9d61.js → 295.bundle.3a0d5062d65296c4bf5d.js} +102 -127
  12. package/dist/{125.bundle.253395f320b72180da63.js → 297.bundle.194d8985ab974839b5b6.js} +7 -8
  13. package/dist/{202.bundle.d3490836f71e001dd30f.js → 342.bundle.6e49f63ea7cea4645c0a.js} +544 -860
  14. package/dist/41.bundle.6ec0794a483e9a30eb94.js +831 -0
  15. package/dist/425.bundle.ffcdde2143a5757926b9.js +2957 -0
  16. package/dist/425.css +2 -0
  17. package/dist/{126.bundle.42df2dafc9c0310da188.js → 448.bundle.9177b9d909654efbc8d5.js} +316 -427
  18. package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 504.bundle.993d7e2dec36257d4ce4.js} +14338 -27291
  19. package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 530.bundle.566bfd08dccb4cf6d98b.js} +75 -105
  20. package/dist/{250.bundle.aea3335667054bdefe36.js → 544.bundle.1110b24e96863d719a95.js} +39 -56
  21. package/dist/{663.bundle.9f359963019cd8ccf8f9.js → 559.bundle.4f111410af43324629ca.js} +151 -147
  22. package/dist/{181.bundle.a62b9f0ec692299acb35.js → 574.bundle.83afbc7922736fc6846d.js} +1246 -289
  23. package/dist/{181.css → 574.css} +1 -1
  24. package/dist/{410.bundle.38c9d3820e152e89288e.js → 594.bundle.ffeebda1bb9a81182a80.js} +183 -221
  25. package/dist/{776.bundle.004382036bdbd8ee2b95.js → 595.bundle.1c1a50c4ff87763b786a.js} +3128 -1028
  26. package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 644.bundle.1e77691d2eeb96a423b0.js} +1852 -8945
  27. package/dist/699.bundle.db05df7b8e2ad605e928.js +767 -0
  28. package/dist/{359.bundle.8abe0036a7bf6b5fd115.js → 724.bundle.eada9d6c23678a5a2947.js} +130 -254
  29. package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 726.bundle.c8de818cf1a3ff0cf7d2.js} +512 -879
  30. package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 835.bundle.15aff0b7433bb0dd6d6d.js} +37 -30
  31. package/dist/{822.bundle.82cdc418f8f56da6060b.js → 862.bundle.959ef65b18c1d3b5e2b4.js} +77 -96
  32. package/dist/{236.bundle.c9e70d55e7b2574c1ecd.js → 889.bundle.67c6e5f988c9b1d289ef.js} +198 -197
  33. package/dist/{342.bundle.d9668551811e3a88aaa4.js → 90.bundle.f41c8c4fc78cdfd4de30.js} +1430 -1055
  34. package/dist/{281.bundle.16a2933086a57e60c96c.js → 905.bundle.eb821474b36b96b897f9.js} +155 -122
  35. package/dist/{814.bundle.a1aba9c1e3d336008351.js → 907.bundle.ca904d9747480a0e4bf1.js} +16 -30
  36. package/dist/{417.bundle.af0a207c29b109f84159.js → 931.bundle.d270a1fda9a2836c3cc5.js} +26 -26
  37. package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 939.bundle.9d93b2e47c52338747a2.js} +7 -8
  38. package/dist/{12.bundle.37a8b47d2ae587cb9226.js → 961.bundle.65967b1a4af002af1d1d.js} +16 -31
  39. package/dist/987.bundle.6bdfb3cd8762b8889632.js +122950 -0
  40. package/dist/app-config.js +1 -0
  41. package/dist/app.bundle.css +15 -13
  42. package/dist/{app.bundle.437d085e13599d1e1ced.js → app.bundle.e21e5afd46fb064cb5de.js} +147713 -61638
  43. package/dist/assets/images/CT-AAA.png +0 -0
  44. package/dist/assets/images/CT-AAA2.png +0 -0
  45. package/dist/assets/images/CT-Air.png +0 -0
  46. package/dist/assets/images/CT-Bone.png +0 -0
  47. package/dist/assets/images/CT-Bones.png +0 -0
  48. package/dist/assets/images/CT-Cardiac.png +0 -0
  49. package/dist/assets/images/CT-Cardiac2.png +0 -0
  50. package/dist/assets/images/CT-Cardiac3.png +0 -0
  51. package/dist/assets/images/CT-Chest-Contrast-Enhanced.png +0 -0
  52. package/dist/assets/images/CT-Chest-Vessels.png +0 -0
  53. package/dist/assets/images/CT-Coronary-Arteries-2.png +0 -0
  54. package/dist/assets/images/CT-Coronary-Arteries-3.png +0 -0
  55. package/dist/assets/images/CT-Coronary-Arteries.png +0 -0
  56. package/dist/assets/images/CT-Cropped-Volume-Bone.png +0 -0
  57. package/dist/assets/images/CT-Fat.png +0 -0
  58. package/dist/assets/images/CT-Liver-Vasculature.png +0 -0
  59. package/dist/assets/images/CT-Lung.png +0 -0
  60. package/dist/assets/images/CT-MIP.png +0 -0
  61. package/dist/assets/images/CT-Muscle.png +0 -0
  62. package/dist/assets/images/CT-Pulmonary-Arteries.png +0 -0
  63. package/dist/assets/images/CT-Soft-Tissue.png +0 -0
  64. package/dist/assets/images/DTI-FA-Brain.png +0 -0
  65. package/dist/assets/images/MR-Angio.png +0 -0
  66. package/dist/assets/images/MR-Default.png +0 -0
  67. package/dist/assets/images/MR-MIP.png +0 -0
  68. package/dist/assets/images/MR-T2-Brain.png +0 -0
  69. package/dist/assets/images/VolumeRendering.png +0 -0
  70. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  71. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  72. package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js} +3 -3
  73. package/dist/index.html +1 -1
  74. package/dist/{index.worker.e62ecca63f1a2e124230.worker.js → index.worker.64c896c4316fcd506666.worker.js} +2 -2
  75. package/dist/index.worker.64c896c4316fcd506666.worker.js.map +1 -0
  76. package/dist/polySeg.bundle.e7b4c29fb9173e8567b8.js +252 -0
  77. package/dist/serve.json +12 -0
  78. package/dist/sw.js +1 -1
  79. package/package.json +25 -22
  80. package/dist/23.bundle.e008ad788170f2ed5569.js +0 -900
  81. package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
  82. package/dist/613.bundle.aed640a7900dbcb688f5.js +0 -532
  83. package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
  84. package/dist/75788f12450d4c5ed494.wasm +0 -0
  85. package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
  86. package/dist/788.bundle.dcd53828d1bb2ac64d04.js +0 -2682
  87. package/dist/82.bundle.5a94dd7645e5c5476f59.js +0 -1049
  88. package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
  89. /package/dist/{19.css → 155.css} +0 -0
  90. /package/dist/{221.css → 2.css} +0 -0
  91. /package/dist/{579.css → 481.css} +0 -0
  92. /package/dist/{250.css → 544.css} +0 -0
  93. /package/dist/{776.css → 595.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 + 542 modules
21
+ var src = __webpack_require__(48804);
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
  }];
@@ -87,49 +84,50 @@ function _askHydrate(uiViewportDialogService, viewportId) {
87
84
  }
88
85
  /* harmony default export */ const utils_promptHydrateRT = (promptHydrateRT);
89
86
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
90
- var es = __webpack_require__(69190);
87
+ var es = __webpack_require__(80619);
91
88
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/viewports/_getStatusComponent.tsx
92
89
 
93
90
 
94
91
 
95
- function _getStatusComponent(_ref) {
96
- let {
97
- isHydrated,
98
- onStatusClick
99
- } = _ref;
92
+ function _getStatusComponent({
93
+ isHydrated,
94
+ onStatusClick
95
+ }) {
100
96
  let ToolTipMessage = null;
101
97
  let StatusIcon = null;
102
- const {
103
- t
104
- } = (0,es/* useTranslation */.$G)('Common');
105
- const loadStr = t('LOAD');
106
98
  switch (isHydrated) {
107
99
  case true:
108
- StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
100
+ StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
109
101
  name: "status-alert"
110
102
  });
111
103
  ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "This Segmentation is loaded in the segmentation panel");
112
104
  break;
113
105
  case false:
114
- StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
106
+ StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
115
107
  className: "text-aqua-pale",
116
108
  name: "status-untracked"
117
109
  });
118
110
  ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "Click LOAD to load RTSTRUCT.");
119
111
  }
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, {
112
+ const StatusArea = () => {
113
+ const {
114
+ t
115
+ } = (0,es/* useTranslation */.Bd)('Common');
116
+ const loadStr = t('LOAD');
117
+ return /*#__PURE__*/react.createElement("div", {
118
+ className: "flex h-6 cursor-default text-sm leading-6 text-white"
119
+ }, /*#__PURE__*/react.createElement("div", {
120
+ className: "bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
121
+ }, /*#__PURE__*/react.createElement(StatusIcon, null), /*#__PURE__*/react.createElement("span", {
122
+ className: "ml-1"
123
+ }, "RTSTRUCT")), !isHydrated && /*#__PURE__*/react.createElement("div", {
124
+ className: "bg-primary-main hover:bg-primary-light ml-1 cursor-pointer rounded px-1.5 hover:text-black"
125
+ // Using onMouseUp here because onClick is not working when the viewport is not active and is styled with pointer-events:none
126
+ ,
127
+ onMouseUp: onStatusClick
128
+ }, loadStr));
129
+ };
130
+ return /*#__PURE__*/react.createElement(react.Fragment, null, ToolTipMessage && /*#__PURE__*/react.createElement(src/* Tooltip */.m_, {
133
131
  content: /*#__PURE__*/react.createElement(ToolTipMessage, null),
134
132
  position: "bottom-left"
135
133
  }, /*#__PURE__*/react.createElement(StatusArea, null)), !ToolTipMessage && /*#__PURE__*/react.createElement(StatusArea, null));
@@ -150,17 +148,12 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
150
148
 
151
149
 
152
150
 
153
-
154
- const {
155
- formatDate
156
- } = src.utils;
157
151
  const RT_TOOLGROUP_BASE_NAME = 'RTToolGroup';
158
152
  function OHIFCornerstoneRTViewport(props) {
159
153
  const {
160
154
  children,
161
155
  displaySets,
162
156
  viewportOptions,
163
- viewportLabel,
164
157
  servicesManager,
165
158
  extensionManager,
166
159
  commandsManager
@@ -170,7 +163,8 @@ function OHIFCornerstoneRTViewport(props) {
170
163
  toolGroupService,
171
164
  segmentationService,
172
165
  uiNotificationService,
173
- customizationService
166
+ customizationService,
167
+ viewportActionCornersService
174
168
  } = servicesManager.services;
175
169
  const viewportId = viewportOptions.viewportId;
176
170
  const toolGroupId = `${RT_TOOLGROUP_BASE_NAME}-${viewportId}`;
@@ -180,7 +174,7 @@ function OHIFCornerstoneRTViewport(props) {
180
174
  throw new Error('RT viewport should only have a single display set');
181
175
  }
182
176
  const rtDisplaySet = displaySets[0];
183
- const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.O_)();
177
+ const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.ih)();
184
178
 
185
179
  // States
186
180
  const [isToolGroupCreated, setToolGroupCreated] = (0,react.useState)(false);
@@ -224,20 +218,18 @@ function OHIFCornerstoneRTViewport(props) {
224
218
  setElement(null);
225
219
  };
226
220
  const storePresentationState = (0,react.useCallback)(() => {
227
- viewportGrid?.viewports.forEach(_ref => {
228
- let {
229
- viewportId
230
- } = _ref;
221
+ viewportGrid?.viewports.forEach(({
222
+ viewportId
223
+ }) => {
231
224
  commandsManager.runCommand('storePresentation', {
232
225
  viewportId
233
226
  });
234
227
  });
235
228
  }, [viewportGrid]);
236
- const hydrateRTDisplaySet = _ref2 => {
237
- let {
238
- rtDisplaySet,
239
- viewportId
240
- } = _ref2;
229
+ const hydrateRTDisplaySet = ({
230
+ rtDisplaySet,
231
+ viewportId
232
+ }) => {
241
233
  commandsManager.runCommand('loadSegmentationDisplaySetsForViewport', {
242
234
  displaySets: [rtDisplaySet],
243
235
  viewportId
@@ -265,7 +257,6 @@ function OHIFCornerstoneRTViewport(props) {
265
257
  }));
266
258
  }, [viewportId, rtDisplaySet, toolGroupId]);
267
259
  const onSegmentChange = (0,react.useCallback)(direction => {
268
- direction = direction === 'left' ? -1 : 1;
269
260
  const segmentationId = rtDisplaySet.displaySetInstanceUID;
270
261
  const segmentation = segmentationService.getSegmentation(segmentationId);
271
262
  const {
@@ -300,6 +291,8 @@ function OHIFCornerstoneRTViewport(props) {
300
291
  });
301
292
  }, [servicesManager, viewportId, rtDisplaySet, rtIsLoading]);
302
293
  (0,react.useEffect)(() => {
294
+ // I'm not sure what is this, since in RT we support Overlapping segments
295
+ // via contours
303
296
  const {
304
297
  unsubscribe
305
298
  } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_LOADING_COMPLETE, evt => {
@@ -321,11 +314,10 @@ function OHIFCornerstoneRTViewport(props) {
321
314
  (0,react.useEffect)(() => {
322
315
  const {
323
316
  unsubscribe
324
- } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, _ref3 => {
325
- let {
326
- percentComplete,
327
- numSegments
328
- } = _ref3;
317
+ } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, ({
318
+ percentComplete,
319
+ numSegments
320
+ }) => {
329
321
  setProcessingProgress({
330
322
  percentComplete,
331
323
  totalSegments: numSegments
@@ -340,10 +332,9 @@ function OHIFCornerstoneRTViewport(props) {
340
332
  Cleanup the SEG viewport when the viewport is destroyed
341
333
  */
342
334
  (0,react.useEffect)(() => {
343
- const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, _ref4 => {
344
- let {
345
- displaySetInstanceUIDs
346
- } = _ref4;
335
+ const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, ({
336
+ displaySetInstanceUIDs
337
+ }) => {
347
338
  const activeViewport = viewports.get(activeViewportId);
348
339
  if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
349
340
  viewportGridService.setDisplaySetsForViewport({
@@ -391,19 +382,7 @@ function OHIFCornerstoneRTViewport(props) {
391
382
  });
392
383
  });
393
384
  }
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 () => {
385
+ const onStatusClick = (0,react.useCallback)(async () => {
407
386
  // Before hydrating a RT and make it added to all viewports in the grid
408
387
  // that share the same frameOfReferenceUID, we need to store the viewport grid
409
388
  // presentation state, so that we can restore it after hydrating the RT. This is
@@ -416,38 +395,32 @@ function OHIFCornerstoneRTViewport(props) {
416
395
  viewportId
417
396
  });
418
397
  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({
398
+ }, [hydrateRTDisplaySet, rtDisplaySet, storePresentationState, viewportId]);
399
+ (0,react.useEffect)(() => {
400
+ viewportActionCornersService.setComponents([{
401
+ viewportId,
402
+ id: 'viewportStatusComponent',
403
+ component: _getStatusComponent({
428
404
  isHydrated,
429
405
  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", {
406
+ }),
407
+ indexPriority: -100,
408
+ location: viewportActionCornersService.LOCATIONS.topLeft
409
+ }, {
410
+ viewportId,
411
+ id: 'viewportActionArrowsComponent',
412
+ component: /*#__PURE__*/react.createElement(src/* ViewportActionArrows */.$I, {
413
+ key: "actionArrows",
414
+ onArrowsClick: onSegmentChange,
415
+ className: viewportId === activeViewportId ? 'visible' : 'invisible group-hover:visible'
416
+ }),
417
+ indexPriority: 0,
418
+ location: viewportActionCornersService.LOCATIONS.topRight
419
+ }]);
420
+ }, [activeViewportId, isHydrated, onSegmentChange, onStatusClick, viewportActionCornersService, viewportId]);
421
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
449
422
  className: "relative flex h-full w-full flex-row overflow-hidden"
450
- }, rtIsLoading && /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorTotalPercent */.bk, {
423
+ }, rtIsLoading && /*#__PURE__*/react.createElement(src/* LoadingIndicatorTotalPercent */.pT, {
451
424
  className: "h-full w-full",
452
425
  totalNumbers: processingProgress.totalSegments,
453
426
  percentComplete: processingProgress.percentComplete,