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

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.47f05840a5b3cdf75543.js} +94 -113
  3. package/dist/141.bundle.556b4c1e4cab770417ac.js +8620 -0
  4. package/dist/{687.bundle.9065db35c01823286f08.js → 164.bundle.fadc7c5d634402c73b5f.js} +22 -38
  5. package/dist/17dd54813d5acc10bf8f.wasm +0 -0
  6. package/dist/183.bundle.a3e238998be71c4b2af8.js +30410 -0
  7. package/dist/{506.bundle.5731bb4349e266491225.js → 188.bundle.51dc4b37920f45594393.js} +23 -28
  8. package/dist/{342.bundle.e7c3d500f86fdfcc62b5.js → 206.bundle.fcaa081a0d1f68095c31.js} +1991 -1145
  9. package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
  10. package/dist/217.bundle.d44bbaa50b6fa563fe15.js +115126 -0
  11. package/dist/{451.bundle.57c21db5d003c75e9d61.js → 295.bundle.5ace95771ced62bdcab8.js} +111 -128
  12. package/dist/{125.bundle.253395f320b72180da63.js → 297.bundle.194d8985ab974839b5b6.js} +7 -8
  13. package/dist/{19.bundle.f77c5787b6d8ac0b638b.js → 325.bundle.fd8e0c18db4708d03a91.js} +477 -373
  14. package/dist/335.bundle.8400aa5a88697a6b9d53.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.0905b258a90a7c6437bb.js} +7453 -3624
  17. package/dist/422.bundle.c6fd037b075dd54f1ba7.js +865 -0
  18. package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 433.bundle.e0018820758f5a86fa7f.js} +14797 -27561
  19. package/dist/445.bundle.38c6d2af64e41cd7c614.js +7835 -0
  20. package/dist/{126.bundle.6e7111d58bcc937ffd80.js → 448.bundle.5e6da31477887bf53016.js} +356 -430
  21. package/dist/487.bundle.89d973049defb3ba6cb7.js +1876 -0
  22. package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 530.bundle.207b38c15c4c01e4db0e.js} +104 -121
  23. package/dist/{250.bundle.aea3335667054bdefe36.js → 544.bundle.1c1f57118560046649c1.js} +37 -62
  24. package/dist/574.bundle.d648fea691d6709bf2b4.js +2652 -0
  25. package/dist/{181.css → 574.css} +1 -1
  26. package/dist/{410.bundle.15c855b0ff4a1a674fb8.js → 594.bundle.84076375b127b9c7f673.js} +183 -221
  27. package/dist/{221.bundle.aef554202c58483cb34e.js → 633.bundle.acab89baaa06a299d679.js} +365 -553
  28. package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 644.bundle.1e77691d2eeb96a423b0.js} +1852 -8945
  29. package/dist/{663.bundle.d7be28450db14266cdd0.js → 669.bundle.b17e8a621e38d92c653f.js} +310 -265
  30. package/dist/699.bundle.9367d7ef9f7615b2e733.js +772 -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.55f9f49816de931af91a.js} +165 -260
  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.d32ab08e64806b2e964d.js} +81 -97
  37. package/dist/{236.bundle.4e9924934a747afac132.js → 889.bundle.8ef8b723d0163d5d135c.js} +207 -199
  38. package/dist/{281.bundle.deb7492d143e7768d8bf.js → 905.bundle.8a96e1a75b7cfe5ec093.js} +157 -124
  39. package/dist/{814.bundle.c8c951d20039b63b865a.js → 907.bundle.5c88ed911bed18582da4.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.f5f2479c214180d05d42.js +778 -0
  43. package/dist/{12.bundle.b5ca13e5363f170ecb3b.js → 961.bundle.f4e52bc76d3044d05372.js} +20 -33
  44. package/dist/app-config.js +1 -0
  45. package/dist/app.bundle.css +16 -13
  46. package/dist/{app.bundle.a978edc59b9d82f2eb22.js → app.bundle.ed937512f7d19d61c411.js} +183396 -87682
  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.f1a6ece1396dc1385155.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,23 @@
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
+ /* harmony import */ var _utils_createReferencedImageDisplaySet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(92643);
20
21
  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
22
 
22
23
 
@@ -26,9 +27,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
26
27
 
27
28
 
28
29
 
29
- const {
30
- formatDate
31
- } = _ohif_core__WEBPACK_IMPORTED_MODULE_3__.utils;
30
+
32
31
  const MEASUREMENT_TRACKING_EXTENSION_ID = '@ohif/extension-measurement-tracking';
33
32
  const SR_TOOLGROUP_BASE_NAME = 'SRToolGroup';
34
33
  function OHIFCornerstoneSRViewport(props) {
@@ -36,16 +35,16 @@ function OHIFCornerstoneSRViewport(props) {
36
35
  children,
37
36
  dataSource,
38
37
  displaySets,
39
- viewportLabel,
40
38
  viewportOptions,
41
39
  servicesManager,
42
40
  extensionManager
43
41
  } = props;
44
- const [appConfig] = (0,_state__WEBPACK_IMPORTED_MODULE_7__/* .useAppConfig */ .M)();
42
+ const [appConfig] = (0,_state__WEBPACK_IMPORTED_MODULE_7__/* .useAppConfig */ .r)();
45
43
  const {
46
44
  displaySetService,
47
45
  cornerstoneViewportService,
48
- measurementService
46
+ measurementService,
47
+ viewportActionCornersService
49
48
  } = servicesManager.services;
50
49
  const viewportId = viewportOptions.viewportId;
51
50
 
@@ -54,7 +53,7 @@ function OHIFCornerstoneSRViewport(props) {
54
53
  throw new Error('SR viewport should only have a single display set');
55
54
  }
56
55
  const srDisplaySet = displaySets[0];
57
- const [viewportGrid, viewportGridService] = (0,_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .useViewportGrid */ .O_)();
56
+ const [viewportGrid, viewportGridService] = (0,_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .useViewportGrid */ .ih)();
58
57
  const [measurementSelected, setMeasurementSelected] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);
59
58
  const [measurementCount, setMeasurementCount] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(1);
60
59
  const [activeImageDisplaySetData, setActiveImageDisplaySetData] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);
