@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,22 +1,22 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[886],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[530],{
3
3
 
4
- /***/ 48886:
4
+ /***/ 58530:
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 prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3827);
11
+ /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11374);
12
12
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);
13
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43001);
14
- /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69190);
15
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71771);
16
- /* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64035);
17
- /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22582);
18
- /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38965);
19
- /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(62657);
13
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41766);
14
+ /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80619);
15
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55411);
16
+ /* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(74334);
17
+ /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5085);
18
+ /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(77089);
19
+ /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15575);
20
20
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
21
 
22
22
 
@@ -26,9 +26,6 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
26
26
 
27
27
 
28
28
 
29
- const {
30
- formatDate
31
- } = _ohif_core__WEBPACK_IMPORTED_MODULE_3__.utils;
32
29
  const MEASUREMENT_TRACKING_EXTENSION_ID = '@ohif/extension-measurement-tracking';
33
30
  const SR_TOOLGROUP_BASE_NAME = 'SRToolGroup';
34
31
  function OHIFCornerstoneSRViewport(props) {
@@ -36,16 +33,16 @@ function OHIFCornerstoneSRViewport(props) {
36
33
  children,
37
34
  dataSource,
38
35
  displaySets,
39
- viewportLabel,
40
36
  viewportOptions,
41
37
  servicesManager,
42
38
  extensionManager
43
39
  } = props;
44
- const [appConfig] = (0,_state__WEBPACK_IMPORTED_MODULE_7__/* .useAppConfig */ .M)();
40
+ const [appConfig] = (0,_state__WEBPACK_IMPORTED_MODULE_7__/* .useAppConfig */ .r)();
45
41
  const {
46
42
  displaySetService,
47
43
  cornerstoneViewportService,
48
- measurementService
44
+ measurementService,
45
+ viewportActionCornersService
49
46
  } = servicesManager.services;
50
47
  const viewportId = viewportOptions.viewportId;
51
48
 
@@ -54,7 +51,7 @@ function OHIFCornerstoneSRViewport(props) {
54
51
  throw new Error('SR viewport should only have a single display set');
55
52
  }
56
53
  const srDisplaySet = displaySets[0];
57
- const [viewportGrid, viewportGridService] = (0,_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .useViewportGrid */ .O_)();
54
+ const [viewportGrid, viewportGridService] = (0,_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .useViewportGrid */ .ih)();
58
55
  const [measurementSelected, setMeasurementSelected] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);
59
56
  const [measurementCount, setMeasurementCount] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(1);
60
57
  const [activeImageDisplaySetData, setActiveImageDisplaySetData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);
@@ -64,6 +61,9 @@ function OHIFCornerstoneSRViewport(props) {
64
61
  viewports,
65
62
  activeViewportId
66
63
  } = viewportGrid;
64
+ const {
65
+ t
66
+ } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_2__/* .useTranslation */ .Bd)('Common');
67
67
 
68
68
  // Optional hook into tracking extension, if present.
69
69
  let trackedMeasurements;
