@ohif/app 3.7.0-beta.7 → 3.7.0-beta.71
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/{270.bundle.4564621556b0f963a004.js → 116.bundle.422d1a76d8daccfed61d.js} +1037 -823
- package/dist/{917.bundle.37f76105d2e1a70d94cf.js → 12.bundle.078c14f666c71663ae8e.js} +6 -6
- package/dist/{295.bundle.957b1159fec14b9199a1.js → 125.bundle.aeaad798561853bf6939.js} +6 -6
- package/dist/{208.bundle.21c449bf9b00123e1db3.js → 128.bundle.fdb6d1d5391b79de4936.js} +6 -6
- package/dist/{616.bundle.be469f44809e9b2485b2.js → 150.bundle.c99cc2e1df7cd4085265.js} +163 -106
- package/dist/{351.bundle.0742237651aef9694a65.js → 181.bundle.73dd6f63fe0ddc52b7eb.js} +225 -203
- package/dist/{351.css → 181.css} +1 -1
- package/dist/{606.bundle.5d876f5f3dd8287f0a28.js → 202.bundle.591726b6144882ba0ee0.js} +1459 -811
- package/dist/{926.bundle.dbc9d0e591cb9217fda2.js → 220.bundle.f7e1c96c94245e70f2be.js} +990 -400
- package/dist/{664.bundle.09abae984223969d1bde.js → 23.bundle.e008ad788170f2ed5569.js} +5 -6
- package/dist/{976.bundle.c1df3878a015cdf0e51f.js → 236.bundle.226efc38e453a4aeb7dd.js} +72 -83
- package/dist/{55.bundle.550a823e75eb608e8d5e.js → 250.bundle.8bc4553ee5c56bf7cf32.js} +51 -35
- package/dist/{973.bundle.f4b8ccf7ad2ff9f6041c.js → 281.bundle.e9554f25a9eeac2f43e6.js} +18 -14
- package/dist/{744.bundle.d07b9ad7b31de0ba4956.js → 30.bundle.c8dfb82c70ae9ff67f14.js} +185 -174
- package/dist/{192.bundle.1efc10937535a37a17f0.js → 348.bundle.e5082a6425f719eb6658.js} +43 -19
- package/dist/{404.bundle.d980e423e9670737ef12.js → 359.bundle.8da7f102410ca9c0c999.js} +13 -19
- package/dist/{790.bundle.ed28f0930111217b742a.js → 410.bundle.5d03eeef5b705198bf5e.js} +10 -7
- package/dist/{151.bundle.31ea35044218837bf73f.js → 417.bundle.6cadc61b8a455776de31.js} +49 -17
- package/dist/{569.bundle.21f8ad57c06a210448b5.js → 451.bundle.e59fcdb1f1d3fbe71cd4.js} +83 -101
- package/dist/{581.bundle.dc6197189f7c88c27d4c.js → 471.bundle.b598d406ddfc2666851b.js} +65 -93
- package/dist/{199.bundle.7cec631fcf4b8475abda.js → 506.bundle.869288177e788d808aaa.js} +86 -10
- package/dist/{935.bundle.deeffff0e4f7b528e3c3.js → 604.bundle.a51f83e64004bca5f497.js} +2 -3
- package/dist/{984.bundle.b33e9e702a96c5ae9fb7.js → 663.bundle.6a389399e5196510e0de.js} +67 -37
- package/dist/{531.bundle.2a82fb1d69e5b57cc72b.js → 677.bundle.ec5f2b4707db33bd4d8e.js} +731 -447
- package/dist/{205.bundle.b5a473c200dcf2bbcdb4.js → 686.bundle.b3dbf84eefbef768843f.js} +6 -6
- package/dist/{50.bundle.9b5c9aaaf1188ab0794a.js → 687.bundle.67d721785216e064fc52.js} +218 -9
- package/dist/{331.bundle.bd0c13931a21d53086c9.js → 754.bundle.a5c9246c77659eab2739.js} +12413 -7539
- package/dist/{728.bundle.d13856835357400fef82.js → 774.bundle.8ba82ee206266eb2da5e.js} +90 -63
- package/dist/{381.bundle.0905e683605fcbc0895f.js → 775.bundle.2285e7e0e67878948c0d.js} +16 -16
- package/dist/{283.bundle.8ffad59b5844a24b2a62.js → 782.bundle.6d57b35a056506c94352.js} +112 -62
- package/dist/{642.bundle.88a563313292ae2cdd2e.js → 814.bundle.ad8ebe6cffa96a5cfc1f.js} +6 -6
- package/dist/{799.bundle.758558e64147e5aad612.js → 822.bundle.5cdd9439a62e5c7e902f.js} +81 -34
- package/dist/{953.bundle.3b0189ebc11cf0946f18.js → 886.bundle.9e526affbd17b0ed96a6.js} +34 -29
- package/dist/{82.bundle.b824c7d8ff72de0fc149.js → 90.bundle.d7a1e818bbbd3bce5419.js} +1397 -366
- package/dist/945.min.worker.js +1 -1
- package/dist/945.min.worker.js.map +1 -1
- package/dist/{707.bundle.0b18a871c9eb8df9e992.js → 967.bundle.8b4adf9b5a7392b51d0c.js} +584 -435
- package/dist/app-config.js +7 -7
- package/dist/{app.bundle.f0885cb776ab9ae8974b.js → app.bundle.1905c07065c4b93afa5a.js} +69865 -67829
- package/dist/app.bundle.css +9 -9
- package/dist/assets/yandex-browser-manifest.json +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/{dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js → dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js} +5 -4
- package/dist/es6-shim.min.js +3569 -2
- package/dist/google.js +8 -7
- package/dist/index.html +1 -1
- package/dist/{index.worker.1c69152d710fa7b84bce.worker.js → index.worker.e62ecca63f1a2e124230.worker.js} +2 -2
- package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +1 -0
- package/dist/init-service-worker.js +3 -5
- package/dist/oidc-client.min.js +10857 -39
- package/dist/polyfill.min.js +184 -1
- package/dist/silent-refresh.html +18 -9
- package/dist/sw.js +1 -1
- package/package.json +19 -20
- package/dist/780.bundle.fd0f13dc92e9caa0581e.js +0 -4769
- package/dist/index.worker.1c69152d710fa7b84bce.worker.js.map +0 -1
- /package/dist/{55.css → 250.css} +0 -0
- /package/dist/{806.css → 579.css} +0 -0
- /package/dist/{707.css → 967.css} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[471],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 56471:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -13,68 +13,16 @@ __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__(43001);
|
|
17
17
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
18
|
-
var prop_types = __webpack_require__(
|
|
18
|
+
var prop_types = __webpack_require__(3827);
|
|
19
19
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
20
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
21
|
-
var src = __webpack_require__(
|
|
22
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
23
|
-
var ui_src = __webpack_require__(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
let {
|
|
27
|
-
rtDisplaySet,
|
|
28
|
-
viewportIndex,
|
|
29
|
-
servicesManager
|
|
30
|
-
} = _ref;
|
|
31
|
-
const {
|
|
32
|
-
segmentationService,
|
|
33
|
-
hangingProtocolService,
|
|
34
|
-
viewportGridService
|
|
35
|
-
} = servicesManager.services;
|
|
36
|
-
const displaySetInstanceUID = rtDisplaySet.referencedDisplaySetInstanceUID;
|
|
37
|
-
let segmentationId = null;
|
|
38
|
-
|
|
39
|
-
// We need the hydration to notify panels about the new segmentation added
|
|
40
|
-
const suppressEvents = false;
|
|
41
|
-
segmentationId = await segmentationService.createSegmentationForRTDisplaySet(rtDisplaySet, segmentationId, suppressEvents);
|
|
42
|
-
segmentationService.hydrateSegmentation(rtDisplaySet.displaySetInstanceUID);
|
|
43
|
-
const {
|
|
44
|
-
viewports
|
|
45
|
-
} = viewportGridService.getState();
|
|
46
|
-
const updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportIndex, displaySetInstanceUID);
|
|
47
|
-
viewportGridService.setDisplaySetsForViewports(updatedViewports);
|
|
48
|
-
|
|
49
|
-
// Todo: fix this after we have a better way for stack viewport segmentations
|
|
50
|
-
|
|
51
|
-
// check every viewport in the viewports to see if the displaySetInstanceUID
|
|
52
|
-
// is being displayed, if so we need to update the viewport to use volume viewport
|
|
53
|
-
// (if already is not using it) since Cornerstone3D currently only supports
|
|
54
|
-
// volume viewport for segmentation
|
|
55
|
-
viewports.forEach((viewport, index) => {
|
|
56
|
-
if (index === viewportIndex) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
const shouldDisplaySeg = segmentationService.shouldRenderSegmentation(viewport.displaySetInstanceUIDs, rtDisplaySet.displaySetInstanceUID);
|
|
60
|
-
if (shouldDisplaySeg) {
|
|
61
|
-
updatedViewports.push({
|
|
62
|
-
viewportIndex: index,
|
|
63
|
-
displaySetInstanceUIDs: viewport.displaySetInstanceUIDs,
|
|
64
|
-
viewportOptions: {
|
|
65
|
-
initialImageOptions: {
|
|
66
|
-
preset: 'middle'
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
// Do the entire update at once
|
|
74
|
-
viewportGridService.setDisplaySetsForViewports(updatedViewports);
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
/* harmony default export */ const _hydrateRT = (_hydrateRTDisplaySet);
|
|
20
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
21
|
+
var src = __webpack_require__(78695);
|
|
22
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 458 modules
|
|
23
|
+
var ui_src = __webpack_require__(88344);
|
|
24
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/_hydrateRT.ts
|
|
25
|
+
var _hydrateRT = __webpack_require__(50995);
|
|
78
26
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts
|
|
79
27
|
|
|
80
28
|
|
|
@@ -87,18 +35,22 @@ function promptHydrateRT(_ref) {
|
|
|
87
35
|
let {
|
|
88
36
|
servicesManager,
|
|
89
37
|
rtDisplaySet,
|
|
90
|
-
|
|
91
|
-
toolGroupId = 'default'
|
|
38
|
+
viewportId,
|
|
39
|
+
toolGroupId = 'default',
|
|
40
|
+
preHydrateCallbacks
|
|
92
41
|
} = _ref;
|
|
93
42
|
const {
|
|
94
43
|
uiViewportDialogService
|
|
95
44
|
} = servicesManager.services;
|
|
96
45
|
return new Promise(async function (resolve, reject) {
|
|
97
|
-
const promptResult = await _askHydrate(uiViewportDialogService,
|
|
46
|
+
const promptResult = await _askHydrate(uiViewportDialogService, viewportId);
|
|
98
47
|
if (promptResult === RESPONSE.HYDRATE_SEG) {
|
|
99
|
-
|
|
48
|
+
preHydrateCallbacks?.forEach(callback => {
|
|
49
|
+
callback();
|
|
50
|
+
});
|
|
51
|
+
const isHydrated = await (0,_hydrateRT/* default */.Z)({
|
|
100
52
|
rtDisplaySet,
|
|
101
|
-
|
|
53
|
+
viewportId,
|
|
102
54
|
toolGroupId,
|
|
103
55
|
servicesManager
|
|
104
56
|
});
|
|
@@ -106,7 +58,7 @@ function promptHydrateRT(_ref) {
|
|
|
106
58
|
}
|
|
107
59
|
});
|
|
108
60
|
}
|
|
109
|
-
function _askHydrate(uiViewportDialogService,
|
|
61
|
+
function _askHydrate(uiViewportDialogService, viewportId) {
|
|
110
62
|
return new Promise(function (resolve, reject) {
|
|
111
63
|
const message = 'Do you want to open this Segmentation?';
|
|
112
64
|
const actions = [{
|
|
@@ -123,7 +75,7 @@ function _askHydrate(uiViewportDialogService, viewportIndex) {
|
|
|
123
75
|
resolve(result);
|
|
124
76
|
};
|
|
125
77
|
uiViewportDialogService.show({
|
|
126
|
-
|
|
78
|
+
viewportId,
|
|
127
79
|
type: 'info',
|
|
128
80
|
message,
|
|
129
81
|
actions,
|
|
@@ -137,7 +89,7 @@ function _askHydrate(uiViewportDialogService, viewportIndex) {
|
|
|
137
89
|
}
|
|
138
90
|
/* harmony default export */ const utils_promptHydrateRT = (promptHydrateRT);
|
|
139
91
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
140
|
-
var es = __webpack_require__(
|
|
92
|
+
var es = __webpack_require__(69190);
|
|
141
93
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/viewports/_getStatusComponent.tsx
|
|
142
94
|
|
|
143
95
|
|
|
@@ -162,18 +114,19 @@ function _getStatusComponent(_ref) {
|
|
|
162
114
|
break;
|
|
163
115
|
case false:
|
|
164
116
|
StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
117
|
+
className: "text-aqua-pale",
|
|
165
118
|
name: "status-untracked"
|
|
166
119
|
});
|
|
167
120
|
ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "Click LOAD to load RTSTRUCT.");
|
|
168
121
|
}
|
|
169
122
|
const StatusArea = () => /*#__PURE__*/react.createElement("div", {
|
|
170
|
-
className: "flex h-6
|
|
123
|
+
className: "flex h-6 cursor-default text-sm leading-6 text-white"
|
|
171
124
|
}, /*#__PURE__*/react.createElement("div", {
|
|
172
|
-
className: "min-w-[45px]
|
|
125
|
+
className: "bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
|
|
173
126
|
}, /*#__PURE__*/react.createElement(StatusIcon, null), /*#__PURE__*/react.createElement("span", {
|
|
174
127
|
className: "ml-1"
|
|
175
128
|
}, "RTSTRUCT")), !isHydrated && /*#__PURE__*/react.createElement("div", {
|
|
176
|
-
className: "ml-1 px-1.5
|
|
129
|
+
className: "bg-primary-main hover:bg-primary-light ml-1 cursor-pointer rounded px-1.5 hover:text-black"
|
|
177
130
|
// Using onMouseUp here because onClick is not working when the viewport is not active and is styled with pointer-events:none
|
|
178
131
|
,
|
|
179
132
|
onMouseUp: onStatusClick
|
|
@@ -210,10 +163,10 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
210
163
|
children,
|
|
211
164
|
displaySets,
|
|
212
165
|
viewportOptions,
|
|
213
|
-
viewportIndex,
|
|
214
166
|
viewportLabel,
|
|
215
167
|
servicesManager,
|
|
216
|
-
extensionManager
|
|
168
|
+
extensionManager,
|
|
169
|
+
commandsManager
|
|
217
170
|
} = props;
|
|
218
171
|
const {
|
|
219
172
|
displaySetService,
|
|
@@ -222,7 +175,8 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
222
175
|
uiNotificationService,
|
|
223
176
|
customizationService
|
|
224
177
|
} = servicesManager.services;
|
|
225
|
-
const
|
|
178
|
+
const viewportId = viewportOptions.viewportId;
|
|
179
|
+
const toolGroupId = `${RT_TOOLGROUP_BASE_NAME}-${viewportId}`;
|
|
226
180
|
|
|
227
181
|
// RT viewport will always have a single display set
|
|
228
182
|
if (displaySets.length > 1) {
|
|
@@ -252,7 +206,7 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
252
206
|
const referencedDisplaySetRef = (0,react.useRef)(null);
|
|
253
207
|
const {
|
|
254
208
|
viewports,
|
|
255
|
-
|
|
209
|
+
activeViewportId
|
|
256
210
|
} = viewportGrid;
|
|
257
211
|
const referencedDisplaySet = rtDisplaySet.getReferenceDisplaySet();
|
|
258
212
|
const referencedDisplaySetMetadata = _getReferencedDisplaySetMetadata(referencedDisplaySet);
|
|
@@ -272,6 +226,16 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
272
226
|
const onElementDisabled = () => {
|
|
273
227
|
setElement(null);
|
|
274
228
|
};
|
|
229
|
+
const storePresentationState = (0,react.useCallback)(() => {
|
|
230
|
+
viewportGrid?.viewports.forEach(_ref => {
|
|
231
|
+
let {
|
|
232
|
+
viewportId
|
|
233
|
+
} = _ref;
|
|
234
|
+
commandsManager.runCommand('storePresentation', {
|
|
235
|
+
viewportId
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
}, [viewportGrid]);
|
|
275
239
|
const getCornerstoneViewport = (0,react.useCallback)(() => {
|
|
276
240
|
const {
|
|
277
241
|
component: Component
|
|
@@ -292,7 +256,7 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
292
256
|
onElementEnabled: onElementEnabled,
|
|
293
257
|
onElementDisabled: onElementDisabled
|
|
294
258
|
}));
|
|
295
|
-
}, [
|
|
259
|
+
}, [viewportId, rtDisplaySet, toolGroupId]);
|
|
296
260
|
const onSegmentChange = (0,react.useCallback)(direction => {
|
|
297
261
|
direction = direction === 'left' ? -1 : 1;
|
|
298
262
|
const segmentationId = rtDisplaySet.displaySetInstanceUID;
|
|
@@ -318,14 +282,15 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
318
282
|
}
|
|
319
283
|
utils_promptHydrateRT({
|
|
320
284
|
servicesManager,
|
|
321
|
-
|
|
322
|
-
rtDisplaySet
|
|
285
|
+
viewportId,
|
|
286
|
+
rtDisplaySet,
|
|
287
|
+
preHydrateCallbacks: [storePresentationState]
|
|
323
288
|
}).then(isHydrated => {
|
|
324
289
|
if (isHydrated) {
|
|
325
290
|
setIsHydrated(true);
|
|
326
291
|
}
|
|
327
292
|
});
|
|
328
|
-
}, [servicesManager,
|
|
293
|
+
}, [servicesManager, viewportId, rtDisplaySet, rtIsLoading]);
|
|
329
294
|
(0,react.useEffect)(() => {
|
|
330
295
|
const {
|
|
331
296
|
unsubscribe
|
|
@@ -348,11 +313,11 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
348
313
|
(0,react.useEffect)(() => {
|
|
349
314
|
const {
|
|
350
315
|
unsubscribe
|
|
351
|
-
} = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE,
|
|
316
|
+
} = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, _ref2 => {
|
|
352
317
|
let {
|
|
353
318
|
percentComplete,
|
|
354
319
|
numSegments
|
|
355
|
-
} =
|
|
320
|
+
} = _ref2;
|
|
356
321
|
setProcessingProgress({
|
|
357
322
|
percentComplete,
|
|
358
323
|
totalSegments: numSegments
|
|
@@ -367,14 +332,14 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
367
332
|
Cleanup the SEG viewport when the viewport is destroyed
|
|
368
333
|
*/
|
|
369
334
|
(0,react.useEffect)(() => {
|
|
370
|
-
const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED,
|
|
335
|
+
const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, _ref3 => {
|
|
371
336
|
let {
|
|
372
337
|
displaySetInstanceUIDs
|
|
373
|
-
} =
|
|
374
|
-
const activeViewport = viewports
|
|
338
|
+
} = _ref3;
|
|
339
|
+
const activeViewport = viewports.get(activeViewportId);
|
|
375
340
|
if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
|
|
376
341
|
viewportGridService.setDisplaySetsForViewport({
|
|
377
|
-
|
|
342
|
+
viewportId: activeViewportId,
|
|
378
343
|
displaySetInstanceUIDs: []
|
|
379
344
|
});
|
|
380
345
|
}
|
|
@@ -413,7 +378,7 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
413
378
|
if (children && children.length) {
|
|
414
379
|
childrenWithProps = children.map((child, index) => {
|
|
415
380
|
return child && /*#__PURE__*/react.cloneElement(child, {
|
|
416
|
-
|
|
381
|
+
viewportId,
|
|
417
382
|
key: index
|
|
418
383
|
});
|
|
419
384
|
});
|
|
@@ -431,9 +396,16 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
431
396
|
SeriesNumber
|
|
432
397
|
} = referencedDisplaySetRef.current.metadata;
|
|
433
398
|
const onStatusClick = async () => {
|
|
434
|
-
|
|
399
|
+
// Before hydrating a RT and make it added to all viewports in the grid
|
|
400
|
+
// that share the same frameOfReferenceUID, we need to store the viewport grid
|
|
401
|
+
// presentation state, so that we can restore it after hydrating the RT. This is
|
|
402
|
+
// required if the user has changed the viewport (other viewport than RT viewport)
|
|
403
|
+
// presentation state (w/l and invert) and then opens the RT. If we don't store
|
|
404
|
+
// the presentation state, the viewport will be reset to the default presentation
|
|
405
|
+
storePresentationState();
|
|
406
|
+
const isHydrated = await (0,_hydrateRT/* default */.Z)({
|
|
435
407
|
rtDisplaySet,
|
|
436
|
-
|
|
408
|
+
viewportId,
|
|
437
409
|
servicesManager
|
|
438
410
|
});
|
|
439
411
|
setIsHydrated(isHydrated);
|
|
@@ -467,9 +439,9 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
467
439
|
}
|
|
468
440
|
}
|
|
469
441
|
}), /*#__PURE__*/react.createElement("div", {
|
|
470
|
-
className: "relative flex
|
|
442
|
+
className: "relative flex h-full w-full flex-row overflow-hidden"
|
|
471
443
|
}, rtIsLoading && /*#__PURE__*/react.createElement(ui_src/* LoadingIndicatorTotalPercent */.bk, {
|
|
472
|
-
className: "
|
|
444
|
+
className: "h-full w-full",
|
|
473
445
|
totalNumbers: processingProgress.totalSegments,
|
|
474
446
|
percentComplete: processingProgress.percentComplete,
|
|
475
447
|
loadingText: "Loading RTSTRUCT..."
|
|
@@ -477,7 +449,7 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
477
449
|
}
|
|
478
450
|
OHIFCornerstoneRTViewport.propTypes = {
|
|
479
451
|
displaySets: prop_types_default().arrayOf((prop_types_default()).object),
|
|
480
|
-
|
|
452
|
+
viewportId: (prop_types_default()).string.isRequired,
|
|
481
453
|
dataSource: (prop_types_default()).object,
|
|
482
454
|
children: (prop_types_default()).node,
|
|
483
455
|
customProps: (prop_types_default()).object
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[506],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 53506:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -9,7 +9,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
9
9
|
|
|
10
10
|
// EXPORTS
|
|
11
11
|
__webpack_require__.d(__webpack_exports__, {
|
|
12
|
-
"default": () => (/* binding */ cornerstone_dicom_rt_src)
|
|
12
|
+
"default": () => (/* binding */ cornerstone_dicom_rt_src),
|
|
13
|
+
hydrateRTDisplaySet: () => (/* reexport */ _hydrateRT/* default */.Z)
|
|
13
14
|
});
|
|
14
15
|
|
|
15
16
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/package.json
|
|
@@ -21,11 +22,11 @@ const SOPClassHandlerName = 'dicom-rt';
|
|
|
21
22
|
const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
|
|
22
23
|
|
|
23
24
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
24
|
-
var react = __webpack_require__(
|
|
25
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
26
|
-
var src = __webpack_require__(
|
|
25
|
+
var react = __webpack_require__(43001);
|
|
26
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 75 modules
|
|
27
|
+
var src = __webpack_require__(78695);
|
|
27
28
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
28
|
-
var dcmjs_es = __webpack_require__(
|
|
29
|
+
var dcmjs_es = __webpack_require__(67540);
|
|
29
30
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/loadRTStruct.js
|
|
30
31
|
|
|
31
32
|
const {
|
|
@@ -415,13 +416,16 @@ function getSopClassHandlerModule(_ref2) {
|
|
|
415
416
|
}];
|
|
416
417
|
}
|
|
417
418
|
/* harmony default export */ const src_getSopClassHandlerModule = (getSopClassHandlerModule);
|
|
419
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/_hydrateRT.ts
|
|
420
|
+
var _hydrateRT = __webpack_require__(50995);
|
|
418
421
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/index.tsx
|
|
419
422
|
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); }
|
|
420
423
|
|
|
421
424
|
|
|
422
425
|
|
|
426
|
+
|
|
423
427
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
424
|
-
return __webpack_require__.e(/* import() */
|
|
428
|
+
return __webpack_require__.e(/* import() */ 471).then(__webpack_require__.bind(__webpack_require__, 56471));
|
|
425
429
|
});
|
|
426
430
|
const OHIFCornerstoneRTViewport = props => {
|
|
427
431
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
@@ -447,12 +451,14 @@ const extension = {
|
|
|
447
451
|
getViewportModule(_ref) {
|
|
448
452
|
let {
|
|
449
453
|
servicesManager,
|
|
450
|
-
extensionManager
|
|
454
|
+
extensionManager,
|
|
455
|
+
commandsManager
|
|
451
456
|
} = _ref;
|
|
452
457
|
const ExtendedOHIFCornerstoneRTViewport = props => {
|
|
453
458
|
return /*#__PURE__*/react.createElement(OHIFCornerstoneRTViewport, _extends({
|
|
454
459
|
servicesManager: servicesManager,
|
|
455
|
-
extensionManager: extensionManager
|
|
460
|
+
extensionManager: extensionManager,
|
|
461
|
+
commandsManager: commandsManager
|
|
456
462
|
}, props));
|
|
457
463
|
};
|
|
458
464
|
return [{
|
|
@@ -470,6 +476,76 @@ const extension = {
|
|
|
470
476
|
};
|
|
471
477
|
/* harmony default export */ const cornerstone_dicom_rt_src = (extension);
|
|
472
478
|
|
|
479
|
+
|
|
480
|
+
/***/ }),
|
|
481
|
+
|
|
482
|
+
/***/ 50995:
|
|
483
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
484
|
+
|
|
485
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
486
|
+
/* harmony export */ Z: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
487
|
+
/* harmony export */ });
|
|
488
|
+
async function _hydrateRTDisplaySet(_ref) {
|
|
489
|
+
let {
|
|
490
|
+
rtDisplaySet,
|
|
491
|
+
viewportId,
|
|
492
|
+
servicesManager
|
|
493
|
+
} = _ref;
|
|
494
|
+
const {
|
|
495
|
+
segmentationService,
|
|
496
|
+
hangingProtocolService,
|
|
497
|
+
viewportGridService
|
|
498
|
+
} = servicesManager.services;
|
|
499
|
+
const displaySetInstanceUID = rtDisplaySet.referencedDisplaySetInstanceUID;
|
|
500
|
+
let segmentationId = null;
|
|
501
|
+
|
|
502
|
+
// We need the hydration to notify panels about the new segmentation added
|
|
503
|
+
const suppressEvents = false;
|
|
504
|
+
segmentationId = await segmentationService.createSegmentationForRTDisplaySet(rtDisplaySet, segmentationId, suppressEvents);
|
|
505
|
+
segmentationService.hydrateSegmentation(rtDisplaySet.displaySetInstanceUID);
|
|
506
|
+
const {
|
|
507
|
+
viewports
|
|
508
|
+
} = viewportGridService.getState();
|
|
509
|
+
const updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportId, displaySetInstanceUID);
|
|
510
|
+
viewportGridService.setDisplaySetsForViewports(updatedViewports);
|
|
511
|
+
|
|
512
|
+
// Todo: fix this after we have a better way for stack viewport segmentations
|
|
513
|
+
|
|
514
|
+
// check every viewport in the viewports to see if the displaySetInstanceUID
|
|
515
|
+
// is being displayed, if so we need to update the viewport to use volume viewport
|
|
516
|
+
// (if already is not using it) since Cornerstone3D currently only supports
|
|
517
|
+
// volume viewport for segmentation
|
|
518
|
+
viewports.forEach(viewport => {
|
|
519
|
+
if (viewport.viewportId === viewportId) {
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
522
|
+
const shouldDisplaySeg = segmentationService.shouldRenderSegmentation(viewport.displaySetInstanceUIDs, rtDisplaySet.displaySetInstanceUID);
|
|
523
|
+
if (shouldDisplaySeg) {
|
|
524
|
+
updatedViewports.push({
|
|
525
|
+
viewportId: viewport.viewportId,
|
|
526
|
+
displaySetInstanceUIDs: viewport.displaySetInstanceUIDs,
|
|
527
|
+
viewportOptions: {
|
|
528
|
+
// Note: This is a hack to get the grid to re-render the OHIFCornerstoneViewport component
|
|
529
|
+
// Used for segmentation hydration right now, since the logic to decide whether
|
|
530
|
+
// a viewport needs to render a segmentation lives inside the CornerstoneViewportService
|
|
531
|
+
// so we need to re-render (force update via change of the needsRerendering) so that React
|
|
532
|
+
// does the diffing and decides we should render this again (although the id and element has not changed)
|
|
533
|
+
// so that the CornerstoneViewportService can decide whether to render the segmentation or not.
|
|
534
|
+
needsRerendering: true,
|
|
535
|
+
initialImageOptions: {
|
|
536
|
+
preset: 'middle'
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
// Do the entire update at once
|
|
544
|
+
viewportGridService.setDisplaySetsForViewports(updatedViewports);
|
|
545
|
+
return true;
|
|
546
|
+
}
|
|
547
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_hydrateRTDisplaySet);
|
|
548
|
+
|
|
473
549
|
/***/ })
|
|
474
550
|
|
|
475
551
|
}]);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[604],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 97604:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
@@ -1841,7 +1841,6 @@ var utils = {
|
|
|
1841
1841
|
};
|
|
1842
1842
|
|
|
1843
1843
|
|
|
1844
|
-
//# sourceMappingURL=dicomweb-client.es.js.map
|
|
1845
1844
|
|
|
1846
1845
|
|
|
1847
1846
|
/***/ })
|