@ohif/app 3.8.0-beta.8 → 3.8.0-beta.80
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/{220.bundle.f7e1c96c94245e70f2be.js → 109.bundle.b4fee2a22b622839baf5.js} +4466 -3715
- package/dist/{471.bundle.49c8d281adbae4a2c4df.js → 121.bundle.787f5a848ed632a4d5fc.js} +90 -112
- package/dist/141.bundle.556b4c1e4cab770417ac.js +8620 -0
- package/dist/{687.bundle.9065db35c01823286f08.js → 164.bundle.d4598e491783753a8b6b.js} +22 -38
- package/dist/17dd54813d5acc10bf8f.wasm +0 -0
- package/dist/183.bundle.72bf18ad23ee6624986d.js +30394 -0
- package/dist/{506.bundle.5731bb4349e266491225.js → 188.bundle.b80554ec7df7dcd435a5.js} +23 -28
- package/dist/{342.bundle.e7c3d500f86fdfcc62b5.js → 206.bundle.f957e0d1cdff66dbac69.js} +1963 -1142
- package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
- package/dist/217.bundle.be1cc412f8e26be87d21.js +115079 -0
- package/dist/{451.bundle.57c21db5d003c75e9d61.js → 295.bundle.6f734abf8fa85b1a310d.js} +107 -127
- package/dist/{125.bundle.253395f320b72180da63.js → 297.bundle.194d8985ab974839b5b6.js} +7 -8
- package/dist/{19.bundle.f77c5787b6d8ac0b638b.js → 325.bundle.84909a08305556e9f924.js} +479 -371
- package/dist/335.bundle.c39d4aefe33aecab958f.js +2590 -0
- package/dist/{202.bundle.d3490836f71e001dd30f.js → 342.bundle.e6d0bba29351b5650a8c.js} +566 -868
- package/dist/{776.bundle.a2dedb405a12ffd7699b.js → 41.bundle.7c943bb857ed37831905.js} +7295 -3536
- package/dist/422.bundle.bd6529c536f59807fbee.js +881 -0
- package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 433.bundle.4c77c1fe8fc90ac14218.js} +14737 -27555
- package/dist/445.bundle.38c6d2af64e41cd7c614.js +7835 -0
- package/dist/{126.bundle.6e7111d58bcc937ffd80.js → 448.bundle.deedeff5744e77510734.js} +362 -430
- package/dist/487.bundle.7890ca42826941ebcd60.js +1875 -0
- package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 530.bundle.7c94543955552475c56a.js} +98 -127
- package/dist/{663.bundle.d7be28450db14266cdd0.js → 540.bundle.079d43a6717e95c24392.js} +225 -188
- package/dist/{250.bundle.aea3335667054bdefe36.js → 544.bundle.1c1f57118560046649c1.js} +37 -62
- package/dist/574.bundle.be075ac52fb52b442a8b.js +2641 -0
- package/dist/{181.css → 574.css} +1 -1
- package/dist/{410.bundle.15c855b0ff4a1a674fb8.js → 594.bundle.0b1165661dd638820082.js} +183 -221
- package/dist/{221.bundle.aef554202c58483cb34e.js → 633.bundle.c1658e76f104cbd14cab.js} +349 -552
- package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 644.bundle.1e77691d2eeb96a423b0.js} +1852 -8945
- package/dist/699.bundle.4f01772e7ce6637de339.js +768 -0
- package/dist/702.bundle.963481fbf871984b646f.js +8426 -0
- package/dist/722.bundle.afab1fe6bfcd569130ac.js +1083 -0
- package/dist/{359.bundle.45ecb3d28e8c22142606.js → 724.bundle.e5794460c391ee9cba2c.js} +164 -259
- package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 726.bundle.0b3d9277d22fe7e15b89.js} +512 -879
- package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 835.bundle.15aff0b7433bb0dd6d6d.js} +37 -30
- package/dist/{822.bundle.82cdc418f8f56da6060b.js → 862.bundle.c0ee6e1d4d97e1353213.js} +77 -96
- package/dist/{236.bundle.4e9924934a747afac132.js → 889.bundle.7858e4b7ca1a2b12b64f.js} +207 -199
- package/dist/{281.bundle.deb7492d143e7768d8bf.js → 905.bundle.170908fe660fc6b40649.js} +157 -124
- package/dist/{814.bundle.c8c951d20039b63b865a.js → 907.bundle.dee4e30420caf07caea6.js} +16 -30
- package/dist/{417.bundle.af0a207c29b109f84159.js → 931.bundle.d270a1fda9a2836c3cc5.js} +26 -26
- package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 939.bundle.9d93b2e47c52338747a2.js} +7 -8
- package/dist/94.bundle.c452d9b0645277c2cf4e.js +784 -0
- package/dist/{12.bundle.b5ca13e5363f170ecb3b.js → 961.bundle.aaaaaba0ec015a3b85d8.js} +20 -33
- package/dist/app-config.js +1 -0
- package/dist/{app.bundle.a978edc59b9d82f2eb22.js → app.bundle.6c090a2d6d3ccc97a81d.js} +183240 -87650
- package/dist/app.bundle.css +16 -13
- package/dist/assets/images/CT-AAA.png +0 -0
- package/dist/assets/images/CT-AAA2.png +0 -0
- package/dist/assets/images/CT-Air.png +0 -0
- package/dist/assets/images/CT-Bone.png +0 -0
- package/dist/assets/images/CT-Bones.png +0 -0
- package/dist/assets/images/CT-Cardiac.png +0 -0
- package/dist/assets/images/CT-Cardiac2.png +0 -0
- package/dist/assets/images/CT-Cardiac3.png +0 -0
- package/dist/assets/images/CT-Chest-Contrast-Enhanced.png +0 -0
- package/dist/assets/images/CT-Chest-Vessels.png +0 -0
- package/dist/assets/images/CT-Coronary-Arteries-2.png +0 -0
- package/dist/assets/images/CT-Coronary-Arteries-3.png +0 -0
- package/dist/assets/images/CT-Coronary-Arteries.png +0 -0
- package/dist/assets/images/CT-Cropped-Volume-Bone.png +0 -0
- package/dist/assets/images/CT-Fat.png +0 -0
- package/dist/assets/images/CT-Liver-Vasculature.png +0 -0
- package/dist/assets/images/CT-Lung.png +0 -0
- package/dist/assets/images/CT-MIP.png +0 -0
- package/dist/assets/images/CT-Muscle.png +0 -0
- package/dist/assets/images/CT-Pulmonary-Arteries.png +0 -0
- package/dist/assets/images/CT-Soft-Tissue.png +0 -0
- package/dist/assets/images/DTI-FA-Brain.png +0 -0
- package/dist/assets/images/MR-Angio.png +0 -0
- package/dist/assets/images/MR-Default.png +0 -0
- package/dist/assets/images/MR-MIP.png +0 -0
- package/dist/assets/images/MR-T2-Brain.png +0 -0
- package/dist/assets/images/VolumeRendering.png +0 -0
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js} +3 -3
- package/dist/histogram-worker.bundle.829e14ec12c2b41a4323.js +359 -0
- package/dist/index.html +1 -1
- package/dist/{index.worker.e62ecca63f1a2e124230.worker.js → index.worker.64c896c4316fcd506666.worker.js} +2 -2
- package/dist/index.worker.64c896c4316fcd506666.worker.js.map +1 -0
- package/dist/polySeg.bundle.63011312c3c79e717ea9.js +249 -0
- package/dist/serve.json +12 -0
- package/dist/sw.js +1 -1
- package/package.json +26 -22
- package/dist/181.bundle.a62b9f0ec692299acb35.js +0 -1527
- package/dist/23.bundle.e008ad788170f2ed5569.js +0 -900
- package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
- package/dist/613.bundle.9e7072e5b575354fe51e.js +0 -532
- package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
- package/dist/75788f12450d4c5ed494.wasm +0 -0
- package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
- package/dist/788.bundle.207ac23c0dfa70cbe3fb.js +0 -2682
- package/dist/82.bundle.d6fdcca0f67540bb226a.js +0 -1049
- package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
- /package/dist/{19.css → 325.css} +0 -0
- /package/dist/{776.css → 41.css} +0 -0
- /package/dist/{579.css → 481.css} +0 -0
- /package/dist/{250.css → 544.css} +0 -0
- /package/dist/{221.css → 633.css} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[889],{
|
|
2
3
|
|
|
3
|
-
/***/
|
|
4
|
+
/***/ 62889:
|
|
4
5
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
5
6
|
|
|
6
|
-
"use strict";
|
|
7
7
|
// ESM COMPAT FLAG
|
|
8
8
|
__webpack_require__.r(__webpack_exports__);
|
|
9
9
|
|
|
@@ -13,21 +13,21 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/package.json
|
|
16
|
-
const package_namespaceObject = JSON.parse('{"
|
|
16
|
+
const package_namespaceObject = /*#__PURE__*/JSON.parse('{"UU":"@ohif/extension-dicom-microscopy"}');
|
|
17
17
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/id.js
|
|
18
18
|
|
|
19
|
-
const id = package_namespaceObject.
|
|
19
|
+
const id = package_namespaceObject.UU;
|
|
20
20
|
|
|
21
21
|
// EXTERNAL MODULE: ../../../node_modules/react/index.js
|
|
22
|
-
var react = __webpack_require__(
|
|
23
|
-
// EXTERNAL MODULE: ../../ui/src/index.js +
|
|
24
|
-
var src = __webpack_require__(
|
|
25
|
-
// EXTERNAL MODULE: ../../core/src/index.ts +
|
|
26
|
-
var core_src = __webpack_require__(
|
|
22
|
+
var react = __webpack_require__(41766);
|
|
23
|
+
// EXTERNAL MODULE: ../../ui/src/index.js + 785 modules
|
|
24
|
+
var src = __webpack_require__(5085);
|
|
25
|
+
// EXTERNAL MODULE: ../../core/src/index.ts + 70 modules
|
|
26
|
+
var core_src = __webpack_require__(55411);
|
|
27
27
|
// EXTERNAL MODULE: ../../../node_modules/react-i18next/dist/es/index.js + 15 modules
|
|
28
|
-
var es = __webpack_require__(
|
|
29
|
-
// EXTERNAL MODULE: ../../../node_modules/mathjs/lib/esm/index.js +
|
|
30
|
-
var esm = __webpack_require__(
|
|
28
|
+
var es = __webpack_require__(80619);
|
|
29
|
+
// EXTERNAL MODULE: ../../../node_modules/mathjs/lib/esm/index.js + 996 modules
|
|
30
|
+
var esm = __webpack_require__(23109);
|
|
31
31
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/coordinateFormatScoord3d2Geometry.js
|
|
32
32
|
|
|
33
33
|
|
|
@@ -117,9 +117,9 @@ function mapSlideCoord2PixelCoord(options) {
|
|
|
117
117
|
}
|
|
118
118
|
const point = options.point;
|
|
119
119
|
const m = [[orientation[0] * spacing[1], orientation[3] * spacing[0], offset[0]], [orientation[1] * spacing[1], orientation[4] * spacing[0], offset[1]], [0, 0, 1]];
|
|
120
|
-
const mInverted = (0,esm/* inv */.
|
|
120
|
+
const mInverted = (0,esm/* inv */.WCD)(m);
|
|
121
121
|
const vSlide = [[point[0]], [point[1]], [1]];
|
|
122
|
-
const vImage = (0,esm/* multiply */.
|
|
122
|
+
const vImage = (0,esm/* multiply */.lwT)(mInverted, vSlide);
|
|
123
123
|
const row = Number(vImage[1][0].toFixed(4));
|
|
124
124
|
const col = Number(vImage[0][0].toFixed(4));
|
|
125
125
|
return [col, row];
|
|
@@ -212,7 +212,7 @@ const EVENTS = {
|
|
|
212
212
|
* ViewerManager encapsulates the complexity of the third-party viewer and
|
|
213
213
|
* expose only the features/behaviors that are relevant to the application
|
|
214
214
|
*/
|
|
215
|
-
class ViewerManager extends core_src/* PubSubService */.
|
|
215
|
+
class ViewerManager extends core_src/* PubSubService */.Rc {
|
|
216
216
|
constructor(viewer, viewportId, container, studyInstanceUID, seriesInstanceUID) {
|
|
217
217
|
super(EVENTS);
|
|
218
218
|
this.viewer = viewer;
|
|
@@ -414,11 +414,10 @@ class ViewerManager extends core_src/* PubSubService */.hC {
|
|
|
414
414
|
* @param {object} roi.properties - ROI properties
|
|
415
415
|
* @returns {void}
|
|
416
416
|
*/
|
|
417
|
-
updateROIProperties(
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
} = _ref;
|
|
417
|
+
updateROIProperties({
|
|
418
|
+
uid,
|
|
419
|
+
properties
|
|
420
|
+
}) {
|
|
422
421
|
this.viewer.updateROI({
|
|
423
422
|
uid,
|
|
424
423
|
properties
|
|
@@ -616,10 +615,8 @@ const RoiAnnotation_EVENTS = {
|
|
|
616
615
|
/**
|
|
617
616
|
* Represents a single annotation for the Microscopy Viewer
|
|
618
617
|
*/
|
|
619
|
-
class RoiAnnotation extends core_src/* PubSubService */.
|
|
620
|
-
constructor(roiGraphic, studyInstanceUID, seriesInstanceUID) {
|
|
621
|
-
let label = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
622
|
-
let viewState = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
618
|
+
class RoiAnnotation extends core_src/* PubSubService */.Rc {
|
|
619
|
+
constructor(roiGraphic, studyInstanceUID, seriesInstanceUID, label = '', viewState = null) {
|
|
623
620
|
super(RoiAnnotation_EVENTS);
|
|
624
621
|
this.uid = roiGraphic.uid;
|
|
625
622
|
this.roiGraphic = roiGraphic;
|
|
@@ -770,6 +767,7 @@ class RoiAnnotation extends core_src/* PubSubService */.hC {
|
|
|
770
767
|
|
|
771
768
|
/* harmony default export */ const utils_RoiAnnotation = (RoiAnnotation);
|
|
772
769
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/services/MicroscopyService.ts
|
|
770
|
+
var _MicroscopyService;
|
|
773
771
|
|
|
774
772
|
|
|
775
773
|
|
|
@@ -788,7 +786,7 @@ const MicroscopyService_EVENTS = {
|
|
|
788
786
|
* viewers and handle their ROI graphics to create, remove and modify the
|
|
789
787
|
* ROI annotations relevant to the application
|
|
790
788
|
*/
|
|
791
|
-
class MicroscopyService extends core_src/* PubSubService */.
|
|
789
|
+
class MicroscopyService extends core_src/* PubSubService */.Rc {
|
|
792
790
|
constructor(serviceManager) {
|
|
793
791
|
super(MicroscopyService_EVENTS);
|
|
794
792
|
this.serviceManager = void 0;
|
|
@@ -1296,6 +1294,9 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
1296
1294
|
this.managedViewers.forEach(mv => mv.activateInteractions(interactions));
|
|
1297
1295
|
this.activeInteractions = interactions;
|
|
1298
1296
|
}
|
|
1297
|
+
getActiveInteractions() {
|
|
1298
|
+
return this.activeInteractions;
|
|
1299
|
+
}
|
|
1299
1300
|
|
|
1300
1301
|
/**
|
|
1301
1302
|
* Triggers the relabelling process for the given RoiAnnotation instance, by
|
|
@@ -1304,21 +1305,16 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
1304
1305
|
* @param {RoiAnnotation} roiAnnotation The instance to be relabelled
|
|
1305
1306
|
* @param {boolean} newAnnotation Whether the annotation is newly drawn (so it deletes on cancel).
|
|
1306
1307
|
*/
|
|
1307
|
-
triggerRelabel(roiAnnotation) {
|
|
1308
|
-
let newAnnotation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1309
|
-
let onRelabel = arguments.length > 2 ? arguments[2] : undefined;
|
|
1308
|
+
triggerRelabel(roiAnnotation, newAnnotation = false, onRelabel) {
|
|
1310
1309
|
if (!onRelabel) {
|
|
1311
|
-
onRelabel =
|
|
1312
|
-
|
|
1310
|
+
onRelabel = ({
|
|
1311
|
+
label
|
|
1312
|
+
}) => this.managedViewers.forEach(mv => mv.updateROIProperties({
|
|
1313
|
+
uid: roiAnnotation.uid,
|
|
1314
|
+
properties: {
|
|
1313
1315
|
label
|
|
1314
|
-
}
|
|
1315
|
-
|
|
1316
|
-
uid: roiAnnotation.uid,
|
|
1317
|
-
properties: {
|
|
1318
|
-
label
|
|
1319
|
-
}
|
|
1320
|
-
}));
|
|
1321
|
-
};
|
|
1316
|
+
}
|
|
1317
|
+
}));
|
|
1322
1318
|
}
|
|
1323
1319
|
this._broadcastEvent(MicroscopyService_EVENTS.RELABEL, {
|
|
1324
1320
|
roiAnnotation,
|
|
@@ -1354,21 +1350,21 @@ class MicroscopyService extends core_src/* PubSubService */.hC {
|
|
|
1354
1350
|
this.managedViewers.forEach(mv => mv.setROIStyle(uid, styleOptions));
|
|
1355
1351
|
}
|
|
1356
1352
|
}
|
|
1353
|
+
_MicroscopyService = MicroscopyService;
|
|
1357
1354
|
MicroscopyService.REGISTRATION = serviceManager => {
|
|
1358
1355
|
return {
|
|
1359
1356
|
name: 'microscopyService',
|
|
1360
1357
|
altName: 'MicroscopyService',
|
|
1361
|
-
create:
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
return new MicroscopyService(serviceManager);
|
|
1358
|
+
create: ({
|
|
1359
|
+
configuration = {}
|
|
1360
|
+
}) => {
|
|
1361
|
+
return new _MicroscopyService(serviceManager);
|
|
1366
1362
|
}
|
|
1367
1363
|
};
|
|
1368
1364
|
};
|
|
1369
1365
|
|
|
1370
1366
|
// EXTERNAL MODULE: ../../../node_modules/dcmjs/build/dcmjs.es.js
|
|
1371
|
-
var dcmjs_es = __webpack_require__(
|
|
1367
|
+
var dcmjs_es = __webpack_require__(31426);
|
|
1372
1368
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/callInputDialog.tsx
|
|
1373
1369
|
|
|
1374
1370
|
|
|
@@ -1382,19 +1378,17 @@ var dcmjs_es = __webpack_require__(67540);
|
|
|
1382
1378
|
* @param {func} callback
|
|
1383
1379
|
* @param {*} isArrowAnnotateInputDialog
|
|
1384
1380
|
*/
|
|
1385
|
-
function callInputDialog(
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
} = _ref;
|
|
1381
|
+
function callInputDialog({
|
|
1382
|
+
uiDialogService,
|
|
1383
|
+
title = 'Annotation',
|
|
1384
|
+
defaultValue = '',
|
|
1385
|
+
callback = (value, action) => {}
|
|
1386
|
+
}) {
|
|
1392
1387
|
const dialogId = 'microscopy-input-dialog';
|
|
1393
|
-
const onSubmitHandler =
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
} = _ref2;
|
|
1388
|
+
const onSubmitHandler = ({
|
|
1389
|
+
action,
|
|
1390
|
+
value
|
|
1391
|
+
}) => {
|
|
1398
1392
|
switch (action.id) {
|
|
1399
1393
|
case 'save':
|
|
1400
1394
|
callback(value.value, action.id);
|
|
@@ -1413,7 +1407,7 @@ function callInputDialog(_ref) {
|
|
|
1413
1407
|
centralize: true,
|
|
1414
1408
|
isDraggable: false,
|
|
1415
1409
|
showOverlay: true,
|
|
1416
|
-
content: src/* Dialog */.
|
|
1410
|
+
content: src/* Dialog */.lG,
|
|
1417
1411
|
contentProps: {
|
|
1418
1412
|
title: title,
|
|
1419
1413
|
value: {
|
|
@@ -1426,19 +1420,18 @@ function callInputDialog(_ref) {
|
|
|
1426
1420
|
actions: [{
|
|
1427
1421
|
id: 'cancel',
|
|
1428
1422
|
text: 'Cancel',
|
|
1429
|
-
type: src/* ButtonEnums.type */.
|
|
1423
|
+
type: src/* ButtonEnums.type */.Ny.NW.secondary
|
|
1430
1424
|
}, {
|
|
1431
1425
|
id: 'save',
|
|
1432
1426
|
text: 'Save',
|
|
1433
|
-
type: src/* ButtonEnums.type */.
|
|
1427
|
+
type: src/* ButtonEnums.type */.Ny.NW.primary
|
|
1434
1428
|
}],
|
|
1435
1429
|
onSubmit: onSubmitHandler,
|
|
1436
|
-
body:
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
return /*#__PURE__*/react.createElement(src/* Input */.II, {
|
|
1430
|
+
body: ({
|
|
1431
|
+
value,
|
|
1432
|
+
setValue
|
|
1433
|
+
}) => {
|
|
1434
|
+
return /*#__PURE__*/react.createElement(src/* Input */.pd, {
|
|
1442
1435
|
label: "Enter your annotation",
|
|
1443
1436
|
labelClassName: "text-white text-[14px] leading-[1.2]",
|
|
1444
1437
|
autoFocus: true,
|
|
@@ -1485,11 +1478,10 @@ const uid = '2.25.285241207697168520771311899641885187923';
|
|
|
1485
1478
|
*
|
|
1486
1479
|
* @return Comprehensive3DSR dataset
|
|
1487
1480
|
*/
|
|
1488
|
-
function constructSR(metadata,
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
} = _ref;
|
|
1481
|
+
function constructSR(metadata, {
|
|
1482
|
+
SeriesDescription,
|
|
1483
|
+
SeriesNumber
|
|
1484
|
+
}, annotations) {
|
|
1493
1485
|
// Handle malformed data
|
|
1494
1486
|
if (!metadata.SpecimenDescriptionSequence) {
|
|
1495
1487
|
metadata.SpecimenDescriptionSequence = {
|
|
@@ -1502,34 +1494,34 @@ function constructSR(metadata, _ref, annotations) {
|
|
|
1502
1494
|
} = metadata;
|
|
1503
1495
|
|
|
1504
1496
|
// construct Comprehensive3DSR dataset
|
|
1505
|
-
const observationContext = new dcmjs_es
|
|
1506
|
-
observerPersonContext: new dcmjs_es
|
|
1507
|
-
observerType: new dcmjs_es
|
|
1497
|
+
const observationContext = new dcmjs_es/* default.sr */.Ay.sr.templates.ObservationContext({
|
|
1498
|
+
observerPersonContext: new dcmjs_es/* default.sr */.Ay.sr.templates.ObserverContext({
|
|
1499
|
+
observerType: new dcmjs_es/* default.sr */.Ay.sr.coding.CodedConcept({
|
|
1508
1500
|
value: '121006',
|
|
1509
1501
|
schemeDesignator: 'DCM',
|
|
1510
1502
|
meaning: 'Person'
|
|
1511
1503
|
}),
|
|
1512
|
-
observerIdentifyingAttributes: new dcmjs_es
|
|
1504
|
+
observerIdentifyingAttributes: new dcmjs_es/* default.sr */.Ay.sr.templates.PersonObserverIdentifyingAttributes({
|
|
1513
1505
|
name: '@ohif/extension-dicom-microscopy'
|
|
1514
1506
|
})
|
|
1515
1507
|
}),
|
|
1516
|
-
observerDeviceContext: new dcmjs_es
|
|
1517
|
-
observerType: new dcmjs_es
|
|
1508
|
+
observerDeviceContext: new dcmjs_es/* default.sr */.Ay.sr.templates.ObserverContext({
|
|
1509
|
+
observerType: new dcmjs_es/* default.sr */.Ay.sr.coding.CodedConcept({
|
|
1518
1510
|
value: '121007',
|
|
1519
1511
|
schemeDesignator: 'DCM',
|
|
1520
1512
|
meaning: 'Device'
|
|
1521
1513
|
}),
|
|
1522
|
-
observerIdentifyingAttributes: new dcmjs_es
|
|
1514
|
+
observerIdentifyingAttributes: new dcmjs_es/* default.sr */.Ay.sr.templates.DeviceObserverIdentifyingAttributes({
|
|
1523
1515
|
uid: DEVICE_OBSERVER_UID
|
|
1524
1516
|
})
|
|
1525
1517
|
}),
|
|
1526
|
-
subjectContext: new dcmjs_es
|
|
1527
|
-
subjectClass: new dcmjs_es
|
|
1518
|
+
subjectContext: new dcmjs_es/* default.sr */.Ay.sr.templates.SubjectContext({
|
|
1519
|
+
subjectClass: new dcmjs_es/* default.sr */.Ay.sr.coding.CodedConcept({
|
|
1528
1520
|
value: '121027',
|
|
1529
1521
|
schemeDesignator: 'DCM',
|
|
1530
1522
|
meaning: 'Specimen'
|
|
1531
1523
|
}),
|
|
1532
|
-
subjectClassSpecificContext: new dcmjs_es
|
|
1524
|
+
subjectClassSpecificContext: new dcmjs_es/* default.sr */.Ay.sr.templates.SubjectContextSpecimen({
|
|
1533
1525
|
uid: SpecimenDescriptionSequence.SpecimenUID,
|
|
1534
1526
|
identifier: SpecimenDescriptionSequence.SpecimenIdentifier || metadata.SeriesInstanceUID,
|
|
1535
1527
|
containerIdentifier: metadata.ContainerIdentifier || metadata.SeriesInstanceUID
|
|
@@ -1561,14 +1553,14 @@ function constructSR(metadata, _ref, annotations) {
|
|
|
1561
1553
|
const ConceptName = Array.isArray(measurement.ConceptNameCodeSequence) ? measurement.ConceptNameCodeSequence[0] : measurement.ConceptNameCodeSequence;
|
|
1562
1554
|
const MeasuredValue = Array.isArray(measurement.MeasuredValueSequence) ? measurement.MeasuredValueSequence[0] : measurement.MeasuredValueSequence;
|
|
1563
1555
|
const MeasuredValueUnits = Array.isArray(MeasuredValue.MeasurementUnitsCodeSequence) ? MeasuredValue.MeasurementUnitsCodeSequence[0] : MeasuredValue.MeasurementUnitsCodeSequence;
|
|
1564
|
-
return new dcmjs_es
|
|
1565
|
-
name: new dcmjs_es
|
|
1556
|
+
return new dcmjs_es/* default.sr */.Ay.sr.valueTypes.NumContentItem({
|
|
1557
|
+
name: new dcmjs_es/* default.sr */.Ay.sr.coding.CodedConcept({
|
|
1566
1558
|
meaning: ConceptName.CodeMeaning,
|
|
1567
1559
|
value: ConceptName.CodeValue,
|
|
1568
1560
|
schemeDesignator: ConceptName.CodingSchemeDesignator
|
|
1569
1561
|
}),
|
|
1570
1562
|
value: MeasuredValue.NumericValue,
|
|
1571
|
-
unit: new dcmjs_es
|
|
1563
|
+
unit: new dcmjs_es/* default.sr */.Ay.sr.coding.CodedConcept({
|
|
1572
1564
|
value: MeasuredValueUnits.CodeValue,
|
|
1573
1565
|
meaning: MeasuredValueUnits.CodeMeaning,
|
|
1574
1566
|
schemeDesignator: MeasuredValueUnits.CodingSchemeDesignator
|
|
@@ -1579,8 +1571,8 @@ function constructSR(metadata, _ref, annotations) {
|
|
|
1579
1571
|
/** Avoid incompatibility with dcmjs */
|
|
1580
1572
|
evaluations = evaluations.map(evaluation => {
|
|
1581
1573
|
const ConceptName = Array.isArray(evaluation.ConceptNameCodeSequence) ? evaluation.ConceptNameCodeSequence[0] : evaluation.ConceptNameCodeSequence;
|
|
1582
|
-
return new dcmjs_es
|
|
1583
|
-
name: new dcmjs_es
|
|
1574
|
+
return new dcmjs_es/* default.sr */.Ay.sr.valueTypes.TextContentItem({
|
|
1575
|
+
name: new dcmjs_es/* default.sr */.Ay.sr.coding.CodedConcept({
|
|
1584
1576
|
value: ConceptName.CodeValue,
|
|
1585
1577
|
meaning: ConceptName.CodeMeaning,
|
|
1586
1578
|
schemeDesignator: ConceptName.CodingSchemeDesignator
|
|
@@ -1590,17 +1582,17 @@ function constructSR(metadata, _ref, annotations) {
|
|
|
1590
1582
|
});
|
|
1591
1583
|
});
|
|
1592
1584
|
const identifier = `ROI #${i + 1}`;
|
|
1593
|
-
const group = new dcmjs_es
|
|
1594
|
-
trackingIdentifier: new dcmjs_es
|
|
1585
|
+
const group = new dcmjs_es/* default.sr */.Ay.sr.templates.PlanarROIMeasurementsAndQualitativeEvaluations({
|
|
1586
|
+
trackingIdentifier: new dcmjs_es/* default.sr */.Ay.sr.templates.TrackingIdentifier({
|
|
1595
1587
|
uid: roi.uid,
|
|
1596
1588
|
identifier: presentationState ? identifier.concat(`(${JSON.stringify(presentationState)})`) : identifier
|
|
1597
1589
|
}),
|
|
1598
|
-
referencedRegion: new dcmjs_es
|
|
1590
|
+
referencedRegion: new dcmjs_es/* default.sr */.Ay.sr.contentItems.ImageRegion3D({
|
|
1599
1591
|
graphicType: roi.scoord3d.graphicType,
|
|
1600
1592
|
graphicData: roi.scoord3d.graphicData,
|
|
1601
1593
|
frameOfReferenceUID: roi.scoord3d.frameOfReferenceUID
|
|
1602
1594
|
}),
|
|
1603
|
-
findingType: new dcmjs_es
|
|
1595
|
+
findingType: new dcmjs_es/* default.sr */.Ay.sr.coding.CodedConcept({
|
|
1604
1596
|
value: label,
|
|
1605
1597
|
schemeDesignator: '@ohif/extension-dicom-microscopy',
|
|
1606
1598
|
meaning: 'FREETEXT'
|
|
@@ -1611,23 +1603,23 @@ function constructSR(metadata, _ref, annotations) {
|
|
|
1611
1603
|
});
|
|
1612
1604
|
imagingMeasurements.push(...group);
|
|
1613
1605
|
}
|
|
1614
|
-
const measurementReport = new dcmjs_es
|
|
1615
|
-
languageOfContentItemAndDescendants: new dcmjs_es
|
|
1606
|
+
const measurementReport = new dcmjs_es/* default.sr */.Ay.sr.templates.MeasurementReport({
|
|
1607
|
+
languageOfContentItemAndDescendants: new dcmjs_es/* default.sr */.Ay.sr.templates.LanguageOfContentItemAndDescendants({}),
|
|
1616
1608
|
observationContext,
|
|
1617
|
-
procedureReported: new dcmjs_es
|
|
1609
|
+
procedureReported: new dcmjs_es/* default.sr */.Ay.sr.coding.CodedConcept({
|
|
1618
1610
|
value: '112703',
|
|
1619
1611
|
schemeDesignator: 'DCM',
|
|
1620
1612
|
meaning: 'Whole Slide Imaging'
|
|
1621
1613
|
}),
|
|
1622
1614
|
imagingMeasurements
|
|
1623
1615
|
});
|
|
1624
|
-
const dataset = new dcmjs_es
|
|
1616
|
+
const dataset = new dcmjs_es/* default.sr */.Ay.sr.documents.Comprehensive3DSR({
|
|
1625
1617
|
content: measurementReport[0],
|
|
1626
1618
|
evidence: [metadata],
|
|
1627
|
-
seriesInstanceUID: dcmjs_es
|
|
1619
|
+
seriesInstanceUID: dcmjs_es/* default.data */.Ay.data.DicomMetaDictionary.uid(),
|
|
1628
1620
|
seriesNumber: SeriesNumber,
|
|
1629
1621
|
seriesDescription: SeriesDescription || 'Whole slide imaging structured report',
|
|
1630
|
-
sopInstanceUID: dcmjs_es
|
|
1622
|
+
sopInstanceUID: dcmjs_es/* default.data */.Ay.data.DicomMetaDictionary.uid(),
|
|
1631
1623
|
instanceNumber: 1,
|
|
1632
1624
|
manufacturer: 'dcmjs-org'
|
|
1633
1625
|
});
|
|
@@ -1647,7 +1639,7 @@ function constructSR(metadata, _ref, annotations) {
|
|
|
1647
1639
|
vr: 'UI'
|
|
1648
1640
|
},
|
|
1649
1641
|
ImplementationClassUID: {
|
|
1650
|
-
Value: [dcmjs_es
|
|
1642
|
+
Value: [dcmjs_es/* default.data */.Ay.data.DicomMetaDictionary.uid()],
|
|
1651
1643
|
vr: 'UI'
|
|
1652
1644
|
},
|
|
1653
1645
|
ImplementationVersionName: {
|
|
@@ -1685,7 +1677,7 @@ function saveByteArray(buffer, filename) {
|
|
|
1685
1677
|
let saving = false;
|
|
1686
1678
|
const {
|
|
1687
1679
|
datasetToBuffer
|
|
1688
|
-
} = dcmjs_es
|
|
1680
|
+
} = dcmjs_es/* default.data */.Ay.data;
|
|
1689
1681
|
const formatArea = area => {
|
|
1690
1682
|
let mult = 1;
|
|
1691
1683
|
let unit = 'mm';
|
|
@@ -1931,10 +1923,9 @@ function MicroscopyPanel(props) {
|
|
|
1931
1923
|
*
|
|
1932
1924
|
* @param param0
|
|
1933
1925
|
*/
|
|
1934
|
-
const onMeasurementItemClickHandler =
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
} = _ref;
|
|
1926
|
+
const onMeasurementItemClickHandler = ({
|
|
1927
|
+
uid
|
|
1928
|
+
}) => {
|
|
1938
1929
|
const roiAnnotation = microscopyService.getAnnotation(uid);
|
|
1939
1930
|
microscopyService.selectAnnotation(roiAnnotation);
|
|
1940
1931
|
microscopyService.focusAnnotation(roiAnnotation, props.activeViewportId);
|
|
@@ -1944,15 +1935,21 @@ function MicroscopyPanel(props) {
|
|
|
1944
1935
|
* Handler for "Edit" action of an annotation item
|
|
1945
1936
|
* @param param0
|
|
1946
1937
|
*/
|
|
1947
|
-
const onMeasurementItemEditHandler =
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
} = _ref2;
|
|
1938
|
+
const onMeasurementItemEditHandler = ({
|
|
1939
|
+
uid,
|
|
1940
|
+
isActive
|
|
1941
|
+
}) => {
|
|
1952
1942
|
props.commandsManager.runCommand('setLabel', {
|
|
1953
1943
|
uid
|
|
1954
1944
|
}, 'MICROSCOPY');
|
|
1955
1945
|
};
|
|
1946
|
+
const onMeasurementDeleteHandler = ({
|
|
1947
|
+
uid,
|
|
1948
|
+
isActive
|
|
1949
|
+
}) => {
|
|
1950
|
+
const roiAnnotation = microscopyService.getAnnotation(uid);
|
|
1951
|
+
microscopyService.removeAnnotation(roiAnnotation);
|
|
1952
|
+
};
|
|
1956
1953
|
|
|
1957
1954
|
// Convert ROI annotations managed by microscopyService into our
|
|
1958
1955
|
// own format for display
|
|
@@ -1986,19 +1983,19 @@ function MicroscopyPanel(props) {
|
|
|
1986
1983
|
roiAnnotation
|
|
1987
1984
|
};
|
|
1988
1985
|
});
|
|
1989
|
-
const disabled = data.length === 0;
|
|
1990
1986
|
return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
|
|
1991
1987
|
className: "ohif-scrollbar overflow-y-auto overflow-x-hidden",
|
|
1992
1988
|
"data-cy": 'measurements-panel'
|
|
1993
|
-
}, /*#__PURE__*/react.createElement(src/* MeasurementTable */.
|
|
1989
|
+
}, /*#__PURE__*/react.createElement(src/* MeasurementTable */.V, {
|
|
1994
1990
|
title: "Measurements",
|
|
1995
1991
|
servicesManager: props.servicesManager,
|
|
1996
1992
|
data: data,
|
|
1997
1993
|
onClick: onMeasurementItemClickHandler,
|
|
1998
|
-
onEdit: onMeasurementItemEditHandler
|
|
1994
|
+
onEdit: onMeasurementItemEditHandler,
|
|
1995
|
+
onDelete: onMeasurementDeleteHandler
|
|
1999
1996
|
})));
|
|
2000
1997
|
}
|
|
2001
|
-
const connectedMicroscopyPanel = (0,es/* withTranslation */.
|
|
1998
|
+
const connectedMicroscopyPanel = (0,es/* withTranslation */.CI)(['MicroscopyTable', 'Common'])(MicroscopyPanel);
|
|
2002
1999
|
/* harmony default export */ const MicroscopyPanel_MicroscopyPanel = (connectedMicroscopyPanel);
|
|
2003
2000
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/getPanelModule.tsx
|
|
2004
2001
|
|
|
@@ -2010,17 +2007,16 @@ const connectedMicroscopyPanel = (0,es/* withTranslation */.Zh)(['MicroscopyTabl
|
|
|
2010
2007
|
// - cancel promises when component is destroyed
|
|
2011
2008
|
// - show errors in UI for thumbnails if promise fails
|
|
2012
2009
|
|
|
2013
|
-
function getPanelModule(
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
} = _ref;
|
|
2010
|
+
function getPanelModule({
|
|
2011
|
+
commandsManager,
|
|
2012
|
+
extensionManager,
|
|
2013
|
+
servicesManager
|
|
2014
|
+
}) {
|
|
2019
2015
|
const wrappedMeasurementPanel = () => {
|
|
2020
2016
|
const [{
|
|
2021
2017
|
activeViewportId,
|
|
2022
2018
|
viewports
|
|
2023
|
-
}] = (0,src/* useViewportGrid */.
|
|
2019
|
+
}] = (0,src/* useViewportGrid */.ih)();
|
|
2024
2020
|
return /*#__PURE__*/react.createElement(MicroscopyPanel_MicroscopyPanel, {
|
|
2025
2021
|
viewports: viewports,
|
|
2026
2022
|
activeViewportId: activeViewportId,
|
|
@@ -2043,12 +2039,11 @@ function getPanelModule(_ref) {
|
|
|
2043
2039
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/getCommandsModule.ts
|
|
2044
2040
|
|
|
2045
2041
|
|
|
2046
|
-
function getCommandsModule(
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
} = _ref;
|
|
2042
|
+
function getCommandsModule({
|
|
2043
|
+
servicesManager,
|
|
2044
|
+
commandsManager,
|
|
2045
|
+
extensionManager
|
|
2046
|
+
}) {
|
|
2052
2047
|
const {
|
|
2053
2048
|
viewportGridService,
|
|
2054
2049
|
uiDialogService,
|
|
@@ -2056,10 +2051,9 @@ function getCommandsModule(_ref) {
|
|
|
2056
2051
|
} = servicesManager.services;
|
|
2057
2052
|
const actions = {
|
|
2058
2053
|
// Measurement tool commands:
|
|
2059
|
-
deleteMeasurement:
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
} = _ref2;
|
|
2054
|
+
deleteMeasurement: ({
|
|
2055
|
+
uid
|
|
2056
|
+
}) => {
|
|
2063
2057
|
if (uid) {
|
|
2064
2058
|
const roiAnnotation = microscopyService.getAnnotation(uid);
|
|
2065
2059
|
if (roiAnnotation) {
|
|
@@ -2067,10 +2061,9 @@ function getCommandsModule(_ref) {
|
|
|
2067
2061
|
}
|
|
2068
2062
|
}
|
|
2069
2063
|
},
|
|
2070
|
-
setLabel:
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
} = _ref3;
|
|
2064
|
+
setLabel: ({
|
|
2065
|
+
uid
|
|
2066
|
+
}) => {
|
|
2074
2067
|
const roiAnnotation = microscopyService.getAnnotation(uid);
|
|
2075
2068
|
callInputDialog({
|
|
2076
2069
|
uiDialogService,
|
|
@@ -2086,11 +2079,10 @@ function getCommandsModule(_ref) {
|
|
|
2086
2079
|
}
|
|
2087
2080
|
});
|
|
2088
2081
|
},
|
|
2089
|
-
setToolActive:
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
} = _ref4;
|
|
2082
|
+
setToolActive: ({
|
|
2083
|
+
toolName,
|
|
2084
|
+
toolGroupId = 'MICROSCOPY'
|
|
2085
|
+
}) => {
|
|
2094
2086
|
const dragPanOnMiddle = ['dragPan', {
|
|
2095
2087
|
bindings: {
|
|
2096
2088
|
mouseButtons: ['middle']
|
|
@@ -2146,8 +2138,7 @@ function getCommandsModule(_ref) {
|
|
|
2146
2138
|
|
|
2147
2139
|
// overview
|
|
2148
2140
|
const {
|
|
2149
|
-
activeViewportId
|
|
2150
|
-
viewports
|
|
2141
|
+
activeViewportId
|
|
2151
2142
|
} = viewportGridService.getState();
|
|
2152
2143
|
microscopyService.toggleOverviewMap(activeViewportId);
|
|
2153
2144
|
},
|
|
@@ -2157,29 +2148,19 @@ function getCommandsModule(_ref) {
|
|
|
2157
2148
|
};
|
|
2158
2149
|
const definitions = {
|
|
2159
2150
|
deleteMeasurement: {
|
|
2160
|
-
commandFn: actions.deleteMeasurement
|
|
2161
|
-
storeContexts: [],
|
|
2162
|
-
options: {}
|
|
2151
|
+
commandFn: actions.deleteMeasurement
|
|
2163
2152
|
},
|
|
2164
2153
|
setLabel: {
|
|
2165
|
-
commandFn: actions.setLabel
|
|
2166
|
-
storeContexts: [],
|
|
2167
|
-
options: {}
|
|
2154
|
+
commandFn: actions.setLabel
|
|
2168
2155
|
},
|
|
2169
2156
|
setToolActive: {
|
|
2170
|
-
commandFn: actions.setToolActive
|
|
2171
|
-
storeContexts: [],
|
|
2172
|
-
options: {}
|
|
2157
|
+
commandFn: actions.setToolActive
|
|
2173
2158
|
},
|
|
2174
2159
|
toggleOverlays: {
|
|
2175
|
-
commandFn: actions.toggleOverlays
|
|
2176
|
-
storeContexts: [],
|
|
2177
|
-
options: {}
|
|
2160
|
+
commandFn: actions.toggleOverlays
|
|
2178
2161
|
},
|
|
2179
2162
|
toggleAnnotations: {
|
|
2180
|
-
commandFn: actions.toggleAnnotations
|
|
2181
|
-
storeContexts: [],
|
|
2182
|
-
options: {}
|
|
2163
|
+
commandFn: actions.toggleAnnotations
|
|
2183
2164
|
}
|
|
2184
2165
|
};
|
|
2185
2166
|
return {
|
|
@@ -2192,7 +2173,7 @@ function getCommandsModule(_ref) {
|
|
|
2192
2173
|
|
|
2193
2174
|
const {
|
|
2194
2175
|
utils
|
|
2195
|
-
} = core_src
|
|
2176
|
+
} = core_src/* default */.Ay;
|
|
2196
2177
|
const SOP_CLASS_UIDS = {
|
|
2197
2178
|
VL_WHOLE_SLIDE_MICROSCOPY_IMAGE_STORAGE: '1.2.840.10008.5.1.4.1.1.77.1.6'
|
|
2198
2179
|
};
|
|
@@ -2284,11 +2265,10 @@ function _getDisplaySetsFromSeries(instances, servicesManager, extensionManager)
|
|
|
2284
2265
|
};
|
|
2285
2266
|
return [displaySet];
|
|
2286
2267
|
}
|
|
2287
|
-
function getDicomMicroscopySopClassHandler(
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
} = _ref;
|
|
2268
|
+
function getDicomMicroscopySopClassHandler({
|
|
2269
|
+
servicesManager,
|
|
2270
|
+
extensionManager
|
|
2271
|
+
}) {
|
|
2292
2272
|
const getDisplaySetsFromSeries = instances => {
|
|
2293
2273
|
return _getDisplaySetsFromSeries(instances, servicesManager, extensionManager);
|
|
2294
2274
|
};
|
|
@@ -2311,7 +2291,6 @@ const DCM_CODE_VALUES = {
|
|
|
2311
2291
|
LONG_AXIS: 'G-A185',
|
|
2312
2292
|
ELLIPSE_AREA: 'G-D7FE' // TODO: Remove this
|
|
2313
2293
|
};
|
|
2314
|
-
|
|
2315
2294
|
/* harmony default export */ const dcmCodeValues = (DCM_CODE_VALUES);
|
|
2316
2295
|
;// CONCATENATED MODULE: ../../../extensions/dicom-microscopy/src/utils/toArray.js
|
|
2317
2296
|
function toArray(item) {
|
|
@@ -2321,7 +2300,7 @@ function toArray(item) {
|
|
|
2321
2300
|
|
|
2322
2301
|
|
|
2323
2302
|
|
|
2324
|
-
const MeasurementReport = dcmjs_es
|
|
2303
|
+
const MeasurementReport = dcmjs_es/* default.adapters */.Ay.adapters.DICOMMicroscopyViewer.MeasurementReport;
|
|
2325
2304
|
|
|
2326
2305
|
// Define as async so that it returns a promise, expected by the ViewportGrid
|
|
2327
2306
|
async function loadSR(microscopyService, microscopySRDisplaySet, referencedDisplaySet) {
|
|
@@ -2358,7 +2337,7 @@ async function loadSR(microscopyService, microscopySRDisplaySet, referencedDispl
|
|
|
2358
2337
|
async function _getROIsFromToolState(naturalizedDataset, FrameOfReferenceUID) {
|
|
2359
2338
|
const toolState = MeasurementReport.generateToolState(naturalizedDataset);
|
|
2360
2339
|
const tools = Object.getOwnPropertyNames(toolState);
|
|
2361
|
-
const DICOMMicroscopyViewer = await __webpack_require__.e(/* import() | dicom-microscopy-viewer */
|
|
2340
|
+
const DICOMMicroscopyViewer = await __webpack_require__.e(/* import() | dicom-microscopy-viewer */ 525).then(__webpack_require__.t.bind(__webpack_require__, 95226, 23));
|
|
2362
2341
|
const measurementGroupContentItems = _getMeasurementGroups(naturalizedDataset);
|
|
2363
2342
|
const rois = [];
|
|
2364
2343
|
const labels = [];
|
|
@@ -2492,7 +2471,7 @@ function getSourceDisplaySet(allDisplaySets, microscopySRDisplaySet) {
|
|
|
2492
2471
|
|
|
2493
2472
|
const {
|
|
2494
2473
|
utils: DicomMicroscopySRSopClassHandler_utils
|
|
2495
|
-
} = core_src
|
|
2474
|
+
} = core_src/* default */.Ay;
|
|
2496
2475
|
const DicomMicroscopySRSopClassHandler_SOP_CLASS_UIDS = {
|
|
2497
2476
|
COMPREHENSIVE_3D_SR: '1.2.840.10008.5.1.4.1.1.88.34'
|
|
2498
2477
|
};
|
|
@@ -2573,11 +2552,10 @@ function DicomMicroscopySRSopClassHandler_getDisplaySetsFromSeries(instances, se
|
|
|
2573
2552
|
};
|
|
2574
2553
|
return [displaySet];
|
|
2575
2554
|
}
|
|
2576
|
-
function getDicomMicroscopySRSopClassHandler(
|
|
2577
|
-
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
} = _ref;
|
|
2555
|
+
function getDicomMicroscopySRSopClassHandler({
|
|
2556
|
+
servicesManager,
|
|
2557
|
+
extensionManager
|
|
2558
|
+
}) {
|
|
2581
2559
|
const getDisplaySetsFromSeries = instances => {
|
|
2582
2560
|
return DicomMicroscopySRSopClassHandler_getDisplaySetsFromSeries(instances, servicesManager, extensionManager);
|
|
2583
2561
|
};
|
|
@@ -2598,7 +2576,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
2598
2576
|
|
|
2599
2577
|
|
|
2600
2578
|
const Component = /*#__PURE__*/react.lazy(() => {
|
|
2601
|
-
return Promise.all(/* import() */[__webpack_require__.e(
|
|
2579
|
+
return Promise.all(/* import() */[__webpack_require__.e(433), __webpack_require__.e(183), __webpack_require__.e(644), __webpack_require__.e(931), __webpack_require__.e(206), __webpack_require__.e(544)]).then(__webpack_require__.bind(__webpack_require__, 17919));
|
|
2602
2580
|
});
|
|
2603
2581
|
const MicroscopyViewport = props => {
|
|
2604
2582
|
return /*#__PURE__*/react.createElement(react.Suspense, {
|
|
@@ -2609,19 +2587,15 @@ const MicroscopyViewport = props => {
|
|
|
2609
2587
|
/**
|
|
2610
2588
|
* You can remove any of the following modules if you don't need them.
|
|
2611
2589
|
*/
|
|
2612
|
-
|
|
2590
|
+
const extension = {
|
|
2613
2591
|
/**
|
|
2614
2592
|
* Only required property. Should be a unique value across all extensions.
|
|
2615
2593
|
* You ID can be anything you want, but it should be unique.
|
|
2616
2594
|
*/
|
|
2617
2595
|
id: id,
|
|
2618
|
-
async preRegistration(
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
commandsManager,
|
|
2622
|
-
configuration = {},
|
|
2623
|
-
appConfig
|
|
2624
|
-
} = _ref;
|
|
2596
|
+
async preRegistration({
|
|
2597
|
+
servicesManager
|
|
2598
|
+
}) {
|
|
2625
2599
|
servicesManager.registerService(MicroscopyService.REGISTRATION(servicesManager));
|
|
2626
2600
|
},
|
|
2627
2601
|
/**
|
|
@@ -2630,12 +2604,11 @@ const MicroscopyViewport = props => {
|
|
|
2630
2604
|
* {name, component} object. Example of a viewport module is the CornerstoneViewport
|
|
2631
2605
|
* that is provided by the Cornerstone extension in OHIF.
|
|
2632
2606
|
*/
|
|
2633
|
-
getViewportModule(
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
} = _ref2;
|
|
2607
|
+
getViewportModule({
|
|
2608
|
+
servicesManager,
|
|
2609
|
+
extensionManager,
|
|
2610
|
+
commandsManager
|
|
2611
|
+
}) {
|
|
2639
2612
|
/**
|
|
2640
2613
|
*
|
|
2641
2614
|
* @param props {*}
|
|
@@ -2651,11 +2624,20 @@ const MicroscopyViewport = props => {
|
|
|
2651
2624
|
const {
|
|
2652
2625
|
viewportOptions
|
|
2653
2626
|
} = props;
|
|
2654
|
-
const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.
|
|
2627
|
+
const [viewportGrid, viewportGridService] = (0,src/* useViewportGrid */.ih)();
|
|
2655
2628
|
const {
|
|
2656
2629
|
activeViewportId
|
|
2657
2630
|
} = viewportGrid;
|
|
2631
|
+
|
|
2632
|
+
// a unique identifier based on the contents of displaySets.
|
|
2633
|
+
// since we changed our rendering pipeline and if there is no
|
|
2634
|
+
// element size change nor viewportId change we won't re-render
|
|
2635
|
+
// we need a way to force re-rendering when displaySets change.
|
|
2636
|
+
const displaySetsKey = (0,react.useMemo)(() => {
|
|
2637
|
+
return props.displaySets.map(ds => ds.displaySetInstanceUID).join('-');
|
|
2638
|
+
}, [props.displaySets]);
|
|
2658
2639
|
return /*#__PURE__*/react.createElement(MicroscopyViewport, _extends({
|
|
2640
|
+
key: displaySetsKey,
|
|
2659
2641
|
servicesManager: servicesManager,
|
|
2660
2642
|
extensionManager: extensionManager,
|
|
2661
2643
|
commandsManager: commandsManager,
|
|
@@ -2671,18 +2653,50 @@ const MicroscopyViewport = props => {
|
|
|
2671
2653
|
component: ExtendedMicroscopyViewport
|
|
2672
2654
|
}];
|
|
2673
2655
|
},
|
|
2656
|
+
getToolbarModule({
|
|
2657
|
+
servicesManager
|
|
2658
|
+
}) {
|
|
2659
|
+
return [{
|
|
2660
|
+
name: 'evaluate.microscopyTool',
|
|
2661
|
+
evaluate: ({
|
|
2662
|
+
button
|
|
2663
|
+
}) => {
|
|
2664
|
+
const {
|
|
2665
|
+
microscopyService
|
|
2666
|
+
} = servicesManager.services;
|
|
2667
|
+
const activeInteractions = microscopyService.getActiveInteractions();
|
|
2668
|
+
const isPrimaryActive = activeInteractions.find(interactions => {
|
|
2669
|
+
const sameMouseButton = interactions[1].bindings.mouseButtons.includes('left');
|
|
2670
|
+
if (!sameMouseButton) {
|
|
2671
|
+
return false;
|
|
2672
|
+
}
|
|
2673
|
+
const notDraw = interactions[0] !== 'draw';
|
|
2674
|
+
|
|
2675
|
+
// there seems to be a custom logic for draw tool for some reason
|
|
2676
|
+
return notDraw ? interactions[0] === button.id : interactions[1].geometryType === button.id;
|
|
2677
|
+
});
|
|
2678
|
+
return {
|
|
2679
|
+
disabled: false,
|
|
2680
|
+
className: isPrimaryActive ? '!text-black bg-primary-light' : '!text-common-bright hover:!bg-primary-dark hover:!text-primary-light',
|
|
2681
|
+
// Todo: isActive right now is used for nested buttons where the primary
|
|
2682
|
+
// button needs to be fully rounded (vs partial rounded) when active
|
|
2683
|
+
// otherwise it does not have any other use
|
|
2684
|
+
isActive: isPrimaryActive
|
|
2685
|
+
};
|
|
2686
|
+
}
|
|
2687
|
+
}];
|
|
2688
|
+
},
|
|
2674
2689
|
/**
|
|
2675
2690
|
* SopClassHandlerModule should provide a list of sop class handlers that will be
|
|
2676
2691
|
* available in OHIF for Modes to consume and use to create displaySets from Series.
|
|
2677
2692
|
* Each sop class handler is defined by a { name, sopClassUids, getDisplaySetsFromSeries}.
|
|
2678
2693
|
* Examples include the default sop class handler provided by the default extension
|
|
2679
2694
|
*/
|
|
2680
|
-
getSopClassHandlerModule(
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
} = _ref3;
|
|
2695
|
+
getSopClassHandlerModule({
|
|
2696
|
+
servicesManager,
|
|
2697
|
+
commandsManager,
|
|
2698
|
+
extensionManager
|
|
2699
|
+
}) {
|
|
2686
2700
|
return [getDicomMicroscopySopClassHandler({
|
|
2687
2701
|
servicesManager,
|
|
2688
2702
|
extensionManager
|
|
@@ -2693,14 +2707,8 @@ const MicroscopyViewport = props => {
|
|
|
2693
2707
|
},
|
|
2694
2708
|
getPanelModule: getPanelModule,
|
|
2695
2709
|
getCommandsModule: getCommandsModule
|
|
2696
|
-
}
|
|
2697
|
-
|
|
2698
|
-
/***/ }),
|
|
2699
|
-
|
|
2700
|
-
/***/ 78753:
|
|
2701
|
-
/***/ (() => {
|
|
2702
|
-
|
|
2703
|
-
/* (ignored) */
|
|
2710
|
+
};
|
|
2711
|
+
/* harmony default export */ const dicom_microscopy_src = (extension);
|
|
2704
2712
|
|
|
2705
2713
|
/***/ })
|
|
2706
2714
|
|