@@ -78,14 +78,13 @@ function OHIFCornerstoneSRViewport(props) {
78
78
  if (!sendTrackedMeasurementsEvent) {
79
79
  // if no panels from measurement-tracking extension is used, this code will run
80
80
  trackedMeasurements = null;
81
- sendTrackedMeasurementsEvent = (eventName, _ref) => {
82
- let {
83
- displaySetInstanceUID
84
- } = _ref;
81
+ sendTrackedMeasurementsEvent = (eventName, {
82
+ displaySetInstanceUID
83
+ }) => {
85
84
  measurementService.clearMeasurements();
86
85
  const {
87
86
  SeriesInstanceUIDs
88
- } = (0,_utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)({
87
+ } = (0,_utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)({
89
88
  servicesManager,
90
89
  extensionManager,
91
90
  appConfig
@@ -109,7 +108,7 @@ function OHIFCornerstoneSRViewport(props) {
109
108
  const {
110
109
  measurements
111
110
  } = srDisplaySet;
112
- (0,_tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__/* .setTrackingUniqueIdentifiersForElement */ .l2)(element, measurements.map(measurement => measurement.TrackingUniqueIdentifier), measurementSelected);
111
+ (0,_tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__/* .setTrackingUniqueIdentifiersForElement */ .m1)(element, measurements.map(measurement => measurement.TrackingUniqueIdentifier), measurementSelected);
113
112
  }, [element, measurementSelected, srDisplaySet]);
114
113
 
115
114
  /**
@@ -135,11 +134,15 @@ function OHIFCornerstoneSRViewport(props) {
135
134
  // not throwing an error?
136
135
  console.warn('More than one SOPClassUID in the same series is not yet supported.');
137
136
  }
138
- _getViewportReferencedDisplaySetData(srDisplaySet, newMeasurementSelected, displaySetService).then(_ref2 => {
139
- let {
140
- referencedDisplaySet,
141
- referencedDisplaySetMetadata
142
- } = _ref2;
137
+
138
+ // if (!srDisplaySet.measurements || !srDisplaySet.measurements.length) {
139
+ // return;
140
+ // }
141
+
142
+ _getViewportReferencedDisplaySetData(srDisplaySet, newMeasurementSelected, displaySetService).then(({
143
+ referencedDisplaySet,
144
+ referencedDisplaySetMetadata
145
+ }) => {
143
146
  setMeasurementSelected(newMeasurementSelected);
144
147
  setActiveImageDisplaySetData(referencedDisplaySet);
145
148
  setReferencedDisplaySetMetadata(referencedDisplaySetMetadata);
@@ -202,16 +205,11 @@ function OHIFCornerstoneSRViewport(props) {
202
205
  }, [activeImageDisplaySetData, viewportId, measurementSelected]);
203
206
  const onMeasurementChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(direction => {
204
207
  let newMeasurementSelected = measurementSelected;
205
- if (direction === 'right') {
206
- newMeasurementSelected++;
207
- if (newMeasurementSelected >= measurementCount) {
208
- newMeasurementSelected = 0;
209
- }
210
- } else {
211
- newMeasurementSelected--;
212
- if (newMeasurementSelected < 0) {
213
- newMeasurementSelected = measurementCount - 1;
214
- }
208
+ newMeasurementSelected += direction;
209
+ if (newMeasurementSelected >= measurementCount) {
210
+ newMeasurementSelected = 0;
211
+ } else if (newMeasurementSelected < 0) {
212
+ newMeasurementSelected = measurementCount - 1;
215
213
  }
216
214
  setTrackingIdentifiers(newMeasurementSelected);
217
215
  updateViewport(newMeasurementSelected);
@@ -221,10 +219,9 @@ function OHIFCornerstoneSRViewport(props) {
221
219
  Cleanup the SR viewport when the viewport is destroyed
222
220
  */
223
221
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
224
- const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, _ref3 => {
225
- let {
226
- displaySetInstanceUIDs
227
- } = _ref3;
222
+ const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, ({
223
+ displaySetInstanceUIDs
224
+ }) => {
228
225
  const activeViewport = viewports.get(activeViewportId);
229
226
  if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
230
227
  viewportGridService.setDisplaySetsForViewport({
@@ -246,12 +243,16 @@ function OHIFCornerstoneSRViewport(props) {
246
243
  * if it is hydrated we don't even use the SR viewport.
247
244
  */
248
245
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
249
- if (!srDisplaySet.isLoaded) {
250
- srDisplaySet.load();
251
- }
252
- const numMeasurements = srDisplaySet.measurements.length;
253
- setMeasurementCount(numMeasurements);
254
- }, [srDisplaySet]);
246
+ const loadSR = async () => {
247
+ if (!srDisplaySet.isLoaded) {
248
+ await srDisplaySet.load();
249
+ }
250
+ const numMeasurements = srDisplaySet.measurements.length;
251
+ setMeasurementCount(numMeasurements);
252
+ updateViewport(measurementSelected);
253
+ };
254
+ loadSR();
255
+ }, [dataSource, srDisplaySet]);
255
256
 
256
257
  /**
257
258
  * Hook to update the tracking identifiers when the selected measurement changes or
@@ -268,18 +269,36 @@ function OHIFCornerstoneSRViewport(props) {
268
269
  * Todo: what is this, not sure what it does regarding the react aspect,
269
270
  * it is updating a local variable? which is not state.
270
271
  */
271
- let isLocked = trackedMeasurements?.context?.trackedSeries?.length > 0;
272
+ const [isLocked, setIsLocked] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(trackedMeasurements?.context?.trackedSeries?.length > 0);
272
273
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
273
- isLocked = trackedMeasurements?.context?.trackedSeries?.length > 0;
274
+ setIsLocked(trackedMeasurements?.context?.trackedSeries?.length > 0);
274
275
  }, [trackedMeasurements]);
275
-
276
- /**
277
- * Data fetching for the SR displaySet, which updates the measurements and
278
- * also gets the referenced image displaySet that SR is based on.
279
- */
280
276
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
281
- updateViewport(measurementSelected);
282
- }, [dataSource, srDisplaySet]);
277
+ viewportActionCornersService.setComponents([{
278
+ viewportId,
279
+ id: 'viewportStatusComponent',
280
+ component: _getStatusComponent({
281
+ srDisplaySet,
282
+ viewportId,
283
+ isRehydratable: srDisplaySet.isRehydratable,
284
+ isLocked,
285
+ sendTrackedMeasurementsEvent,
286
+ t
287
+ }),
288
+ indexPriority: -100,
289
+ location: viewportActionCornersService.LOCATIONS.topLeft
290
+ }, {
291
+ viewportId,
292
+ id: 'viewportActionArrowsComponent',
293
+ index: 0,
294
+ component: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .ViewportActionArrows */ .$I, {
295
+ key: "actionArrows",
296
+ onArrowsClick: onMeasurementChange
297
+ }),
298
+ indexPriority: 0,
299
+ location: viewportActionCornersService.LOCATIONS.topRight
300
+ }]);
301
+ }, [isLocked, onMeasurementChange, sendTrackedMeasurementsEvent, srDisplaySet, t, viewportActionCornersService, viewportId]);
283
302
 
