@ohif/app 3.8.0-beta.66 → 3.8.0-beta.68
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/{121.bundle.fda405f29003c308ce09.js → 121.bundle.a8fc45e3d88d0a8b82a8.js} +52 -75
- package/dist/{155.bundle.e9fdaa40010cc784f389.js → 155.bundle.7b87a2dbfaf2c36326bd.js} +7 -16
- package/dist/{188.bundle.67df9790c453b185fe1d.js → 188.bundle.022af4c804b855ca2f60.js} +2 -2
- package/dist/{638.bundle.4d7da6fe507df0000718.js → 2.bundle.962c8d8b57c4f94324b4.js} +46 -15
- package/dist/{295.bundle.57700cd41fd87e1521b4.js → 295.bundle.41d7b63be6a7d726b87e.js} +75 -86
- package/dist/{41.bundle.b7bf03502ac3e2ddca35.js → 41.bundle.ad4a012883642620e839.js} +16 -45
- package/dist/425.bundle.057226d5a1a2d7dcc391.js +2957 -0
- package/dist/425.css +2 -0
- package/dist/{448.bundle.0061f5280490e1a1aa88.js → 448.bundle.1d9b1b7379fba9b8e70b.js} +5 -5
- package/dist/{530.bundle.72d9812f117036615a38.js → 530.bundle.632dcb0d4f5266058c8b.js} +41 -67
- package/dist/{544.bundle.c3009e245ceb1554c70a.js → 544.bundle.df7870b43d7aa1faed39.js} +4 -4
- package/dist/{559.bundle.bb2c52834fb372399002.js → 559.bundle.54fea45a10d3aa002764.js} +4 -4
- package/dist/{889.bundle.edf546d8738c22b94be5.js → 574.bundle.3020ab733b8f07ec50a5.js} +1005 -49
- package/dist/{594.bundle.483843d38640164a9aca.js → 594.bundle.fad610af7dae0c2fb048.js} +4 -4
- package/dist/{701.bundle.285943aebfc0efe2b4f1.js → 595.bundle.dc733f6e58d41260ba40.js} +960 -61
- package/dist/{699.bundle.62990e46c235ab4785db.js → 699.bundle.78297d5204cdd274d097.js} +18 -25
- package/dist/{724.bundle.83a4176860f750353c0b.js → 724.bundle.171eb7665e96ac0ad109.js} +13 -71
- package/dist/{862.bundle.999931264956ced59b33.js → 862.bundle.27cb716917daad6afddc.js} +64 -83
- package/dist/{270.bundle.d7d6957c20f95c675b32.js → 889.bundle.43bac729645dcd445d23.js} +5 -5
- package/dist/{90.bundle.49b20161b4f864100085.js → 90.bundle.5e1e4b60b575b5be1369.js} +15 -25
- package/dist/{905.bundle.88010c612e910657883d.js → 905.bundle.a18b495f0a6769c5aff6.js} +2 -2
- package/dist/{907.bundle.1206d58ae62d26beaf30.js → 907.bundle.bec0deb8a4af3b4885a4.js} +2 -2
- package/dist/{961.bundle.b4d84dd80e4e1113de27.js → 961.bundle.2dd02c92ec591fec7924.js} +2 -2
- package/dist/{app.bundle.81c01fc2e11fa9b6ccb8.js → app.bundle.b36fed4fdc5235c8fd31.js} +2446 -745
- package/dist/app.bundle.css +6 -4
- 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/index.html +1 -1
- package/dist/{polySeg.bundle.a97fc68de7599f9a9fdc.js → polySeg.bundle.e7b4c29fb9173e8567b8.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +17 -17
- package/dist/339.bundle.526cede81f0a9bb248e6.js +0 -2591
- /package/dist/{164.bundle.3f877a2272b773332317.js → 164.bundle.6a75d9824ed0e87afd36.js} +0 -0
- /package/dist/{191.bundle.509480b6972209d2567c.js → 191.bundle.7d89c921abefd1140d50.js} +0 -0
- /package/dist/{638.css → 2.css} +0 -0
- /package/dist/{290.bundle.8b4d7dfbc7cfe418a0f1.js → 290.bundle.952de53057f98e2c5ef0.js} +0 -0
- /package/dist/{342.bundle.17ec05907f93624fd494.js → 342.bundle.6e49f63ea7cea4645c0a.js} +0 -0
- /package/dist/{504.bundle.6d203e80d4bd8a823059.js → 504.bundle.993d7e2dec36257d4ce4.js} +0 -0
- /package/dist/{889.css → 574.css} +0 -0
- /package/dist/{701.css → 595.css} +0 -0
|
@@ -17,10 +17,8 @@ var react = __webpack_require__(41766);
|
|
|
17
17
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
18
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 + 497 modules
|
|
23
|
-
var ui_src = __webpack_require__(58046);
|
|
20
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 521 modules
|
|
21
|
+
var src = __webpack_require__(59134);
|
|
24
22
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/utils/promptHydrateRT.ts
|
|
25
23
|
|
|
26
24
|
const RESPONSE = {
|
|
@@ -59,11 +57,11 @@ function _askHydrate(uiViewportDialogService, viewportId) {
|
|
|
59
57
|
return new Promise(function (resolve, reject) {
|
|
60
58
|
const message = 'Do you want to open this Segmentation?';
|
|
61
59
|
const actions = [{
|
|
62
|
-
type:
|
|
60
|
+
type: src/* ButtonEnums.type */.Ny.NW.secondary,
|
|
63
61
|
text: 'No',
|
|
64
62
|
value: RESPONSE.CANCEL
|
|
65
63
|
}, {
|
|
66
|
-
type:
|
|
64
|
+
type: src/* ButtonEnums.type */.Ny.NW.primary,
|
|
67
65
|
text: 'Yes',
|
|
68
66
|
value: RESPONSE.HYDRATE_SEG
|
|
69
67
|
}];
|
|
@@ -97,37 +95,39 @@ function _getStatusComponent({
|
|
|
97
95
|
}) {
|
|
98
96
|
let ToolTipMessage = null;
|
|
99
97
|
let StatusIcon = null;
|
|
100
|
-
const {
|
|
101
|
-
t
|
|
102
|
-
} = (0,es/* useTranslation */.Bd)('Common');
|
|
103
|
-
const loadStr = t('LOAD');
|
|
104
98
|
switch (isHydrated) {
|
|
105
99
|
case true:
|
|
106
|
-
StatusIcon = () => /*#__PURE__*/react.createElement(
|
|
100
|
+
StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
|
|
107
101
|
name: "status-alert"
|
|
108
102
|
});
|
|
109
103
|
ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "This Segmentation is loaded in the segmentation panel");
|
|
110
104
|
break;
|
|
111
105
|
case false:
|
|
112
|
-
StatusIcon = () => /*#__PURE__*/react.createElement(
|
|
106
|
+
StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
|
|
113
107
|
className: "text-aqua-pale",
|
|
114
108
|
name: "status-untracked"
|
|
115
109
|
});
|
|
116
110
|
ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "Click LOAD to load RTSTRUCT.");
|
|
117
111
|
}
|
|
118
|
-
const StatusArea = () =>
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
112
|
+
const StatusArea = () => {
|
|
113
|
+
const {
|
|
114
|
+
t
|
|
115
|
+
} = (0,es/* useTranslation */.Bd)('Common');
|
|
116
|
+
const loadStr = t('LOAD');
|
|
117
|
+
return /*#__PURE__*/react.createElement("div", {
|
|
118
|
+
className: "flex h-6 cursor-default text-sm leading-6 text-white"
|
|
119
|
+
}, /*#__PURE__*/react.createElement("div", {
|
|
120
|
+
className: "bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
|
|
121
|
+
}, /*#__PURE__*/react.createElement(StatusIcon, null), /*#__PURE__*/react.createElement("span", {
|
|
122
|
+
className: "ml-1"
|
|
123
|
+
}, "RTSTRUCT")), !isHydrated && /*#__PURE__*/react.createElement("div", {
|
|
124
|
+
className: "bg-primary-main hover:bg-primary-light ml-1 cursor-pointer rounded px-1.5 hover:text-black"
|
|
125
|
+
// Using onMouseUp here because onClick is not working when the viewport is not active and is styled with pointer-events:none
|
|
126
|
+
,
|
|
127
|
+
onMouseUp: onStatusClick
|
|
128
|
+
}, loadStr));
|
|
129
|
+
};
|
|
130
|
+
return /*#__PURE__*/react.createElement(react.Fragment, null, ToolTipMessage && /*#__PURE__*/react.createElement(src/* Tooltip */.m_, {
|
|
131
131
|
content: /*#__PURE__*/react.createElement(ToolTipMessage, null),
|
|
132
132
|
position: "bottom-left"
|
|
133
133
|
}, /*#__PURE__*/react.createElement(StatusArea, null)), !ToolTipMessage && /*#__PURE__*/react.createElement(StatusArea, null));
|
|
@@ -148,17 +148,12 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
148
148
|
|
|
149
149
|
|
|
150
150
|
|
|
151
|
-
|
|
152
|
-
const {
|
|
153
|
-
formatDate
|
|
154
|
-
} = src.utils;
|
|
155
151
|
const RT_TOOLGROUP_BASE_NAME = 'RTToolGroup';
|
|
156
152
|
function OHIFCornerstoneRTViewport(props) {
|
|
157
153
|
const {
|
|
158
154
|
children,
|
|
159
155
|
displaySets,
|
|
160
156
|
viewportOptions,
|
|
161
|
-
viewportLabel,
|
|
162
157
|
servicesManager,
|
|
163
158
|
extensionManager,
|
|
164
159
|
commandsManager
|
|
@@ -168,7 +163,8 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
168
163
|
toolGroupService,
|
|
169
164
|
segmentationService,
|
|
170
165
|
uiNotificationService,
|
|
171
|
-
customizationService
|
|
166
|
+
customizationService,
|
|
167
|
+
viewportActionCornersService
|
|
172
168
|
} = servicesManager.services;
|
|
173
169
|
const viewportId = viewportOptions.viewportId;
|
|
174
170
|
const toolGroupId = `${RT_TOOLGROUP_BASE_NAME}-${viewportId}`;
|
|
@@ -178,7 +174,7 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
178
174
|
throw new Error('RT viewport should only have a single display set');
|
|
179
175
|
}
|
|
180
176
|
const rtDisplaySet = displaySets[0];
|
|
181
|
-
const [viewportGrid, viewportGridService] = (0,
|
|
177
|
+
const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.ih)();
|
|
182
178
|
|
|
183
179
|
// States
|
|
184
180
|
const [isToolGroupCreated, setToolGroupCreated] = (0,react.useState)(false);
|
|
@@ -261,7 +257,6 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
261
257
|
}));
|
|
262
258
|
}, [viewportId, rtDisplaySet, toolGroupId]);
|
|
263
259
|
const onSegmentChange = (0,react.useCallback)(direction => {
|
|
264
|
-
direction = direction === 'left' ? -1 : 1;
|
|
265
260
|
const segmentationId = rtDisplaySet.displaySetInstanceUID;
|
|
266
261
|
const segmentation = segmentationService.getSegmentation(segmentationId);
|
|
267
262
|
const {
|
|
@@ -387,19 +382,7 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
387
382
|
});
|
|
388
383
|
});
|
|
389
384
|
}
|
|
390
|
-
const {
|
|
391
|
-
PatientID,
|
|
392
|
-
PatientName,
|
|
393
|
-
PatientSex,
|
|
394
|
-
PatientAge,
|
|
395
|
-
SliceThickness,
|
|
396
|
-
ManufacturerModelName,
|
|
397
|
-
StudyDate,
|
|
398
|
-
SeriesDescription,
|
|
399
|
-
SpacingBetweenSlices,
|
|
400
|
-
SeriesNumber
|
|
401
|
-
} = referencedDisplaySetRef.current.metadata;
|
|
402
|
-
const onStatusClick = async () => {
|
|
385
|
+
const onStatusClick = (0,react.useCallback)(async () => {
|
|
403
386
|
// Before hydrating a RT and make it added to all viewports in the grid
|
|
404
387
|
// that share the same frameOfReferenceUID, we need to store the viewport grid
|
|
405
388
|
// presentation state, so that we can restore it after hydrating the RT. This is
|
|
@@ -412,38 +395,32 @@ function OHIFCornerstoneRTViewport(props) {
|
|
|
412
395
|
viewportId
|
|
413
396
|
});
|
|
414
397
|
setIsHydrated(isHydrated);
|
|
415
|
-
};
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
onArrowsClick: onSegmentChange,
|
|
422
|
-
getStatusComponent: () => {
|
|
423
|
-
return _getStatusComponent({
|
|
398
|
+
}, [hydrateRTDisplaySet, rtDisplaySet, storePresentationState, viewportId]);
|
|
399
|
+
(0,react.useEffect)(() => {
|
|
400
|
+
viewportActionCornersService.setComponents([{
|
|
401
|
+
viewportId,
|
|
402
|
+
id: 'viewportStatusComponent',
|
|
403
|
+
component: _getStatusComponent({
|
|
424
404
|
isHydrated,
|
|
425
405
|
onStatusClick
|
|
426
|
-
})
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
}), /*#__PURE__*/react.createElement("div", {
|
|
406
|
+
}),
|
|
407
|
+
indexPriority: -100,
|
|
408
|
+
location: viewportActionCornersService.LOCATIONS.topLeft
|
|
409
|
+
}, {
|
|
410
|
+
viewportId,
|
|
411
|
+
id: 'viewportActionArrowsComponent',
|
|
412
|
+
component: /*#__PURE__*/react.createElement(src/* ViewportActionArrows */.$I, {
|
|
413
|
+
key: "actionArrows",
|
|
414
|
+
onArrowsClick: onSegmentChange,
|
|
415
|
+
className: viewportId === activeViewportId ? 'visible' : 'invisible group-hover:visible'
|
|
416
|
+
}),
|
|
417
|
+
indexPriority: 0,
|
|
418
|
+
location: viewportActionCornersService.LOCATIONS.topRight
|
|
419
|
+
}]);
|
|
420
|
+
}, [activeViewportId, isHydrated, onSegmentChange, onStatusClick, viewportActionCornersService, viewportId]);
|
|
421
|
+
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
445
422
|
className: "relative flex h-full w-full flex-row overflow-hidden"
|
|
446
|
-
}, rtIsLoading && /*#__PURE__*/react.createElement(
|
|
423
|
+
}, rtIsLoading && /*#__PURE__*/react.createElement(src/* LoadingIndicatorTotalPercent */.pT, {
|
|
447
424
|
className: "h-full w-full",
|
|
448
425
|
totalNumbers: processingProgress.totalSegments,
|
|
449
426
|
percentComplete: processingProgress.percentComplete,
|
|
@@ -20,8 +20,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
|
20
20
|
var es = __webpack_require__(57593);
|
|
21
21
|
// EXTERNAL MODULE: ../../../node_modules/@xstate/react/es/index.js + 8 modules
|
|
22
22
|
var react_es = __webpack_require__(6835);
|
|
23
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
24
|
-
var src = __webpack_require__(
|
|
23
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 521 modules
|
|
24
|
+
var src = __webpack_require__(59134);
|
|
25
25
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/contexts/TrackedMeasurementsContext/measurementTrackingMachine.js
|
|
26
26
|
|
|
27
27
|
const RESPONSE = {
|
|
@@ -1102,10 +1102,10 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
|
1102
1102
|
var dist = __webpack_require__(37396);
|
|
1103
1103
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
1104
1104
|
var es = __webpack_require__(80619);
|
|
1105
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
1106
|
-
var src = __webpack_require__(
|
|
1107
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
1108
|
-
var ui_src = __webpack_require__(
|
|
1105
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 68 modules
|
|
1106
|
+
var src = __webpack_require__(85073);
|
|
1107
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 521 modules
|
|
1108
|
+
var ui_src = __webpack_require__(59134);
|
|
1109
1109
|
;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx
|
|
1110
1110
|
|
|
1111
1111
|
|
|
@@ -1429,14 +1429,6 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1429
1429
|
const imageSrc = thumbnailImageSrcMap[ds.displaySetInstanceUID];
|
|
1430
1430
|
const componentType = _getComponentType(ds);
|
|
1431
1431
|
const numPanes = viewportGridService.getNumViewportPanes();
|
|
1432
|
-
const viewportIdentificator = [];
|
|
1433
|
-
if (numPanes !== 1) {
|
|
1434
|
-
viewports.forEach(viewportData => {
|
|
1435
|
-
if (viewportData?.displaySetInstanceUIDs?.includes(ds.displaySetInstanceUID)) {
|
|
1436
|
-
viewportIdentificator.push(viewportData.viewportLabel);
|
|
1437
|
-
}
|
|
1438
|
-
});
|
|
1439
|
-
}
|
|
1440
1432
|
const array = componentType === 'thumbnailTracked' ? thumbnailDisplaySets : thumbnailNoImageDisplaySets;
|
|
1441
1433
|
const {
|
|
1442
1434
|
displaySetInstanceUID
|
|
@@ -1459,8 +1451,7 @@ viewportGridService, dataSource, displaySetService, uiDialogService, uiNotificat
|
|
|
1459
1451
|
// .. Any other data to pass
|
|
1460
1452
|
},
|
|
1461
1453
|
isTracked: trackedSeriesInstanceUIDs.includes(ds.SeriesInstanceUID),
|
|
1462
|
-
isHydratedForDerivedDisplaySet: ds.isHydrated
|
|
1463
|
-
viewportIdentificator
|
|
1454
|
+
isHydratedForDerivedDisplaySet: ds.isHydrated
|
|
1464
1455
|
};
|
|
1465
1456
|
if (componentType === 'thumbnailNoImage') {
|
|
1466
1457
|
if (dataSource.reject && dataSource.reject.series) {
|
|
@@ -22,8 +22,8 @@ const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
|
|
|
22
22
|
|
|
23
23
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
24
24
|
var react = __webpack_require__(41766);
|
|
25
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
26
|
-
var src = __webpack_require__(
|
|
25
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 68 modules
|
|
26
|
+
var src = __webpack_require__(85073);
|
|
27
27
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
28
28
|
var dcmjs_es = __webpack_require__(31426);
|
|
29
29
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-rt/src/loadRTStruct.js
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[2,481],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 14349:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -22,8 +22,8 @@ const SOPClassHandlerId = `${id}.sopClassHandlerModule.${SOPClassHandlerName}`;
|
|
|
22
22
|
|
|
23
23
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
24
24
|
var react = __webpack_require__(41766);
|
|
25
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
26
|
-
var src = __webpack_require__(
|
|
25
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 68 modules
|
|
26
|
+
var src = __webpack_require__(85073);
|
|
27
27
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 383 modules
|
|
28
28
|
var esm = __webpack_require__(50719);
|
|
29
29
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js + 16 modules
|
|
@@ -315,13 +315,19 @@ function getHangingProtocolModule() {
|
|
|
315
315
|
|
|
316
316
|
// EXTERNAL MODULE: ./state/index.js + 1 modules
|
|
317
317
|
var state = __webpack_require__(15575);
|
|
318
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
319
|
-
var ui_src = __webpack_require__(
|
|
318
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 521 modules
|
|
319
|
+
var ui_src = __webpack_require__(59134);
|
|
320
320
|
// EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 78 modules
|
|
321
321
|
var default_src = __webpack_require__(54090);
|
|
322
322
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
323
323
|
var prop_types = __webpack_require__(11374);
|
|
324
324
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
325
|
+
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/types/segmentation.tsx
|
|
326
|
+
let SegmentationPanelMode = /*#__PURE__*/function (SegmentationPanelMode) {
|
|
327
|
+
SegmentationPanelMode["Expanded"] = "expanded";
|
|
328
|
+
SegmentationPanelMode["Dropdown"] = "dropdown";
|
|
329
|
+
return SegmentationPanelMode;
|
|
330
|
+
}({});
|
|
325
331
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/panels/callInputDialog.tsx
|
|
326
332
|
|
|
327
333
|
|
|
@@ -489,6 +495,11 @@ var dist_es = __webpack_require__(80619);
|
|
|
489
495
|
|
|
490
496
|
|
|
491
497
|
|
|
498
|
+
|
|
499
|
+
const components = {
|
|
500
|
+
[SegmentationPanelMode.Expanded]: ui_src/* SegmentationGroupTableExpanded */.fO,
|
|
501
|
+
[SegmentationPanelMode.Dropdown]: ui_src/* SegmentationGroupTable */.QQ
|
|
502
|
+
};
|
|
492
503
|
function PanelSegmentation({
|
|
493
504
|
servicesManager,
|
|
494
505
|
commandsManager,
|
|
@@ -623,6 +634,15 @@ function PanelSegmentation({
|
|
|
623
634
|
};
|
|
624
635
|
const onToggleSegmentationVisibility = segmentationId => {
|
|
625
636
|
segmentationService.toggleSegmentationVisibility(segmentationId);
|
|
637
|
+
const segmentation = segmentationService.getSegmentation(segmentationId);
|
|
638
|
+
const isVisible = segmentation.isVisible;
|
|
639
|
+
const segments = segmentation.segments;
|
|
640
|
+
const toolGroupIds = getToolGroupIds(segmentationId);
|
|
641
|
+
toolGroupIds.forEach(toolGroupId => {
|
|
642
|
+
segments.forEach((segment, segmentIndex) => {
|
|
643
|
+
segmentationService.setSegmentVisibility(segmentationId, segmentIndex, isVisible, toolGroupId);
|
|
644
|
+
});
|
|
645
|
+
});
|
|
626
646
|
};
|
|
627
647
|
const _setSegmentationConfiguration = (0,react.useCallback)((segmentationId, key, value) => {
|
|
628
648
|
segmentationService.setConfiguration({
|
|
@@ -663,9 +683,8 @@ function PanelSegmentation({
|
|
|
663
683
|
segmentationId
|
|
664
684
|
});
|
|
665
685
|
};
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
}, /*#__PURE__*/react.createElement(ui_src/* SegmentationGroupTable */.QQ, {
|
|
686
|
+
const SegmentationGroupTableComponent = components[configuration?.segmentationPanelMode];
|
|
687
|
+
return /*#__PURE__*/react.createElement(SegmentationGroupTableComponent, {
|
|
669
688
|
title: t('Segmentations'),
|
|
670
689
|
segmentations: segmentations,
|
|
671
690
|
disableEditing: configuration.disableEditing,
|
|
@@ -696,7 +715,7 @@ function PanelSegmentation({
|
|
|
696
715
|
setOutlineWidthActive: value => _setSegmentationConfiguration(selectedSegmentationId, 'outlineWidthActive', value),
|
|
697
716
|
setFillAlpha: value => _setSegmentationConfiguration(selectedSegmentationId, 'fillAlpha', value),
|
|
698
717
|
setFillAlphaInactive: value => _setSegmentationConfiguration(selectedSegmentationId, 'fillAlphaInactive', value)
|
|
699
|
-
})
|
|
718
|
+
});
|
|
700
719
|
}
|
|
701
720
|
PanelSegmentation.propTypes = {
|
|
702
721
|
commandsManager: prop_types_default().shape({
|
|
@@ -719,6 +738,7 @@ PanelSegmentation.propTypes = {
|
|
|
719
738
|
|
|
720
739
|
|
|
721
740
|
|
|
741
|
+
|
|
722
742
|
const getPanelModule = ({
|
|
723
743
|
commandsManager,
|
|
724
744
|
servicesManager,
|
|
@@ -732,17 +752,21 @@ const getPanelModule = ({
|
|
|
732
752
|
const wrappedPanelSegmentation = configuration => {
|
|
733
753
|
const [appConfig] = (0,state/* useAppConfig */.r)();
|
|
734
754
|
const disableEditingForMode = customizationService.get('segmentation.disableEditing');
|
|
755
|
+
const segmentationPanelMode = customizationService.get('segmentation.segmentationPanelMode')?.value || SegmentationPanelMode.Dropdown;
|
|
735
756
|
return /*#__PURE__*/react.createElement(PanelSegmentation, {
|
|
736
757
|
commandsManager: commandsManager,
|
|
737
758
|
servicesManager: servicesManager,
|
|
738
759
|
extensionManager: extensionManager,
|
|
739
760
|
configuration: {
|
|
740
761
|
...configuration,
|
|
741
|
-
disableEditing: appConfig.disableEditing || disableEditingForMode?.value
|
|
762
|
+
disableEditing: appConfig.disableEditing || disableEditingForMode?.value,
|
|
763
|
+
segmentationPanelMode: segmentationPanelMode
|
|
742
764
|
}
|
|
743
765
|
});
|
|
744
766
|
};
|
|
745
767
|
const wrappedPanelSegmentationWithTools = configuration => {
|
|
768
|
+
const [appConfig] = (0,state/* useAppConfig */.r)();
|
|
769
|
+
const segmentationPanelMode = customizationService.get('segmentation.segmentationPanelMode')?.value || SegmentationPanelMode.Dropdown;
|
|
746
770
|
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* Toolbox */.OO, {
|
|
747
771
|
commandsManager: commandsManager,
|
|
748
772
|
servicesManager: servicesManager,
|
|
@@ -757,7 +781,8 @@ const getPanelModule = ({
|
|
|
757
781
|
servicesManager: servicesManager,
|
|
758
782
|
extensionManager: extensionManager,
|
|
759
783
|
configuration: {
|
|
760
|
-
...configuration
|
|
784
|
+
...configuration,
|
|
785
|
+
segmentationPanelMode: segmentationPanelMode
|
|
761
786
|
}
|
|
762
787
|
}));
|
|
763
788
|
};
|
|
@@ -1135,6 +1160,7 @@ const commandsModule = ({
|
|
|
1135
1160
|
}) => {
|
|
1136
1161
|
// Todo: handle adding more than one segmentation
|
|
1137
1162
|
const displaySet = displaySets[0];
|
|
1163
|
+
const referencedDisplaySet = displaySetService.getDisplaySetByUID(displaySet.referencedDisplaySetInstanceUID);
|
|
1138
1164
|
updateViewportsForSegmentationRendering({
|
|
1139
1165
|
viewportId,
|
|
1140
1166
|
servicesManager,
|
|
@@ -1145,6 +1171,8 @@ const commandsModule = ({
|
|
|
1145
1171
|
const serviceFunction = segDisplaySet.Modality === 'SEG' ? 'createSegmentationForSEGDisplaySet' : 'createSegmentationForRTDisplaySet';
|
|
1146
1172
|
const boundFn = segmentationService[serviceFunction].bind(segmentationService);
|
|
1147
1173
|
const segmentationId = await boundFn(segDisplaySet, null, suppressEvents);
|
|
1174
|
+
const segmentation = segmentationService.getSegmentation(segmentationId);
|
|
1175
|
+
segmentation.description = `S${referencedDisplaySet.SeriesNumber}: ${referencedDisplaySet.SeriesDescription}`;
|
|
1148
1176
|
return segmentationId;
|
|
1149
1177
|
}
|
|
1150
1178
|
});
|
|
@@ -1420,7 +1448,8 @@ function getToolbarModule({
|
|
|
1420
1448
|
evaluate: ({
|
|
1421
1449
|
viewportId,
|
|
1422
1450
|
button,
|
|
1423
|
-
toolNames
|
|
1451
|
+
toolNames,
|
|
1452
|
+
disabledText
|
|
1424
1453
|
}) => {
|
|
1425
1454
|
// Todo: we need to pass in the button section Id since we are kind of
|
|
1426
1455
|
// forcing the button to have black background since initially
|
|
@@ -1430,7 +1459,8 @@ function getToolbarModule({
|
|
|
1430
1459
|
if (!segmentations?.length) {
|
|
1431
1460
|
return {
|
|
1432
1461
|
disabled: true,
|
|
1433
|
-
className: '!text-common-bright !bg-black opacity-50'
|
|
1462
|
+
className: '!text-common-bright !bg-black opacity-50',
|
|
1463
|
+
disabledText: disabledText ?? 'No segmentations available'
|
|
1434
1464
|
};
|
|
1435
1465
|
}
|
|
1436
1466
|
const toolGroup = toolGroupService.getToolGroupForViewport(viewportId);
|
|
@@ -1441,7 +1471,8 @@ function getToolbarModule({
|
|
|
1441
1471
|
if (!toolGroup || !toolGroup.hasTool(toolName)) {
|
|
1442
1472
|
return {
|
|
1443
1473
|
disabled: true,
|
|
1444
|
-
className: '!text-common-bright ohif-disabled'
|
|
1474
|
+
className: '!text-common-bright ohif-disabled',
|
|
1475
|
+
disabledText: disabledText ?? 'Not available on the current viewport'
|
|
1445
1476
|
};
|
|
1446
1477
|
}
|
|
1447
1478
|
const isPrimaryActive = toolNames ? toolNames.includes(toolGroup.getActivePrimaryMouseButtonTool()) : toolGroup.getActivePrimaryMouseButtonTool() === toolName;
|