@@ -64,6 +63,9 @@ function OHIFCornerstoneSRViewport(props) {
64
63
  viewports,
65
64
  activeViewportId
66
65
  } = viewportGrid;
66
+ const {
67
+ t
68
+ } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_2__/* .useTranslation */ .Bd)('Common');
67
69
 
68
70
  // Optional hook into tracking extension, if present.
69
71
  let trackedMeasurements;
@@ -78,14 +80,13 @@ function OHIFCornerstoneSRViewport(props) {
78
80
  if (!sendTrackedMeasurementsEvent) {
79
81
  // if no panels from measurement-tracking extension is used, this code will run
80
82
  trackedMeasurements = null;
81
- sendTrackedMeasurementsEvent = (eventName, _ref) => {
82
- let {
83
- displaySetInstanceUID
84
- } = _ref;
83
+ sendTrackedMeasurementsEvent = (eventName, {
84
+ displaySetInstanceUID
85
+ }) => {
85
86
  measurementService.clearMeasurements();
86
87
  const {
87
88
  SeriesInstanceUIDs
88
- } = (0,_utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)({
89
+ } = (0,_utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)({
89
90
  servicesManager,
90
91
  extensionManager,
91
92
  appConfig
@@ -109,7 +110,7 @@ function OHIFCornerstoneSRViewport(props) {
109
110
  const {
110
111
  measurements
111
112
  } = srDisplaySet;
112
- (0,_tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__/* .setTrackingUniqueIdentifiersForElement */ .l2)(element, measurements.map(measurement => measurement.TrackingUniqueIdentifier), measurementSelected);
113
+ (0,_tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__/* .setTrackingUniqueIdentifiersForElement */ .m1)(element, measurements.map(measurement => measurement.TrackingUniqueIdentifier), measurementSelected);
113
114
  }, [element, measurementSelected, srDisplaySet]);
114
115
 
115
116
  /**
@@ -135,11 +136,15 @@ function OHIFCornerstoneSRViewport(props) {
135
136
  // not throwing an error?
136
137
  console.warn('More than one SOPClassUID in the same series is not yet supported.');
137
138
  }
138
- _getViewportReferencedDisplaySetData(srDisplaySet, newMeasurementSelected, displaySetService).then(_ref2 => {
139
- let {
140
- referencedDisplaySet,
141
- referencedDisplaySetMetadata
142
- } = _ref2;
139
+
140
+ // if (!srDisplaySet.measurements || !srDisplaySet.measurements.length) {
141
+ // return;
142
+ // }
143
+
144
+ _getViewportReferencedDisplaySetData(srDisplaySet, newMeasurementSelected, displaySetService).then(({
145
+ referencedDisplaySet,
146
+ referencedDisplaySetMetadata
147
+ }) => {
143
148
  setMeasurementSelected(newMeasurementSelected);
144
149
  setActiveImageDisplaySetData(referencedDisplaySet);
145
150
  setReferencedDisplaySetMetadata(referencedDisplaySetMetadata);
@@ -195,23 +200,21 @@ function OHIFCornerstoneSRViewport(props) {
195
200
  // The positionIds for the viewport aren't meaningful for the child display sets
196
201
  positionIds: null
197
202
  },
198
- onElementEnabled: onElementEnabled,
203
+ onElementEnabled: evt => {
204
+ props.onElementEnabled?.(evt);
205
+ onElementEnabled(evt);
206
+ },
199
207
  initialImageIndex: initialImageIndex,
200
208
  isJumpToMeasurementDisabled: true
201
209
  }));
202
210
  }, [activeImageDisplaySetData, viewportId, measurementSelected]);
203
211
  const onMeasurementChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(direction => {
204
212
  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
- }
213
+ newMeasurementSelected += direction;
214
+ if (newMeasurementSelected >= measurementCount) {
215
+ newMeasurementSelected = 0;
216
+ } else if (newMeasurementSelected < 0) {
217
+ newMeasurementSelected = measurementCount - 1;
215
218
  }
216
219
  setTrackingIdentifiers(newMeasurementSelected);
217
220
  updateViewport(newMeasurementSelected);
@@ -221,10 +224,9 @@ function OHIFCornerstoneSRViewport(props) {
221
224
  Cleanup the SR viewport when the viewport is destroyed
222
225
  */
223
226
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
224
- const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, _ref3 => {
225
- let {
226
- displaySetInstanceUIDs
227
- } = _ref3;
227
+ const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, ({
228
+ displaySetInstanceUIDs
229
+ }) => {
228
230
  const activeViewport = viewports.get(activeViewportId);
229
231
  if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
230
232
  viewportGridService.setDisplaySetsForViewport({
@@ -246,12 +248,16 @@ function OHIFCornerstoneSRViewport(props) {
246
248
  * if it is hydrated we don't even use the SR viewport.
247
249
  */
248
250
  (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]);
251
+ const loadSR = async () => {
252
+ if (!srDisplaySet.isLoaded) {
253
+ await srDisplaySet.load();
254
+ }
255
+ const numMeasurements = srDisplaySet.measurements.length;
256
+ setMeasurementCount(numMeasurements);
257
+ updateViewport(measurementSelected);
258
+ };
259
+ loadSR();
260
+ }, [dataSource, srDisplaySet]);
255
261
 
256
262
  /**
257
263
  * Hook to update the tracking identifiers when the selected measurement changes or
@@ -268,18 +274,36 @@ function OHIFCornerstoneSRViewport(props) {
268
274
  * Todo: what is this, not sure what it does regarding the react aspect,
269
275
  * it is updating a local variable? which is not state.
270
276
  */
271
- let isLocked = trackedMeasurements?.context?.trackedSeries?.length > 0;
277
+ const [isLocked, setIsLocked] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(trackedMeasurements?.context?.trackedSeries?.length > 0);
272
278
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
273
- isLocked = trackedMeasurements?.context?.trackedSeries?.length > 0;
279
+ setIsLocked(trackedMeasurements?.context?.trackedSeries?.length > 0);
274
280
  }, [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
281
  (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
281
- updateViewport(measurementSelected);
282
- }, [dataSource, srDisplaySet]);
282
+ viewportActionCornersService.setComponents([{
283
+ viewportId,
284
+ id: 'viewportStatusComponent',
285
+ component: _getStatusComponent({
286
+ srDisplaySet,
287
+ viewportId,
288
+ isRehydratable: srDisplaySet.isRehydratable,
289
+ isLocked,
290
+ sendTrackedMeasurementsEvent,
291
+ t
292
+ }),
293
+ indexPriority: -100,
294
+ location: viewportActionCornersService.LOCATIONS.topLeft
295
+ }, {
296
+ viewportId,
297
+ id: 'viewportActionArrowsComponent',
298
+ index: 0,
299
+ component: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .ViewportActionArrows */ .$I, {
300
+ key: "actionArrows",
301
+ onArrowsClick: onMeasurementChange
302
+ }),
303
+ indexPriority: 0,
304
+ location: viewportActionCornersService.LOCATIONS.topRight
305
+ }]);
306
+ }, [isLocked, onMeasurementChange, sendTrackedMeasurementsEvent, srDisplaySet, t, viewportActionCornersService, viewportId]);
283
307
 
284
308
  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
285
309
  let childrenWithProps = null;
@@ -294,51 +318,7 @@ function OHIFCornerstoneSRViewport(props) {
294
318
  });
295
319
  });
296
320
  }
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", {
321
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("div", {
342
322
  className: "relative flex h-full w-full flex-row overflow-hidden"
343
323
  }, getCornerstoneViewport(), childrenWithProps));
