@ohif/app 3.8.0-beta.54 → 3.8.0-beta.56
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/{223.bundle.d4ac6ef2cfe47a9c4afc.js → 109.bundle.b4fee2a22b622839baf5.js} +50 -50
- package/dist/{471.bundle.eeb78105b59e688832a6.js → 121.bundle.8a4747e7280f7493f07f.js} +18 -18
- package/dist/{19.bundle.99b3819a5b7a6bd9394c.js → 155.bundle.c29eb80f89869abce330.js} +89 -89
- package/dist/{687.bundle.a6ee04b2e5fd5e5445b6.js → 164.bundle.db387d19f75dd737b9bd.js} +4 -4
- package/dist/17dd54813d5acc10bf8f.wasm +0 -0
- package/dist/{506.bundle.e243d2ef94ad3925c403.js → 188.bundle.dbe34be7a01e1d2eb815.js} +11 -11
- package/dist/{199.bundle.fdd939db52f25dc92071.js → 250.bundle.d0649631d09c928a102b.js} +43 -43
- package/dist/{965.bundle.67f3b1a05b5cbe521d62.js → 270.bundle.24c2dca618804cbc5933.js} +56 -56
- package/dist/{95.bundle.2236101be3cc36b322e8.js → 290.bundle.f14fb0cfd84a817704b6.js} +149 -35
- package/dist/{451.bundle.311cd3be9916e08450e9.js → 295.bundle.195776f4d6400701840b.js} +19 -20
- package/dist/{125.bundle.df666cb677e5a8982157.js → 297.bundle.81d63bb0b66d63df6d86.js} +4 -4
- package/dist/{613.bundle.9c0ad8fbe2c130862f6c.js → 317.bundle.43b405981747b1da99e1.js} +9 -9
- package/dist/{483.bundle.75d178137b66ccdbc9b0.js → 339.bundle.9dd2a6cfee0c8e78e08b.js} +66 -66
- package/dist/342.bundle.9cba26ae269724f08311.js +51866 -0
- package/dist/39.bundle.40deb7b1a56a61b60064.js +135203 -0
- package/dist/{466.bundle.93759a09e651f7b3c995.js → 50.bundle.c3cbd58149efffb8fe8d.js} +49 -49
- package/dist/{886.bundle.94a4536167d0f8cae1ae.js → 530.bundle.8784084927e0f61b058d.js} +23 -23
- package/dist/{250.bundle.577da106dd763c7bf9d0.js → 544.bundle.1502ae8187957cc5d7a5.js} +23 -23
- package/dist/{170.bundle.f343198e07760a7ead7d.js → 559.bundle.27406a40a15f23e9cbe0.js} +63 -63
- package/dist/{410.bundle.a348d8825d915c77d550.js → 594.bundle.47486e52801b56aef392.js} +11 -11
- package/dist/{661.bundle.949c984fe2f9f753b65c.js → 644.bundle.1e77691d2eeb96a423b0.js} +4 -4
- package/dist/{185.bundle.ff56990135b9136734cf.js → 68.bundle.ba70fc52febdf39a8a7a.js} +48 -48
- package/dist/{738.bundle.a68b638a4281ede90e1f.js → 704.bundle.99451fa50ffb2168489c.js} +195 -191
- package/dist/{359.bundle.ef640f0cee0493868d9d.js → 724.bundle.c7d66fb37bf5e9e3a2ef.js} +11 -11
- package/dist/{831.bundle.127a3064e8844d6d2c82.js → 726.bundle.2bdb443d1b5620d74e6e.js} +512 -512
- package/dist/{530.bundle.f904325ef4195d69ac0e.js → 835.bundle.4c0eaa2c1a427ee41817.js} +28 -28
- package/dist/{822.bundle.8b745e28bc9eb9afbc61.js → 862.bundle.5357c0d8b2fe9971a082.js} +18 -18
- package/dist/{181.bundle.aff453c348111303ceac.js → 889.bundle.d8fae421d8bfce626cf6.js} +36 -41
- package/dist/{281.bundle.fae344af5b015f837f25.js → 905.bundle.07e293bf89007e53ebfc.js} +9 -9
- package/dist/{814.bundle.0ec180d5b229f4e6406f.js → 907.bundle.ded7947e96dd1c71340a.js} +8 -8
- package/dist/{417.bundle.5c66801d23d0e98c00e6.js → 931.bundle.d270a1fda9a2836c3cc5.js} +25 -25
- package/dist/{686.bundle.62c827fe4f0d054c164e.js → 939.bundle.84ee0b844023d924a22b.js} +4 -4
- package/dist/{12.bundle.f8e4685ed24432735e1b.js → 961.bundle.527fd9c4c03417a323b6.js} +8 -8
- package/dist/{290.bundle.83733eacedfae557e8cf.js → 963.bundle.5d3306618aebb63887f5.js} +430 -200
- package/dist/{app.bundle.e97dc9a2b1087531aa22.js → app.bundle.72246bf7d821f3e37004.js} +184373 -170579
- package/dist/app.bundle.css +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/{dicom-microscopy-viewer.bundle.a7d5060eead13771e784.js → dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js} +3 -3
- package/dist/index.html +1 -1
- package/dist/polySeg.bundle.63a3d7bee3e0ec0651df.js +249 -0
- package/dist/sw.js +1 -1
- package/package.json +22 -19
- package/dist/202.bundle.495cba6bbee744cf8f72.js +0 -18239
- package/dist/23.bundle.9d989522a6e4fdcb9c72.js +0 -900
- /package/dist/{19.css → 155.css} +0 -0
- /package/dist/{579.css → 481.css} +0 -0
- /package/dist/{466.css → 50.css} +0 -0
- /package/dist/{250.css → 544.css} +0 -0
- /package/dist/{181.css → 889.css} +0 -0
- /package/dist/{290.css → 963.css} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[963],{
|
|
3
3
|
|
|
4
|
-
/***/
|
|
4
|
+
/***/ 34963:
|
|
5
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
6
|
|
|
7
7
|
// ESM COMPAT FLAG
|
|
@@ -24,7 +24,7 @@ __webpack_require__.d(utils_namespaceObject, {
|
|
|
24
24
|
getDisplayUnit: () => (utils_getDisplayUnit),
|
|
25
25
|
getFirstAnnotationSelected: () => (getFirstAnnotationSelected),
|
|
26
26
|
getHandlesFromPoints: () => (getHandlesFromPoints),
|
|
27
|
-
getSOPInstanceAttributes: () => (getSOPInstanceAttributes/* default */.
|
|
27
|
+
getSOPInstanceAttributes: () => (getSOPInstanceAttributes/* default */.A),
|
|
28
28
|
isAnnotationSelected: () => (isAnnotationSelected),
|
|
29
29
|
setAnnotationSelected: () => (setAnnotationSelected)
|
|
30
30
|
});
|
|
@@ -34,20 +34,20 @@ var types_namespaceObject = {};
|
|
|
34
34
|
__webpack_require__.r(types_namespaceObject);
|
|
35
35
|
|
|
36
36
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
37
|
-
var react = __webpack_require__(
|
|
38
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
|
|
39
|
-
var esm = __webpack_require__(
|
|
40
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
|
|
41
|
-
var dist_esm = __webpack_require__(
|
|
42
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
43
|
-
var src = __webpack_require__(
|
|
37
|
+
var react = __webpack_require__(41766);
|
|
38
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js
|
|
39
|
+
var esm = __webpack_require__(11953);
|
|
40
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/index.js
|
|
41
|
+
var dist_esm = __webpack_require__(39371);
|
|
42
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 66 modules
|
|
43
|
+
var src = __webpack_require__(14283);
|
|
44
44
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/streaming-image-volume-loader/dist/esm/index.js + 13 modules
|
|
45
|
-
var streaming_image_volume_loader_dist_esm = __webpack_require__(
|
|
45
|
+
var streaming_image_volume_loader_dist_esm = __webpack_require__(23722);
|
|
46
46
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/dicom-image-loader/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js
|
|
47
|
-
var cornerstoneDICOMImageLoader_min = __webpack_require__(
|
|
47
|
+
var cornerstoneDICOMImageLoader_min = __webpack_require__(54578);
|
|
48
48
|
var cornerstoneDICOMImageLoader_min_default = /*#__PURE__*/__webpack_require__.n(cornerstoneDICOMImageLoader_min);
|
|
49
49
|
// EXTERNAL MODULE: ../../../node_modules/dicom-parser/dist/dicomParser.min.js
|
|
50
|
-
var dicomParser_min = __webpack_require__(
|
|
50
|
+
var dicomParser_min = __webpack_require__(45561);
|
|
51
51
|
var dicomParser_min_default = /*#__PURE__*/__webpack_require__.n(dicomParser_min);
|
|
52
52
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/initWADOImageLoader.js
|
|
53
53
|
|
|
@@ -80,7 +80,7 @@ function initWebWorkers(appConfig) {
|
|
|
80
80
|
function initWADOImageLoader(userAuthenticationService, appConfig, extensionManager) {
|
|
81
81
|
(cornerstoneDICOMImageLoader_min_default()).external.cornerstone = esm;
|
|
82
82
|
(cornerstoneDICOMImageLoader_min_default()).external.dicomParser = (dicomParser_min_default());
|
|
83
|
-
registerVolumeLoader('cornerstoneStreamingImageVolume', streaming_image_volume_loader_dist_esm/* cornerstoneStreamingImageVolumeLoader */.
|
|
83
|
+
registerVolumeLoader('cornerstoneStreamingImageVolume', streaming_image_volume_loader_dist_esm/* cornerstoneStreamingImageVolumeLoader */.FC);
|
|
84
84
|
cornerstoneDICOMImageLoader_min_default().configure({
|
|
85
85
|
decodeConfig: {
|
|
86
86
|
// !! IMPORTANT !!
|
|
@@ -105,7 +105,7 @@ function initWADOImageLoader(userAuthenticationService, appConfig, extensionMana
|
|
|
105
105
|
return xhrRequestHeaders;
|
|
106
106
|
},
|
|
107
107
|
errorInterceptor: error => {
|
|
108
|
-
src/* errorHandler */.
|
|
108
|
+
src/* errorHandler */.r_.getHTTPErrorHandler(error);
|
|
109
109
|
}
|
|
110
110
|
});
|
|
111
111
|
initWebWorkers(appConfig);
|
|
@@ -120,7 +120,7 @@ function destroy() {
|
|
|
120
120
|
webWorkers.length = 0;
|
|
121
121
|
}
|
|
122
122
|
// EXTERNAL MODULE: ../../ui/src/index.js + 487 modules
|
|
123
|
-
var ui_src = __webpack_require__(
|
|
123
|
+
var ui_src = __webpack_require__(55395);
|
|
124
124
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/callInputDialog.tsx
|
|
125
125
|
|
|
126
126
|
|
|
@@ -170,7 +170,7 @@ function callInputDialog(uiDialogService, data, callback, isArrowAnnotateInputDi
|
|
|
170
170
|
centralize: true,
|
|
171
171
|
isDraggable: false,
|
|
172
172
|
showOverlay: true,
|
|
173
|
-
content: ui_src/* Dialog */.
|
|
173
|
+
content: ui_src/* Dialog */.lG,
|
|
174
174
|
contentProps: {
|
|
175
175
|
title: dialogTitle,
|
|
176
176
|
value: {
|
|
@@ -183,18 +183,18 @@ function callInputDialog(uiDialogService, data, callback, isArrowAnnotateInputDi
|
|
|
183
183
|
actions: [{
|
|
184
184
|
id: 'cancel',
|
|
185
185
|
text: 'Cancel',
|
|
186
|
-
type: ui_src/* ButtonEnums.type */.
|
|
186
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.secondary
|
|
187
187
|
}, {
|
|
188
188
|
id: 'save',
|
|
189
189
|
text: 'Save',
|
|
190
|
-
type: ui_src/* ButtonEnums.type */.
|
|
190
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.primary
|
|
191
191
|
}],
|
|
192
192
|
onSubmit: onSubmitHandler,
|
|
193
193
|
body: ({
|
|
194
194
|
value,
|
|
195
195
|
setValue
|
|
196
196
|
}) => {
|
|
197
|
-
return /*#__PURE__*/react.createElement(ui_src/* Input */.
|
|
197
|
+
return /*#__PURE__*/react.createElement(ui_src/* Input */.pd, {
|
|
198
198
|
autoFocus: true,
|
|
199
199
|
className: "border-primary-main bg-black",
|
|
200
200
|
type: "text",
|
|
@@ -227,7 +227,7 @@ function callInputDialog(uiDialogService, data, callback, isArrowAnnotateInputDi
|
|
|
227
227
|
}
|
|
228
228
|
/* harmony default export */ const utils_callInputDialog = (callInputDialog);
|
|
229
229
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/state.ts
|
|
230
|
-
var state = __webpack_require__(
|
|
230
|
+
var state = __webpack_require__(71353);
|
|
231
231
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/getActiveViewportEnabledElement.ts
|
|
232
232
|
|
|
233
233
|
|
|
@@ -237,7 +237,7 @@ function getActiveViewportEnabledElement(viewportGridService) {
|
|
|
237
237
|
} = viewportGridService.getState();
|
|
238
238
|
const {
|
|
239
239
|
element
|
|
240
|
-
} = (0,state/* getEnabledElement */.
|
|
240
|
+
} = (0,state/* getEnabledElement */.kJ)(activeViewportId) || {};
|
|
241
241
|
const enabledElement = (0,esm.getEnabledElement)(element);
|
|
242
242
|
return enabledElement;
|
|
243
243
|
}
|
|
@@ -348,7 +348,7 @@ function onCompletedCalibrationLine(servicesManager, csToolsEvent) {
|
|
|
348
348
|
});
|
|
349
349
|
}
|
|
350
350
|
// EXTERNAL MODULE: ../../core/src/utils/index.js + 26 modules
|
|
351
|
-
var utils = __webpack_require__(
|
|
351
|
+
var utils = __webpack_require__(17541);
|
|
352
352
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/tools/OverlayPlaneModuleProvider.ts
|
|
353
353
|
|
|
354
354
|
const _cachedOverlayMetadata = new Map();
|
|
@@ -522,7 +522,7 @@ class ImageOverlayViewerTool extends dist_esm.AnnotationDisplayTool {
|
|
|
522
522
|
} else if (overlay.pixelData.retrieveBulkData) {
|
|
523
523
|
pixelData = await overlay.pixelData.retrieveBulkData();
|
|
524
524
|
} else if (overlay.pixelData.InlineBinary) {
|
|
525
|
-
const blob = (0,utils/* b64toBlob */.
|
|
525
|
+
const blob = (0,utils/* b64toBlob */.Vk)(overlay.pixelData.InlineBinary);
|
|
526
526
|
const arrayBuffer = await blob.arrayBuffer();
|
|
527
527
|
pixelData = arrayBuffer;
|
|
528
528
|
}
|
|
@@ -535,7 +535,7 @@ class ImageOverlayViewerTool extends dist_esm.AnnotationDisplayTool {
|
|
|
535
535
|
}, overlay.color || color, pixelData);
|
|
536
536
|
return {
|
|
537
537
|
...overlay,
|
|
538
|
-
_id: (0,utils/* guid */.
|
|
538
|
+
_id: (0,utils/* guid */.Os)(),
|
|
539
539
|
dataUrl,
|
|
540
540
|
// this will be a data url expression of the rendered image
|
|
541
541
|
color
|
|
@@ -690,7 +690,7 @@ const toolNames = {
|
|
|
690
690
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js
|
|
691
691
|
/* harmony default export */ const supportedTools = (['Length', 'EllipticalROI', 'CircleROI', 'Bidirectional', 'ArrowAnnotate', 'Angle', 'CobbAngle', 'Probe', 'RectangleROI', 'PlanarFreehandROI']);
|
|
692
692
|
// EXTERNAL MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/utils/getSOPInstanceAttributes.js
|
|
693
|
-
var getSOPInstanceAttributes = __webpack_require__(
|
|
693
|
+
var getSOPInstanceAttributes = __webpack_require__(1663);
|
|
694
694
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/Length.ts
|
|
695
695
|
|
|
696
696
|
|
|
@@ -730,7 +730,7 @@ const Length = {
|
|
|
730
730
|
SOPInstanceUID,
|
|
731
731
|
SeriesInstanceUID,
|
|
732
732
|
StudyInstanceUID
|
|
733
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
733
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
|
|
734
734
|
let displaySet;
|
|
735
735
|
if (SOPInstanceUID) {
|
|
736
736
|
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
|
|
@@ -789,7 +789,7 @@ function getMappedAnnotations(annotation, displaySetService) {
|
|
|
789
789
|
SOPInstanceUID,
|
|
790
790
|
SeriesInstanceUID,
|
|
791
791
|
frameNumber
|
|
792
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
792
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
|
|
793
793
|
const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
|
|
794
794
|
const {
|
|
795
795
|
SeriesNumber
|
|
@@ -969,7 +969,7 @@ const Bidirectional = {
|
|
|
969
969
|
SOPInstanceUID,
|
|
970
970
|
SeriesInstanceUID,
|
|
971
971
|
StudyInstanceUID
|
|
972
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
972
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
|
|
973
973
|
let displaySet;
|
|
974
974
|
if (SOPInstanceUID) {
|
|
975
975
|
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
|
|
@@ -1029,7 +1029,7 @@ function Bidirectional_getMappedAnnotations(annotation, displaySetService) {
|
|
|
1029
1029
|
SOPInstanceUID,
|
|
1030
1030
|
SeriesInstanceUID,
|
|
1031
1031
|
frameNumber
|
|
1032
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1032
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
|
|
1033
1033
|
const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
|
|
1034
1034
|
const {
|
|
1035
1035
|
SeriesNumber
|
|
@@ -1152,7 +1152,7 @@ const EllipticalROI = {
|
|
|
1152
1152
|
SOPInstanceUID,
|
|
1153
1153
|
SeriesInstanceUID,
|
|
1154
1154
|
StudyInstanceUID
|
|
1155
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1155
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
|
|
1156
1156
|
let displaySet;
|
|
1157
1157
|
if (SOPInstanceUID) {
|
|
1158
1158
|
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
|
|
@@ -1212,7 +1212,7 @@ function EllipticalROI_getMappedAnnotations(annotation, displaySetService) {
|
|
|
1212
1212
|
SOPInstanceUID,
|
|
1213
1213
|
SeriesInstanceUID,
|
|
1214
1214
|
frameNumber
|
|
1215
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1215
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
|
|
1216
1216
|
const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
|
|
1217
1217
|
const {
|
|
1218
1218
|
SeriesNumber
|
|
@@ -1363,7 +1363,7 @@ const CircleROI = {
|
|
|
1363
1363
|
SOPInstanceUID,
|
|
1364
1364
|
SeriesInstanceUID,
|
|
1365
1365
|
StudyInstanceUID
|
|
1366
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1366
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
|
|
1367
1367
|
let displaySet;
|
|
1368
1368
|
if (SOPInstanceUID) {
|
|
1369
1369
|
displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
|
|
@@ -1423,7 +1423,7 @@ function CircleROI_getMappedAnnotations(annotation, DisplaySetService) {
|
|
|
1423
1423
|
SOPInstanceUID,
|
|
1424
1424
|
SeriesInstanceUID,
|
|
1425
1425
|
frameNumber
|
|
1426
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1426
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
|
|
1427
1427
|
const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
|
|
1428
1428
|
const {
|
|
1429
1429
|
SeriesNumber
|
|
@@ -1580,7 +1580,7 @@ const ArrowAnnotate_Length = {
|
|
|
1580
1580
|
SOPInstanceUID,
|
|
1581
1581
|
SeriesInstanceUID,
|
|
1582
1582
|
StudyInstanceUID
|
|
1583
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1583
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, cornerstoneViewportService, viewportId);
|
|
1584
1584
|
let displaySet;
|
|
1585
1585
|
if (SOPInstanceUID) {
|
|
1586
1586
|
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
|
|
@@ -1631,7 +1631,7 @@ function ArrowAnnotate_getMappedAnnotations(annotation, displaySetService) {
|
|
|
1631
1631
|
SOPInstanceUID,
|
|
1632
1632
|
SeriesInstanceUID,
|
|
1633
1633
|
frameNumber
|
|
1634
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1634
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
|
|
1635
1635
|
const displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
|
|
1636
1636
|
const {
|
|
1637
1637
|
SeriesNumber
|
|
@@ -1708,7 +1708,7 @@ const CobbAngle = {
|
|
|
1708
1708
|
SOPInstanceUID,
|
|
1709
1709
|
SeriesInstanceUID,
|
|
1710
1710
|
StudyInstanceUID
|
|
1711
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1711
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
|
|
1712
1712
|
let displaySet;
|
|
1713
1713
|
if (SOPInstanceUID) {
|
|
1714
1714
|
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
|
|
@@ -1767,7 +1767,7 @@ function CobbAngle_getMappedAnnotations(annotation, DisplaySetService) {
|
|
|
1767
1767
|
SOPInstanceUID,
|
|
1768
1768
|
SeriesInstanceUID,
|
|
1769
1769
|
frameNumber
|
|
1770
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1770
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
|
|
1771
1771
|
const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
|
|
1772
1772
|
const {
|
|
1773
1773
|
SeriesNumber
|
|
@@ -1893,7 +1893,7 @@ const Angle = {
|
|
|
1893
1893
|
SOPInstanceUID,
|
|
1894
1894
|
SeriesInstanceUID,
|
|
1895
1895
|
StudyInstanceUID
|
|
1896
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1896
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
|
|
1897
1897
|
let displaySet;
|
|
1898
1898
|
if (SOPInstanceUID) {
|
|
1899
1899
|
displaySet = displaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
|
|
@@ -1952,7 +1952,7 @@ function Angle_getMappedAnnotations(annotation, DisplaySetService) {
|
|
|
1952
1952
|
SOPInstanceUID,
|
|
1953
1953
|
SeriesInstanceUID,
|
|
1954
1954
|
frameNumber
|
|
1955
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
1955
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
|
|
1956
1956
|
const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
|
|
1957
1957
|
const {
|
|
1958
1958
|
SeriesNumber
|
|
@@ -2076,7 +2076,7 @@ const PlanarFreehandROI = {
|
|
|
2076
2076
|
SOPInstanceUID,
|
|
2077
2077
|
SeriesInstanceUID,
|
|
2078
2078
|
StudyInstanceUID
|
|
2079
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
2079
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
|
|
2080
2080
|
let displaySet;
|
|
2081
2081
|
if (SOPInstanceUID) {
|
|
2082
2082
|
displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
|
|
@@ -2135,7 +2135,7 @@ function PlanarFreehandROI_getMappedAnnotations(annotationData, DisplaySetServic
|
|
|
2135
2135
|
const {
|
|
2136
2136
|
SOPInstanceUID: _SOPInstanceUID,
|
|
2137
2137
|
SeriesInstanceUID: _SeriesInstanceUID
|
|
2138
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
2138
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId) || {};
|
|
2139
2139
|
if (!_SOPInstanceUID || !_SeriesInstanceUID) {
|
|
2140
2140
|
return annotations;
|
|
2141
2141
|
}
|
|
@@ -2208,7 +2208,7 @@ const RectangleROI = {
|
|
|
2208
2208
|
SOPInstanceUID,
|
|
2209
2209
|
SeriesInstanceUID,
|
|
2210
2210
|
StudyInstanceUID
|
|
2211
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
2211
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId, CornerstoneViewportService, viewportId);
|
|
2212
2212
|
let displaySet;
|
|
2213
2213
|
if (SOPInstanceUID) {
|
|
2214
2214
|
displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID);
|
|
@@ -2268,7 +2268,7 @@ function RectangleROI_getMappedAnnotations(annotation, DisplaySetService) {
|
|
|
2268
2268
|
SOPInstanceUID,
|
|
2269
2269
|
SeriesInstanceUID,
|
|
2270
2270
|
frameNumber
|
|
2271
|
-
} = (0,getSOPInstanceAttributes/* default */.
|
|
2271
|
+
} = (0,getSOPInstanceAttributes/* default */.A)(referencedImageId);
|
|
2272
2272
|
const displaySet = DisplaySetService.getDisplaySetForSOPInstanceUID(SOPInstanceUID, SeriesInstanceUID, frameNumber);
|
|
2273
2273
|
const {
|
|
2274
2274
|
SeriesNumber
|
|
@@ -2768,7 +2768,7 @@ const connectMeasurementServiceToTools = (measurementService, cornerstoneViewpor
|
|
|
2768
2768
|
let frameNumber = 1;
|
|
2769
2769
|
if (measurement?.metadata?.referencedImageId) {
|
|
2770
2770
|
imageId = measurement.metadata.referencedImageId;
|
|
2771
|
-
frameNumber = (0,getSOPInstanceAttributes/* default */.
|
|
2771
|
+
frameNumber = (0,getSOPInstanceAttributes/* default */.A)(measurement.metadata.referencedImageId).frameNumber;
|
|
2772
2772
|
} else {
|
|
2773
2773
|
imageId = dataSource.getImageIdsForInstance({
|
|
2774
2774
|
instance
|
|
@@ -2880,7 +2880,7 @@ function getInterleavedFrames(imageIds) {
|
|
|
2880
2880
|
return imageIdsToPrefetch;
|
|
2881
2881
|
}
|
|
2882
2882
|
// EXTERNAL MODULE: ../../../node_modules/lodash/lodash.js
|
|
2883
|
-
var lodash = __webpack_require__(
|
|
2883
|
+
var lodash = __webpack_require__(5517);
|
|
2884
2884
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/interleaveCenterLoader.ts
|
|
2885
2885
|
|
|
2886
2886
|
|
|
@@ -3413,7 +3413,7 @@ function initContextMenu({
|
|
|
3413
3413
|
return;
|
|
3414
3414
|
}
|
|
3415
3415
|
// TODO check update upstream
|
|
3416
|
-
(0,state/* setEnabledElement */.
|
|
3416
|
+
(0,state/* setEnabledElement */.ye)(viewportId, element);
|
|
3417
3417
|
element.addEventListener(cs3DToolsEvents.MOUSE_CLICK, cornerstoneViewportHandleClick);
|
|
3418
3418
|
}
|
|
3419
3419
|
function elementDisabledHandler(evt) {
|
|
@@ -3498,10 +3498,7 @@ function initDoubleClick({
|
|
|
3498
3498
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/initViewTiming.ts
|
|
3499
3499
|
|
|
3500
3500
|
|
|
3501
|
-
const
|
|
3502
|
-
TimingEnum
|
|
3503
|
-
} = src.Types;
|
|
3504
|
-
const IMAGE_TIMING_KEYS = [TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES, TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE, TimingEnum.STUDY_TO_FIRST_IMAGE];
|
|
3501
|
+
const IMAGE_TIMING_KEYS = [];
|
|
3505
3502
|
const imageTiming = {
|
|
3506
3503
|
viewportsWaiting: 0
|
|
3507
3504
|
};
|
|
@@ -3518,7 +3515,15 @@ const imageTiming = {
|
|
|
3518
3515
|
function initViewTiming({
|
|
3519
3516
|
element
|
|
3520
3517
|
}) {
|
|
3521
|
-
if (!IMAGE_TIMING_KEYS.
|
|
3518
|
+
if (!IMAGE_TIMING_KEYS.length) {
|
|
3519
|
+
// Work around a bug in WebPack that doesn't getting the enums initialized
|
|
3520
|
+
// quite fast enough to be declared statically.
|
|
3521
|
+
const {
|
|
3522
|
+
TimingEnum
|
|
3523
|
+
} = src.Enums;
|
|
3524
|
+
IMAGE_TIMING_KEYS.push(TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES, TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE, TimingEnum.STUDY_TO_FIRST_IMAGE);
|
|
3525
|
+
}
|
|
3526
|
+
if (!IMAGE_TIMING_KEYS.find(key => src/* log */.Rm.timingKeys[key])) {
|
|
3522
3527
|
return;
|
|
3523
3528
|
}
|
|
3524
3529
|
imageTiming.viewportsWaiting += 1;
|
|
@@ -3528,13 +3533,16 @@ function imageRenderedListener(evt) {
|
|
|
3528
3533
|
if (evt.detail.viewportStatus === 'preRender') {
|
|
3529
3534
|
return;
|
|
3530
3535
|
}
|
|
3531
|
-
|
|
3532
|
-
|
|
3533
|
-
|
|
3536
|
+
const {
|
|
3537
|
+
TimingEnum
|
|
3538
|
+
} = src.Enums;
|
|
3539
|
+
src/* log */.Rm.timeEnd(TimingEnum.DISPLAY_SETS_TO_FIRST_IMAGE);
|
|
3540
|
+
src/* log */.Rm.timeEnd(TimingEnum.STUDY_TO_FIRST_IMAGE);
|
|
3541
|
+
src/* log */.Rm.timeEnd(TimingEnum.SCRIPT_TO_VIEW);
|
|
3534
3542
|
imageTiming.viewportsWaiting -= 1;
|
|
3535
3543
|
evt.detail.element.removeEventListener(esm.EVENTS.IMAGE_RENDERED, imageRenderedListener);
|
|
3536
3544
|
if (!imageTiming.viewportsWaiting) {
|
|
3537
|
-
src/* log */.
|
|
3545
|
+
src/* log */.Rm.timeEnd(TimingEnum.DISPLAY_SETS_TO_ALL_IMAGES);
|
|
3538
3546
|
}
|
|
3539
3547
|
}
|
|
3540
3548
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/init.tsx
|
|
@@ -3664,8 +3672,8 @@ async function init({
|
|
|
3664
3672
|
outlineOpacity: 1,
|
|
3665
3673
|
outlineOpacityInactive: 0.65
|
|
3666
3674
|
});
|
|
3667
|
-
const metadataProvider = src
|
|
3668
|
-
esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingImageVolume', streaming_image_volume_loader_dist_esm/* cornerstoneStreamingImageVolumeLoader */.
|
|
3675
|
+
const metadataProvider = src/* default.classes */.Ay.classes.MetadataProvider;
|
|
3676
|
+
esm.volumeLoader.registerVolumeLoader('cornerstoneStreamingImageVolume', streaming_image_volume_loader_dist_esm/* cornerstoneStreamingImageVolumeLoader */.FC);
|
|
3669
3677
|
hangingProtocolService.registerImageLoadStrategy('interleaveCenter', interleaveCenterLoader);
|
|
3670
3678
|
hangingProtocolService.registerImageLoadStrategy('interleaveTopToBottom', interleaveTopToBottom);
|
|
3671
3679
|
hangingProtocolService.registerImageLoadStrategy('nth', interleaveNthLoader);
|
|
@@ -3704,6 +3712,16 @@ async function init({
|
|
|
3704
3712
|
cornerstoneViewportService.setVolumesForViewport(viewport, volumeInputArray, presentations);
|
|
3705
3713
|
}
|
|
3706
3714
|
});
|
|
3715
|
+
|
|
3716
|
+
// resize the cornerstone viewport service when the grid size changes
|
|
3717
|
+
// IMPORTANT: this should happen outside of the OHIFCornerstoneViewport
|
|
3718
|
+
// since it will trigger a rerender of each viewport and each resizing
|
|
3719
|
+
// the offscreen canvas which would result in a performance hit, this should
|
|
3720
|
+
// done only once per grid resize here. Doing it once here, allows us to reduce
|
|
3721
|
+
// the refreshRage(in ms) to 10 from 50. I tried with even 1 or 5 ms it worked fine
|
|
3722
|
+
viewportGridService.subscribe(viewportGridService.EVENTS.GRID_SIZE_CHANGED, () => {
|
|
3723
|
+
cornerstoneViewportService.resize(true);
|
|
3724
|
+
});
|
|
3707
3725
|
src_initContextMenu({
|
|
3708
3726
|
cornerstoneViewportService,
|
|
3709
3727
|
customizationService,
|
|
@@ -3767,7 +3785,7 @@ async function init({
|
|
|
3767
3785
|
const imageLoadFailedHandler = ({
|
|
3768
3786
|
detail
|
|
3769
3787
|
}) => {
|
|
3770
|
-
const handler = src/* errorHandler */.
|
|
3788
|
+
const handler = src/* errorHandler */.r_.getHTTPErrorHandler();
|
|
3771
3789
|
handler(detail.error);
|
|
3772
3790
|
};
|
|
3773
3791
|
const resetCrosshairs = evt => {
|
|
@@ -3849,12 +3867,12 @@ function _showCPURenderingModal(uiModalService, hangingProtocolService) {
|
|
|
3849
3867
|
});
|
|
3850
3868
|
}
|
|
3851
3869
|
// EXTERNAL MODULE: ../../../node_modules/react-dropzone/dist/es/index.js + 5 modules
|
|
3852
|
-
var es = __webpack_require__(
|
|
3870
|
+
var es = __webpack_require__(5013);
|
|
3853
3871
|
// EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
|
|
3854
|
-
var prop_types = __webpack_require__(
|
|
3872
|
+
var prop_types = __webpack_require__(11374);
|
|
3855
3873
|
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
|
3856
3874
|
// EXTERNAL MODULE: ../../../node_modules/classnames/index.js
|
|
3857
|
-
var classnames = __webpack_require__(
|
|
3875
|
+
var classnames = __webpack_require__(61466);
|
|
3858
3876
|
var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);
|
|
3859
3877
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/DicomFileUploader.ts
|
|
3860
3878
|
|
|
@@ -3878,7 +3896,7 @@ class UploadRejection {
|
|
|
3878
3896
|
this.status = status;
|
|
3879
3897
|
}
|
|
3880
3898
|
}
|
|
3881
|
-
class DicomFileUploader extends src/* PubSubService */.
|
|
3899
|
+
class DicomFileUploader extends src/* PubSubService */.Rc {
|
|
3882
3900
|
constructor(file, dataSource) {
|
|
3883
3901
|
super(EVENTS);
|
|
3884
3902
|
this._file = void 0;
|
|
@@ -4042,20 +4060,20 @@ const DicomUploadProgressItem = /*#__PURE__*/(0,react.memo)(({
|
|
|
4042
4060
|
const getStatusIcon = () => {
|
|
4043
4061
|
switch (dicomFileUploader.getStatus()) {
|
|
4044
4062
|
case UploadStatus.Success:
|
|
4045
|
-
return /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
4063
|
+
return /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
4046
4064
|
name: "status-tracked",
|
|
4047
4065
|
className: "text-primary-light"
|
|
4048
4066
|
});
|
|
4049
4067
|
case UploadStatus.InProgress:
|
|
4050
|
-
return /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
4068
|
+
return /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
4051
4069
|
name: "icon-transferring"
|
|
4052
4070
|
});
|
|
4053
4071
|
case UploadStatus.Failed:
|
|
4054
|
-
return /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
4072
|
+
return /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
4055
4073
|
name: "icon-alert-small"
|
|
4056
4074
|
});
|
|
4057
4075
|
case UploadStatus.Cancelled:
|
|
4058
|
-
return /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
4076
|
+
return /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
4059
4077
|
name: "icon-alert-outline"
|
|
4060
4078
|
});
|
|
4061
4079
|
default:
|
|
@@ -4080,7 +4098,7 @@ const DicomUploadProgressItem = /*#__PURE__*/(0,react.memo)(({
|
|
|
4080
4098
|
className: "w-10 text-right"
|
|
4081
4099
|
}, percentComplete, "%"), /*#__PURE__*/react.createElement("div", {
|
|
4082
4100
|
className: "ml-auto flex cursor-pointer"
|
|
4083
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
4101
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
4084
4102
|
className: "text-primary-active self-center",
|
|
4085
4103
|
name: "close",
|
|
4086
4104
|
onClick: cancelUpload
|
|
@@ -4310,7 +4328,7 @@ function DicomUploadProgress({
|
|
|
4310
4328
|
className: "bg-primary-dark flex h-14 items-center px-1 pb-4 text-lg"
|
|
4311
4329
|
}, numFilesCompleted === dicomFileUploaderArr.length ? /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("span", {
|
|
4312
4330
|
className: NO_WRAP_ELLIPSIS_CLASS_NAMES
|
|
4313
|
-
}, `${dicomFileUploaderArr.length} ${dicomFileUploaderArr.length > 1 ? 'files' : 'file'} completed.`), /*#__PURE__*/react.createElement(ui_src/* Button
|
|
4331
|
+
}, `${dicomFileUploaderArr.length} ${dicomFileUploaderArr.length > 1 ? 'files' : 'file'} completed.`), /*#__PURE__*/react.createElement(ui_src/* Button */.$n, {
|
|
4314
4332
|
disabled: false,
|
|
4315
4333
|
className: "ml-auto",
|
|
4316
4334
|
onClick: onComplete
|
|
@@ -4331,7 +4349,7 @@ function DicomUploadProgress({
|
|
|
4331
4349
|
className: "ml-auto flex w-6 justify-center"
|
|
4332
4350
|
}, numFails > 0 && /*#__PURE__*/react.createElement("div", {
|
|
4333
4351
|
onClick: () => setShowFailedOnly(currentShowFailedOnly => !currentShowFailedOnly)
|
|
4334
|
-
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.
|
|
4352
|
+
}, /*#__PURE__*/react.createElement(ui_src/* Icon */.In, {
|
|
4335
4353
|
className: "cursor-pointer",
|
|
4336
4354
|
name: "icon-status-alert"
|
|
4337
4355
|
})));
|
|
@@ -4346,7 +4364,7 @@ function DicomUploadProgress({
|
|
|
4346
4364
|
}, numFails > 0 ? `Completed with ${numFails} ${numFails > 1 ? 'errors' : 'error'}!` : 'Completed!'), getShowFailedOnlyIconComponent()) : /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
4347
4365
|
ref: progressBarContainerRef,
|
|
4348
4366
|
className: "flex-grow"
|
|
4349
|
-
}, /*#__PURE__*/react.createElement(ui_src/* ProgressLoadingBar */.
|
|
4367
|
+
}, /*#__PURE__*/react.createElement(ui_src/* ProgressLoadingBar */.dD, {
|
|
4350
4368
|
progress: showInfiniteProgressBar() ? undefined : Math.min(100, percentComplete)
|
|
4351
4369
|
})), /*#__PURE__*/react.createElement("div", {
|
|
4352
4370
|
className: "ml-1 flex w-24 items-center"
|
|
@@ -4395,7 +4413,7 @@ function DicomUpload({
|
|
|
4395
4413
|
setDicomFileUploaderArr(acceptedFiles.map(file => new DicomFileUploader(file, dataSource)));
|
|
4396
4414
|
}, []);
|
|
4397
4415
|
const getDropZoneComponent = () => {
|
|
4398
|
-
return /*#__PURE__*/react.createElement(es/* default */.
|
|
4416
|
+
return /*#__PURE__*/react.createElement(es/* default */.A, {
|
|
4399
4417
|
onDrop: acceptedFiles => {
|
|
4400
4418
|
onDrop(acceptedFiles);
|
|
4401
4419
|
},
|
|
@@ -4406,23 +4424,23 @@ function DicomUpload({
|
|
|
4406
4424
|
className: "dicom-upload-drop-area-border-dash m-5 flex h-full flex-col items-center justify-center"
|
|
4407
4425
|
}), /*#__PURE__*/react.createElement("div", {
|
|
4408
4426
|
className: "flex gap-3"
|
|
4409
|
-
}, /*#__PURE__*/react.createElement(es/* default */.
|
|
4427
|
+
}, /*#__PURE__*/react.createElement(es/* default */.A, {
|
|
4410
4428
|
onDrop: onDrop,
|
|
4411
4429
|
noDrag: true
|
|
4412
4430
|
}, ({
|
|
4413
4431
|
getRootProps,
|
|
4414
4432
|
getInputProps
|
|
4415
|
-
}) => /*#__PURE__*/react.createElement("div", getRootProps(), /*#__PURE__*/react.createElement(ui_src/* Button
|
|
4433
|
+
}) => /*#__PURE__*/react.createElement("div", getRootProps(), /*#__PURE__*/react.createElement(ui_src/* Button */.$n, {
|
|
4416
4434
|
disabled: false,
|
|
4417
4435
|
onClick: () => {}
|
|
4418
|
-
}, 'Add files', /*#__PURE__*/react.createElement("input", getInputProps())))), /*#__PURE__*/react.createElement(es/* default */.
|
|
4436
|
+
}, 'Add files', /*#__PURE__*/react.createElement("input", getInputProps())))), /*#__PURE__*/react.createElement(es/* default */.A, {
|
|
4419
4437
|
onDrop: onDrop,
|
|
4420
4438
|
noDrag: true
|
|
4421
4439
|
}, ({
|
|
4422
4440
|
getRootProps,
|
|
4423
4441
|
getInputProps
|
|
4424
|
-
}) => /*#__PURE__*/react.createElement("div", getRootProps(), /*#__PURE__*/react.createElement(ui_src/* Button
|
|
4425
|
-
type: ui_src/* ButtonEnums.type */.
|
|
4442
|
+
}) => /*#__PURE__*/react.createElement("div", getRootProps(), /*#__PURE__*/react.createElement(ui_src/* Button */.$n, {
|
|
4443
|
+
type: ui_src/* ButtonEnums.type */.Ny.NW.secondary,
|
|
4426
4444
|
disabled: false,
|
|
4427
4445
|
onClick: () => {}
|
|
4428
4446
|
}, 'Add folder', /*#__PURE__*/react.createElement("input", _extends({}, getInputProps(), {
|
|
@@ -4493,10 +4511,10 @@ function getCustomizationModule() {
|
|
|
4493
4511
|
}];
|
|
4494
4512
|
}
|
|
4495
4513
|
/* harmony default export */ const src_getCustomizationModule = (getCustomizationModule);
|
|
4496
|
-
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js
|
|
4497
|
-
var gl_matrix_esm = __webpack_require__(
|
|
4514
|
+
// EXTERNAL MODULE: ../../../node_modules/gl-matrix/esm/index.js
|
|
4515
|
+
var gl_matrix_esm = __webpack_require__(84822);
|
|
4498
4516
|
// EXTERNAL MODULE: ../../../node_modules/html2canvas/dist/html2canvas.esm.js
|
|
4499
|
-
var html2canvas_esm = __webpack_require__(
|
|
4517
|
+
var html2canvas_esm = __webpack_require__(90445);
|
|
4500
4518
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/CornerstoneViewportDownloadForm.tsx
|
|
4501
4519
|
|
|
4502
4520
|
|
|
@@ -4514,7 +4532,7 @@ const CornerstoneViewportDownloadForm = ({
|
|
|
4514
4532
|
activeViewportId: activeViewportIdProp,
|
|
4515
4533
|
cornerstoneViewportService
|
|
4516
4534
|
}) => {
|
|
4517
|
-
const enabledElement = (0,state/* getEnabledElement */.
|
|
4535
|
+
const enabledElement = (0,state/* getEnabledElement */.kJ)(activeViewportIdProp);
|
|
4518
4536
|
const activeViewportElement = enabledElement?.element;
|
|
4519
4537
|
const activeViewportEnabledElement = (0,esm.getEnabledElement)(activeViewportElement);
|
|
4520
4538
|
const {
|
|
@@ -4591,6 +4609,7 @@ const CornerstoneViewportDownloadForm = ({
|
|
|
4591
4609
|
renderingEngine.resize();
|
|
4592
4610
|
|
|
4593
4611
|
// Trigger the render on the viewport to update the on screen
|
|
4612
|
+
downloadViewport.resetCamera();
|
|
4594
4613
|
downloadViewport.render();
|
|
4595
4614
|
downloadViewportElement.addEventListener(esm.Enums.Events.IMAGE_RENDERED, function updateViewport(event) {
|
|
4596
4615
|
const enabledElement = (0,esm.getEnabledElement)(event.target);
|
|
@@ -4697,19 +4716,18 @@ const CornerstoneViewportDownloadForm = ({
|
|
|
4697
4716
|
const downloadBlob = (filename, fileType) => {
|
|
4698
4717
|
const file = `${filename}.${fileType}`;
|
|
4699
4718
|
const divForDownloadViewport = document.querySelector(`div[data-viewport-uid="${VIEWPORT_ID}"]`);
|
|
4700
|
-
(0,html2canvas_esm/* default */.
|
|
4719
|
+
(0,html2canvas_esm/* default */.A)(divForDownloadViewport).then(canvas => {
|
|
4701
4720
|
const link = document.createElement('a');
|
|
4702
4721
|
link.download = file;
|
|
4703
4722
|
link.href = canvas.toDataURL(fileType, 1.0);
|
|
4704
4723
|
link.click();
|
|
4705
4724
|
});
|
|
4706
4725
|
};
|
|
4707
|
-
return /*#__PURE__*/react.createElement(ui_src/* ViewportDownloadForm */.
|
|
4726
|
+
return /*#__PURE__*/react.createElement(ui_src/* ViewportDownloadForm */.VS, {
|
|
4708
4727
|
onClose: onClose,
|
|
4709
4728
|
minimumSize: MINIMUM_SIZE,
|
|
4710
4729
|
maximumSize: MAX_TEXTURE_SIZE,
|
|
4711
4730
|
defaultSize: DEFAULT_SIZE,
|
|
4712
|
-
canvasClass: 'cornerstone-canvas',
|
|
4713
4731
|
activeViewportElement: activeViewportElement,
|
|
4714
4732
|
enableViewport: enableViewport,
|
|
4715
4733
|
disableViewport: disableViewport,
|
|
@@ -5200,9 +5218,9 @@ function commandsModule({
|
|
|
5200
5218
|
if (viewport instanceof esm.BaseVolumeViewport) {
|
|
5201
5219
|
const camera = viewport.getCamera();
|
|
5202
5220
|
const rotAngle = rotation * Math.PI / 180;
|
|
5203
|
-
const rotMat = gl_matrix_esm/* mat4.identity */.
|
|
5204
|
-
gl_matrix_esm/* mat4.rotate */.
|
|
5205
|
-
const rotatedViewUp = gl_matrix_esm/* vec3.transformMat4 */.
|
|
5221
|
+
const rotMat = gl_matrix_esm/* mat4.identity */.pB.identity(new Float32Array(16));
|
|
5222
|
+
gl_matrix_esm/* mat4.rotate */.pB.rotate(rotMat, rotMat, rotAngle, camera.viewPlaneNormal);
|
|
5223
|
+
const rotatedViewUp = gl_matrix_esm/* vec3.transformMat4 */.eR.transformMat4(gl_matrix_esm/* vec3.create */.eR.create(), camera.viewUp, rotMat);
|
|
5206
5224
|
viewport.setCamera({
|
|
5207
5225
|
viewUp: rotatedViewUp
|
|
5208
5226
|
});
|
|
@@ -6439,7 +6457,7 @@ class ToolGroupService {
|
|
|
6439
6457
|
this.viewportGridService = viewportGridService;
|
|
6440
6458
|
this.listeners = {};
|
|
6441
6459
|
this.EVENTS = ToolGroupService_EVENTS;
|
|
6442
|
-
Object.assign(this, src/* pubSubServiceInterface */.
|
|
6460
|
+
Object.assign(this, src/* pubSubServiceInterface */.Ml);
|
|
6443
6461
|
}
|
|
6444
6462
|
onModeExit() {
|
|
6445
6463
|
this.destroy();
|
|
@@ -6711,7 +6729,7 @@ class SyncGroupService {
|
|
|
6711
6729
|
this.listeners = {};
|
|
6712
6730
|
this.EVENTS = SyncGroupService_EVENTS;
|
|
6713
6731
|
//
|
|
6714
|
-
Object.assign(this, src/* pubSubServiceInterface */.
|
|
6732
|
+
Object.assign(this, src/* pubSubServiceInterface */.Ml);
|
|
6715
6733
|
}
|
|
6716
6734
|
_createSynchronizer(type, id, options) {
|
|
6717
6735
|
const syncCreator = this.synchronizerCreators[type.toLowerCase()];
|
|
@@ -6811,7 +6829,7 @@ SyncGroupService.REGISTRATION = {
|
|
|
6811
6829
|
|
|
6812
6830
|
/* harmony default export */ const services_SyncGroupService = (SyncGroupService);
|
|
6813
6831
|
// EXTERNAL MODULE: ../../../node_modules/lodash.isequal/index.js
|
|
6814
|
-
var lodash_isequal = __webpack_require__(
|
|
6832
|
+
var lodash_isequal = __webpack_require__(71932);
|
|
6815
6833
|
var lodash_isequal_default = /*#__PURE__*/__webpack_require__.n(lodash_isequal);
|
|
6816
6834
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/transitions.ts
|
|
6817
6835
|
/**
|
|
@@ -6926,7 +6944,7 @@ const SEGMENT_CONSTANT = {
|
|
|
6926
6944
|
isLocked: false
|
|
6927
6945
|
};
|
|
6928
6946
|
const VOLUME_LOADER_SCHEME = 'cornerstoneStreamingImageVolume';
|
|
6929
|
-
class SegmentationService extends src/* PubSubService */.
|
|
6947
|
+
class SegmentationService extends src/* PubSubService */.Rc {
|
|
6930
6948
|
constructor({
|
|
6931
6949
|
servicesManager
|
|
6932
6950
|
}) {
|
|
@@ -8806,6 +8824,12 @@ class ViewportInfo {
|
|
|
8806
8824
|
getViewportOptions() {
|
|
8807
8825
|
return this.viewportOptions;
|
|
8808
8826
|
}
|
|
8827
|
+
getPresentationIds() {
|
|
8828
|
+
const {
|
|
8829
|
+
presentationIds
|
|
8830
|
+
} = this.viewportOptions;
|
|
8831
|
+
return presentationIds;
|
|
8832
|
+
}
|
|
8809
8833
|
setDisplaySetOptions(displaySetOptions) {
|
|
8810
8834
|
this.displaySetOptions = displaySetOptions;
|
|
8811
8835
|
}
|
|
@@ -8892,18 +8916,23 @@ const CornerstoneViewportService_EVENTS = {
|
|
|
8892
8916
|
* Handles cornerstone viewport logic including enabling, disabling, and
|
|
8893
8917
|
* updating the viewport.
|
|
8894
8918
|
*/
|
|
8895
|
-
class CornerstoneViewportService extends src/* PubSubService */.
|
|
8919
|
+
class CornerstoneViewportService extends src/* PubSubService */.Rc {
|
|
8896
8920
|
constructor(servicesManager) {
|
|
8897
8921
|
super(CornerstoneViewportService_EVENTS);
|
|
8898
8922
|
this.renderingEngine = void 0;
|
|
8899
8923
|
this.viewportsById = new Map();
|
|
8900
8924
|
this.viewportGridResizeObserver = void 0;
|
|
8901
8925
|
this.viewportsDisplaySets = new Map();
|
|
8926
|
+
this.beforeResizePositionPresentations = new Map();
|
|
8902
8927
|
// Some configs
|
|
8903
8928
|
this.enableResizeDetector = void 0;
|
|
8904
8929
|
this.resizeRefreshRateMs = void 0;
|
|
8905
8930
|
this.resizeRefreshMode = void 0;
|
|
8906
8931
|
this.servicesManager = null;
|
|
8932
|
+
this.resizeQueue = [];
|
|
8933
|
+
this.viewportResizeTimer = null;
|
|
8934
|
+
this.gridResizeDelay = 50;
|
|
8935
|
+
this.gridResizeTimeOut = null;
|
|
8907
8936
|
this.renderingEngine = null;
|
|
8908
8937
|
this.viewportGridResizeObserver = null;
|
|
8909
8938
|
this.servicesManager = servicesManager;
|
|
@@ -8941,13 +8970,28 @@ class CornerstoneViewportService extends src/* PubSubService */.hC {
|
|
|
8941
8970
|
}
|
|
8942
8971
|
|
|
8943
8972
|
/**
|
|
8944
|
-
* It triggers the resize on the rendering engine
|
|
8973
|
+
* It triggers the resize on the rendering engine, and renders the viewports
|
|
8974
|
+
*
|
|
8975
|
+
* @param isGridResize - if the resize is triggered by a grid resize
|
|
8976
|
+
* this is used to avoid double resize of the viewports since if the
|
|
8977
|
+
* grid is resized, all viewports will be resized so there is no need
|
|
8978
|
+
* to resize them individually which will get triggered by their
|
|
8979
|
+
* individual resize observers
|
|
8945
8980
|
*/
|
|
8946
|
-
resize() {
|
|
8947
|
-
|
|
8948
|
-
|
|
8949
|
-
|
|
8950
|
-
|
|
8981
|
+
resize(isGridResize = false) {
|
|
8982
|
+
// if there is a grid resize happening, it means the viewport grid
|
|
8983
|
+
// has been manipulated (e.g., panels closed, added, etc.) and we need
|
|
8984
|
+
// to resize all viewports, so we will add a timeout here to make sure
|
|
8985
|
+
// we don't double resize the viewports when viewports in the grid are
|
|
8986
|
+
// resized individually
|
|
8987
|
+
if (isGridResize) {
|
|
8988
|
+
this.performResize();
|
|
8989
|
+
this.resetGridResizeTimeout();
|
|
8990
|
+
this.resizeQueue = [];
|
|
8991
|
+
clearTimeout(this.viewportResizeTimer);
|
|
8992
|
+
} else {
|
|
8993
|
+
this.enqueueViewportResizeRequest();
|
|
8994
|
+
}
|
|
8951
8995
|
}
|
|
8952
8996
|
|
|
8953
8997
|
/**
|
|
@@ -8983,101 +9027,222 @@ class CornerstoneViewportService extends src/* PubSubService */.hC {
|
|
|
8983
9027
|
this.viewportsById.delete(viewportId);
|
|
8984
9028
|
this.viewportsDisplaySets.delete(viewportId);
|
|
8985
9029
|
}
|
|
8986
|
-
|
|
8987
|
-
|
|
8988
|
-
|
|
8989
|
-
|
|
9030
|
+
|
|
9031
|
+
/**
|
|
9032
|
+
* Sets the presentations for a given viewport. Presentations is an object
|
|
9033
|
+
* that can define the lut or position for a viewport.
|
|
9034
|
+
*
|
|
9035
|
+
* @param viewportId - The ID of the viewport.
|
|
9036
|
+
* @param presentations - The presentations to apply to the viewport.
|
|
9037
|
+
*/
|
|
9038
|
+
setPresentations(viewportId, presentations) {
|
|
9039
|
+
const viewport = this.getCornerstoneViewport(viewportId);
|
|
9040
|
+
if (!viewport) {
|
|
9041
|
+
return;
|
|
9042
|
+
}
|
|
9043
|
+
if (!presentations) {
|
|
9044
|
+
return;
|
|
8990
9045
|
}
|
|
8991
|
-
const
|
|
8992
|
-
|
|
8993
|
-
|
|
9046
|
+
const {
|
|
9047
|
+
lutPresentation,
|
|
9048
|
+
positionPresentation
|
|
9049
|
+
} = presentations;
|
|
9050
|
+
if (lutPresentation) {
|
|
9051
|
+
const {
|
|
9052
|
+
presentation
|
|
9053
|
+
} = lutPresentation;
|
|
9054
|
+
if (viewport instanceof esm.BaseVolumeViewport) {
|
|
9055
|
+
Object.entries(presentation).forEach(([volumeId, properties]) => {
|
|
9056
|
+
viewport.setProperties(properties, volumeId);
|
|
9057
|
+
});
|
|
9058
|
+
} else {
|
|
9059
|
+
viewport.setProperties(presentation);
|
|
9060
|
+
}
|
|
9061
|
+
}
|
|
9062
|
+
if (positionPresentation) {
|
|
9063
|
+
const {
|
|
9064
|
+
viewPlaneNormal,
|
|
9065
|
+
viewUp,
|
|
9066
|
+
zoom,
|
|
9067
|
+
pan
|
|
9068
|
+
} = positionPresentation.presentation;
|
|
9069
|
+
viewport.setCamera({
|
|
9070
|
+
viewPlaneNormal,
|
|
9071
|
+
viewUp
|
|
9072
|
+
});
|
|
9073
|
+
if (zoom !== undefined) {
|
|
9074
|
+
viewport.setZoom(zoom);
|
|
9075
|
+
}
|
|
9076
|
+
if (pan !== undefined) {
|
|
9077
|
+
viewport.setPan(pan);
|
|
9078
|
+
}
|
|
8994
9079
|
}
|
|
8995
9080
|
}
|
|
8996
|
-
|
|
9081
|
+
|
|
9082
|
+
/**
|
|
9083
|
+
* Retrieves the position presentation information for a given viewport.
|
|
9084
|
+
* @param viewportId The ID of the viewport.
|
|
9085
|
+
* @returns The position presentation object containing various properties
|
|
9086
|
+
* such as ID, viewport type, initial image index, view plane normal, view up, zoom, and pan.
|
|
9087
|
+
*/
|
|
9088
|
+
getPositionPresentation(viewportId) {
|
|
8997
9089
|
const viewportInfo = this.viewportsById.get(viewportId);
|
|
8998
9090
|
if (!viewportInfo) {
|
|
8999
9091
|
return;
|
|
9000
9092
|
}
|
|
9093
|
+
const presentationIds = viewportInfo.getPresentationIds();
|
|
9094
|
+
if (!presentationIds) {
|
|
9095
|
+
return;
|
|
9096
|
+
}
|
|
9001
9097
|
const {
|
|
9002
|
-
|
|
9003
|
-
|
|
9004
|
-
} = viewportInfo.getViewportOptions();
|
|
9098
|
+
positionPresentationId
|
|
9099
|
+
} = presentationIds;
|
|
9005
9100
|
const csViewport = this.getCornerstoneViewport(viewportId);
|
|
9006
9101
|
if (!csViewport) {
|
|
9007
9102
|
return;
|
|
9008
9103
|
}
|
|
9009
|
-
const
|
|
9010
|
-
|
|
9011
|
-
|
|
9012
|
-
|
|
9013
|
-
}
|
|
9104
|
+
const {
|
|
9105
|
+
viewPlaneNormal,
|
|
9106
|
+
viewUp
|
|
9107
|
+
} = csViewport.getCamera();
|
|
9014
9108
|
const initialImageIndex = csViewport.getCurrentImageIdIndex();
|
|
9015
|
-
const
|
|
9109
|
+
const zoom = csViewport.getZoom();
|
|
9110
|
+
const pan = csViewport.getPan();
|
|
9016
9111
|
return {
|
|
9017
|
-
|
|
9018
|
-
viewportType:
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
|
|
9112
|
+
id: positionPresentationId,
|
|
9113
|
+
viewportType: viewportInfo.getViewportType(),
|
|
9114
|
+
presentation: {
|
|
9115
|
+
initialImageIndex,
|
|
9116
|
+
viewUp,
|
|
9117
|
+
viewPlaneNormal,
|
|
9118
|
+
zoom,
|
|
9119
|
+
pan
|
|
9120
|
+
}
|
|
9022
9121
|
};
|
|
9023
9122
|
}
|
|
9123
|
+
|
|
9124
|
+
/**
|
|
9125
|
+
* Retrieves the LUT (Lookup Table) presentation for a given viewport.
|
|
9126
|
+
* @param viewportId The ID of the viewport.
|
|
9127
|
+
* @returns The LUT presentation object, or undefined if the viewport does not exist.
|
|
9128
|
+
*/
|
|
9129
|
+
getLutPresentation(viewportId) {
|
|
9130
|
+
const viewportInfo = this.viewportsById.get(viewportId);
|
|
9131
|
+
if (!viewportInfo) {
|
|
9132
|
+
return;
|
|
9133
|
+
}
|
|
9134
|
+
const presentationIds = viewportInfo.getPresentationIds();
|
|
9135
|
+
if (!presentationIds) {
|
|
9136
|
+
return;
|
|
9137
|
+
}
|
|
9138
|
+
const {
|
|
9139
|
+
lutPresentationId
|
|
9140
|
+
} = presentationIds;
|
|
9141
|
+
const csViewport = this.getCornerstoneViewport(viewportId);
|
|
9142
|
+
if (!csViewport) {
|
|
9143
|
+
return;
|
|
9144
|
+
}
|
|
9145
|
+
const cleanProperties = properties => {
|
|
9146
|
+
if (properties.isComputedVOI) {
|
|
9147
|
+
delete properties.voiRange;
|
|
9148
|
+
delete properties.VOILUTFunction;
|
|
9149
|
+
}
|
|
9150
|
+
return properties;
|
|
9151
|
+
};
|
|
9152
|
+
const presentation = csViewport instanceof esm.BaseVolumeViewport ? new Map() : cleanProperties(csViewport.getProperties());
|
|
9153
|
+
if (presentation instanceof Map) {
|
|
9154
|
+
csViewport.getActors().forEach(({
|
|
9155
|
+
uid: volumeId
|
|
9156
|
+
}) => {
|
|
9157
|
+
const properties = cleanProperties(csViewport.getProperties(volumeId));
|
|
9158
|
+
presentation.set(volumeId, properties);
|
|
9159
|
+
});
|
|
9160
|
+
}
|
|
9161
|
+
return {
|
|
9162
|
+
id: lutPresentationId,
|
|
9163
|
+
viewportType: viewportInfo.getViewportType(),
|
|
9164
|
+
presentation
|
|
9165
|
+
};
|
|
9166
|
+
}
|
|
9167
|
+
|
|
9168
|
+
/**
|
|
9169
|
+
* Retrieves the presentations for a given viewport.
|
|
9170
|
+
* @param viewportId - The ID of the viewport.
|
|
9171
|
+
* @returns The presentations for the viewport.
|
|
9172
|
+
*/
|
|
9173
|
+
getPresentations(viewportId) {
|
|
9174
|
+
const viewportInfo = this.viewportsById.get(viewportId);
|
|
9175
|
+
if (!viewportInfo) {
|
|
9176
|
+
return;
|
|
9177
|
+
}
|
|
9178
|
+
const positionPresentation = this.getPositionPresentation(viewportId);
|
|
9179
|
+
const lutPresentation = this.getLutPresentation(viewportId);
|
|
9180
|
+
return {
|
|
9181
|
+
positionPresentation,
|
|
9182
|
+
lutPresentation
|
|
9183
|
+
};
|
|
9184
|
+
}
|
|
9185
|
+
|
|
9186
|
+
/**
|
|
9187
|
+
* Stores the presentation state for a given viewport inside the
|
|
9188
|
+
* stateSyncService. This is used to persist the presentation state
|
|
9189
|
+
* across different scenarios e.g., when the viewport is changing the
|
|
9190
|
+
* display set, or when the viewport is moving to a different layout.
|
|
9191
|
+
*
|
|
9192
|
+
* @param viewportId The ID of the viewport.
|
|
9193
|
+
*/
|
|
9024
9194
|
storePresentation({
|
|
9025
9195
|
viewportId
|
|
9026
9196
|
}) {
|
|
9027
|
-
|
|
9028
|
-
stateSyncService,
|
|
9029
|
-
syncGroupService
|
|
9030
|
-
} = this.servicesManager.services;
|
|
9031
|
-
let presentation;
|
|
9197
|
+
let presentations = null;
|
|
9032
9198
|
try {
|
|
9033
|
-
|
|
9199
|
+
presentations = this.getPresentations(viewportId);
|
|
9200
|
+
if (!presentations?.positionPresentation && !presentations?.lutPresentation) {
|
|
9201
|
+
return;
|
|
9202
|
+
}
|
|
9034
9203
|
} catch (error) {
|
|
9035
9204
|
console.warn(error);
|
|
9036
|
-
}
|
|
9037
|
-
if (!presentation || !presentation.presentationIds) {
|
|
9038
9205
|
return;
|
|
9039
9206
|
}
|
|
9207
|
+
const {
|
|
9208
|
+
stateSyncService,
|
|
9209
|
+
syncGroupService
|
|
9210
|
+
} = this.servicesManager.services;
|
|
9040
9211
|
const synchronizers = syncGroupService.getSynchronizersForViewport(viewportId, this.renderingEngine.id);
|
|
9041
9212
|
const {
|
|
9042
|
-
lutPresentationStore,
|
|
9043
9213
|
positionPresentationStore,
|
|
9044
|
-
synchronizersStore
|
|
9214
|
+
synchronizersStore,
|
|
9215
|
+
lutPresentationStore
|
|
9045
9216
|
} = stateSyncService.getState();
|
|
9046
9217
|
const {
|
|
9047
|
-
|
|
9048
|
-
|
|
9218
|
+
lutPresentation,
|
|
9219
|
+
positionPresentation
|
|
9220
|
+
} = presentations;
|
|
9049
9221
|
const {
|
|
9050
|
-
|
|
9051
|
-
|
|
9052
|
-
|
|
9053
|
-
|
|
9222
|
+
id: positionPresentationId
|
|
9223
|
+
} = positionPresentation;
|
|
9224
|
+
const {
|
|
9225
|
+
id: lutPresentationId
|
|
9226
|
+
} = lutPresentation;
|
|
9227
|
+
const updateStore = (store, id, value) => ({
|
|
9228
|
+
...store,
|
|
9229
|
+
[id]: value
|
|
9230
|
+
});
|
|
9231
|
+
const newState = {};
|
|
9054
9232
|
if (lutPresentationId) {
|
|
9055
|
-
|
|
9056
|
-
...lutPresentationStore,
|
|
9057
|
-
[lutPresentationId]: presentation
|
|
9058
|
-
};
|
|
9233
|
+
newState.lutPresentationStore = updateStore(lutPresentationStore, lutPresentationId, lutPresentation);
|
|
9059
9234
|
}
|
|
9060
9235
|
if (positionPresentationId) {
|
|
9061
|
-
|
|
9062
|
-
...positionPresentationStore,
|
|
9063
|
-
[positionPresentationId]: presentation
|
|
9064
|
-
};
|
|
9236
|
+
newState.positionPresentationStore = updateStore(positionPresentationStore, positionPresentationId, positionPresentation);
|
|
9065
9237
|
}
|
|
9066
9238
|
if (synchronizers?.length) {
|
|
9067
|
-
|
|
9068
|
-
|
|
9069
|
-
|
|
9070
|
-
|
|
9071
|
-
|
|
9072
|
-
return {
|
|
9073
|
-
id: synchronizer.id,
|
|
9074
|
-
sourceViewports: [...sourceViewports],
|
|
9075
|
-
targetViewports: [...targetViewports]
|
|
9076
|
-
};
|
|
9077
|
-
})
|
|
9078
|
-
};
|
|
9239
|
+
newState.synchronizersStore = updateStore(synchronizersStore, viewportId, synchronizers.map(synchronizer => ({
|
|
9240
|
+
id: synchronizer.id,
|
|
9241
|
+
sourceViewports: [...synchronizer.getSourceViewports()],
|
|
9242
|
+
targetViewports: [...synchronizer.getTargetViewports()]
|
|
9243
|
+
})));
|
|
9079
9244
|
}
|
|
9080
|
-
stateSyncService.store(
|
|
9245
|
+
stateSyncService.store(newState);
|
|
9081
9246
|
}
|
|
9082
9247
|
|
|
9083
9248
|
/**
|
|
@@ -9157,6 +9322,13 @@ class CornerstoneViewportService extends src/* PubSubService */.hC {
|
|
|
9157
9322
|
});
|
|
9158
9323
|
});
|
|
9159
9324
|
}
|
|
9325
|
+
|
|
9326
|
+
/**
|
|
9327
|
+
* Retrieves the Cornerstone viewport with the specified ID.
|
|
9328
|
+
*
|
|
9329
|
+
* @param viewportId - The ID of the viewport.
|
|
9330
|
+
* @returns The Cornerstone viewport object if found, otherwise null.
|
|
9331
|
+
*/
|
|
9160
9332
|
getCornerstoneViewport(viewportId) {
|
|
9161
9333
|
const viewportInfo = this.getViewportInfo(viewportId);
|
|
9162
9334
|
if (!viewportInfo || !this.renderingEngine || this.renderingEngine.hasBeenDestroyed) {
|
|
@@ -9165,10 +9337,40 @@ class CornerstoneViewportService extends src/* PubSubService */.hC {
|
|
|
9165
9337
|
const viewport = this.renderingEngine.getViewport(viewportId);
|
|
9166
9338
|
return viewport;
|
|
9167
9339
|
}
|
|
9340
|
+
|
|
9341
|
+
/**
|
|
9342
|
+
* Retrieves the viewport information for a given viewport ID. The viewport information
|
|
9343
|
+
* is the OHIF construct that holds different options and data for a given viewport and
|
|
9344
|
+
* is different from the cornerstone viewport.
|
|
9345
|
+
*
|
|
9346
|
+
* @param viewportId The ID of the viewport.
|
|
9347
|
+
* @returns The viewport information.
|
|
9348
|
+
*/
|
|
9168
9349
|
getViewportInfo(viewportId) {
|
|
9169
9350
|
return this.viewportsById.get(viewportId);
|
|
9170
9351
|
}
|
|
9171
|
-
|
|
9352
|
+
|
|
9353
|
+
/**
|
|
9354
|
+
* Looks through the viewports to see if the specified measurement can be
|
|
9355
|
+
* displayed in one of the viewports.
|
|
9356
|
+
*
|
|
9357
|
+
* @param measurement
|
|
9358
|
+
* The measurement that is desired to view.
|
|
9359
|
+
* @param activeViewportId - the index that was active at the time the jump
|
|
9360
|
+
* was initiated.
|
|
9361
|
+
* @return the viewportId that the measurement should be displayed in.
|
|
9362
|
+
*/
|
|
9363
|
+
getViewportIdToJump(activeViewportId, displaySetInstanceUID, cameraProps) {
|
|
9364
|
+
const viewportInfo = this.getViewportInfo(activeViewportId);
|
|
9365
|
+
const {
|
|
9366
|
+
referencedImageId
|
|
9367
|
+
} = cameraProps;
|
|
9368
|
+
if (viewportInfo?.contains(displaySetInstanceUID, referencedImageId)) {
|
|
9369
|
+
return activeViewportId;
|
|
9370
|
+
}
|
|
9371
|
+
return [...this.viewportsById.values()].find(viewportInfo => viewportInfo.contains(displaySetInstanceUID, referencedImageId))?.viewportId ?? null;
|
|
9372
|
+
}
|
|
9373
|
+
async _setStackViewport(viewport, viewportData, viewportInfo, presentations = {}) {
|
|
9172
9374
|
const displaySetOptions = viewportInfo.getDisplaySetOptions();
|
|
9173
9375
|
const {
|
|
9174
9376
|
imageIds,
|
|
@@ -9210,10 +9412,7 @@ class CornerstoneViewportService extends src/* PubSubService */.hC {
|
|
|
9210
9412
|
viewport.setProperties({
|
|
9211
9413
|
...properties
|
|
9212
9414
|
});
|
|
9213
|
-
|
|
9214
|
-
if (camera) {
|
|
9215
|
-
viewport.setCamera(camera);
|
|
9216
|
-
}
|
|
9415
|
+
this.setPresentations(viewport.id, presentations);
|
|
9217
9416
|
});
|
|
9218
9417
|
}
|
|
9219
9418
|
_getInitialImageIndexForViewport(viewportInfo, imageIds) {
|
|
@@ -9265,7 +9464,7 @@ class CornerstoneViewportService extends src/* PubSubService */.hC {
|
|
|
9265
9464
|
}
|
|
9266
9465
|
return 0;
|
|
9267
9466
|
}
|
|
9268
|
-
async _setVolumeViewport(viewport, viewportData, viewportInfo, presentations) {
|
|
9467
|
+
async _setVolumeViewport(viewport, viewportData, viewportInfo, presentations = {}) {
|
|
9269
9468
|
// TODO: We need to overhaul the way data sources work so requests can be made
|
|
9270
9469
|
// async. I think we should follow the image loader pattern which is async and
|
|
9271
9470
|
// has a cache behind it.
|
|
@@ -9376,7 +9575,7 @@ class CornerstoneViewportService extends src/* PubSubService */.hC {
|
|
|
9376
9575
|
}) => {
|
|
9377
9576
|
viewport.setProperties(properties, volumeId);
|
|
9378
9577
|
});
|
|
9379
|
-
this.setPresentations(viewport, presentations);
|
|
9578
|
+
this.setPresentations(viewport.id, presentations);
|
|
9380
9579
|
|
|
9381
9580
|
// load any secondary displaySets
|
|
9382
9581
|
const displaySetInstanceUIDs = this.viewportsDisplaySets.get(viewport.id);
|
|
@@ -9499,11 +9698,11 @@ class CornerstoneViewportService extends src/* PubSubService */.hC {
|
|
|
9499
9698
|
_setDisplaySets(viewport, viewportData, viewportInfo, presentations = {}) {
|
|
9500
9699
|
if (viewport instanceof esm.StackViewport) {
|
|
9501
9700
|
return this._setStackViewport(viewport, viewportData, viewportInfo, presentations);
|
|
9502
|
-
}
|
|
9701
|
+
}
|
|
9702
|
+
if ([esm.VolumeViewport, esm.VolumeViewport3D].some(type => viewport instanceof type)) {
|
|
9503
9703
|
return this._setVolumeViewport(viewport, viewportData, viewportInfo, presentations);
|
|
9504
|
-
} else {
|
|
9505
|
-
throw new Error('Unknown viewport type');
|
|
9506
9704
|
}
|
|
9705
|
+
throw new Error('Unknown viewport type');
|
|
9507
9706
|
}
|
|
9508
9707
|
|
|
9509
9708
|
/**
|
|
@@ -9566,26 +9765,57 @@ class CornerstoneViewportService extends src/* PubSubService */.hC {
|
|
|
9566
9765
|
return images[0].FrameOfReferenceUID;
|
|
9567
9766
|
}
|
|
9568
9767
|
}
|
|
9768
|
+
enqueueViewportResizeRequest() {
|
|
9769
|
+
this.resizeQueue.push(false); // false indicates viewport resize
|
|
9569
9770
|
|
|
9570
|
-
|
|
9571
|
-
|
|
9572
|
-
|
|
9573
|
-
|
|
9574
|
-
|
|
9575
|
-
|
|
9576
|
-
|
|
9577
|
-
|
|
9578
|
-
|
|
9579
|
-
*/
|
|
9580
|
-
getViewportIdToJump(activeViewportId, displaySetInstanceUID, cameraProps) {
|
|
9581
|
-
const viewportInfo = this.getViewportInfo(activeViewportId);
|
|
9582
|
-
const {
|
|
9583
|
-
referencedImageId
|
|
9584
|
-
} = cameraProps;
|
|
9585
|
-
if (viewportInfo?.contains(displaySetInstanceUID, referencedImageId)) {
|
|
9586
|
-
return activeViewportId;
|
|
9771
|
+
clearTimeout(this.viewportResizeTimer);
|
|
9772
|
+
this.viewportResizeTimer = setTimeout(() => {
|
|
9773
|
+
this.processViewportResizeQueue();
|
|
9774
|
+
}, this.gridResizeDelay);
|
|
9775
|
+
}
|
|
9776
|
+
processViewportResizeQueue() {
|
|
9777
|
+
const isGridResizeInQueue = this.resizeQueue.some(isGridResize => isGridResize);
|
|
9778
|
+
if (this.resizeQueue.length > 0 && !isGridResizeInQueue && !this.gridResizeTimeOut) {
|
|
9779
|
+
this.performResize();
|
|
9587
9780
|
}
|
|
9588
|
-
|
|
9781
|
+
|
|
9782
|
+
// Clear the queue after processing viewport resizes
|
|
9783
|
+
this.resizeQueue = [];
|
|
9784
|
+
}
|
|
9785
|
+
performResize() {
|
|
9786
|
+
const isImmediate = false;
|
|
9787
|
+
const viewports = this.getRenderingEngine().getViewports();
|
|
9788
|
+
|
|
9789
|
+
// Store the current position presentations for each viewport.
|
|
9790
|
+
viewports.forEach(({
|
|
9791
|
+
id
|
|
9792
|
+
}) => {
|
|
9793
|
+
const presentation = this.getPositionPresentation(id);
|
|
9794
|
+
this.beforeResizePositionPresentations.set(id, presentation);
|
|
9795
|
+
});
|
|
9796
|
+
|
|
9797
|
+
// Resize the rendering engine and render.
|
|
9798
|
+
const renderingEngine = this.renderingEngine;
|
|
9799
|
+
renderingEngine.resize(isImmediate);
|
|
9800
|
+
renderingEngine.render();
|
|
9801
|
+
|
|
9802
|
+
// Reset the camera for viewports that should reset their camera on resize,
|
|
9803
|
+
// which means only those viewports that have a zoom level of 1.
|
|
9804
|
+
this.beforeResizePositionPresentations.forEach((positionPresentation, viewportId) => {
|
|
9805
|
+
this.setPresentations(viewportId, {
|
|
9806
|
+
positionPresentation
|
|
9807
|
+
});
|
|
9808
|
+
});
|
|
9809
|
+
|
|
9810
|
+
// Resize and render the rendering engine again.
|
|
9811
|
+
renderingEngine.resize(isImmediate);
|
|
9812
|
+
renderingEngine.render();
|
|
9813
|
+
}
|
|
9814
|
+
resetGridResizeTimeout() {
|
|
9815
|
+
clearTimeout(this.gridResizeTimeOut);
|
|
9816
|
+
this.gridResizeTimeOut = setTimeout(() => {
|
|
9817
|
+
this.gridResizeTimeOut = null;
|
|
9818
|
+
}, this.gridResizeDelay);
|
|
9589
9819
|
}
|
|
9590
9820
|
}
|
|
9591
9821
|
CornerstoneViewportService_class = CornerstoneViewportService;
|
|
@@ -9603,7 +9833,7 @@ CornerstoneViewportService.REGISTRATION = {
|
|
|
9603
9833
|
|
|
9604
9834
|
|
|
9605
9835
|
// EXTERNAL MODULE: ../../../node_modules/dicomweb-client/build/dicomweb-client.es.js
|
|
9606
|
-
var dicomweb_client_es = __webpack_require__(
|
|
9836
|
+
var dicomweb_client_es = __webpack_require__(36922);
|
|
9607
9837
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/dicomLoaderService.js
|
|
9608
9838
|
|
|
9609
9839
|
|
|
@@ -9652,13 +9882,13 @@ const cornerstoneRetriever = imageId => {
|
|
|
9652
9882
|
return image && image.data && image.data.byteArray.buffer;
|
|
9653
9883
|
});
|
|
9654
9884
|
};
|
|
9655
|
-
const wadorsRetriever = (url, studyInstanceUID, seriesInstanceUID, sopInstanceUID, headers = src.DICOMWeb.getAuthorizationHeader(), errorInterceptor = src/* errorHandler */.
|
|
9885
|
+
const wadorsRetriever = (url, studyInstanceUID, seriesInstanceUID, sopInstanceUID, headers = src.DICOMWeb.getAuthorizationHeader(), errorInterceptor = src/* errorHandler */.r_.getHTTPErrorHandler()) => {
|
|
9656
9886
|
const config = {
|
|
9657
9887
|
url,
|
|
9658
9888
|
headers,
|
|
9659
9889
|
errorInterceptor
|
|
9660
9890
|
};
|
|
9661
|
-
const dicomWeb = new dicomweb_client_es
|
|
9891
|
+
const dicomWeb = new dicomweb_client_es/* api */.FH.DICOMwebClient(config);
|
|
9662
9892
|
return dicomWeb.retrieveInstance({
|
|
9663
9893
|
studyInstanceUID,
|
|
9664
9894
|
seriesInstanceUID,
|
|
@@ -9774,10 +10004,10 @@ class DicomLoaderService {
|
|
|
9774
10004
|
const dicomLoaderService = new DicomLoaderService();
|
|
9775
10005
|
/* harmony default export */ const utils_dicomLoaderService = (dicomLoaderService);
|
|
9776
10006
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/package.json
|
|
9777
|
-
const package_namespaceObject = JSON.parse('{"
|
|
10007
|
+
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-cornerstone"}');
|
|
9778
10008
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/id.js
|
|
9779
10009
|
|
|
9780
|
-
const id = package_namespaceObject.
|
|
10010
|
+
const id = package_namespaceObject.UU;
|
|
9781
10011
|
|
|
9782
10012
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/index.ts
|
|
9783
10013
|
|
|
@@ -9807,7 +10037,7 @@ function src_extends() { src_extends = Object.assign ? Object.assign.bind() : fu
|
|
|
9807
10037
|
|
|
9808
10038
|
|
|
9809
10039
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
9810
|
-
return
|
|
10040
|
+
return __webpack_require__.e(/* import() */ 889).then(__webpack_require__.bind(__webpack_require__, 1889));
|
|
9811
10041
|
});
|
|
9812
10042
|
const OHIFCornerstoneViewport = props => {
|
|
9813
10043
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
@@ -9830,7 +10060,7 @@ const cornerstoneExtension = {
|
|
|
9830
10060
|
esm.imageLoadPoolManager.clearRequestStack(type);
|
|
9831
10061
|
esm.imageRetrievalPoolManager.clearRequestStack(type);
|
|
9832
10062
|
});
|
|
9833
|
-
(0,state/* reset */.
|
|
10063
|
+
(0,state/* reset */.cL)();
|
|
9834
10064
|
},
|
|
9835
10065
|
/**
|
|
9836
10066
|
* Register the Cornerstone 3D services and set them up for use.
|
|
@@ -9885,7 +10115,7 @@ const cornerstoneExtension = {
|
|
|
9885
10115
|
cornerstoneTools: dist_esm
|
|
9886
10116
|
};
|
|
9887
10117
|
},
|
|
9888
|
-
getEnabledElement: state/* getEnabledElement */.
|
|
10118
|
+
getEnabledElement: state/* getEnabledElement */.kJ,
|
|
9889
10119
|
dicomLoaderService: utils_dicomLoaderService
|
|
9890
10120
|
}
|
|
9891
10121
|
}, {
|
|
@@ -9907,13 +10137,13 @@ const cornerstoneExtension = {
|
|
|
9907
10137
|
|
|
9908
10138
|
/***/ }),
|
|
9909
10139
|
|
|
9910
|
-
/***/
|
|
10140
|
+
/***/ 71353:
|
|
9911
10141
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
9912
10142
|
|
|
9913
10143
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9914
|
-
/* harmony export */
|
|
9915
|
-
/* harmony export */
|
|
9916
|
-
/* harmony export */
|
|
10144
|
+
/* harmony export */ cL: () => (/* binding */ reset),
|
|
10145
|
+
/* harmony export */ kJ: () => (/* binding */ getEnabledElement),
|
|
10146
|
+
/* harmony export */ ye: () => (/* binding */ setEnabledElement)
|
|
9917
10147
|
/* harmony export */ });
|
|
9918
10148
|
const state = {
|
|
9919
10149
|
// The `defaultContext` of an extension's commandsModule
|
|
@@ -9949,13 +10179,13 @@ const reset = () => {
|
|
|
9949
10179
|
|
|
9950
10180
|
/***/ }),
|
|
9951
10181
|
|
|
9952
|
-
/***/
|
|
10182
|
+
/***/ 1663:
|
|
9953
10183
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
9954
10184
|
|
|
9955
10185
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9956
|
-
/* harmony export */
|
|
10186
|
+
/* harmony export */ A: () => (/* binding */ getSOPInstanceAttributes)
|
|
9957
10187
|
/* harmony export */ });
|
|
9958
|
-
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(
|
|
10188
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11953);
|
|
9959
10189
|
|
|
9960
10190
|
|
|
9961
10191
|
/**
|