@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([[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 + 542 modules
23
+ var src = __webpack_require__(48804);
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
  }];
@@ -97,44 +94,45 @@ function _askHydrate(uiViewportDialogService, viewportId) {
97
94
 
98
95
 
99
96
 
100
- function _getStatusComponent(_ref) {
101
- let {
102
- isHydrated,
103
- onStatusClick
104
- } = _ref;
97
+ function _getStatusComponent({
98
+ isHydrated,
99
+ onStatusClick
100
+ }) {
105
101
  let ToolTipMessage = null;
106
102
  let StatusIcon = null;
107
- const {
108
- t
109
- } = (0,es/* useTranslation */.$G)('Common');
110
- const loadStr = t('LOAD');
111
103
  switch (isHydrated) {
112
104
  case true:
113
- StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
105
+ StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
114
106
  name: "status-alert"
115
107
  });
116
108
  ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "This Segmentation is loaded in the segmentation panel");
117
109
  break;
118
110
  case false:
119
- StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
111
+ StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
120
112
  className: "text-aqua-pale",
121
113
  name: "status-untracked"
122
114
  });
123
115
  ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "Click LOAD to load segmentation.");
124
116
  }
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, {
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
+ }, "SEG")), !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_, {
138
136
  content: /*#__PURE__*/react.createElement(ToolTipMessage, null),
139
137
  position: "bottom-left"
140
138
  }, /*#__PURE__*/react.createElement(StatusArea, null)), !ToolTipMessage && /*#__PURE__*/react.createElement(StatusArea, null));
@@ -148,31 +146,27 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
148
146
 
149
147
 
150
148
 
151
-
152
- const {
153
- formatDate
154
- } = src.utils;
155
149
  const SEG_TOOLGROUP_BASE_NAME = 'SEGToolGroup';
156
150
  function OHIFCornerstoneSEGViewport(props) {
157
151
  const {
158
152
  children,
159
153
  displaySets,
160
154
  viewportOptions,
161
- viewportLabel,
162
155
  servicesManager,
163
156
  extensionManager,
164
157
  commandsManager
165
158
  } = props;
166
159
  const {
167
160
  t
168
- } = (0,es/* useTranslation */.$G)('SEGViewport');
161
+ } = (0,es/* useTranslation */.Bd)('SEGViewport');
169
162
  const viewportId = viewportOptions.viewportId;
170
163
  const {
171
164
  displaySetService,
172
165
  toolGroupService,
173
166
  segmentationService,
174
167
  uiNotificationService,
175
- customizationService
168
+ customizationService,
169
+ viewportActionCornersService
176
170
  } = servicesManager.services;
177
171
  const toolGroupId = `${SEG_TOOLGROUP_BASE_NAME}-${viewportId}`;
178
172
 
@@ -181,7 +175,7 @@ function OHIFCornerstoneSEGViewport(props) {
181
175
  throw new Error('SEG viewport should only have a single display set');
182
176
  }
183
177
  const segDisplaySet = displaySets[0];
184
- const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.O_)();
178
+ const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.ih)();
185
179
 
186
180
  // States
187
181
  const [selectedSegment, setSelectedSegment] = (0,react.useState)(1);
@@ -224,10 +218,9 @@ function OHIFCornerstoneSEGViewport(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
  });
@@ -252,11 +245,9 @@ function OHIFCornerstoneSEGViewport(props) {
252
245
  },
253
246
  onElementEnabled: onElementEnabled,
254
247
  onElementDisabled: onElementDisabled
255
- // initialImageIndex={initialImageIndex}
256
248
  }));
257
249
  }, [viewportId, segDisplaySet, toolGroupId]);
