@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
|
@@ -19,10 +19,8 @@ var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
|
19
19
|
var react = __webpack_require__(41766);
|
|
20
20
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
21
21
|
var es = __webpack_require__(80619);
|
|
22
|
-
// EXTERNAL MODULE: ../../
|
|
23
|
-
var src = __webpack_require__(
|
|
24
|
-
// EXTERNAL MODULE: ../../ui/src/index.js + 497 modules
|
|
25
|
-
var ui_src = __webpack_require__(58046);
|
|
22
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 521 modules
|
|
23
|
+
var src = __webpack_require__(59134);
|
|
26
24
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-seg/src/utils/initSEGToolGroup.ts
|
|
27
25
|
function createSEGToolGroupAndAddTools(ToolGroupService, customizationService, toolGroupId) {
|
|
28
26
|
const {
|
|
@@ -66,11 +64,11 @@ function _askHydrate(uiViewportDialogService, viewportId) {
|
|
|
66
64
|
return new Promise(function (resolve, reject) {
|
|
67
65
|
const message = 'Do you want to open this Segmentation?';
|
|
68
66
|
const actions = [{
|
|
69
|
-
type:
|
|
67
|
+
type: src/* ButtonEnums.type */.Ny.NW.secondary,
|
|
70
68
|
text: 'No',
|
|
71
69
|
value: RESPONSE.CANCEL
|
|
72
70
|
}, {
|
|
73
|
-
type:
|
|
71
|
+
type: src/* ButtonEnums.type */.Ny.NW.primary,
|
|
74
72
|
text: 'Yes',
|
|
75
73
|
value: RESPONSE.HYDRATE_SEG
|
|
76
74
|
}];
|
|
@@ -102,37 +100,39 @@ function _getStatusComponent({
|
|
|
102
100
|
}) {
|
|
103
101
|
let ToolTipMessage = null;
|
|
104
102
|
let StatusIcon = null;
|
|
105
|
-
const {
|
|
106
|
-
t
|
|
107
|
-
} = (0,es/* useTranslation */.Bd)('Common');
|
|
108
|
-
const loadStr = t('LOAD');
|
|
109
103
|
switch (isHydrated) {
|
|
110
104
|
case true:
|
|
111
|
-
StatusIcon = () => /*#__PURE__*/react.createElement(
|
|
105
|
+
StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
|
|
112
106
|
name: "status-alert"
|
|
113
107
|
});
|
|
114
108
|
ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "This Segmentation is loaded in the segmentation panel");
|
|
115
109
|
break;
|
|
116
110
|
case false:
|
|
117
|
-
StatusIcon = () => /*#__PURE__*/react.createElement(
|
|
111
|
+
StatusIcon = () => /*#__PURE__*/react.createElement(src/* Icon */.In, {
|
|
118
112
|
className: "text-aqua-pale",
|
|
119
113
|
name: "status-untracked"
|
|
120
114
|
});
|
|
121
115
|
ToolTipMessage = () => /*#__PURE__*/react.createElement("div", null, "Click LOAD to load segmentation.");
|
|
122
116
|
}
|
|
123
|
-
const StatusArea = () =>
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
,
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
117
|
+
const StatusArea = () => {
|
|
118
|
+
const {
|
|
119
|
+
t
|
|
120
|
+
} = (0,es/* useTranslation */.Bd)('Common');
|
|
121
|
+
const loadStr = t('LOAD');
|
|
122
|
+
return /*#__PURE__*/react.createElement("div", {
|
|
123
|
+
className: "flex h-6 cursor-default text-sm leading-6 text-white"
|
|
124
|
+
}, /*#__PURE__*/react.createElement("div", {
|
|
125
|
+
className: "bg-customgray-100 flex min-w-[45px] items-center rounded-l-xl rounded-r p-1"
|
|
126
|
+
}, /*#__PURE__*/react.createElement(StatusIcon, null), /*#__PURE__*/react.createElement("span", {
|
|
127
|
+
className: "ml-1"
|
|
128
|
+
}, "SEG")), !isHydrated && /*#__PURE__*/react.createElement("div", {
|
|
129
|
+
className: "bg-primary-main hover:bg-primary-light ml-1 cursor-pointer rounded px-1.5 hover:text-black"
|
|
130
|
+
// Using onMouseUp here because onClick is not working when the viewport is not active and is styled with pointer-events:none
|
|
131
|
+
,
|
|
132
|
+
onMouseUp: onStatusClick
|
|
133
|
+
}, loadStr));
|
|
134
|
+
};
|
|
135
|
+
return /*#__PURE__*/react.createElement(react.Fragment, null, ToolTipMessage && /*#__PURE__*/react.createElement(src/* Tooltip */.m_, {
|
|
136
136
|
content: /*#__PURE__*/react.createElement(ToolTipMessage, null),
|
|
137
137
|
position: "bottom-left"
|
|
138
138
|
}, /*#__PURE__*/react.createElement(StatusArea, null)), !ToolTipMessage && /*#__PURE__*/react.createElement(StatusArea, null));
|
|
@@ -146,17 +146,12 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
146
146
|
|
|
147
147
|
|
|
148
148
|
|
|
149
|
-
|
|
150
|
-
const {
|
|
151
|
-
formatDate
|
|
152
|
-
} = src.utils;
|
|
153
149
|
const SEG_TOOLGROUP_BASE_NAME = 'SEGToolGroup';
|
|
154
150
|
function OHIFCornerstoneSEGViewport(props) {
|
|
155
151
|
const {
|
|
156
152
|
children,
|
|
157
153
|
displaySets,
|
|
158
154
|
viewportOptions,
|
|
159
|
-
viewportLabel,
|
|
160
155
|
servicesManager,
|
|
161
156
|
extensionManager,
|
|
162
157
|
commandsManager
|
|
@@ -170,7 +165,8 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
170
165
|
toolGroupService,
|
|
171
166
|
segmentationService,
|
|
172
167
|
uiNotificationService,
|
|
173
|
-
customizationService
|
|
168
|
+
customizationService,
|
|
169
|
+
viewportActionCornersService
|
|
174
170
|
} = servicesManager.services;
|
|
175
171
|
const toolGroupId = `${SEG_TOOLGROUP_BASE_NAME}-${viewportId}`;
|
|
176
172
|
|
|
@@ -179,7 +175,7 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
179
175
|
throw new Error('SEG viewport should only have a single display set');
|
|
180
176
|
}
|
|
181
177
|
const segDisplaySet = displaySets[0];
|
|
182
|
-
const [viewportGrid, viewportGridService] = (0,
|
|
178
|
+
const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.ih)();
|
|
183
179
|
|
|
184
180
|
// States
|
|
185
181
|
const [selectedSegment, setSelectedSegment] = (0,react.useState)(1);
|
|
@@ -252,7 +248,6 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
252
248
|
}));
|
|
253
249
|
}, [viewportId, segDisplaySet, toolGroupId]);
|
|
254
250
|
const onSegmentChange = (0,react.useCallback)(direction => {
|
|
255
|
-
direction = direction === 'left' ? -1 : 1;
|
|
256
251
|
const segmentationId = segDisplaySet.displaySetInstanceUID;
|
|
257
252
|
const segmentation = segmentationService.getSegmentation(segmentationId);
|
|
258
253
|
const {
|
|
@@ -360,6 +355,51 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
360
355
|
referencedDisplaySetRef.current = null;
|
|
361
356
|
};
|
|
362
357
|
}, [segDisplaySet]);
|
|
358
|
+
const hydrateSEGDisplaySet = (0,react.useCallback)(({
|
|
359
|
+
segDisplaySet,
|
|
360
|
+
viewportId
|
|
361
|
+
}) => {
|
|
362
|
+
commandsManager.runCommand('loadSegmentationDisplaySetsForViewport', {
|
|
363
|
+
displaySets: [segDisplaySet],
|
|
364
|
+
viewportId
|
|
365
|
+
});
|
|
366
|
+
}, [commandsManager]);
|
|
367
|
+
const onStatusClick = (0,react.useCallback)(async () => {
|
|
368
|
+
// Before hydrating a SEG and make it added to all viewports in the grid
|
|
369
|
+
// that share the same frameOfReferenceUID, we need to store the viewport grid
|
|
370
|
+
// presentation state, so that we can restore it after hydrating the SEG. This is
|
|
371
|
+
// required if the user has changed the viewport (other viewport than SEG viewport)
|
|
372
|
+
// presentation state (w/l and invert) and then opens the SEG. If we don't store
|
|
373
|
+
// the presentation state, the viewport will be reset to the default presentation
|
|
374
|
+
storePresentationState();
|
|
375
|
+
const isHydrated = await hydrateSEGDisplaySet({
|
|
376
|
+
segDisplaySet,
|
|
377
|
+
viewportId
|
|
378
|
+
});
|
|
379
|
+
setIsHydrated(isHydrated);
|
|
380
|
+
}, [hydrateSEGDisplaySet, segDisplaySet, storePresentationState, viewportId]);
|
|
381
|
+
(0,react.useEffect)(() => {
|
|
382
|
+
viewportActionCornersService.setComponents([{
|
|
383
|
+
viewportId,
|
|
384
|
+
id: 'viewportStatusComponent',
|
|
385
|
+
component: _getStatusComponent({
|
|
386
|
+
isHydrated,
|
|
387
|
+
onStatusClick
|
|
388
|
+
}),
|
|
389
|
+
indexPriority: -100,
|
|
390
|
+
location: viewportActionCornersService.LOCATIONS.topLeft
|
|
391
|
+
}, {
|
|
392
|
+
viewportId,
|
|
393
|
+
id: 'viewportActionArrowsComponent',
|
|
394
|
+
component: /*#__PURE__*/react.createElement(src/* ViewportActionArrows */.$I, {
|
|
395
|
+
key: "actionArrows",
|
|
396
|
+
onArrowsClick: onSegmentChange,
|
|
397
|
+
className: viewportId === activeViewportId ? 'visible' : 'invisible group-hover:visible'
|
|
398
|
+
}),
|
|
399
|
+
indexPriority: 0,
|
|
400
|
+
location: viewportActionCornersService.LOCATIONS.topRight
|
|
401
|
+
}]);
|
|
402
|
+
}, [activeViewportId, isHydrated, onSegmentChange, onStatusClick, viewportActionCornersService, viewportId]);
|
|
363
403
|
|
|
364
404
|
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
365
405
|
let childrenWithProps = null;
|
|
@@ -385,60 +425,9 @@ function OHIFCornerstoneSEGViewport(props) {
|
|
|
385
425
|
SeriesDescription,
|
|
386
426
|
SpacingBetweenSlices
|
|
387
427
|
} = referencedDisplaySetRef.current.metadata;
|
|
388
|
-
|
|
389
|
-
segDisplaySet,
|
|
390
|
-
viewportId
|
|
391
|
-
}) => {
|
|
392
|
-
commandsManager.runCommand('loadSegmentationDisplaySetsForViewport', {
|
|
393
|
-
displaySets: [segDisplaySet],
|
|
394
|
-
viewportId
|
|
395
|
-
});
|
|
396
|
-
};
|
|
397
|
-
const onStatusClick = async () => {
|
|
398
|
-
// Before hydrating a SEG 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 SEG. This is
|
|
401
|
-
// required if the user has changed the viewport (other viewport than SEG viewport)
|
|
402
|
-
// presentation state (w/l and invert) and then opens the SEG. If we don't store
|
|
403
|
-
// the presentation state, the viewport will be reset to the default presentation
|
|
404
|
-
storePresentationState();
|
|
405
|
-
const isHydrated = await hydrateSEGDisplaySet({
|
|
406
|
-
segDisplaySet,
|
|
407
|
-
viewportId
|
|
408
|
-
});
|
|
409
|
-
setIsHydrated(isHydrated);
|
|
410
|
-
};
|
|
411
|
-
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(ui_src/* ViewportActionBar */.cS, {
|
|
412
|
-
onDoubleClick: evt => {
|
|
413
|
-
evt.stopPropagation();
|
|
414
|
-
evt.preventDefault();
|
|
415
|
-
},
|
|
416
|
-
onArrowsClick: onSegmentChange,
|
|
417
|
-
getStatusComponent: () => {
|
|
418
|
-
return _getStatusComponent({
|
|
419
|
-
isHydrated,
|
|
420
|
-
onStatusClick
|
|
421
|
-
});
|
|
422
|
-
},
|
|
423
|
-
studyData: {
|
|
424
|
-
label: viewportLabel,
|
|
425
|
-
useAltStyling: true,
|
|
426
|
-
studyDate: formatDate(StudyDate),
|
|
427
|
-
seriesDescription: `SEG Viewport ${SeriesDescription}`,
|
|
428
|
-
patientInformation: {
|
|
429
|
-
patientName: PatientName ? src/* default.utils */.Ay.utils.formatPN(PatientName.Alphabetic) : '',
|
|
430
|
-
patientSex: PatientSex || '',
|
|
431
|
-
patientAge: PatientAge || '',
|
|
432
|
-
MRN: PatientID || '',
|
|
433
|
-
thickness: SliceThickness ? src.utils.roundNumber(SliceThickness, 2) : '',
|
|
434
|
-
thicknessUnits: SliceThickness !== undefined ? 'mm' : '',
|
|
435
|
-
spacing: SpacingBetweenSlices !== undefined ? src.utils.roundNumber(SpacingBetweenSlices, 2) : '',
|
|
436
|
-
scanner: ManufacturerModelName || ''
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
}), /*#__PURE__*/react.createElement("div", {
|
|
428
|
+
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
440
429
|
className: "relative flex h-full w-full flex-row overflow-hidden"
|
|
441
|
-
}, segIsLoading && /*#__PURE__*/react.createElement(
|
|
430
|
+
}, segIsLoading && /*#__PURE__*/react.createElement(src/* LoadingIndicatorTotalPercent */.pT, {
|
|
442
431
|
className: "h-full w-full",
|
|
443
432
|
totalNumbers: processingProgress.totalSegments,
|
|
444
433
|
percentComplete: processingProgress.percentComplete,
|
|
@@ -15,8 +15,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
15
15
|
toolbarButtons: () => (/* reexport */ src_toolbarButtons)
|
|
16
16
|
});
|
|
17
17
|
|
|
18
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
19
|
-
var src = __webpack_require__(
|
|
18
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 68 modules
|
|
19
|
+
var src = __webpack_require__(85073);
|
|
20
20
|
// EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
|
|
21
21
|
var i18next = __webpack_require__(92344);
|
|
22
22
|
;// CONCATENATED MODULE: ../../../modes/longitudinal/package.json
|
|
@@ -268,8 +268,6 @@ function initToolGroups(extensionManager, toolGroupService, commandsManager) {
|
|
|
268
268
|
initVolume3DToolGroup(extensionManager, toolGroupService);
|
|
269
269
|
}
|
|
270
270
|
/* harmony default export */ const src_initToolGroups = (initToolGroups);
|
|
271
|
-
// EXTERNAL MODULE: ../../ui/src/index.js + 497 modules
|
|
272
|
-
var ui_src = __webpack_require__(58046);
|
|
273
271
|
;// CONCATENATED MODULE: ../../../modes/longitudinal/src/toolbarButtons.ts
|
|
274
272
|
// TODO: torn, can either bake this here; or have to create a whole new button type
|
|
275
273
|
// Only ways that you can pass in a custom React component for render :l
|
|
@@ -281,27 +279,6 @@ const {
|
|
|
281
279
|
const {
|
|
282
280
|
createButton
|
|
283
281
|
} = src.ToolbarService;
|
|
284
|
-
|
|
285
|
-
/**
|
|
286
|
-
*
|
|
287
|
-
* @param {*} preset - preset number (from above import)
|
|
288
|
-
* @param {*} title
|
|
289
|
-
* @param {*} subtitle
|
|
290
|
-
*/
|
|
291
|
-
function _createWwwcPreset(preset, title, subtitle) {
|
|
292
|
-
return {
|
|
293
|
-
id: preset.toString(),
|
|
294
|
-
title,
|
|
295
|
-
subtitle,
|
|
296
|
-
commands: [{
|
|
297
|
-
commandName: 'setWindowLevel',
|
|
298
|
-
commandOptions: {
|
|
299
|
-
...windowLevelPresets[preset]
|
|
300
|
-
},
|
|
301
|
-
context: 'CORNERSTONE'
|
|
302
|
-
}]
|
|
303
|
-
};
|
|
304
|
-
}
|
|
305
282
|
const setToolActiveToolbar = {
|
|
306
283
|
commandName: 'setToolActiveToolbar',
|
|
307
284
|
commandOptions: {
|
|
@@ -374,27 +351,15 @@ const toolbarButtons = [{
|
|
|
374
351
|
evaluate: 'evaluate.cornerstoneTool'
|
|
375
352
|
}
|
|
376
353
|
},
|
|
377
|
-
// Window Level
|
|
354
|
+
// Window Level
|
|
378
355
|
{
|
|
379
356
|
id: 'WindowLevel',
|
|
380
|
-
uiType: 'ohif.
|
|
357
|
+
uiType: 'ohif.radioGroup',
|
|
381
358
|
props: {
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
label: 'Window Level',
|
|
387
|
-
tooltip: 'Window Level',
|
|
388
|
-
commands: setToolActiveToolbar,
|
|
389
|
-
evaluate: 'evaluate.cornerstoneTool'
|
|
390
|
-
}),
|
|
391
|
-
secondary: {
|
|
392
|
-
icon: 'chevron-down',
|
|
393
|
-
label: 'W/L Manual',
|
|
394
|
-
tooltip: 'W/L Presets'
|
|
395
|
-
},
|
|
396
|
-
renderer: ui_src/* WindowLevelMenuItem */.d4,
|
|
397
|
-
items: [_createWwwcPreset(1, 'Soft tissue', '400 / 40'), _createWwwcPreset(2, 'Lung', '1500 / -600'), _createWwwcPreset(3, 'Liver', '150 / 90'), _createWwwcPreset(4, 'Bone', '2500 / 480'), _createWwwcPreset(5, 'Brain', '80 / 40')]
|
|
359
|
+
icon: 'tool-window-level',
|
|
360
|
+
label: 'Window Level',
|
|
361
|
+
commands: setToolActiveToolbar,
|
|
362
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
398
363
|
}
|
|
399
364
|
},
|
|
400
365
|
// Pan...
|
|
@@ -416,7 +381,10 @@ const toolbarButtons = [{
|
|
|
416
381
|
icon: 'tool-3d-rotate',
|
|
417
382
|
label: '3D Rotate',
|
|
418
383
|
commands: setToolActiveToolbar,
|
|
419
|
-
evaluate:
|
|
384
|
+
evaluate: {
|
|
385
|
+
name: 'evaluate.cornerstoneTool',
|
|
386
|
+
disabledText: 'Select a 3D viewport to enable this tool'
|
|
387
|
+
}
|
|
420
388
|
}
|
|
421
389
|
}, {
|
|
422
390
|
id: 'Capture',
|
|
@@ -448,7 +416,10 @@ const toolbarButtons = [{
|
|
|
448
416
|
toolGroupIds: ['mpr']
|
|
449
417
|
}
|
|
450
418
|
},
|
|
451
|
-
evaluate:
|
|
419
|
+
evaluate: {
|
|
420
|
+
name: 'evaluate.cornerstoneTool',
|
|
421
|
+
disabledText: 'Select an MPR viewport to enable this tool'
|
|
422
|
+
}
|
|
452
423
|
}
|
|
453
424
|
}];
|
|
454
425
|
/* harmony default export */ const src_toolbarButtons = (toolbarButtons);
|