@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([[451],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[295],{
3
3
 
4
- /***/ 4451:
4
+ /***/ 58295:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -13,16 +13,14 @@ __webpack_require__.d(__webpack_exports__, {
13
13
  });
14
14
 
15
15
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
16
- var prop_types = __webpack_require__(3827);
16
+ var prop_types = __webpack_require__(11374);
17
17
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
18
18
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
19
- var react = __webpack_require__(43001);
19
+ var react = __webpack_require__(41766);
20
20
  // EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
21
- var es = __webpack_require__(69190);
22
- // EXTERNAL MODULE: ../../core/src/index.ts + 65 modules
23
- var src = __webpack_require__(71771);
24
- // EXTERNAL MODULE: ../../ui/src/index.js + 486 modules
25
- var ui_src = __webpack_require__(22582);
21
+ var es = __webpack_require__(80619);
22
+ // EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
23
+ var src = __webpack_require__(5085);
26
24
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/initSEGToolGroup.ts
27
25
  function createSEGToolGroupAndAddTools(ToolGroupService, customizationService, toolGroupId) {
28
26
  const {
@@ -38,14 +36,13 @@ const RESPONSE = {
38
36
  CANCEL: 0,
39
37
  HYDRATE_SEG: 5
40
38
  };
41
- function promptHydrateSEG(_ref) {
42
- let {
43
- servicesManager,
44
- segDisplaySet,
45
- viewportId,
46
- preHydrateCallbacks,
47
- hydrateSEGDisplaySet
48
- } = _ref;
39
+ function promptHydrateSEG({
40
+ servicesManager,
41
+ segDisplaySet,
42
+ viewportId,
43
+ preHydrateCallbacks,
44
+ hydrateSEGDisplaySet
45
+ }) {
49
46
  const {
50
47
  uiViewportDialogService
51
48
  } = servicesManager.services;
@@ -67,11 +64,11 @@ function _askHydrate(uiViewportDialogService, viewportId) {
67
64
  return new Promise(function (resolve, reject) {
68
65
  const message = 'Do you want to open this Segmentation?';
69
66
  const actions = [{
70
- type: ui_src/* ButtonEnums.type */.LZ.dt.secondary,
67
+ type: src/* ButtonEnums.type */.Ny.NW.secondary,
71
68
  text: 'No',
72
69
  value: RESPONSE.CANCEL
73
70
  }, {
74
- type: ui_src/* ButtonEnums.type */.LZ.dt.primary,
71
+ type: src/* ButtonEnums.type */.Ny.NW.primary,
75
72
  text: 'Yes',
76
73
  value: RESPONSE.HYDRATE_SEG
77
74
  }];
@@ -88,6 +85,11 @@ function _askHydrate(uiViewportDialogService, viewportId) {
88
85
  onOutsideClick: () => {
89
86
  uiViewportDialogService.hide();
90
87
  resolve(RESPONSE.CANCEL);
88
+ },
89
+ onKeyPress: event => {
90
+ if (event.key === 'Enter') {
91
+ onSubmit(RESPONSE.HYDRATE_SEG);
92
+ }
91
93
  }
92
94
  });
93
95
  });
@@ -97,44 +99,45 @@ function _askHydrate(uiViewportDialogService, viewportId) {
97
99
 
98
100
 
99
101
 
100
- function _getStatusComponent(_ref) {
101
- let {
102
- isHydrated,
103
- onStatusClick
104
- } = _ref;
102
+ function _getStatusComponent({
103
+ isHydrated,
104
+ onStatusClick
105
+ }) {
105
106
  let ToolTipMessage = null;
106
107
  let StatusIcon = null;
107
- const {
108
- t
109
- } = (0,es/* useTranslation */.$G)('Common');
110
- const loadStr = t('LOAD');
111
108
  switch (isHydrated) {
112
109
  case true:
113
- StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
110
+ StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
114
111
  name: "status-alert"
115
112
  });
116
113
  ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "This Segmentation is loaded in the segmentation panel");
117
114
  break;
118
115
  case false:
119
- StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
116
+ StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
120
117
  className: "text-aqua-pale",
121
118
  name: "status-untracked"
122
119
  });
123
120
  ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "Click LOAD to load segmentation.");
124
121
  }
125
- const StatusArea = () => /*#__PURE__*/react.createElement("div", {
126
- className: "flex h-6 cursor-default text-sm leading-6 text-white"
127
- }, /*#__PURE__*/react.createElement("div", {
128
- className: "bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
129
- }, /*#__PURE__*/react.createElement(StatusIcon, null), /*#__PURE__*/react.createElement("span", {
130
- className: "ml-1"
131
- }, "SEG")), !isHydrated && /*#__PURE__*/react.createElement("div", {
132
- className: "bg-primary-main hover:bg-primary-light ml-1 cursor-pointer rounded px-1.5 hover:text-black"
133
- // Using onMouseUp here because onClick is not working when the viewport is not active and is styled with pointer-events:none
134
- ,
135
- onMouseUp: onStatusClick
136
- }, loadStr));
137
- return /*#__PURE__*/react.createElement(react.Fragment, null, ToolTipMessage && /*#__PURE__*/react.createElement(ui_src/* Tooltip */.u, {
122
+ const StatusArea = () => {
123
+ const {
124
+ t
125
+ } = (0,es/* useTranslation */.Bd)('Common');
126
+ const loadStr = t('LOAD');
127
+ return /*#__PURE__*/react.createElement("div", {
128
+ className: "flex h-6 cursor-default text-sm leading-6 text-white"
129
+ }, /*#__PURE__*/react.createElement("div", {
130
+ className: "bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
131
+ }, /*#__PURE__*/react.createElement(StatusIcon, null), /*#__PURE__*/react.createElement("span", {
132
+ className: "ml-1"
133
+ }, "SEG")), !isHydrated && /*#__PURE__*/react.createElement("div", {
134
+ className: "bg-primary-main hover:bg-primary-light ml-1 cursor-pointer rounded px-1.5 hover:text-black"
135
+ // Using onMouseUp here because onClick is not working when the viewport is not active and is styled with pointer-events:none
136
+ ,
137
+ onMouseUp: onStatusClick
138
+ }, loadStr));
139
+ };
140
+ return /*#__PURE__*/react.createElement(react.Fragment, null, ToolTipMessage && /*#__PURE__*/react.createElement(src/* Tooltip */.m_, {
138
141
  content: /*#__PURE__*/react.createElement(ToolTipMessage, null),
139
142
  position: "bottom-left"
140
143
  }, /*#__PURE__*/react.createElement(StatusArea, null)), !ToolTipMessage && /*#__PURE__*/react.createElement(StatusArea, null));
@@ -148,31 +151,27 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
148
151
 
149
152
 
150
153
 
151
-
152
- const {
153
- formatDate
154
- } = src.utils;
155
154
  const SEG_TOOLGROUP_BASE_NAME = 'SEGToolGroup';
156
155
  function OHIFCornerstoneSEGViewport(props) {
157
156
  const {
158
157
  children,
159
158
  displaySets,
160
159
  viewportOptions,
161
- viewportLabel,
162
160
  servicesManager,
163
161
  extensionManager,
164
162
  commandsManager
165
163
  } = props;
166
164
  const {
167
165
  t
168
- } = (0,es/* useTranslation */.$G)('SEGViewport');
166
+ } = (0,es/* useTranslation */.Bd)('SEGViewport');
169
167
  const viewportId = viewportOptions.viewportId;
170
168
  const {
171
169
  displaySetService,
172
170
  toolGroupService,
173
171
  segmentationService,
174
172
  uiNotificationService,
175
- customizationService
173
+ customizationService,
174
+ viewportActionCornersService
176
175
  } = servicesManager.services;
177
176
  const toolGroupId = `${SEG_TOOLGROUP_BASE_NAME}-${viewportId}`;
178
177
 
@@ -181,7 +180,7 @@ function OHIFCornerstoneSEGViewport(props) {
181
180
  throw new Error('SEG viewport should only have a single display set');
182
181
  }
183
182
  const segDisplaySet = displaySets[0];
184
- const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.O_)();
183
+ const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.ih)();
185
184
 
186
185
  // States
187
186
  const [selectedSegment, setSelectedSegment] = (0,react.useState)(1);
@@ -224,10 +223,9 @@ function OHIFCornerstoneSEGViewport(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
  });
@@ -252,11 +250,9 @@ function OHIFCornerstoneSEGViewport(props) {
252
250
  },
253
251
  onElementEnabled: onElementEnabled,
254
252
  onElementDisabled: onElementDisabled
255
- // initialImageIndex={initialImageIndex}
256
253
  }));
257
254
  }, [viewportId, segDisplaySet, toolGroupId]);
