@ohif/app 3.12.0-beta.38 → 3.12.0-beta.39
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/{1447.bundle.e88bf45d0a9cb5278d35.js → 1447.bundle.e1abda3a7f374ea48644.js} +2 -2
- package/dist/5457.bundle.451d7b3b9227cbc8e174.js +1366 -0
- package/dist/{6980.bundle.fd48c02fe2b0116af7e0.js → 5485.bundle.9153094dec354e1279ad.js} +250 -177
- package/dist/{7656.bundle.34a2d6b8d9b70241f809.js → 7656.bundle.9443079e27d7d8f36257.js} +4 -4
- package/dist/{810.bundle.9ace57858979249f785e.js → 810.bundle.16f391c4e7da9848a949.js} +2 -2
- package/dist/{app.bundle.ba0e05beb4ada6de1619.js → app.bundle.a9bfe5da304e33900bed.js} +69 -9
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +20 -20
- /package/dist/{1459.bundle.0e3a249f226d794bcde0.js → 1459.bundle.6d912e6019da628cd492.js} +0 -0
- /package/dist/{1604.bundle.311c3a2272fbf50c1e6b.js → 1604.bundle.bc6c02b33c3ddd17a04c.js} +0 -0
- /package/dist/{1807.bundle.72fcd7caa015c35427ad.js → 1807.bundle.0f86d6bd87a1fc204bfd.js} +0 -0
- /package/dist/{1919.bundle.4226e0a09126c7fe8005.js → 1919.bundle.90e6282dbd3ce41fa7dc.js} +0 -0
- /package/dist/{213.bundle.f6a51e5f86bd1b78cb51.js → 213.bundle.4487a3ea21668eb84e13.js} +0 -0
- /package/dist/{2243.bundle.60c1dd2d2c137c916d1a.js → 2243.bundle.60352e87f85cb1ec5726.js} +0 -0
- /package/dist/{2424.bundle.f79694b71d571f84ae34.js → 2424.bundle.67f472e25f465cb097ab.js} +0 -0
- /package/dist/{4113.bundle.7c2407f8b23f2dae23e4.js → 4113.bundle.41441b4f42dc493ead44.js} +0 -0
- /package/dist/{414.bundle.cf576bfd36e0f3f8b09c.js → 414.bundle.888425a9fa3b4d5efaec.js} +0 -0
- /package/dist/{6027.bundle.574eae7f62dc75eec6f7.js → 6027.bundle.c6ac80144b3111fac9d8.js} +0 -0
- /package/dist/{6201.bundle.bd101f8f1cae06424b15.js → 6201.bundle.d5afb33076730728189f.js} +0 -0
- /package/dist/{6991.bundle.961b556c2ae8d9f29e8d.js → 6991.bundle.60df34bab80853e97851.js} +0 -0
- /package/dist/{7197.bundle.07504357a0d046770087.js → 7197.bundle.3d8123242414bedbcd12.js} +0 -0
- /package/dist/{7639.bundle.5594d6111939a77d15af.js → 7639.bundle.8ed96aea654d5e51d53c.js} +0 -0
- /package/dist/{85.bundle.9e7e6f9ecd378e3ac618.js → 85.bundle.59f6dd4a87b898971a5f.js} +0 -0
- /package/dist/{8558.bundle.f88e17c368c17e662338.js → 8558.bundle.cdfdbc82525fc0a6dccf.js} +0 -0
- /package/dist/{8815.bundle.ae678ee7277df9a69e2a.js → 8815.bundle.5ef65b0b08cbbd044225.js} +0 -0
- /package/dist/{934.bundle.0e299de1635556a34a70.js → 934.bundle.1300bc4b558647bff6a8.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[5485],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 35485:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -9,20 +9,38 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
9
9
|
|
|
10
10
|
// EXPORTS
|
|
11
11
|
__webpack_require__.d(__webpack_exports__, {
|
|
12
|
-
|
|
12
|
+
NON_IMAGE_MODALITIES: () => (/* binding */ NON_IMAGE_MODALITIES),
|
|
13
|
+
basicLayout: () => (/* binding */ basicLayout),
|
|
14
|
+
basicRoute: () => (/* binding */ basicRoute),
|
|
15
|
+
cornerstone: () => (/* binding */ cornerstone),
|
|
16
|
+
"default": () => (/* binding */ basic_src),
|
|
17
|
+
dicomPmap: () => (/* binding */ dicomPmap),
|
|
18
|
+
dicomRT: () => (/* binding */ dicomRT),
|
|
19
|
+
dicomSeg: () => (/* binding */ dicomSeg),
|
|
20
|
+
dicompdf: () => (/* binding */ dicompdf),
|
|
21
|
+
dicomsr: () => (/* binding */ dicomsr),
|
|
22
|
+
dicomvideo: () => (/* binding */ dicomvideo),
|
|
23
|
+
extensionDependencies: () => (/* binding */ extensionDependencies),
|
|
13
24
|
initToolGroups: () => (/* reexport */ src_initToolGroups),
|
|
14
|
-
|
|
25
|
+
isValidMode: () => (/* binding */ isValidMode),
|
|
26
|
+
layoutTemplate: () => (/* binding */ layoutTemplate),
|
|
27
|
+
mode: () => (/* binding */ mode),
|
|
28
|
+
modeFactory: () => (/* binding */ modeFactory),
|
|
29
|
+
modeInstance: () => (/* binding */ modeInstance),
|
|
30
|
+
ohif: () => (/* binding */ ohif),
|
|
31
|
+
onModeEnter: () => (/* binding */ onModeEnter),
|
|
32
|
+
onModeExit: () => (/* binding */ onModeExit),
|
|
33
|
+
sopClassHandlers: () => (/* binding */ sopClassHandlers),
|
|
34
|
+
toolbarButtons: () => (/* reexport */ src_toolbarButtons),
|
|
35
|
+
toolbarSections: () => (/* binding */ toolbarSections)
|
|
15
36
|
});
|
|
16
37
|
|
|
17
|
-
// EXTERNAL MODULE: ../../../node_modules/
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const id = package_namespaceObject.UU;
|
|
24
|
-
|
|
25
|
-
;// ../../../modes/longitudinal/src/initToolGroups.js
|
|
38
|
+
// EXTERNAL MODULE: ../../../node_modules/immutability-helper/index.js
|
|
39
|
+
var immutability_helper = __webpack_require__(1752);
|
|
40
|
+
var immutability_helper_default = /*#__PURE__*/__webpack_require__.n(immutability_helper);
|
|
41
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 69 modules
|
|
42
|
+
var src = __webpack_require__(76569);
|
|
43
|
+
;// ../../../modes/basic/src/initToolGroups.ts
|
|
26
44
|
const colours = {
|
|
27
45
|
'viewport-0': 'rgb(200, 0, 0)',
|
|
28
46
|
'viewport-1': 'rgb(200, 200, 0)',
|
|
@@ -361,9 +379,9 @@ function initToolGroups(extensionManager, toolGroupService, commandsManager) {
|
|
|
361
379
|
/* harmony default export */ const src_initToolGroups = (initToolGroups);
|
|
362
380
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 1 modules
|
|
363
381
|
var esm = __webpack_require__(15327);
|
|
364
|
-
// EXTERNAL MODULE:
|
|
365
|
-
var
|
|
366
|
-
;// ../../../modes/
|
|
382
|
+
// EXTERNAL MODULE: ../../../node_modules/i18next/dist/esm/i18next.js
|
|
383
|
+
var i18next = __webpack_require__(40680);
|
|
384
|
+
;// ../../../modes/basic/src/toolbarButtons.ts
|
|
367
385
|
|
|
368
386
|
|
|
369
387
|
|
|
@@ -979,15 +997,33 @@ const toolbarButtons = [
|
|
|
979
997
|
// },
|
|
980
998
|
];
|
|
981
999
|
/* harmony default export */ const src_toolbarButtons = (toolbarButtons);
|
|
982
|
-
;// ../../../modes/
|
|
1000
|
+
;// ../../../modes/basic/package.json
|
|
1001
|
+
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/mode-basic"}');
|
|
1002
|
+
;// ../../../modes/basic/src/id.js
|
|
1003
|
+
|
|
1004
|
+
const id = package_namespaceObject.UU;
|
|
983
1005
|
|
|
1006
|
+
;// ../../../modes/basic/src/index.tsx
|
|
984
1007
|
|
|
985
1008
|
|
|
986
1009
|
|
|
987
1010
|
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
1011
|
+
|
|
1012
|
+
const {
|
|
1013
|
+
TOOLBAR_SECTIONS
|
|
1014
|
+
} = src/* ToolbarService */.hx;
|
|
1015
|
+
const {
|
|
1016
|
+
structuredCloneWithFunctions
|
|
1017
|
+
} = src/* utils */.Wp;
|
|
1018
|
+
|
|
1019
|
+
/**
|
|
1020
|
+
* Define non-imaging modalities.
|
|
1021
|
+
* This can be used to exclude modes which have only these modalities,
|
|
1022
|
+
* or it can be used to not display thumbnails for some of these.
|
|
1023
|
+
* This list used to include SM, for whole slide imaging, but this is now supported
|
|
1024
|
+
* by cornerstone. Others of these may get added.
|
|
1025
|
+
*/
|
|
1026
|
+
const NON_IMAGE_MODALITIES = ['ECG', 'SEG', 'RTSTRUCT', 'RTPLAN', 'PR', 'SR', 'DOC'];
|
|
991
1027
|
const ohif = {
|
|
992
1028
|
layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',
|
|
993
1029
|
sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack',
|
|
@@ -996,12 +1032,8 @@ const ohif = {
|
|
|
996
1032
|
};
|
|
997
1033
|
const cornerstone = {
|
|
998
1034
|
measurements: '@ohif/extension-cornerstone.panelModule.panelMeasurement',
|
|
999
|
-
segmentation: '@ohif/extension-cornerstone.panelModule.panelSegmentation'
|
|
1000
|
-
|
|
1001
|
-
const tracked = {
|
|
1002
|
-
measurements: '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements',
|
|
1003
|
-
thumbnailList: '@ohif/extension-measurement-tracking.panelModule.seriesList',
|
|
1004
|
-
viewport: '@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked'
|
|
1035
|
+
segmentation: '@ohif/extension-cornerstone.panelModule.panelSegmentation',
|
|
1036
|
+
viewport: '@ohif/extension-cornerstone.viewportModule.cornerstone'
|
|
1005
1037
|
};
|
|
1006
1038
|
const dicomsr = {
|
|
1007
1039
|
sopClassHandler: '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr',
|
|
@@ -1032,7 +1064,6 @@ const extensionDependencies = {
|
|
|
1032
1064
|
// Can derive the versions at least process.env.from npm_package_version
|
|
1033
1065
|
'@ohif/extension-default': '^3.0.0',
|
|
1034
1066
|
'@ohif/extension-cornerstone': '^3.0.0',
|
|
1035
|
-
'@ohif/extension-measurement-tracking': '^3.0.0',
|
|
1036
1067
|
'@ohif/extension-cornerstone-dicom-sr': '^3.0.0',
|
|
1037
1068
|
'@ohif/extension-cornerstone-dicom-seg': '^3.0.0',
|
|
1038
1069
|
'@ohif/extension-cornerstone-dicom-pmap': '^3.0.0',
|
|
@@ -1040,167 +1071,209 @@ const extensionDependencies = {
|
|
|
1040
1071
|
'@ohif/extension-dicom-pdf': '^3.0.1',
|
|
1041
1072
|
'@ohif/extension-dicom-video': '^3.0.1'
|
|
1042
1073
|
};
|
|
1043
|
-
|
|
1044
|
-
modeConfiguration
|
|
1045
|
-
}) {
|
|
1046
|
-
let _activatePanelTriggersSubscriptions = [];
|
|
1047
|
-
return {
|
|
1048
|
-
// TODO: We're using this as a route segment
|
|
1049
|
-
// We should not be.
|
|
1050
|
-
id: id,
|
|
1051
|
-
routeName: 'viewer',
|
|
1052
|
-
displayName: i18next/* default */.A.t('Modes:Basic Viewer'),
|
|
1053
|
-
/**
|
|
1054
|
-
* Lifecycle hooks
|
|
1055
|
-
*/
|
|
1056
|
-
onModeEnter: function ({
|
|
1057
|
-
servicesManager,
|
|
1058
|
-
extensionManager,
|
|
1059
|
-
commandsManager
|
|
1060
|
-
}) {
|
|
1061
|
-
const {
|
|
1062
|
-
measurementService,
|
|
1063
|
-
toolbarService,
|
|
1064
|
-
toolGroupService,
|
|
1065
|
-
customizationService
|
|
1066
|
-
} = servicesManager.services;
|
|
1067
|
-
measurementService.clearMeasurements();
|
|
1068
|
-
|
|
1069
|
-
// Init Default and SR ToolGroups
|
|
1070
|
-
src_initToolGroups(extensionManager, toolGroupService, commandsManager);
|
|
1071
|
-
toolbarService.register(src_toolbarButtons);
|
|
1072
|
-
toolbarService.updateSection(toolbarService.sections.primary, ['MeasurementTools', 'Zoom', 'Pan', 'TrackballRotate', 'WindowLevel', 'Capture', 'Layout', 'Crosshairs', 'MoreTools']);
|
|
1073
|
-
toolbarService.updateSection(toolbarService.sections.viewportActionMenu.topLeft, ['orientationMenu', 'dataOverlayMenu']);
|
|
1074
|
-
toolbarService.updateSection(toolbarService.sections.viewportActionMenu.bottomMiddle, ['AdvancedRenderingControls']);
|
|
1075
|
-
toolbarService.updateSection('AdvancedRenderingControls', ['windowLevelMenuEmbedded', 'voiManualControlMenu', 'Colorbar', 'opacityMenu', 'thresholdMenu']);
|
|
1076
|
-
toolbarService.updateSection(toolbarService.sections.viewportActionMenu.topRight, ['modalityLoadBadge', 'trackingStatus', 'navigationComponent']);
|
|
1077
|
-
toolbarService.updateSection(toolbarService.sections.viewportActionMenu.bottomLeft, ['windowLevelMenu']);
|
|
1078
|
-
toolbarService.updateSection('MeasurementTools', ['Length', 'Bidirectional', 'ArrowAnnotate', 'EllipticalROI', 'RectangleROI', 'CircleROI', 'PlanarFreehandROI', 'SplineROI', 'LivewireContour']);
|
|
1079
|
-
toolbarService.updateSection('MoreTools', ['Reset', 'rotate-right', 'flipHorizontal', 'ImageSliceSync', 'ReferenceLines', 'ImageOverlayViewer', 'StackScroll', 'invert', 'Probe', 'Cine', 'Angle', 'CobbAngle', 'Magnify', 'CalibrationLine', 'TagBrowser', 'AdvancedMagnify', 'UltrasoundDirectionalTool', 'WindowLevelRegion', 'SegmentLabelTool']);
|
|
1080
|
-
customizationService.setCustomizations({
|
|
1081
|
-
'panelSegmentation.disableEditing': {
|
|
1082
|
-
$set: true
|
|
1083
|
-
}
|
|
1084
|
-
});
|
|
1085
|
-
|
|
1086
|
-
// // ActivatePanel event trigger for when a segmentation or measurement is added.
|
|
1087
|
-
// // Do not force activation so as to respect the state the user may have left the UI in.
|
|
1088
|
-
// _activatePanelTriggersSubscriptions = [
|
|
1089
|
-
// ...panelService.addActivatePanelTriggers(
|
|
1090
|
-
// cornerstone.segmentation,
|
|
1091
|
-
// [
|
|
1092
|
-
// {
|
|
1093
|
-
// sourcePubSubService: segmentationService,
|
|
1094
|
-
// sourceEvents: [segmentationService.EVENTS.SEGMENTATION_ADDED],
|
|
1095
|
-
// },
|
|
1096
|
-
// ],
|
|
1097
|
-
// true
|
|
1098
|
-
// ),
|
|
1099
|
-
// ...panelService.addActivatePanelTriggers(
|
|
1100
|
-
// tracked.measurements,
|
|
1101
|
-
// [
|
|
1102
|
-
// {
|
|
1103
|
-
// sourcePubSubService: measurementService,
|
|
1104
|
-
// sourceEvents: [
|
|
1105
|
-
// measurementService.EVENTS.MEASUREMENT_ADDED,
|
|
1106
|
-
// measurementService.EVENTS.RAW_MEASUREMENT_ADDED,
|
|
1107
|
-
// ],
|
|
1108
|
-
// },
|
|
1109
|
-
// ],
|
|
1110
|
-
// true
|
|
1111
|
-
// ),
|
|
1112
|
-
// true,
|
|
1113
|
-
// ];
|
|
1114
|
-
},
|
|
1115
|
-
onModeExit: ({
|
|
1116
|
-
servicesManager
|
|
1117
|
-
}) => {
|
|
1118
|
-
const {
|
|
1119
|
-
toolGroupService,
|
|
1120
|
-
syncGroupService,
|
|
1121
|
-
segmentationService,
|
|
1122
|
-
cornerstoneViewportService,
|
|
1123
|
-
uiDialogService,
|
|
1124
|
-
uiModalService
|
|
1125
|
-
} = servicesManager.services;
|
|
1126
|
-
_activatePanelTriggersSubscriptions.forEach(sub => sub.unsubscribe());
|
|
1127
|
-
_activatePanelTriggersSubscriptions = [];
|
|
1128
|
-
uiDialogService.hideAll();
|
|
1129
|
-
uiModalService.hide();
|
|
1130
|
-
toolGroupService.destroy();
|
|
1131
|
-
syncGroupService.destroy();
|
|
1132
|
-
segmentationService.destroy();
|
|
1133
|
-
cornerstoneViewportService.destroy();
|
|
1134
|
-
},
|
|
1135
|
-
validationTags: {
|
|
1136
|
-
study: [],
|
|
1137
|
-
series: []
|
|
1138
|
-
},
|
|
1139
|
-
isValidMode: function ({
|
|
1140
|
-
modalities
|
|
1141
|
-
}) {
|
|
1142
|
-
const modalities_list = modalities.split('\\');
|
|
1074
|
+
const sopClassHandlers = [dicomvideo.sopClassHandler, dicomSeg.sopClassHandler, dicomPmap.sopClassHandler, ohif.sopClassHandler, ohif.wsiSopClassHandler, dicompdf.sopClassHandler, dicomsr.sopClassHandler3D, dicomsr.sopClassHandler, dicomRT.sopClassHandler];
|
|
1143
1075
|
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1076
|
+
/**
|
|
1077
|
+
* Indicate this is a valid mode if:
|
|
1078
|
+
* - it contains at least one of the modeModalities
|
|
1079
|
+
* - it contains all of the array value in modeModalities
|
|
1080
|
+
* Otherwise, if modeModalities is not defined:
|
|
1081
|
+
* - it contains at least one modality other than the nonModeMOdalities.
|
|
1082
|
+
*/
|
|
1083
|
+
function isValidMode({
|
|
1084
|
+
modalities
|
|
1085
|
+
}) {
|
|
1086
|
+
const modalities_list = modalities.split('\\');
|
|
1087
|
+
if (this.modeModalities?.length) {
|
|
1088
|
+
for (const modeModality of this.modeModalities) {
|
|
1089
|
+
if (Array.isArray(modeModality) && modeModality.every(m => modalities.indexOf(m) !== -1)) {
|
|
1156
1090
|
return {
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
viewports: [{
|
|
1165
|
-
namespace: tracked.viewport,
|
|
1166
|
-
displaySetsToDisplay: [ohif.sopClassHandler, dicomvideo.sopClassHandler, ohif.wsiSopClassHandler]
|
|
1167
|
-
}, {
|
|
1168
|
-
namespace: dicomsr.viewport,
|
|
1169
|
-
displaySetsToDisplay: [dicomsr.sopClassHandler, dicomsr.sopClassHandler3D]
|
|
1170
|
-
}, {
|
|
1171
|
-
namespace: dicompdf.viewport,
|
|
1172
|
-
displaySetsToDisplay: [dicompdf.sopClassHandler]
|
|
1173
|
-
}, {
|
|
1174
|
-
namespace: dicomSeg.viewport,
|
|
1175
|
-
displaySetsToDisplay: [dicomSeg.sopClassHandler]
|
|
1176
|
-
}, {
|
|
1177
|
-
namespace: dicomPmap.viewport,
|
|
1178
|
-
displaySetsToDisplay: [dicomPmap.sopClassHandler]
|
|
1179
|
-
}, {
|
|
1180
|
-
namespace: dicomRT.viewport,
|
|
1181
|
-
displaySetsToDisplay: [dicomRT.sopClassHandler]
|
|
1182
|
-
}]
|
|
1183
|
-
}
|
|
1091
|
+
valid: true,
|
|
1092
|
+
description: `Matches ${modeModality.join(', ')}`
|
|
1093
|
+
};
|
|
1094
|
+
} else if (modalities.indexOf(modeModality)) {
|
|
1095
|
+
return {
|
|
1096
|
+
valid: true,
|
|
1097
|
+
description: `Matches ${modeModality}`
|
|
1184
1098
|
};
|
|
1185
1099
|
}
|
|
1186
|
-
}
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
...modeConfiguration
|
|
1100
|
+
}
|
|
1101
|
+
return {
|
|
1102
|
+
valid: false,
|
|
1103
|
+
description: `None of the mode modalities match: ${JSON.stringify(this.modeModalities)}`
|
|
1104
|
+
};
|
|
1105
|
+
}
|
|
1106
|
+
return {
|
|
1107
|
+
valid: !!modalities_list.find(modality => this.nonModeModalities.indexOf(modality) === -1),
|
|
1108
|
+
description: `The mode does not support studies that ONLY include the following modalities: ${this.nonModeModalities.join(', ')}`
|
|
1196
1109
|
};
|
|
1197
1110
|
}
|
|
1111
|
+
function onModeEnter({
|
|
1112
|
+
servicesManager,
|
|
1113
|
+
extensionManager,
|
|
1114
|
+
commandsManager,
|
|
1115
|
+
panelService,
|
|
1116
|
+
segmentationService
|
|
1117
|
+
}) {
|
|
1118
|
+
const {
|
|
1119
|
+
measurementService,
|
|
1120
|
+
toolbarService,
|
|
1121
|
+
toolGroupService,
|
|
1122
|
+
customizationService
|
|
1123
|
+
} = servicesManager.services;
|
|
1124
|
+
measurementService.clearMeasurements();
|
|
1125
|
+
|
|
1126
|
+
// Init Default and SR ToolGroups
|
|
1127
|
+
src_initToolGroups(extensionManager, toolGroupService, commandsManager);
|
|
1128
|
+
toolbarService.register(this.toolbarButtons);
|
|
1129
|
+
for (const [key, section] of Object.entries(this.toolbarSections)) {
|
|
1130
|
+
toolbarService.updateSection(key, section);
|
|
1131
|
+
}
|
|
1132
|
+
if (!this.enableSegmentationEdit) {
|
|
1133
|
+
customizationService.setCustomizations({
|
|
1134
|
+
'panelSegmentation.disableEditing': {
|
|
1135
|
+
$set: true
|
|
1136
|
+
}
|
|
1137
|
+
});
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
// // ActivatePanel event trigger for when a segmentation or measurement is added.
|
|
1141
|
+
// // Do not force activation so as to respect the state the user may have left the UI in.
|
|
1142
|
+
if (this.activatePanelTrigger) {
|
|
1143
|
+
this._activatePanelTriggersSubscriptions = [...panelService.addActivatePanelTriggers(cornerstone.segmentation, [{
|
|
1144
|
+
sourcePubSubService: segmentationService,
|
|
1145
|
+
sourceEvents: [segmentationService.EVENTS.SEGMENTATION_ADDED]
|
|
1146
|
+
}], true), ...panelService.addActivatePanelTriggers(cornerstone.measurements, [{
|
|
1147
|
+
sourcePubSubService: measurementService,
|
|
1148
|
+
sourceEvents: [measurementService.EVENTS.MEASUREMENT_ADDED, measurementService.EVENTS.RAW_MEASUREMENT_ADDED]
|
|
1149
|
+
}], true), true];
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
function onModeExit({
|
|
1153
|
+
servicesManager
|
|
1154
|
+
}) {
|
|
1155
|
+
const {
|
|
1156
|
+
toolGroupService,
|
|
1157
|
+
syncGroupService,
|
|
1158
|
+
segmentationService,
|
|
1159
|
+
cornerstoneViewportService,
|
|
1160
|
+
uiDialogService,
|
|
1161
|
+
uiModalService
|
|
1162
|
+
} = servicesManager.services;
|
|
1163
|
+
this._activatePanelTriggersSubscriptions.forEach(sub => sub.unsubscribe());
|
|
1164
|
+
this._activatePanelTriggersSubscriptions.length = 0;
|
|
1165
|
+
uiDialogService.hideAll();
|
|
1166
|
+
uiModalService.hide();
|
|
1167
|
+
toolGroupService.destroy();
|
|
1168
|
+
syncGroupService.destroy();
|
|
1169
|
+
segmentationService.destroy();
|
|
1170
|
+
cornerstoneViewportService.destroy();
|
|
1171
|
+
}
|
|
1172
|
+
const toolbarSections = {
|
|
1173
|
+
[TOOLBAR_SECTIONS.primary]: ['MeasurementTools', 'Zoom', 'Pan', 'TrackballRotate', 'WindowLevel', 'Capture', 'Layout', 'Crosshairs', 'MoreTools'],
|
|
1174
|
+
[TOOLBAR_SECTIONS.viewportActionMenu.topLeft]: ['orientationMenu', 'dataOverlayMenu'],
|
|
1175
|
+
[TOOLBAR_SECTIONS.viewportActionMenu.bottomMiddle]: ['AdvancedRenderingControls'],
|
|
1176
|
+
AdvancedRenderingControls: ['windowLevelMenuEmbedded', 'voiManualControlMenu', 'Colorbar', 'opacityMenu', 'thresholdMenu'],
|
|
1177
|
+
[TOOLBAR_SECTIONS.viewportActionMenu.topRight]: ['modalityLoadBadge', 'trackingStatus', 'navigationComponent'],
|
|
1178
|
+
[TOOLBAR_SECTIONS.viewportActionMenu.bottomLeft]: ['windowLevelMenu'],
|
|
1179
|
+
MeasurementTools: ['Length', 'Bidirectional', 'ArrowAnnotate', 'EllipticalROI', 'RectangleROI', 'CircleROI', 'PlanarFreehandROI', 'SplineROI', 'LivewireContour'],
|
|
1180
|
+
MoreTools: ['Reset', 'rotate-right', 'flipHorizontal', 'ImageSliceSync', 'ReferenceLines', 'ImageOverlayViewer', 'StackScroll', 'invert', 'Probe', 'Cine', 'Angle', 'CobbAngle', 'Magnify', 'CalibrationLine', 'TagBrowser', 'AdvancedMagnify', 'UltrasoundDirectionalTool', 'WindowLevelRegion', 'SegmentLabelTool']
|
|
1181
|
+
};
|
|
1182
|
+
const basicLayout = {
|
|
1183
|
+
id: ohif.layout,
|
|
1184
|
+
props: {
|
|
1185
|
+
leftPanels: [ohif.thumbnailList],
|
|
1186
|
+
leftPanelResizable: true,
|
|
1187
|
+
rightPanels: [cornerstone.segmentation, cornerstone.measurements],
|
|
1188
|
+
rightPanelClosed: true,
|
|
1189
|
+
rightPanelResizable: true,
|
|
1190
|
+
viewports: [{
|
|
1191
|
+
namespace: cornerstone.viewport,
|
|
1192
|
+
displaySetsToDisplay: [ohif.sopClassHandler, dicomvideo.sopClassHandler, ohif.wsiSopClassHandler]
|
|
1193
|
+
}, {
|
|
1194
|
+
namespace: dicomsr.viewport,
|
|
1195
|
+
displaySetsToDisplay: [dicomsr.sopClassHandler, dicomsr.sopClassHandler3D]
|
|
1196
|
+
}, {
|
|
1197
|
+
namespace: dicompdf.viewport,
|
|
1198
|
+
displaySetsToDisplay: [dicompdf.sopClassHandler]
|
|
1199
|
+
}, {
|
|
1200
|
+
namespace: dicomSeg.viewport,
|
|
1201
|
+
displaySetsToDisplay: [dicomSeg.sopClassHandler]
|
|
1202
|
+
}, {
|
|
1203
|
+
namespace: dicomPmap.viewport,
|
|
1204
|
+
displaySetsToDisplay: [dicomPmap.sopClassHandler]
|
|
1205
|
+
}, {
|
|
1206
|
+
namespace: dicomRT.viewport,
|
|
1207
|
+
displaySetsToDisplay: [dicomRT.sopClassHandler]
|
|
1208
|
+
}]
|
|
1209
|
+
}
|
|
1210
|
+
};
|
|
1211
|
+
function layoutTemplate() {
|
|
1212
|
+
return structuredCloneWithFunctions(this.layoutInstance);
|
|
1213
|
+
}
|
|
1214
|
+
const basicRoute = {
|
|
1215
|
+
path: 'basic',
|
|
1216
|
+
layoutTemplate,
|
|
1217
|
+
layoutInstance: basicLayout
|
|
1218
|
+
};
|
|
1219
|
+
const modeInstance = {
|
|
1220
|
+
// TODO: We're using this as a route segment
|
|
1221
|
+
// We should not be.
|
|
1222
|
+
id: id,
|
|
1223
|
+
routeName: 'basic',
|
|
1224
|
+
// Don't hide this by default - see the registration later to hide the basic
|
|
1225
|
+
// instance by default.
|
|
1226
|
+
hide: false,
|
|
1227
|
+
displayName: 'Non-Longitudinal Basic',
|
|
1228
|
+
_activatePanelTriggersSubscriptions: [],
|
|
1229
|
+
toolbarSections,
|
|
1230
|
+
/**
|
|
1231
|
+
* Lifecycle hooks
|
|
1232
|
+
*/
|
|
1233
|
+
onModeEnter,
|
|
1234
|
+
onModeExit,
|
|
1235
|
+
validationTags: {
|
|
1236
|
+
study: [],
|
|
1237
|
+
series: []
|
|
1238
|
+
},
|
|
1239
|
+
isValidMode,
|
|
1240
|
+
routes: [basicRoute],
|
|
1241
|
+
extensions: extensionDependencies,
|
|
1242
|
+
// Default protocol gets self-registered by default in the init
|
|
1243
|
+
hangingProtocol: 'default',
|
|
1244
|
+
// Order is important in sop class handlers when two handlers both use
|
|
1245
|
+
// the same sop class under different situations. In that case, the more
|
|
1246
|
+
// general handler needs to come last. For this case, the dicomvideo must
|
|
1247
|
+
// come first to remove video transfer syntax before ohif uses images
|
|
1248
|
+
sopClassHandlers,
|
|
1249
|
+
toolbarButtons: src_toolbarButtons,
|
|
1250
|
+
enableSegmentationEdit: false,
|
|
1251
|
+
nonModeModalities: NON_IMAGE_MODALITIES
|
|
1252
|
+
};
|
|
1253
|
+
|
|
1254
|
+
/**
|
|
1255
|
+
* Creates a mode on this object, using immutability-helper to apply changes
|
|
1256
|
+
* from modeConfiguration into the modeInstance.
|
|
1257
|
+
*/
|
|
1258
|
+
function modeFactory({
|
|
1259
|
+
modeConfiguration
|
|
1260
|
+
}) {
|
|
1261
|
+
let modeInstance = this.modeInstance;
|
|
1262
|
+
if (modeConfiguration) {
|
|
1263
|
+
modeInstance = immutability_helper_default()(modeInstance, modeConfiguration);
|
|
1264
|
+
}
|
|
1265
|
+
return modeInstance;
|
|
1266
|
+
}
|
|
1198
1267
|
const mode = {
|
|
1199
1268
|
id: id,
|
|
1200
1269
|
modeFactory,
|
|
1270
|
+
modeInstance: {
|
|
1271
|
+
...modeInstance,
|
|
1272
|
+
hide: true
|
|
1273
|
+
},
|
|
1201
1274
|
extensionDependencies
|
|
1202
1275
|
};
|
|
1203
|
-
/* harmony default export */ const
|
|
1276
|
+
/* harmony default export */ const basic_src = (mode);
|
|
1204
1277
|
|
|
1205
1278
|
|
|
1206
1279
|
/***/ })
|
|
@@ -357,7 +357,7 @@ function useMeasurements({
|
|
|
357
357
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86326);
|
|
358
358
|
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62051);
|
|
359
359
|
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
|
|
360
|
-
/* harmony import */ var _ohif_core_src_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
360
|
+
/* harmony import */ var _ohif_core_src_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12968);
|
|
361
361
|
/* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(76569);
|
|
362
362
|
|
|
363
363
|
|
|
@@ -1482,7 +1482,7 @@ function getCustomizationData(customizationService) {
|
|
|
1482
1482
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86326);
|
|
1483
1483
|
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62051);
|
|
1484
1484
|
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
|
|
1485
|
-
/* harmony import */ var _ohif_core_src_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
1485
|
+
/* harmony import */ var _ohif_core_src_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12968);
|
|
1486
1486
|
/* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(76569);
|
|
1487
1487
|
|
|
1488
1488
|
|
|
@@ -1911,8 +1911,8 @@ function onCompletedCalibrationLine(servicesManager, csToolsEvent) {
|
|
|
1911
1911
|
});
|
|
1912
1912
|
});
|
|
1913
1913
|
}
|
|
1914
|
-
// EXTERNAL MODULE: ../../core/src/utils/index.ts +
|
|
1915
|
-
var utils = __webpack_require__(
|
|
1914
|
+
// EXTERNAL MODULE: ../../core/src/utils/index.ts + 30 modules
|
|
1915
|
+
var utils = __webpack_require__(12968);
|
|
1916
1916
|
;// ../../../extensions/cornerstone/src/tools/OverlayPlaneModuleProvider.ts
|
|
1917
1917
|
|
|
1918
1918
|
const _cachedOverlayMetadata = new Map();
|
|
@@ -998,8 +998,8 @@ const handleROIThresholding = async ({
|
|
|
998
998
|
segmentationService.addOrUpdateSegmentation(segmentation);
|
|
999
999
|
});
|
|
1000
1000
|
};
|
|
1001
|
-
// EXTERNAL MODULE: ../../core/src/utils/index.ts +
|
|
1002
|
-
var utils = __webpack_require__(
|
|
1001
|
+
// EXTERNAL MODULE: ../../core/src/utils/index.ts + 30 modules
|
|
1002
|
+
var utils = __webpack_require__(12968);
|
|
1003
1003
|
;// ../../../extensions/tmtv/src/Panels/PanelROIThresholdSegmentation/PanelROIThresholdExport.tsx
|
|
1004
1004
|
|
|
1005
1005
|
|