284
303
  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
285
304
  let childrenWithProps = null;
@@ -294,51 +313,7 @@ function OHIFCornerstoneSRViewport(props) {
294
313
  });
295
314
  });
296
315
  }
297
- const {
298
- PatientID,
299
- PatientName,
300
- PatientSex,
301
- PatientAge,
302
- SliceThickness,
303
- ManufacturerModelName,
304
- StudyDate,
305
- SeriesDescription,
306
- SpacingBetweenSlices,
307
- SeriesNumber
308
- } = referencedDisplaySetMetadata;
309
-
310
- // TODO -> disabled double click for now: onDoubleClick={_onDoubleClick}
311
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .ViewportActionBar */ .uY, {
312
- onDoubleClick: evt => {
313
- evt.stopPropagation();
314
- evt.preventDefault();
315
- },
316
- onArrowsClick: onMeasurementChange,
317
- getStatusComponent: () => _getStatusComponent({
318
- srDisplaySet,
319
- viewportId,
320
- isTracked: false,
321
- isRehydratable: srDisplaySet.isRehydratable,
322
- isLocked,
323
- sendTrackedMeasurementsEvent
324
- }),
325
- studyData: {
326
- label: viewportLabel,
327
- useAltStyling: true,
328
- studyDate: formatDate(StudyDate),
329
- currentSeries: SeriesNumber,
330
- seriesDescription: SeriesDescription || '',
331
- patientInformation: {
332
- patientName: PatientName ? _ohif_core__WEBPACK_IMPORTED_MODULE_3__["default"].utils.formatPN(PatientName.Alphabetic) : '',
333
- patientSex: PatientSex || '',
334
- patientAge: PatientAge || '',
335
- MRN: PatientID || '',
336
- thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}mm` : '',
337
- spacing: SpacingBetweenSlices !== undefined ? `${SpacingBetweenSlices.toFixed(2)}mm` : '',
338
- scanner: ManufacturerModelName || ''
339
- }
340
- }
341
- }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", {
316
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", {
342
317
  className: "relative flex h-full w-full flex-row overflow-hidden"
343
318
  }, getCornerstoneViewport(), childrenWithProps));
344
319
  }
@@ -350,21 +325,20 @@ OHIFCornerstoneSRViewport.propTypes = {
350
325
  viewportLabel: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),
351
326
  customProps: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().object),
352
327
  viewportOptions: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().object),
353
- viewportLabel: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),
354
- servicesManager: prop_types__WEBPACK_IMPORTED_MODULE_0___default().instanceOf(_ohif_core__WEBPACK_IMPORTED_MODULE_3__/* .ServicesManager */ .Xw).isRequired,
355
- extensionManager: prop_types__WEBPACK_IMPORTED_MODULE_0___default().instanceOf(_ohif_core__WEBPACK_IMPORTED_MODULE_3__/* .ExtensionManager */ .W$).isRequired
328
+ servicesManager: prop_types__WEBPACK_IMPORTED_MODULE_0___default().instanceOf(_ohif_core__WEBPACK_IMPORTED_MODULE_3__/* .ServicesManager */ .CS).isRequired,
329
+ extensionManager: prop_types__WEBPACK_IMPORTED_MODULE_0___default().instanceOf(_ohif_core__WEBPACK_IMPORTED_MODULE_3__/* .ExtensionManager */ .nH).isRequired
356
330
  };
357
331
  OHIFCornerstoneSRViewport.defaultProps = {
358
332
  customProps: {}
359
333
  };
360
334
  async function _getViewportReferencedDisplaySetData(displaySet, measurementSelected, displaySetService) {
361
- const {
362
- measurements
363
- } = displaySet;
364
- const measurement = measurements[measurementSelected];
365
- const {
366
- displaySetInstanceUID
367
- } = measurement;
335
+ if (!displaySet.keyImageDisplaySet) {
336
+ // Create a new display set, and preserve a reference to it here,
337
+ // so that it can be re-displayed and shown inside the SR viewport.
338
+ // This is only for ease of redisplay - the display set is stored in the
339
+ // usual manner in the display set service.
340
+ displaySet.keyImageDisplaySet = createReferencedImageDisplaySet(displaySetService, displaySet);
341
+ }
368
342
  const referencedDisplaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
369
343
  const image0 = referencedDisplaySet.images[0];
370
344
  const referencedDisplaySetMetadata = {
@@ -385,23 +359,20 @@ async function _getViewportReferencedDisplaySetData(displaySet, measurementSelec
385
359
  referencedDisplaySet
386
360
  };
387
361
  }
388
- function _getStatusComponent(_ref4) {
389
- let {
390
- srDisplaySet,
391
- viewportId,
392
- isRehydratable,
393
- isLocked,
394
- sendTrackedMeasurementsEvent
395
- } = _ref4;
362
+ function _getStatusComponent({
363
+ srDisplaySet,
364
+ viewportId,
365
+ isRehydratable,
366
+ isLocked,
367
+ sendTrackedMeasurementsEvent,
368
+ t
369
+ }) {
396
370
  const handleMouseUp = () => {
397
371
  sendTrackedMeasurementsEvent('HYDRATE_SR', {
398
372
  displaySetInstanceUID: srDisplaySet.displaySetInstanceUID,
399
373
  viewportId
400
374
  });
401
375
  };
402
- const {
403
- t
404
- } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_2__/* .useTranslation */ .$G)('Common');
405
376
  const loadStr = t('LOAD');
406
377
 
407
378
  // 1 - Incompatible
@@ -412,19 +383,19 @@ function _getStatusComponent(_ref4) {
412
383
  let StatusIcon = null;
413
384
  switch (state) {
414
385
  case 1:
415
- StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .JO, {
386
+ StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .In, {
416
387
  name: "status-alert"
417
388
  });
418
389
  ToolTipMessage = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", null, "This structured report is not compatible", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("br", null), "with this application.");
419
390
  break;
420
391
  case 2:
421
- StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .JO, {
392
+ StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .In, {
422
393
  name: "status-locked"
423
394
  });
424
395
  ToolTipMessage = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", null, "This structured report is currently read-only", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("br", null), "because you are tracking measurements in", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("br", null), "another viewport.");
425
396
  break;
426
397
  case 3:
427
- StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .JO, {
398
+ StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .In, {
428
399
  className: "text-aqua-pale",
429
400
  name: "status-untracked"
430
401
  });
@@ -442,7 +413,7 @@ function _getStatusComponent(_ref4) {
442
413
  ,
443
414
  onMouseUp: handleMouseUp
444
415
  }, loadStr));
445
- return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, ToolTipMessage && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Tooltip */ .u, {
416
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, ToolTipMessage && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Tooltip */ .m_, {
446
417
  content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(ToolTipMessage, null),
447
418
  position: "bottom-left"
448
419
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(StatusArea, null)), !ToolTipMessage && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(StatusArea, null));