258
255
  const onSegmentChange = (0,react.useCallback)(direction => {
259
- direction = direction === 'left' ? -1 : 1;
260
256
  const segmentationId = segDisplaySet.displaySetInstanceUID;
261
257
  const segmentation = segmentationService.getSegmentation(segmentationId);
262
258
  const {
@@ -298,13 +294,6 @@ function OHIFCornerstoneSEGViewport(props) {
298
294
  if (evt.segDisplaySet.displaySetInstanceUID === segDisplaySet.displaySetInstanceUID) {
299
295
  setSegIsLoading(false);
300
296
  }
301
- if (evt.overlappingSegments) {
302
- uiNotificationService.show({
303
- title: 'Overlapping Segments',
304
- message: 'Overlapping segments detected which is not currently supported',
305
- type: 'warning'
306
- });
307
- }
308
297
  });
309
298
  return () => {
310
299
  unsubscribe();
@@ -313,11 +302,10 @@ function OHIFCornerstoneSEGViewport(props) {
313
302
  (0,react.useEffect)(() => {
314
303
  const {
315
304
  unsubscribe
316
- } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, _ref2 => {
317
- let {
318
- percentComplete,
319
- numSegments
320
- } = _ref2;
305
+ } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, ({
306
+ percentComplete,
307
+ numSegments
308
+ }) => {
321
309
  setProcessingProgress({
322
310
  percentComplete,
323
311
  totalSegments: numSegments
@@ -332,10 +320,9 @@ function OHIFCornerstoneSEGViewport(props) {
332
320
  Cleanup the SEG viewport when the viewport is destroyed
333
321
  */
334
322
  (0,react.useEffect)(() => {
335
- const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, _ref3 => {
336
- let {
337
- displaySetInstanceUIDs
338
- } = _ref3;
323
+ const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, ({
324
+ displaySetInstanceUIDs
325
+ }) => {
339
326
  const activeViewport = viewports.get(activeViewportId);
340
327
  if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
341
328
  viewportGridService.setDisplaySetsForViewport({
@@ -373,6 +360,51 @@ function OHIFCornerstoneSEGViewport(props) {
373
360
  referencedDisplaySetRef.current = null;
374
361
  };
375
362
  }, [segDisplaySet]);
363
+ const hydrateSEGDisplaySet = (0,react.useCallback)(({
364
+ segDisplaySet,
365
+ viewportId
366
+ }) => {
367
+ commandsManager.runCommand('loadSegmentationDisplaySetsForViewport', {
368
+ displaySets: [segDisplaySet],
369
+ viewportId
370
+ });
371
+ }, [commandsManager]);
372
+ const onStatusClick = (0,react.useCallback)(async () => {
373
+ // Before hydrating a SEG and make it added to all viewports in the grid
374
+ // that share the same frameOfReferenceUID, we need to store the viewport grid
375
+ // presentation state, so that we can restore it after hydrating the SEG. This is
376
+ // required if the user has changed the viewport (other viewport than SEG viewport)
377
+ // presentation state (w/l and invert) and then opens the SEG. If we don't store
378
+ // the presentation state, the viewport will be reset to the default presentation
379
+ storePresentationState();
380
+ const isHydrated = await hydrateSEGDisplaySet({
381
+ segDisplaySet,
382
+ viewportId
383
+ });
384
+ setIsHydrated(isHydrated);
385
+ }, [hydrateSEGDisplaySet, segDisplaySet, storePresentationState, viewportId]);
386
+ (0,react.useEffect)(() => {
387
+ viewportActionCornersService.setComponents([{
388
+ viewportId,
389
+ id: 'viewportStatusComponent',
390
+ component: _getStatusComponent({
391
+ isHydrated,
392
+ onStatusClick
393
+ }),
394
+ indexPriority: -100,
395
+ location: viewportActionCornersService.LOCATIONS.topLeft
396
+ }, {
397
+ viewportId,
398
+ id: 'viewportActionArrowsComponent',
399
+ component: /*#__PURE__*/react.createElement(src/* ViewportActionArrows */.$I, {
400
+ key: "actionArrows",
401
+ onArrowsClick: onSegmentChange,
402
+ className: viewportId === activeViewportId ? 'visible' : 'invisible group-hover:visible'
403
+ }),
404
+ indexPriority: 0,
405
+ location: viewportActionCornersService.LOCATIONS.topRight
406
+ }]);
407
+ }, [activeViewportId, isHydrated, onSegmentChange, onStatusClick, viewportActionCornersService, viewportId]);
376
408
 
377
409
  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
378
410
  let childrenWithProps = null;
@@ -398,61 +430,9 @@ function OHIFCornerstoneSEGViewport(props) {
398
430
  SeriesDescription,
399
431
  SpacingBetweenSlices
400
432
  } = referencedDisplaySetRef.current.metadata;
401
- const hydrateSEGDisplaySet = _ref4 => {
402
- let {
403
- segDisplaySet,
404
- viewportId
405
- } = _ref4;
406
- commandsManager.runCommand('loadSegmentationDisplaySetsForViewport', {
407
- displaySets: [segDisplaySet],
408
- viewportId
409
- });
410
- };
411
- const onStatusClick = async () => {
412
- // Before hydrating a SEG and make it added to all viewports in the grid
413
- // that share the same frameOfReferenceUID, we need to store the viewport grid
414
- // presentation state, so that we can restore it after hydrating the SEG. This is
415
- // required if the user has changed the viewport (other viewport than SEG viewport)
416
- // presentation state (w/l and invert) and then opens the SEG. If we don't store
417
- // the presentation state, the viewport will be reset to the default presentation
418
- storePresentationState();
419
- const isHydrated = await hydrateSEGDisplaySet({
420
- segDisplaySet,
421
- viewportId
422
- });
423
- setIsHydrated(isHydrated);
424
- };
425
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* ViewportActionBar */.uY, {
426
- onDoubleClick: evt => {
427
- evt.stopPropagation();
428
- evt.preventDefault();
429
- },
430
- onArrowsClick: onSegmentChange,
431
- getStatusComponent: () => {
432
- return _getStatusComponent({
433
- isHydrated,
434
- onStatusClick
435
- });
436
- },
437
- studyData: {
438
- label: viewportLabel,
439
- useAltStyling: true,
440
- studyDate: formatDate(StudyDate),
441
- seriesDescription: `SEG Viewport ${SeriesDescription}`,
442
- patientInformation: {
443
- patientName: PatientName ? src["default"].utils.formatPN(PatientName.Alphabetic) : '',
444
- patientSex: PatientSex || '',
445
- patientAge: PatientAge || '',
446
- MRN: PatientID || '',
447
- thickness: SliceThickness ? src.utils.roundNumber(SliceThickness, 2) : '',
448
- thicknessUnits: SliceThickness !== undefined ? 'mm' : '',
449
- spacing: SpacingBetweenSlices !== undefined ? src.utils.roundNumber(SpacingBetweenSlices, 2) : '',
450
- scanner: ManufacturerModelName || ''
451
- }
452
- }
453
- }), /*#__PURE__*/react.createElement("div", {
433
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
454
434
  className: "relative flex h-full w-full flex-row overflow-hidden"
455
- }, segIsLoading && /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorTotalPercent */.bk, {
435
+ }, segIsLoading && /*#__PURE__*/react.createElement(src/* LoadingIndicatorTotalPercent */.pT, {
456
436
  className: "h-full w-full",
457
437
  totalNumbers: processingProgress.totalSegments,
458
438
  percentComplete: processingProgress.percentComplete,
@@ -1,22 +1,21 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[125],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[297],{
3
3
 
4
- /***/ 39125:
4
+ /***/ 46297:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  __webpack_require__.r(__webpack_exports__);
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
9
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10
10
  /* harmony export */ });
11
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43001);
12
- /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3827);
11
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41766);
12
+ /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11374);
13
13
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
14
14
 
15
15
 
16
- function OHIFCornerstonePdfViewport(_ref) {
17
- let {
18
- displaySets
19
- } = _ref;
16
+ function OHIFCornerstonePdfViewport({
17
+ displaySets
18
+ }) {
20
19
  const [url, setUrl] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
21
20
  if (displaySets && displaySets.length > 1) {
22
21
  throw new Error('OHIFCornerstonePdfViewport: only one display set is supported for dicom pdf right now');