258
250
  const onSegmentChange = (0,react.useCallback)(direction => {
259
- direction = direction === 'left' ? -1 : 1;
260
251
  const segmentationId = segDisplaySet.displaySetInstanceUID;
261
252
  const segmentation = segmentationService.getSegmentation(segmentationId);
262
253
  const {
@@ -298,13 +289,6 @@ function OHIFCornerstoneSEGViewport(props) {
298
289
  if (evt.segDisplaySet.displaySetInstanceUID === segDisplaySet.displaySetInstanceUID) {
299
290
  setSegIsLoading(false);
300
291
  }
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
292
  });
309
293
  return () => {
310
294
  unsubscribe();
@@ -313,11 +297,10 @@ function OHIFCornerstoneSEGViewport(props) {
313
297
  (0,react.useEffect)(() => {
314
298
  const {
315
299
  unsubscribe
316
- } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, _ref2 => {
317
- let {
318
- percentComplete,
319
- numSegments
320
- } = _ref2;
300
+ } = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, ({
301
+ percentComplete,
302
+ numSegments
303
+ }) => {
321
304
  setProcessingProgress({
322
305
  percentComplete,
323
306
  totalSegments: numSegments
@@ -332,10 +315,9 @@ function OHIFCornerstoneSEGViewport(props) {
332
315
  Cleanup the SEG viewport when the viewport is destroyed
333
316
  */
334
317
  (0,react.useEffect)(() => {
335
- const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, _ref3 => {
336
- let {
337
- displaySetInstanceUIDs
338
- } = _ref3;
318
+ const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, ({
319
+ displaySetInstanceUIDs
320
+ }) => {
339
321
  const activeViewport = viewports.get(activeViewportId);
340
322
  if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
341
323
  viewportGridService.setDisplaySetsForViewport({
@@ -373,6 +355,51 @@ function OHIFCornerstoneSEGViewport(props) {
373
355
  referencedDisplaySetRef.current = null;
374
356
  };
375
357
  }, [segDisplaySet]);
358
+ const hydrateSEGDisplaySet = (0,react.useCallback)(({
359
+ segDisplaySet,
360
+ viewportId
361
+ }) => {
362
+ commandsManager.runCommand('loadSegmentationDisplaySetsForViewport', {
363
+ displaySets: [segDisplaySet],
364
+ viewportId
365
+ });
366
+ }, [commandsManager]);
367
+ const onStatusClick = (0,react.useCallback)(async () => {
368
+ // Before hydrating a SEG and make it added to all viewports in the grid
369
+ // that share the same frameOfReferenceUID, we need to store the viewport grid
370
+ // presentation state, so that we can restore it after hydrating the SEG. This is
371
+ // required if the user has changed the viewport (other viewport than SEG viewport)
372
+ // presentation state (w/l and invert) and then opens the SEG. If we don't store
373
+ // the presentation state, the viewport will be reset to the default presentation
374
+ storePresentationState();
375
+ const isHydrated = await hydrateSEGDisplaySet({
376
+ segDisplaySet,
377
+ viewportId
378
+ });
379
+ setIsHydrated(isHydrated);
380
+ }, [hydrateSEGDisplaySet, segDisplaySet, storePresentationState, viewportId]);
381
+ (0,react.useEffect)(() => {
382
+ viewportActionCornersService.setComponents([{
383
+ viewportId,
384
+ id: 'viewportStatusComponent',
385
+ component: _getStatusComponent({
386
+ isHydrated,
387
+ onStatusClick
388
+ }),
389
+ indexPriority: -100,
390
+ location: viewportActionCornersService.LOCATIONS.topLeft
391
+ }, {
392
+ viewportId,
393
+ id: 'viewportActionArrowsComponent',
394
+ component: /*#__PURE__*/react.createElement(src/* ViewportActionArrows */.$I, {
395
+ key: "actionArrows",
396
+ onArrowsClick: onSegmentChange,
397
+ className: viewportId === activeViewportId ? 'visible' : 'invisible group-hover:visible'
398
+ }),
399
+ indexPriority: 0,
400
+ location: viewportActionCornersService.LOCATIONS.topRight
401
+ }]);
402
+ }, [activeViewportId, isHydrated, onSegmentChange, onStatusClick, viewportActionCornersService, viewportId]);
376
403
 
377
404
  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
378
405
  let childrenWithProps = null;
@@ -398,61 +425,9 @@ function OHIFCornerstoneSEGViewport(props) {
398
425
  SeriesDescription,
399
426
  SpacingBetweenSlices
400
427
  } = 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", {
428
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
454
429
  className: "relative flex h-full w-full flex-row overflow-hidden"
455
- }, segIsLoading && /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorTotalPercent */.bk, {
430
+ }, segIsLoading && /*#__PURE__*/react.createElement(src/* LoadingIndicatorTotalPercent */.pT, {
456
431
  className: "h-full w-full",
457
432
  totalNumbers: processingProgress.totalSegments,
458
433
  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');