@ohif/app 3.7.0-beta.5 → 3.7.0-beta.50
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/{917.bundle.24fc5ca2280d2980bf0f.js → 12.bundle.7348933f311b7e2e7d1e.js} +6 -6
- package/dist/{295.bundle.957b1159fec14b9199a1.js → 125.bundle.1ae4c6313c31cd0502cc.js} +4 -4
- package/dist/{208.bundle.e50761cf714ac772d9cc.js → 128.bundle.d933d385a22b1ce9ac77.js} +6 -6
- package/dist/{616.bundle.cbb2e0a23b1343b6441f.js → 150.bundle.e6880fd33346f8c24f6e.js} +148 -103
- package/dist/{351.bundle.0742237651aef9694a65.js → 181.bundle.234fef330d4fe6baca8b.js} +139 -128
- package/dist/{351.css → 181.css} +1 -1
- package/dist/{606.bundle.5d876f5f3dd8287f0a28.js → 202.bundle.ac1e5e25d4daf54581b1.js} +3705 -981
- 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.3b8f97b61cdfa7dc32e3.js → 236.bundle.765f3c70e21f29ab2e89.js} +38 -24
- package/dist/{55.bundle.550a823e75eb608e8d5e.js → 250.bundle.3bcee6d765a209281ddd.js} +37 -25
- package/dist/{973.bundle.77245411064eaa3ee79a.js → 281.bundle.dcc5492f44a83edd5320.js} +18 -14
- package/dist/{744.bundle.81246dc9f043a17fde8a.js → 30.bundle.5e2f6eeb779d579fc16e.js} +77 -89
- package/dist/{192.bundle.6dc1f92074738663620f.js → 348.bundle.c2deacff008bb8c68a14.js} +18 -14
- package/dist/{404.bundle.b7b371a30ca5bc5a0554.js → 359.bundle.594d68e783da31f97c30.js} +13 -19
- package/dist/{50.bundle.135ada11018fff84d66b.js → 378.bundle.6996a4170f4f05198f23.js} +10 -8
- package/dist/{790.bundle.ca48b21507b91b675810.js → 410.bundle.c8759293de9af17687c4.js} +6 -6
- package/dist/{151.bundle.31ea35044218837bf73f.js → 417.bundle.720dc8f3a6e99f378aa9.js} +9 -11
- package/dist/{569.bundle.21f8ad57c06a210448b5.js → 451.bundle.9941d9134fcf747d452a.js} +62 -81
- package/dist/{581.bundle.dc6197189f7c88c27d4c.js → 471.bundle.c9e618aeda78362776aa.js} +43 -72
- package/dist/{199.bundle.dff92336f7bc36f2e484.js → 506.bundle.8a2562b7038f6c983884.js} +79 -15
- package/dist/{935.bundle.deeffff0e4f7b528e3c3.js → 604.bundle.a51f83e64004bca5f497.js} +2 -3
- package/dist/{984.bundle.0301a876361809048be0.js → 663.bundle.e839c4819de3e372d07b.js} +52 -34
- package/dist/{531.bundle.2a82fb1d69e5b57cc72b.js → 677.bundle.ec5f2b4707db33bd4d8e.js} +731 -447
- package/dist/{707.bundle.7068a46e5be26fe60fce.js → 678.bundle.84a43fe18483016344de.js} +237 -244
- package/dist/{205.bundle.b5a473c200dcf2bbcdb4.js → 686.bundle.70565410179f1e7d22e6.js} +4 -4
- package/dist/{331.bundle.bd0c13931a21d53086c9.js → 754.bundle.8a16fc8ad21fe00c2e15.js} +12346 -7519
- 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.f06203ec47c287f44cea.js → 782.bundle.0ea6e2a386f4ba43d830.js} +57 -25
- package/dist/{82.bundle.0456c9e58fa89b131f14.js → 789.bundle.aad9b29b476ea70e1350.js} +522 -157
- package/dist/{642.bundle.e8d980d4ba95b0b2665f.js → 814.bundle.2e308e04f0d21b4295a9.js} +6 -6
- package/dist/{799.bundle.758558e64147e5aad612.js → 822.bundle.d40c439da659f0e8500d.js} +65 -16
- package/dist/{953.bundle.3b0189ebc11cf0946f18.js → 886.bundle.68ef58774a6837f57631.js} +11 -10
- package/dist/{270.bundle.4564621556b0f963a004.js → 925.bundle.a2f1103d968c53a2b8fb.js} +626 -544
- package/dist/945.min.worker.js +1 -1
- package/dist/945.min.worker.js.map +1 -1
- package/dist/app-config.js +7 -7
- package/dist/{app.bundle.3ab8624d0394f1b10a0d.js → app.bundle.00cc8e251524b80d3347.js} +59252 -59601
- package/dist/app.bundle.css +9 -9
- 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.44f7fedc03a58d5911d1.js} +3 -3
- package/dist/google.js +6 -5
- 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/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 → 678.css} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[417],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 15747:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
@@ -603,24 +603,23 @@ function calculateSUVScalingFactors(instances) {
|
|
|
603
603
|
}
|
|
604
604
|
|
|
605
605
|
|
|
606
|
-
//# sourceMappingURL=calculate-suv.esm.js.map
|
|
607
606
|
|
|
608
607
|
|
|
609
608
|
/***/ }),
|
|
610
609
|
|
|
611
|
-
/***/
|
|
610
|
+
/***/ 94614:
|
|
612
611
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
613
612
|
|
|
614
613
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
615
614
|
/* harmony export */ S_: () => (/* binding */ VariableSizeList)
|
|
616
615
|
/* harmony export */ });
|
|
617
616
|
/* unused harmony exports FixedSizeGrid, FixedSizeList, VariableSizeGrid, areEqual, shouldComponentUpdate */
|
|
618
|
-
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
619
|
-
/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
620
|
-
/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
621
|
-
/* harmony import */ var memoize_one__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
622
|
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
623
|
-
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
617
|
+
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76805);
|
|
618
|
+
/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80107);
|
|
619
|
+
/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84067);
|
|
620
|
+
/* harmony import */ var memoize_one__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25539);
|
|
621
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(43001);
|
|
622
|
+
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(8339);
|
|
624
623
|
|
|
625
624
|
|
|
626
625
|
|
|
@@ -2571,7 +2570,6 @@ function shouldComponentUpdate(nextProps, nextState) {
|
|
|
2571
2570
|
}
|
|
2572
2571
|
|
|
2573
2572
|
|
|
2574
|
-
//# sourceMappingURL=index.esm.js.map
|
|
2575
2573
|
|
|
2576
2574
|
|
|
2577
2575
|
/***/ })
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(
|
|
2
|
+
(self["webpackChunk"] = self["webpackChunk"] || []).push([[451],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 4451:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -13,16 +13,16 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
16
|
-
var prop_types = __webpack_require__(
|
|
16
|
+
var prop_types = __webpack_require__(3827);
|
|
17
17
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
18
18
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
19
|
-
var react = __webpack_require__(
|
|
19
|
+
var react = __webpack_require__(43001);
|
|
20
20
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
21
|
-
var es = __webpack_require__(
|
|
22
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
23
|
-
var src = __webpack_require__(
|
|
24
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
25
|
-
var ui_src = __webpack_require__(
|
|
21
|
+
var es = __webpack_require__(69190);
|
|
22
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
|
|
23
|
+
var src = __webpack_require__(24966);
|
|
24
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
|
|
25
|
+
var ui_src = __webpack_require__(60082);
|
|
26
26
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/initSEGToolGroup.ts
|
|
27
27
|
function createSEGToolGroupAndAddTools(ToolGroupService, customizationService, toolGroupId) {
|
|
28
28
|
const {
|
|
@@ -31,59 +31,8 @@ function createSEGToolGroupAndAddTools(ToolGroupService, customizationService, t
|
|
|
31
31
|
return ToolGroupService.createToolGroupAndAddTools(toolGroupId, tools, {});
|
|
32
32
|
}
|
|
33
33
|
/* harmony default export */ const initSEGToolGroup = (createSEGToolGroupAndAddTools);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
let {
|
|
37
|
-
segDisplaySet,
|
|
38
|
-
viewportIndex,
|
|
39
|
-
servicesManager
|
|
40
|
-
} = _ref;
|
|
41
|
-
const {
|
|
42
|
-
segmentationService,
|
|
43
|
-
hangingProtocolService,
|
|
44
|
-
viewportGridService
|
|
45
|
-
} = servicesManager.services;
|
|
46
|
-
const displaySetInstanceUID = segDisplaySet.referencedDisplaySetInstanceUID;
|
|
47
|
-
let segmentationId = null;
|
|
48
|
-
|
|
49
|
-
// We need the hydration to notify panels about the new segmentation added
|
|
50
|
-
const suppressEvents = false;
|
|
51
|
-
segmentationId = await segmentationService.createSegmentationForSEGDisplaySet(segDisplaySet, segmentationId, suppressEvents);
|
|
52
|
-
segmentationService.hydrateSegmentation(segDisplaySet.displaySetInstanceUID);
|
|
53
|
-
const {
|
|
54
|
-
viewports
|
|
55
|
-
} = viewportGridService.getState();
|
|
56
|
-
const updatedViewports = hangingProtocolService.getViewportsRequireUpdate(viewportIndex, displaySetInstanceUID);
|
|
57
|
-
|
|
58
|
-
// Todo: fix this after we have a better way for stack viewport segmentations
|
|
59
|
-
|
|
60
|
-
// check every viewport in the viewports to see if the displaySetInstanceUID
|
|
61
|
-
// is being displayed, if so we need to update the viewport to use volume viewport
|
|
62
|
-
// (if already is not using it) since Cornerstone3D currently only supports
|
|
63
|
-
// volume viewport for segmentation
|
|
64
|
-
viewports.forEach((viewport, index) => {
|
|
65
|
-
if (index === viewportIndex) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
const shouldDisplaySeg = segmentationService.shouldRenderSegmentation(viewport.displaySetInstanceUIDs, segDisplaySet.displaySetInstanceUID);
|
|
69
|
-
if (shouldDisplaySeg) {
|
|
70
|
-
updatedViewports.push({
|
|
71
|
-
viewportIndex: index,
|
|
72
|
-
displaySetInstanceUIDs: viewport.displaySetInstanceUIDs,
|
|
73
|
-
viewportOptions: {
|
|
74
|
-
initialImageOptions: {
|
|
75
|
-
preset: 'middle'
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
// Do the entire update at once
|
|
83
|
-
viewportGridService.setDisplaySetsForViewports(updatedViewports);
|
|
84
|
-
return true;
|
|
85
|
-
}
|
|
86
|
-
/* harmony default export */ const _hydrateSEG = (_hydrateSEGDisplaySet);
|
|
34
|
+
// EXTERNAL MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/_hydrateSEG.ts
|
|
35
|
+
var _hydrateSEG = __webpack_require__(28417);
|
|
87
36
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/promptHydrateSEG.ts
|
|
88
37
|
|
|
89
38
|
|
|
@@ -96,7 +45,8 @@ function promptHydrateSEG(_ref) {
|
|
|
96
45
|
let {
|
|
97
46
|
servicesManager,
|
|
98
47
|
segDisplaySet,
|
|
99
|
-
viewportIndex
|
|
48
|
+
viewportIndex,
|
|
49
|
+
preHydrateCallbacks
|
|
100
50
|
} = _ref;
|
|
101
51
|
const {
|
|
102
52
|
uiViewportDialogService
|
|
@@ -104,7 +54,10 @@ function promptHydrateSEG(_ref) {
|
|
|
104
54
|
return new Promise(async function (resolve, reject) {
|
|
105
55
|
const promptResult = await _askHydrate(uiViewportDialogService, viewportIndex);
|
|
106
56
|
if (promptResult === RESPONSE.HYDRATE_SEG) {
|
|
107
|
-
|
|
57
|
+
preHydrateCallbacks?.forEach(callback => {
|
|
58
|
+
callback();
|
|
59
|
+
});
|
|
60
|
+
const isHydrated = await (0,_hydrateSEG/* default */.Z)({
|
|
108
61
|
segDisplaySet,
|
|
109
62
|
viewportIndex,
|
|
110
63
|
servicesManager
|
|
@@ -156,8 +109,8 @@ function _getStatusComponent(_ref) {
|
|
|
156
109
|
let StatusIcon = null;
|
|
157
110
|
const {
|
|
158
111
|
t
|
|
159
|
-
} = (0,es/* useTranslation */.$G)(
|
|
160
|
-
const loadStr = t(
|
|
112
|
+
} = (0,es/* useTranslation */.$G)('Common');
|
|
113
|
+
const loadStr = t('LOAD');
|
|
161
114
|
switch (isHydrated) {
|
|
162
115
|
case true:
|
|
163
116
|
StatusIcon = () => /*#__PURE__*/react.createElement(ui_src/* Icon */.JO, {
|
|
@@ -211,7 +164,8 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
211
164
|
viewportIndex,
|
|
212
165
|
viewportLabel,
|
|
213
166
|
servicesManager,
|
|
214
|
-
extensionManager
|
|
167
|
+
extensionManager,
|
|
168
|
+
commandsManager
|
|
215
169
|
} = props;
|
|
216
170
|
const {
|
|
217
171
|
t
|
|
@@ -233,7 +187,6 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
233
187
|
const [viewportGrid, viewportGridService] = (0,ui_src/* useViewportGrid */.O_)();
|
|
234
188
|
|
|
235
189
|
// States
|
|
236
|
-
const [isToolGroupCreated, setToolGroupCreated] = (0,react.useState)(false);
|
|
237
190
|
const [selectedSegment, setSelectedSegment] = (0,react.useState)(1);
|
|
238
191
|
|
|
239
192
|
// Hydration means that the SEG is opened and segments are loaded into the
|
|
@@ -256,7 +209,7 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
256
209
|
activeViewportIndex
|
|
257
210
|
} = viewportGrid;
|
|
258
211
|
const referencedDisplaySet = segDisplaySet.getReferenceDisplaySet();
|
|
259
|
-
const referencedDisplaySetMetadata = _getReferencedDisplaySetMetadata(referencedDisplaySet);
|
|
212
|
+
const referencedDisplaySetMetadata = _getReferencedDisplaySetMetadata(referencedDisplaySet, segDisplaySet);
|
|
260
213
|
referencedDisplaySetRef.current = {
|
|
261
214
|
displaySet: referencedDisplaySet,
|
|
262
215
|
metadata: referencedDisplaySetMetadata
|
|
@@ -273,6 +226,16 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
273
226
|
const onElementDisabled = () => {
|
|
274
227
|
setElement(null);
|
|
275
228
|
};
|
|
229
|
+
const storePresentationState = (0,react.useCallback)(() => {
|
|
230
|
+
viewportGrid?.viewports.forEach(_ref => {
|
|
231
|
+
let {
|
|
232
|
+
viewportIndex
|
|
233
|
+
} = _ref;
|
|
234
|
+
commandsManager.runCommand('storePresentation', {
|
|
235
|
+
viewportIndex
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
}, [viewportGrid]);
|
|
276
239
|
const getCornerstoneViewport = (0,react.useCallback)(() => {
|
|
277
240
|
const {
|
|
278
241
|
component: Component
|
|
@@ -322,7 +285,8 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
322
285
|
utils_promptHydrateSEG({
|
|
323
286
|
servicesManager,
|
|
324
287
|
viewportIndex,
|
|
325
|
-
segDisplaySet
|
|
288
|
+
segDisplaySet,
|
|
289
|
+
preHydrateCallbacks: [storePresentationState]
|
|
326
290
|
}).then(isHydrated => {
|
|
327
291
|
if (isHydrated) {
|
|
328
292
|
setIsHydrated(true);
|
|
@@ -351,11 +315,11 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
351
315
|
(0,react.useEffect)(() => {
|
|
352
316
|
const {
|
|
353
317
|
unsubscribe
|
|
354
|
-
} = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE,
|
|
318
|
+
} = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, _ref2 => {
|
|
355
319
|
let {
|
|
356
320
|
percentComplete,
|
|
357
321
|
numSegments
|
|
358
|
-
} =
|
|
322
|
+
} = _ref2;
|
|
359
323
|
setProcessingProgress({
|
|
360
324
|
percentComplete,
|
|
361
325
|
totalSegments: numSegments
|
|
@@ -370,10 +334,10 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
370
334
|
Cleanup the SEG viewport when the viewport is destroyed
|
|
371
335
|
*/
|
|
372
336
|
(0,react.useEffect)(() => {
|
|
373
|
-
const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED,
|
|
337
|
+
const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, _ref3 => {
|
|
374
338
|
let {
|
|
375
339
|
displaySetInstanceUIDs
|
|
376
|
-
} =
|
|
340
|
+
} = _ref3;
|
|
377
341
|
const activeViewport = viewports[activeViewportIndex];
|
|
378
342
|
if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
|
|
379
343
|
viewportGridService.setDisplaySetsForViewport({
|
|
@@ -395,7 +359,6 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
395
359
|
// This creates a custom tool group which has the lifetime of this view
|
|
396
360
|
// only, and does NOT interfere with currently displayed segmentations.
|
|
397
361
|
toolGroup = initSEGToolGroup(toolGroupService, customizationService, toolGroupId);
|
|
398
|
-
setToolGroupCreated(true);
|
|
399
362
|
return () => {
|
|
400
363
|
// remove the segmentation representations if seg displayset changed
|
|
401
364
|
segmentationService.removeSegmentationRepresentationFromToolGroup(toolGroupId);
|
|
@@ -438,7 +401,14 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
438
401
|
SpacingBetweenSlices
|
|
439
402
|
} = referencedDisplaySetRef.current.metadata;
|
|
440
403
|
const onStatusClick = async () => {
|
|
441
|
-
|
|
404
|
+
// Before hydrating a SEG and make it added to all viewports in the grid
|
|
405
|
+
// that share the same frameOfReferenceUID, we need to store the viewport grid
|
|
406
|
+
// presentation state, so that we can restore it after hydrating the SEG. This is
|
|
407
|
+
// required if the user has changed the viewport (other viewport than SEG viewport)
|
|
408
|
+
// presentation state (w/l and invert) and then opens the SEG. If we don't store
|
|
409
|
+
// the presentation state, the viewport will be reset to the default presentation
|
|
410
|
+
storePresentationState();
|
|
411
|
+
const isHydrated = await (0,_hydrateSEG/* default */.Z)({
|
|
442
412
|
segDisplaySet,
|
|
443
413
|
viewportIndex,
|
|
444
414
|
servicesManager
|
|
@@ -467,8 +437,9 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
467
437
|
patientSex: PatientSex || '',
|
|
468
438
|
patientAge: PatientAge || '',
|
|
469
439
|
MRN: PatientID || '',
|
|
470
|
-
thickness: SliceThickness ?
|
|
471
|
-
|
|
440
|
+
thickness: SliceThickness ? src.utils.roundNumber(SliceThickness, 2) : '',
|
|
441
|
+
thicknessUnits: SliceThickness !== undefined ? 'mm' : '',
|
|
442
|
+
spacing: SpacingBetweenSlices !== undefined ? src.utils.roundNumber(SpacingBetweenSlices, 2) : '',
|
|
472
443
|
scanner: ManufacturerModelName || ''
|
|
473
444
|
}
|
|
474
445
|
}
|
|
@@ -491,20 +462,30 @@ OHIFCornerstoneSEGViewport.propTypes = {
|
|
|
491
462
|
OHIFCornerstoneSEGViewport.defaultProps = {
|
|
492
463
|
customProps: {}
|
|
493
464
|
};
|
|
494
|
-
function _getReferencedDisplaySetMetadata(referencedDisplaySet) {
|
|
465
|
+
function _getReferencedDisplaySetMetadata(referencedDisplaySet, segDisplaySet) {
|
|
466
|
+
const {
|
|
467
|
+
SharedFunctionalGroupsSequence: [SharedFunctionalGroup]
|
|
468
|
+
} = segDisplaySet.instance;
|
|
469
|
+
const {
|
|
470
|
+
PixelMeasuresSequence: [PixelMeasures]
|
|
471
|
+
} = SharedFunctionalGroup;
|
|
472
|
+
const {
|
|
473
|
+
SpacingBetweenSlices,
|
|
474
|
+
SliceThickness
|
|
475
|
+
} = PixelMeasures;
|
|
495
476
|
const image0 = referencedDisplaySet.images[0];
|
|
496
477
|
const referencedDisplaySetMetadata = {
|
|
497
478
|
PatientID: image0.PatientID,
|
|
498
479
|
PatientName: image0.PatientName,
|
|
499
480
|
PatientSex: image0.PatientSex,
|
|
500
481
|
PatientAge: image0.PatientAge,
|
|
501
|
-
SliceThickness: image0.SliceThickness,
|
|
482
|
+
SliceThickness: image0.SliceThickness || SliceThickness,
|
|
502
483
|
StudyDate: image0.StudyDate,
|
|
503
484
|
SeriesDescription: image0.SeriesDescription,
|
|
504
485
|
SeriesInstanceUID: image0.SeriesInstanceUID,
|
|
505
486
|
SeriesNumber: image0.SeriesNumber,
|
|
506
487
|
ManufacturerModelName: image0.ManufacturerModelName,
|
|
507
|
-
SpacingBetweenSlices: image0.SpacingBetweenSlices
|
|
488
|
+
SpacingBetweenSlices: image0.SpacingBetweenSlices || SpacingBetweenSlices
|
|
508
489
|
};
|
|
509
490
|
return referencedDisplaySetMetadata;
|
|
510
491
|
}
|
|
@@ -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 + 104 modules
|
|
21
|
+
var src = __webpack_require__(24966);
|
|
22
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 456 modules
|
|
23
|
+
var ui_src = __webpack_require__(60082);
|
|
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
|
|
|
@@ -88,7 +36,8 @@ function promptHydrateRT(_ref) {
|
|
|
88
36
|
servicesManager,
|
|
89
37
|
rtDisplaySet,
|
|
90
38
|
viewportIndex,
|
|
91
|
-
toolGroupId = 'default'
|
|
39
|
+
toolGroupId = 'default',
|
|
40
|
+
preHydrateCallbacks
|
|
92
41
|
} = _ref;
|
|
93
42
|
const {
|
|
94
43
|
uiViewportDialogService
|
|
@@ -96,7 +45,10 @@ function promptHydrateRT(_ref) {
|
|
|
96
45
|
return new Promise(async function (resolve, reject) {
|
|
97
46
|
const promptResult = await _askHydrate(uiViewportDialogService, viewportIndex);
|
|
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
|
viewportIndex,
|
|
102
54
|
toolGroupId,
|
|
@@ -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
|
|
|
@@ -213,7 +165,8 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
213
165
|
viewportIndex,
|
|
214
166
|
viewportLabel,
|
|
215
167
|
servicesManager,
|
|
216
|
-
extensionManager
|
|
168
|
+
extensionManager,
|
|
169
|
+
commandsManager
|
|
217
170
|
} = props;
|
|
218
171
|
const {
|
|
219
172
|
displaySetService,
|
|
@@ -272,6 +225,16 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
272
225
|
const onElementDisabled = () => {
|
|
273
226
|
setElement(null);
|
|
274
227
|
};
|
|
228
|
+
const storePresentationState = (0,react.useCallback)(() => {
|
|
229
|
+
viewportGrid?.viewports.forEach(_ref => {
|
|
230
|
+
let {
|
|
231
|
+
viewportIndex
|
|
232
|
+
} = _ref;
|
|
233
|
+
commandsManager.runCommand('storePresentation', {
|
|
234
|
+
viewportIndex
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
}, [viewportGrid]);
|
|
275
238
|
const getCornerstoneViewport = (0,react.useCallback)(() => {
|
|
276
239
|
const {
|
|
277
240
|
component: Component
|
|
@@ -319,7 +282,8 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
319
282
|
utils_promptHydrateRT({
|
|
320
283
|
servicesManager,
|
|
321
284
|
viewportIndex,
|
|
322
|
-
rtDisplaySet
|
|
285
|
+
rtDisplaySet,
|
|
286
|
+
preHydrateCallbacks: [storePresentationState]
|
|
323
287
|
}).then(isHydrated => {
|
|
324
288
|
if (isHydrated) {
|
|
325
289
|
setIsHydrated(true);
|
|
@@ -348,11 +312,11 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
348
312
|
(0,react.useEffect)(() => {
|
|
349
313
|
const {
|
|
350
314
|
unsubscribe
|
|
351
|
-
} = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE,
|
|
315
|
+
} = segmentationService.subscribe(segmentationService.EVENTS.SEGMENT_LOADING_COMPLETE, _ref2 => {
|
|
352
316
|
let {
|
|
353
317
|
percentComplete,
|
|
354
318
|
numSegments
|
|
355
|
-
} =
|
|
319
|
+
} = _ref2;
|
|
356
320
|
setProcessingProgress({
|
|
357
321
|
percentComplete,
|
|
358
322
|
totalSegments: numSegments
|
|
@@ -367,10 +331,10 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
367
331
|
Cleanup the SEG viewport when the viewport is destroyed
|
|
368
332
|
*/
|
|
369
333
|
(0,react.useEffect)(() => {
|
|
370
|
-
const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED,
|
|
334
|
+
const onDisplaySetsRemovedSubscription = displaySetService.subscribe(displaySetService.EVENTS.DISPLAY_SETS_REMOVED, _ref3 => {
|
|
371
335
|
let {
|
|
372
336
|
displaySetInstanceUIDs
|
|
373
|
-
} =
|
|
337
|
+
} = _ref3;
|
|
374
338
|
const activeViewport = viewports[activeViewportIndex];
|
|
375
339
|
if (displaySetInstanceUIDs.includes(activeViewport.displaySetInstanceUID)) {
|
|
376
340
|
viewportGridService.setDisplaySetsForViewport({
|
|
@@ -431,7 +395,14 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
431
395
|
SeriesNumber
|
|
432
396
|
} = referencedDisplaySetRef.current.metadata;
|
|
433
397
|
const onStatusClick = async () => {
|
|
434
|
-
|
|
398
|
+
// Before hydrating a RT and make it added to all viewports in the grid
|
|
399
|
+
// that share the same frameOfReferenceUID, we need to store the viewport grid
|
|
400
|
+
// presentation state, so that we can restore it after hydrating the RT. This is
|
|
401
|
+
// required if the user has changed the viewport (other viewport than RT viewport)
|
|
402
|
+
// presentation state (w/l and invert) and then opens the RT. If we don't store
|
|
403
|
+
// the presentation state, the viewport will be reset to the default presentation
|
|
404
|
+
storePresentationState();
|
|
405
|
+
const isHydrated = await (0,_hydrateRT/* default */.Z)({
|
|
435
406
|
rtDisplaySet,
|
|
436
407
|
viewportIndex,
|
|
437
408
|
servicesManager
|
|
@@ -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 + 104 modules
|
|
27
|
+
var src = __webpack_require__(24966);
|
|
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 {
|
|
@@ -159,11 +160,6 @@ async function loadRTStruct(extensionManager, rtStructDisplaySet, referencedDisp
|
|
|
159
160
|
NumberOfContourPoints,
|
|
160
161
|
ContourGeometricType
|
|
161
162
|
} = ContourSequenceArray[c];
|
|
162
|
-
const sopInstanceUID = ContourImageSequence.ReferencedSOPInstanceUID;
|
|
163
|
-
const imageId = _getImageId(imageIdSopInstanceUidPairs, sopInstanceUID);
|
|
164
|
-
if (!imageId) {
|
|
165
|
-
continue;
|
|
166
|
-
}
|
|
167
163
|
let isSupported = false;
|
|
168
164
|
const points = [];
|
|
169
165
|
for (let p = 0; p < NumberOfContourPoints * 3; p += 3) {
|
|
@@ -420,13 +416,16 @@ function getSopClassHandlerModule(_ref2) {
|
|
|
420
416
|
}];
|
|
421
417
|
}
|
|
422
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);
|
|
423
421
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/index.tsx
|
|
424
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); }
|
|
425
423
|
|
|
426
424
|
|
|
427
425
|
|
|
426
|
+
|
|
428
427
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
429
|
-
return __webpack_require__.e(/* import() */
|
|
428
|
+
return __webpack_require__.e(/* import() */ 471).then(__webpack_require__.bind(__webpack_require__, 56471));
|
|
430
429
|
});
|
|
431
430
|
const OHIFCornerstoneRTViewport = props => {
|
|
432
431
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
@@ -452,12 +451,14 @@ const extension = {
|
|
|
452
451
|
getViewportModule(_ref) {
|
|
453
452
|
let {
|
|
454
453
|
servicesManager,
|
|
455
|
-
extensionManager
|
|
454
|
+
extensionManager,
|
|
455
|
+
commandsManager
|
|
456
456
|
} = _ref;
|
|
457
457
|
const ExtendedOHIFCornerstoneRTViewport = props => {
|
|
458
458
|
return /*#__PURE__*/react.createElement(OHIFCornerstoneRTViewport, _extends({
|
|
459
459
|
servicesManager: servicesManager,
|
|
460
|
-
extensionManager: extensionManager
|
|
460
|
+
extensionManager: extensionManager,
|
|
461
|
+
commandsManager: commandsManager
|
|
461
462
|
}, props));
|
|
462
463
|
};
|
|
463
464
|
return [{
|
|
@@ -475,6 +476,69 @@ const extension = {
|
|
|
475
476
|
};
|
|
476
477
|
/* harmony default export */ const cornerstone_dicom_rt_src = (extension);
|
|
477
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
|
+
viewportIndex,
|
|
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(viewportIndex, 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, index) => {
|
|
519
|
+
if (index === viewportIndex) {
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
522
|
+
const shouldDisplaySeg = segmentationService.shouldRenderSegmentation(viewport.displaySetInstanceUIDs, rtDisplaySet.displaySetInstanceUID);
|
|
523
|
+
if (shouldDisplaySeg) {
|
|
524
|
+
updatedViewports.push({
|
|
525
|
+
viewportIndex: index,
|
|
526
|
+
displaySetInstanceUIDs: viewport.displaySetInstanceUIDs,
|
|
527
|
+
viewportOptions: {
|
|
528
|
+
initialImageOptions: {
|
|
529
|
+
preset: 'middle'
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
});
|
|
533
|
+
}
|
|
534
|
+
});
|
|
535
|
+
|
|
536
|
+
// Do the entire update at once
|
|
537
|
+
viewportGridService.setDisplaySetsForViewports(updatedViewports);
|
|
538
|
+
return true;
|
|
539
|
+
}
|
|
540
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_hydrateRTDisplaySet);
|
|
541
|
+
|
|
478
542
|
/***/ })
|
|
479
543
|
|
|
480
544
|
}]);
|