344
324
  }
@@ -350,9 +330,8 @@ OHIFCornerstoneSRViewport.propTypes = {
350
330
  viewportLabel: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),
351
331
  customProps: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().object),
352
332
  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
333
+ servicesManager: prop_types__WEBPACK_IMPORTED_MODULE_0___default().instanceOf(_ohif_core__WEBPACK_IMPORTED_MODULE_3__/* .ServicesManager */ .CS).isRequired,
334
+ extensionManager: prop_types__WEBPACK_IMPORTED_MODULE_0___default().instanceOf(_ohif_core__WEBPACK_IMPORTED_MODULE_3__/* .ExtensionManager */ .nH).isRequired
356
335
  };
357
336
  OHIFCornerstoneSRViewport.defaultProps = {
358
337
  customProps: {}
@@ -365,6 +344,13 @@ async function _getViewportReferencedDisplaySetData(displaySet, measurementSelec
365
344
  const {
366
345
  displaySetInstanceUID
367
346
  } = measurement;
347
+ if (!displaySet.keyImageDisplaySet) {
348
+ // Create a new display set, and preserve a reference to it here,
349
+ // so that it can be re-displayed and shown inside the SR viewport.
350
+ // This is only for ease of redisplay - the display set is stored in the
351
+ // usual manner in the display set service.
352
+ displaySet.keyImageDisplaySet = (0,_utils_createReferencedImageDisplaySet__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(displaySetService, displaySet);
353
+ }
368
354
  const referencedDisplaySet = displaySetService.getDisplaySetByUID(displaySetInstanceUID);
369
355
  const image0 = referencedDisplaySet.images[0];
370
356
  const referencedDisplaySetMetadata = {
@@ -385,23 +371,20 @@ async function _getViewportReferencedDisplaySetData(displaySet, measurementSelec
385
371
  referencedDisplaySet
386
372
  };
387
373
  }
388
- function _getStatusComponent(_ref4) {
389
- let {
390
- srDisplaySet,
391
- viewportId,
392
- isRehydratable,
393
- isLocked,
394
- sendTrackedMeasurementsEvent
395
- } = _ref4;
374
+ function _getStatusComponent({
375
+ srDisplaySet,
376
+ viewportId,
377
+ isRehydratable,
378
+ isLocked,
379
+ sendTrackedMeasurementsEvent,
380
+ t
381
+ }) {
396
382
  const handleMouseUp = () => {
397
383
  sendTrackedMeasurementsEvent('HYDRATE_SR', {
398
384
  displaySetInstanceUID: srDisplaySet.displaySetInstanceUID,
399
385
  viewportId
400
386
  });
401
387
  };
402
- const {
403
- t
404
- } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_2__/* .useTranslation */ .$G)('Common');
405
388
  const loadStr = t('LOAD');
406
389
 
407
390
  // 1 - Incompatible
@@ -412,19 +395,19 @@ function _getStatusComponent(_ref4) {
412
395
  let StatusIcon = null;
413
396
  switch (state) {
414
397
  case 1:
415
- 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, {
416
399
  name: "status-alert"
417
400
  });
418
401
  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
402
  break;
420
403
  case 2:
421
- StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .JO, {
404
+ StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .In, {
422
405
  name: "status-locked"
423
406
  });
424
407
  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
408
  break;
426
409
  case 3:
427
- StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .JO, {
410
+ StatusIcon = () => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_5__/* .Icon */ .In, {
428
411
  className: "text-aqua-pale",
429
412
  name: "status-untracked"
430
413
  });
@@ -442,7 +425,7 @@ function _getStatusComponent(_ref4) {
442
425
  ,
443
426
  onMouseUp: handleMouseUp
444
427
  }, 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, {
428
+ 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
429
  content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(ToolTipMessage, null),
447
430
  position: "bottom-left"
448
431
  }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(StatusArea, null)), !ToolTipMessage && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(StatusArea, null));
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[250,579],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[544,481],{
3
3
 
4
- /***/ 76516:
4
+ /***/ 17919:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -13,22 +13,22 @@ __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/react-resize-detector/build/index.esm.js
18
- var index_esm = __webpack_require__(7023);
18
+ var index_esm = __webpack_require__(78668);
19
19
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
20
- var prop_types = __webpack_require__(3827);
20
+ var prop_types = __webpack_require__(11374);
21
21
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
22
22
  // EXTERNAL MODULE: ../../../node_modules/lodash.debounce/index.js
23
- var lodash_debounce = __webpack_require__(8324);
23
+ var lodash_debounce = __webpack_require__(14771);
24
24
  var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
25
- // EXTERNAL MODULE: ../../ui/src/index.js + 486 modules
26
- var src = __webpack_require__(22582);
25
+ // EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
26
+ var src = __webpack_require__(5085);
27
27
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/DicomMicroscopyViewport.css
28
28
  // extracted by mini-css-extract-plugin
29
29
 
30
30
  // EXTERNAL MODULE: ../../../node_modules/classnames/index.js
31
- var classnames = __webpack_require__(44921);
31
+ var classnames = __webpack_require__(61466);
32
32
  var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
33
33
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/components/ViewportOverlay/listComponentGenerator.tsx
34
34
  const listComponentGenerator = props => {
@@ -58,9 +58,9 @@ const listComponentGenerator = props => {
58
58
  // extracted by mini-css-extract-plugin
59
59
 
60
60
  // EXTERNAL MODULE: ../../../node_modules/moment/moment.js
61
- var moment_moment = __webpack_require__(71271);
62
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 331 modules
63
- var esm = __webpack_require__(3743);
61
+ var moment_moment = __webpack_require__(8291);
62
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 327 modules
63
+ var esm = __webpack_require__(44656);
64
64
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/components/ViewportOverlay/utils.ts
65
65
 
66
66
 
@@ -95,8 +95,7 @@ function utils_formatNumberPrecision(number, precision) {
95
95
  * @param {string} strFormat
96
96
  * @returns {string} formatted date.
97
97
  */
98
- function utils_formatDICOMDate(date) {
99
- let strFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'MMM D, YYYY';
98
+ function utils_formatDICOMDate(date, strFormat = 'MMM D, YYYY') {
100
99
  return moment(date, 'YYYYMMDD').format(strFormat);
101
100
  }
102
101
 
@@ -113,8 +112,7 @@ function utils_formatDICOMDate(date) {
113
112
  * @param {string} strFormat
114
113
  * @returns {string} formatted name.
115
114
  */
116
- function utils_formatDICOMTime(time) {
117
- let strFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'HH:mm:ss';
115
+ function utils_formatDICOMTime(time, strFormat = 'HH:mm:ss') {
118
116
  return moment(time, 'HH:mm:ss').format(strFormat);
119
117
  }
120
118
 
@@ -173,14 +171,13 @@ function getCompression(imageId) {
173
171
  * @param {*} extensionManager is used to load the image data.
174
172
  * @returns
175
173
  */
176
- const generateFromConfig = _ref => {
177
- let {
178
- topLeft = [],
179
- topRight = [],
180
- bottomLeft = [],
181
- bottomRight = [],
182
- itemGenerator = () => {}
183
- } = _ref;
174
+ const generateFromConfig = ({
175
+ topLeft = [],
176
+ topRight = [],
177
+ bottomLeft = [],
178
+ bottomRight = [],
179
+ itemGenerator = () => {}
180
+ }) => {
184
181
  return props => {
185
182
  const topLeftClass = 'top-viewport left-viewport text-primary-light';
186
183
  const topRightClass = 'top-viewport right-viewport-scrollbar text-primary-light';
@@ -259,19 +256,13 @@ const itemGenerator = props => {
259
256
  }, content.value)));
260
257
  };
261
258
  /* harmony default export */ const ViewportOverlay = (generateFromConfig({}));
262
- // EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
263
- var dicomweb_client_es = __webpack_require__(97604);
264
- // EXTERNAL MODULE: ../../core/src/index.ts + 65 modules
265
- var core_src = __webpack_require__(71771);
259
+ // EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
260
+ var core_src = __webpack_require__(55411);
261
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 85 modules
262
+ var default_src = __webpack_require__(7206);
266
263
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/dicomWebClient.ts
267
264
 
268
265
 
269
- const {
270
- DICOMwebClient
271
- } = dicomweb_client_es.api;
272
- DICOMwebClient._buildMultipartAcceptHeaderFieldValue = () => {
273
- return '*/*';
274
- };
275
266
 
276
267
  /**
277
268
  * create a DICOMwebClient object to be used by Dicom Microscopy Viewer
@@ -281,11 +272,10 @@ DICOMwebClient._buildMultipartAcceptHeaderFieldValue = () => {
281
272
  * @param param0
282
273
  * @returns
283
274
  */
284
- function getDicomWebClient(_ref) {
285
- let {
286
- extensionManager,
287
- servicesManager
288
- } = _ref;
275
+ function getDicomWebClient({
276
+ extensionManager,
277
+ servicesManager
278
+ }) {
289
279
  const dataSourceConfig = window.config.dataSources.find(ds => ds.sourceName === extensionManager.activeDataSource);
290
280
  const {
291
281
  userAuthenticationService
@@ -300,9 +290,9 @@ function getDicomWebClient(_ref) {
300
290
  staticWado,
301
291
  singlepart,
302
292
  headers: userAuthenticationService.getAuthorizationHeader(),
303
- errorInterceptor: core_src/* errorHandler */.Po.getHTTPErrorHandler()
293
+ errorInterceptor: core_src/* errorHandler */.r_.getHTTPErrorHandler()
304
294
  };
305
- const client = new dicomweb_client_es.api.DICOMwebClient(wadoConfig);
295
+ const client = new default_src.StaticWadoClient(wadoConfig);
306
296
  client.wadoURL = wadoConfig.url;
307
297
  if (extensionManager.activeDataSource === 'dicomlocal') {
308
298
  /**
@@ -342,9 +332,7 @@ function getDicomWebClient(_ref) {
342
332
  return client;
343
333
  }
344
334
  // EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
345
- var dcmjs_es = __webpack_require__(67540);
346
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 76 modules
347
- var default_src = __webpack_require__(56342);
335
+ var dcmjs_es = __webpack_require__(31426);
348
336
  ;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/cleanDenaturalizedDataset.ts
349
337
 
350
338
  function isPrimitive(v) {
@@ -398,15 +386,6 @@ function cleanDenaturalizedDataset(obj, options) {
398
386
 
399
387
 
400
388
 
401
- function transformImageTypeUnnaturalized(entry) {
402
- if (entry.vr === 'CS') {
403
- return {
404
- vr: 'US',
405
- Value: entry.Value[0].split('\\')
406
- };
407
- }
408
- return entry;
409
- }
410
389
  class DicomMicroscopyViewport extends react.Component {
411
390
  constructor(props) {
412
391
  super(props);
@@ -452,8 +431,7 @@ class DicomMicroscopyViewport extends react.Component {
452
431
  * @param autoselect
453
432
  * @returns
454
433
  */
455
- getNearbyROI(event) {
456
- let autoselect = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
434
+ getNearbyROI(event, autoselect = true) {
457
435
  const symbols = Object.getOwnPropertySymbols(this.viewer);
458
436
  const _drawingSource = symbols.find(p => p.description === 'drawingSource');
459
437
  const _pyramid = symbols.find(p => p.description === 'pyramid');
@@ -477,7 +455,7 @@ class DicomMicroscopyViewport extends react.Component {
477
455
  const {
478
456
  viewer: DicomMicroscopyViewer,
479
457
  metadata: metadataUtils
480
- } = await __webpack_require__.e(/* import() | dicom-microscopy-viewer */ 18).then(__webpack_require__.t.bind(__webpack_require__, 42613, 23));
458
+ } = await __webpack_require__.e(/* import() | dicom-microscopy-viewer */ 525).then(__webpack_require__.t.bind(__webpack_require__, 95226, 23));
481
459
  const microscopyViewer = DicomMicroscopyViewer.VolumeImageViewer;
482
460
  const client = getDicomWebClient({
483
461
  extensionManager: this.props.extensionManager,
@@ -532,7 +510,7 @@ class DicomMicroscopyViewport extends react.Component {
532
510
  // NOTE: depending on different data source, image.ImageType sometimes
533
511
  // is a string, not a string array.
534
512
  m.ImageType = typeof m.ImageType === 'string' ? m.ImageType.split('\\') : m.ImageType;
535
- const inst = cleanDenaturalizedDataset(dcmjs_es["default"].data.DicomMetaDictionary.denaturalizeDataset(m), {
513
+ const inst = cleanDenaturalizedDataset(dcmjs_es/* default.data */.Ay.data.DicomMetaDictionary.denaturalizeDataset(m), {
536
514
  StudyInstanceUID: m.StudyInstanceUID,
537
515
  SeriesInstanceUID: m.SeriesInstanceUID,
538
516
  dataSourceConfig: this.props.dataSource.getConfig()
@@ -606,9 +584,6 @@ class DicomMicroscopyViewport extends react.Component {
606
584
  displaySets,
607
585
  viewportOptions
608
586
  } = this.props;
609
- const {
610
- viewportId
611
- } = viewportOptions;
612
587
  // Todo-rename: this is always getting the 0
613
588
  const displaySet = displaySets[0];
614
589
  this.installOpenLayersRenderer(this.container.current, displaySet).then(() => {
@@ -666,14 +641,14 @@ class DicomMicroscopyViewport extends react.Component {
666
641
  displaySet: displaySet,
667
642
  instance: displaySet.instance,
668
643
  metadata: displaySet.metadata
669
- })))), index_esm/* default */.ZP && /*#__PURE__*/react.createElement(index_esm/* default */.ZP, {
644
+ })))), index_esm/* default */.Ay && /*#__PURE__*/react.createElement(index_esm/* default */.Ay, {
670
645
  handleWidth: true,
671
646
  handleHeight: true,
672
647
  onResize: this.onWindowResize
673
648
  }), this.state.error ? /*#__PURE__*/react.createElement("h2", null, JSON.stringify(this.state.error)) : /*#__PURE__*/react.createElement("div", {
674
649
  style: style,
675
650
  ref: this.container
676
- }), this.state.isLoaded ? null : /*#__PURE__*/react.createElement(src/* LoadingIndicatorProgress */.LE, {
651
+ }), this.state.isLoaded ? null : /*#__PURE__*/react.createElement(src/* LoadingIndicatorProgress */.Jx, {
677
652
  className: 'h-full w-full bg-black'
678
653
  }));
679
654
  }