@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.
- package/dist/{220.bundle.f7e1c96c94245e70f2be.js → 109.bundle.b4fee2a22b622839baf5.js} +4466 -3715
- package/dist/{471.bundle.49c8d281adbae4a2c4df.js → 121.bundle.47f05840a5b3cdf75543.js} +94 -113
- package/dist/141.bundle.556b4c1e4cab770417ac.js +8620 -0
- package/dist/{687.bundle.9065db35c01823286f08.js → 164.bundle.fadc7c5d634402c73b5f.js} +22 -38
- package/dist/17dd54813d5acc10bf8f.wasm +0 -0
- package/dist/183.bundle.a3e238998be71c4b2af8.js +30410 -0
- package/dist/{506.bundle.5731bb4349e266491225.js → 188.bundle.51dc4b37920f45594393.js} +23 -28
- package/dist/{342.bundle.e7c3d500f86fdfcc62b5.js → 206.bundle.fcaa081a0d1f68095c31.js} +1991 -1145
- package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
- package/dist/217.bundle.d44bbaa50b6fa563fe15.js +115126 -0
- package/dist/{451.bundle.57c21db5d003c75e9d61.js → 295.bundle.5ace95771ced62bdcab8.js} +111 -128
- package/dist/{125.bundle.253395f320b72180da63.js → 297.bundle.194d8985ab974839b5b6.js} +7 -8
- package/dist/{19.bundle.f77c5787b6d8ac0b638b.js → 325.bundle.fd8e0c18db4708d03a91.js} +477 -373
- package/dist/335.bundle.8400aa5a88697a6b9d53.js +2590 -0
- package/dist/{202.bundle.d3490836f71e001dd30f.js → 342.bundle.e6d0bba29351b5650a8c.js} +566 -868
- package/dist/{776.bundle.a2dedb405a12ffd7699b.js → 41.bundle.0905b258a90a7c6437bb.js} +7453 -3624
- package/dist/422.bundle.c6fd037b075dd54f1ba7.js +865 -0
- package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 433.bundle.e0018820758f5a86fa7f.js} +14797 -27561
- package/dist/445.bundle.38c6d2af64e41cd7c614.js +7835 -0
- package/dist/{126.bundle.6e7111d58bcc937ffd80.js → 448.bundle.5e6da31477887bf53016.js} +356 -430
- package/dist/487.bundle.89d973049defb3ba6cb7.js +1876 -0
- package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 530.bundle.207b38c15c4c01e4db0e.js} +104 -121
- package/dist/{250.bundle.aea3335667054bdefe36.js → 544.bundle.1c1f57118560046649c1.js} +37 -62
- package/dist/574.bundle.d648fea691d6709bf2b4.js +2652 -0
- package/dist/{181.css → 574.css} +1 -1
- package/dist/{410.bundle.15c855b0ff4a1a674fb8.js → 594.bundle.84076375b127b9c7f673.js} +183 -221
- package/dist/{221.bundle.aef554202c58483cb34e.js → 633.bundle.acab89baaa06a299d679.js} +365 -553
- package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 644.bundle.1e77691d2eeb96a423b0.js} +1852 -8945
- package/dist/{663.bundle.d7be28450db14266cdd0.js → 669.bundle.b17e8a621e38d92c653f.js} +310 -265
- package/dist/699.bundle.9367d7ef9f7615b2e733.js +772 -0
- package/dist/702.bundle.963481fbf871984b646f.js +8426 -0
- package/dist/722.bundle.afab1fe6bfcd569130ac.js +1083 -0
- package/dist/{359.bundle.45ecb3d28e8c22142606.js → 724.bundle.55f9f49816de931af91a.js} +165 -260
- package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 726.bundle.0b3d9277d22fe7e15b89.js} +512 -879
- package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 835.bundle.15aff0b7433bb0dd6d6d.js} +37 -30
- package/dist/{822.bundle.82cdc418f8f56da6060b.js → 862.bundle.d32ab08e64806b2e964d.js} +81 -97
- package/dist/{236.bundle.4e9924934a747afac132.js → 889.bundle.8ef8b723d0163d5d135c.js} +207 -199
- package/dist/{281.bundle.deb7492d143e7768d8bf.js → 905.bundle.8a96e1a75b7cfe5ec093.js} +157 -124
- package/dist/{814.bundle.c8c951d20039b63b865a.js → 907.bundle.5c88ed911bed18582da4.js} +16 -30
- package/dist/{417.bundle.af0a207c29b109f84159.js → 931.bundle.d270a1fda9a2836c3cc5.js} +26 -26
- package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 939.bundle.9d93b2e47c52338747a2.js} +7 -8
- package/dist/94.bundle.f5f2479c214180d05d42.js +778 -0
- package/dist/{12.bundle.b5ca13e5363f170ecb3b.js → 961.bundle.f4e52bc76d3044d05372.js} +20 -33
- package/dist/app-config.js +1 -0
- package/dist/app.bundle.css +16 -13
- package/dist/{app.bundle.a978edc59b9d82f2eb22.js → app.bundle.ed937512f7d19d61c411.js} +183396 -87682
- package/dist/assets/images/CT-AAA.png +0 -0
- package/dist/assets/images/CT-AAA2.png +0 -0
- package/dist/assets/images/CT-Air.png +0 -0
- package/dist/assets/images/CT-Bone.png +0 -0
- package/dist/assets/images/CT-Bones.png +0 -0
- package/dist/assets/images/CT-Cardiac.png +0 -0
- package/dist/assets/images/CT-Cardiac2.png +0 -0
- package/dist/assets/images/CT-Cardiac3.png +0 -0
- package/dist/assets/images/CT-Chest-Contrast-Enhanced.png +0 -0
- package/dist/assets/images/CT-Chest-Vessels.png +0 -0
- package/dist/assets/images/CT-Coronary-Arteries-2.png +0 -0
- package/dist/assets/images/CT-Coronary-Arteries-3.png +0 -0
- package/dist/assets/images/CT-Coronary-Arteries.png +0 -0
- package/dist/assets/images/CT-Cropped-Volume-Bone.png +0 -0
- package/dist/assets/images/CT-Fat.png +0 -0
- package/dist/assets/images/CT-Liver-Vasculature.png +0 -0
- package/dist/assets/images/CT-Lung.png +0 -0
- package/dist/assets/images/CT-MIP.png +0 -0
- package/dist/assets/images/CT-Muscle.png +0 -0
- package/dist/assets/images/CT-Pulmonary-Arteries.png +0 -0
- package/dist/assets/images/CT-Soft-Tissue.png +0 -0
- package/dist/assets/images/DTI-FA-Brain.png +0 -0
- package/dist/assets/images/MR-Angio.png +0 -0
- package/dist/assets/images/MR-Default.png +0 -0
- package/dist/assets/images/MR-MIP.png +0 -0
- package/dist/assets/images/MR-T2-Brain.png +0 -0
- package/dist/assets/images/VolumeRendering.png +0 -0
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js} +3 -3
- package/dist/histogram-worker.bundle.829e14ec12c2b41a4323.js +359 -0
- package/dist/index.html +1 -1
- package/dist/{index.worker.e62ecca63f1a2e124230.worker.js → index.worker.64c896c4316fcd506666.worker.js} +2 -2
- package/dist/index.worker.64c896c4316fcd506666.worker.js.map +1 -0
- package/dist/polySeg.bundle.f1a6ece1396dc1385155.js +249 -0
- package/dist/serve.json +12 -0
- package/dist/sw.js +1 -1
- package/package.json +26 -22
- package/dist/181.bundle.a62b9f0ec692299acb35.js +0 -1527
- package/dist/23.bundle.e008ad788170f2ed5569.js +0 -900
- package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
- package/dist/613.bundle.9e7072e5b575354fe51e.js +0 -532
- package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
- package/dist/75788f12450d4c5ed494.wasm +0 -0
- package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
- package/dist/788.bundle.207ac23c0dfa70cbe3fb.js +0 -2682
- package/dist/82.bundle.d6fdcca0f67540bb226a.js +0 -1049
- package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
- /package/dist/{19.css → 325.css} +0 -0
- /package/dist/{776.css → 41.css} +0 -0
- /package/dist/{579.css → 481.css} +0 -0
- /package/dist/{250.css → 544.css} +0 -0
- /package/dist/{221.css → 633.css} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[121],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 23121:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -13,14 +13,12 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
16
|
-
var react = __webpack_require__(
|
|
16
|
+
var react = __webpack_require__(41766);
|
|
17
17
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
18
|
-
var prop_types = __webpack_require__(
|
|
18
|
+
var prop_types = __webpack_require__(11374);
|
|
19
19
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
20
|
-
// EXTERNAL MODULE: ../../
|
|
21
|
-
var src = __webpack_require__(
|
|
22
|
-
// EXTERNAL MODULE: ../../ui/src/index.js + 486 modules
|
|
23
|
-
var ui_src = __webpack_require__(22582);
|
|
20
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
|
|
21
|
+
var src = __webpack_require__(5085);
|
|
24
22
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts
|
|
25
23
|
|
|
26
24
|
const RESPONSE = {
|
|
@@ -28,15 +26,14 @@ const RESPONSE = {
|
|
|
28
26
|
CANCEL: 0,
|
|
29
27
|
HYDRATE_SEG: 5
|
|
30
28
|
};
|
|
31
|
-
function promptHydrateRT(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
} = _ref;
|
|
29
|
+
function promptHydrateRT({
|
|
30
|
+
servicesManager,
|
|
31
|
+
rtDisplaySet,
|
|
32
|
+
viewportId,
|
|
33
|
+
toolGroupId = 'default',
|
|
34
|
+
preHydrateCallbacks,
|
|
35
|
+
hydrateRTDisplaySet
|
|
36
|
+
}) {
|
|
40
37
|
const {
|
|
41
38
|
uiViewportDialogService
|
|
42
39
|
} = servicesManager.services;
|
|
@@ -60,11 +57,11 @@ function _askHydrate(uiViewportDialogService, viewportId) {
|
|
|
60
57
|
return new Promise(function (resolve, reject) {
|
|
61
58
|
const message = 'Do you want to open this Segmentation?';
|
|
62
59
|
const actions = [{
|
|
63
|
-
type:
|
|
60
|
+
type: src/* ButtonEnums.type */.Ny.NW.secondary,
|
|
64
61
|
text: 'No',
|
|
65
62
|
value: RESPONSE.CANCEL
|
|
66
63
|
}, {
|
|
67
|
-
type:
|
|
64
|
+
type: src/* ButtonEnums.type */.Ny.NW.primary,
|
|
68
65
|
text: 'Yes',
|
|
69
66
|
value: RESPONSE.HYDRATE_SEG
|
|
70
67
|
}];
|
|
@@ -81,55 +78,61 @@ function _askHydrate(uiViewportDialogService, viewportId) {
|
|
|
81
78
|
onOutsideClick: () => {
|
|
82
79
|
uiViewportDialogService.hide();
|
|
83
80
|
resolve(RESPONSE.CANCEL);
|
|
81
|
+
},
|
|
82
|
+
onKeyPress: event => {
|
|
83
|
+
if (event.key === 'Enter') {
|
|
84
|
+
onSubmit(RESPONSE.HYDRATE_SEG);
|
|
85
|
+
}
|
|
84
86
|
}
|
|
85
87
|
});
|
|
86
88
|
});
|
|
87
89
|
}
|
|
88
90
|
/* harmony default export */ const utils_promptHydrateRT = (promptHydrateRT);
|
|
89
91
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
90
|
-
var es = __webpack_require__(
|
|
92
|
+
var es = __webpack_require__(80619);
|
|
91
93
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/viewports/_getStatusComponent.tsx
|
|
92
94
|
|
|
93
95
|
|
|
94
96
|
|
|
95
|
-
function _getStatusComponent(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
} = _ref;
|
|
97
|
+
function _getStatusComponent({
|
|
98
|
+
isHydrated,
|
|
99
|
+
onStatusClick
|
|
100
|
+
}) {
|
|
100
101
|
let ToolTipMessage = null;
|
|
101
102
|
let StatusIcon = null;
|
|
102
|
-
const {
|
|
103
|
-
t
|
|
104
|
-
} = (0,es/* useTranslation */.$G)('Common');
|
|
105
|
-
const loadStr = t('LOAD');
|
|
106
103
|
switch (isHydrated) {
|
|
107
104
|
case true:
|
|
108
|
-
StatusIcon = () => /*#__PURE__*/react.createElement(
|
|
105
|
+
StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
|
|
109
106
|
name: "status-alert"
|
|
110
107
|
});
|
|
111
108
|
ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "This Segmentation is loaded in the segmentation panel");
|
|
112
109
|
break;
|
|
113
110
|
case false:
|
|
114
|
-
StatusIcon = () => /*#__PURE__*/react.createElement(
|
|
111
|
+
StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
|
|
115
112
|
className: "text-aqua-pale",
|
|
116
113
|
name: "status-untracked"
|
|
117
114
|
});
|
|
118
115
|
ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "Click LOAD to load RTSTRUCT.");
|
|
119
116
|
}
|
|
120
|
-
const StatusArea = () =>
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
+
}, "RTSTRUCT")), !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_, {
|
|
133
136
|
content: /*#__PURE__*/react.createElement(ToolTipMessage, null),
|
|
134
137
|
position: "bottom-left"
|
|
135
138
|
}, /*#__PURE__*/react.createElement(StatusArea, null)), !ToolTipMessage && /*#__PURE__*/react.createElement(StatusArea, null));
|
|
@@ -150,17 +153,12 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
150
153
|
|
|
151
154
|
|
|
152
155
|
|
|
153
|
-
|
|
154
|
-
const {
|
|
155
|
-
formatDate
|
|
156
|
-
} = src.utils;
|
|
157
156
|
const RT_TOOLGROUP_BASE_NAME = 'RTToolGroup';
|
|
158
157
|
function OHIFCornerstoneRTViewport(props) {
|
|
159
158
|
const {
|
|
160
159
|
children,
|
|
161
160
|
displaySets,
|
|
162
161
|
viewportOptions,
|
|
163
|
-
viewportLabel,
|
|
164
162
|
servicesManager,
|
|
165
163
|
extensionManager,
|
|
166
164
|
commandsManager
|
|
@@ -170,7 +168,8 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
170
168
|
toolGroupService,
|
|
171
169
|
segmentationService,
|
|
172
170
|
uiNotificationService,
|
|
173
|
-
customizationService
|
|
171
|
+
customizationService,
|
|
172
|
+
viewportActionCornersService
|
|
174
173
|
} = servicesManager.services;
|
|
175
174
|
const viewportId = viewportOptions.viewportId;
|
|
176
175
|
const toolGroupId = `${RT_TOOLGROUP_BASE_NAME}-${viewportId}`;
|
|
@@ -180,7 +179,7 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
180
179
|
throw new Error('RT viewport should only have a single display set');
|
|
181
180
|
}
|
|
182
181
|
const rtDisplaySet = displaySets[0];
|
|
183
|
-
const [viewportGrid, viewportGridService] = (0,
|
|
182
|
+
const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.ih)();
|
|
184
183
|
|
|
185
184
|
// States
|
|
186
185
|
const [isToolGroupCreated, setToolGroupCreated] = (0,react.useState)(false);
|
|
@@ -224,20 +223,18 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
224
223
|
setElement(null);
|
|
225
224
|
};
|
|
226
225
|
const storePresentationState = (0,react.useCallback)(() => {
|
|
227
|
-
viewportGrid?.viewports.forEach(
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
} = _ref;
|
|
226
|
+
viewportGrid?.viewports.forEach(({
|
|
227
|
+
viewportId
|
|
228
|
+
}) => {
|
|
231
229
|
commandsManager.runCommand('storePresentation', {
|
|
232
230
|
viewportId
|
|
233
231
|
});
|
|
234
232
|
});
|
|
235
233
|
}, [viewportGrid]);
|
|
236
|
-
const hydrateRTDisplaySet =
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
} = _ref2;
|
|
234
|
+
const hydrateRTDisplaySet = ({
|
|
235
|
+
rtDisplaySet,
|
|
236
|
+
viewportId
|
|
237
|
+
}) => {
|
|
241
238
|
commandsManager.runCommand('loadSegmentationDisplaySetsForViewport', {
|
|
242
239
|
displaySets: [rtDisplaySet],
|
|
243
240
|
viewportId
|
|
@@ -260,12 +257,14 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
260
257
|
orientation: viewportOptions.orientation,
|
|
261
258
|
viewportId: viewportOptions.viewportId
|
|
262
259
|
},
|
|
263
|
-
onElementEnabled:
|
|
260
|
+
onElementEnabled: evt => {
|
|
261
|
+
props.onElementEnabled?.(evt);
|
|
262
|
+
onElementEnabled(evt);
|
|
263
|
+
},
|
|
264
264
|
onElementDisabled: onElementDisabled
|
|
265
265
|
}));
|
|
266
266
|
}, [viewportId, rtDisplaySet, toolGroupId]);
|
|
267
267
|
const onSegmentChange = (0,react.useCallback)(direction => {
|
|
268
|
-
direction = direction === 'left' ? -1 : 1;
|
|
269
268
|
const segmentationId = rtDisplaySet.displaySetInstanceUID;
|
|
270
269
|
const segmentation = segmentationService.getSegmentation(segmentationId);
|
|
271
270
|
const {
|
|
@@ -300,6 +299,8 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
300
299
|
});
|
|
301
300
|
}, [servicesManager, viewportId, rtDisplaySet, rtIsLoading]);
|
|
302
301
|
(0,react.useEffect)(() => {
|
|
302
|
+
// I'm not sure what is this, since in RT we support Overlapping segments
|
|
303
|
+
// via contours
|
|
303
304
|
const {
|
|
304
305
|
unsubscribe
|
|
305
306
|
} = segmentationService.subscribe(segmentationService.EVENTS.SEGMENTATION_LOADING_COMPLETE, evt => {
|
|
@@ -321,11 +322,10 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
321
322
|
(0,react.useEffect)(() => {
|
|
322
323
|
const {
|
|
323
324
|
unsubscribe
|
|
324
|
-
} = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE,
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
} = _ref3;
|
|
325
|
+
} = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, ({
|
|
326
|
+
percentComplete,
|
|
327
|
+
numSegments
|
|
328
|
+
}) => {
|
|
329
329
|
setProcessingProgress({
|
|
330
330
|
percentComplete,
|
|
331
331
|
totalSegments: numSegments
|
|
@@ -340,10 +340,9 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
340
340
|
Cleanup the SEG viewport when the viewport is destroyed
|
|
341
341
|
*/
|
|
342
342
|
(0,react.useEffect)(() => {
|
|
343
|
-
const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED,
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
} = _ref4;
|
|
343
|
+
const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, ({
|
|
344
|
+
displaySetInstanceUIDs
|
|
345
|
+
}) => {
|
|
347
346
|
const activeViewport = viewports.get(activeViewportId);
|
|
348
347
|
if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
|
|
349
348
|
viewportGridService.setDisplaySetsForViewport({
|
|
@@ -391,19 +390,7 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
391
390
|
});
|
|
392
391
|
});
|
|
393
392
|
}
|
|
394
|
-
const {
|
|
395
|
-
PatientID,
|
|
396
|
-
PatientName,
|
|
397
|
-
PatientSex,
|
|
398
|
-
PatientAge,
|
|
399
|
-
SliceThickness,
|
|
400
|
-
ManufacturerModelName,
|
|
401
|
-
StudyDate,
|
|
402
|
-
SeriesDescription,
|
|
403
|
-
SpacingBetweenSlices,
|
|
404
|
-
SeriesNumber
|
|
405
|
-
} = referencedDisplaySetRef.current.metadata;
|
|
406
|
-
const onStatusClick = async () => {
|
|
393
|
+
const onStatusClick = (0,react.useCallback)(async () => {
|
|
407
394
|
// Before hydrating a RT and make it added to all viewports in the grid
|
|
408
395
|
// that share the same frameOfReferenceUID, we need to store the viewport grid
|
|
409
396
|
// presentation state, so that we can restore it after hydrating the RT. This is
|
|
@@ -416,38 +403,32 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
416
403
|
viewportId
|
|
417
404
|
});
|
|
418
405
|
setIsHydrated(isHydrated);
|
|
419
|
-
};
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
onArrowsClick: onSegmentChange,
|
|
426
|
-
getStatusComponent: () => {
|
|
427
|
-
return _getStatusComponent({
|
|
406
|
+
}, [hydrateRTDisplaySet, rtDisplaySet, storePresentationState, viewportId]);
|
|
407
|
+
(0,react.useEffect)(() => {
|
|
408
|
+
viewportActionCornersService.setComponents([{
|
|
409
|
+
viewportId,
|
|
410
|
+
id: 'viewportStatusComponent',
|
|
411
|
+
component: _getStatusComponent({
|
|
428
412
|
isHydrated,
|
|
429
413
|
onStatusClick
|
|
430
|
-
})
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
}), /*#__PURE__*/react.createElement("div", {
|
|
414
|
+
}),
|
|
415
|
+
indexPriority: -100,
|
|
416
|
+
location: viewportActionCornersService.LOCATIONS.topLeft
|
|
417
|
+
}, {
|
|
418
|
+
viewportId,
|
|
419
|
+
id: 'viewportActionArrowsComponent',
|
|
420
|
+
component: /*#__PURE__*/react.createElement(src/* ViewportActionArrows */.$I, {
|
|
421
|
+
key: "actionArrows",
|
|
422
|
+
onArrowsClick: onSegmentChange,
|
|
423
|
+
className: viewportId === activeViewportId ? 'visible' : 'invisible group-hover:visible'
|
|
424
|
+
}),
|
|
425
|
+
indexPriority: 0,
|
|
426
|
+
location: viewportActionCornersService.LOCATIONS.topRight
|
|
427
|
+
}]);
|
|
428
|
+
}, [activeViewportId, isHydrated, onSegmentChange, onStatusClick, viewportActionCornersService, viewportId]);
|
|
429
|
+
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
449
430
|
className: "relative flex h-full w-full flex-row overflow-hidden"
|
|
450
|
-
}, rtIsLoading && /*#__PURE__*/react.createElement(
|
|
431
|
+
}, rtIsLoading && /*#__PURE__*/react.createElement(src/* LoadingIndicatorTotalPercent */.pT, {
|
|
451
432
|
className: "h-full w-full",
|
|
452
433
|
totalNumbers: processingProgress.totalSegments,
|
|
453
434
|
percentComplete: processingProgress.percentComplete,
|