@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.
Files changed (99) hide show
  1. package/dist/{220.bundle.f7e1c96c94245e70f2be.js → 109.bundle.b4fee2a22b622839baf5.js} +4466 -3715
  2. package/dist/{471.bundle.49c8d281adbae4a2c4df.js → 121.bundle.787f5a848ed632a4d5fc.js} +90 -112
  3. package/dist/141.bundle.556b4c1e4cab770417ac.js +8620 -0
  4. package/dist/{687.bundle.9065db35c01823286f08.js → 164.bundle.d4598e491783753a8b6b.js} +22 -38
  5. package/dist/17dd54813d5acc10bf8f.wasm +0 -0
  6. package/dist/183.bundle.72bf18ad23ee6624986d.js +30394 -0
  7. package/dist/{506.bundle.5731bb4349e266491225.js → 188.bundle.b80554ec7df7dcd435a5.js} +23 -28
  8. package/dist/{342.bundle.e7c3d500f86fdfcc62b5.js → 206.bundle.f957e0d1cdff66dbac69.js} +1963 -1142
  9. package/dist/20fc4c659b85ccd2a9c0.wasm +0 -0
  10. package/dist/217.bundle.be1cc412f8e26be87d21.js +115079 -0
  11. package/dist/{451.bundle.57c21db5d003c75e9d61.js → 295.bundle.6f734abf8fa85b1a310d.js} +107 -127
  12. package/dist/{125.bundle.253395f320b72180da63.js → 297.bundle.194d8985ab974839b5b6.js} +7 -8
  13. package/dist/{19.bundle.f77c5787b6d8ac0b638b.js → 325.bundle.84909a08305556e9f924.js} +479 -371
  14. package/dist/335.bundle.c39d4aefe33aecab958f.js +2590 -0
  15. package/dist/{202.bundle.d3490836f71e001dd30f.js → 342.bundle.e6d0bba29351b5650a8c.js} +566 -868
  16. package/dist/{776.bundle.a2dedb405a12ffd7699b.js → 41.bundle.7c943bb857ed37831905.js} +7295 -3536
  17. package/dist/422.bundle.bd6529c536f59807fbee.js +881 -0
  18. package/dist/{957.bundle.9ea4506963ef8b2d84ba.js → 433.bundle.4c77c1fe8fc90ac14218.js} +14737 -27555
  19. package/dist/445.bundle.38c6d2af64e41cd7c614.js +7835 -0
  20. package/dist/{126.bundle.6e7111d58bcc937ffd80.js → 448.bundle.deedeff5744e77510734.js} +362 -430
  21. package/dist/487.bundle.7890ca42826941ebcd60.js +1875 -0
  22. package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 530.bundle.7c94543955552475c56a.js} +98 -127
  23. package/dist/{663.bundle.d7be28450db14266cdd0.js → 540.bundle.079d43a6717e95c24392.js} +225 -188
  24. package/dist/{250.bundle.aea3335667054bdefe36.js → 544.bundle.1c1f57118560046649c1.js} +37 -62
  25. package/dist/574.bundle.be075ac52fb52b442a8b.js +2641 -0
  26. package/dist/{181.css → 574.css} +1 -1
  27. package/dist/{410.bundle.15c855b0ff4a1a674fb8.js → 594.bundle.0b1165661dd638820082.js} +183 -221
  28. package/dist/{221.bundle.aef554202c58483cb34e.js → 633.bundle.c1658e76f104cbd14cab.js} +349 -552
  29. package/dist/{774.bundle.4b2dc46a35012b898e1a.js → 644.bundle.1e77691d2eeb96a423b0.js} +1852 -8945
  30. package/dist/699.bundle.4f01772e7ce6637de339.js +768 -0
  31. package/dist/702.bundle.963481fbf871984b646f.js +8426 -0
  32. package/dist/722.bundle.afab1fe6bfcd569130ac.js +1083 -0
  33. package/dist/{359.bundle.45ecb3d28e8c22142606.js → 724.bundle.e5794460c391ee9cba2c.js} +164 -259
  34. package/dist/{757.bundle.ec8301d8e70d2b990f65.js → 726.bundle.0b3d9277d22fe7e15b89.js} +512 -879
  35. package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 835.bundle.15aff0b7433bb0dd6d6d.js} +37 -30
  36. package/dist/{822.bundle.82cdc418f8f56da6060b.js → 862.bundle.c0ee6e1d4d97e1353213.js} +77 -96
  37. package/dist/{236.bundle.4e9924934a747afac132.js → 889.bundle.7858e4b7ca1a2b12b64f.js} +207 -199
  38. package/dist/{281.bundle.deb7492d143e7768d8bf.js → 905.bundle.170908fe660fc6b40649.js} +157 -124
  39. package/dist/{814.bundle.c8c951d20039b63b865a.js → 907.bundle.dee4e30420caf07caea6.js} +16 -30
  40. package/dist/{417.bundle.af0a207c29b109f84159.js → 931.bundle.d270a1fda9a2836c3cc5.js} +26 -26
  41. package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 939.bundle.9d93b2e47c52338747a2.js} +7 -8
  42. package/dist/94.bundle.c452d9b0645277c2cf4e.js +784 -0
  43. package/dist/{12.bundle.b5ca13e5363f170ecb3b.js → 961.bundle.aaaaaba0ec015a3b85d8.js} +20 -33
  44. package/dist/app-config.js +1 -0
  45. package/dist/{app.bundle.a978edc59b9d82f2eb22.js → app.bundle.6c090a2d6d3ccc97a81d.js} +183240 -87650
  46. package/dist/app.bundle.css +16 -13
  47. package/dist/assets/images/CT-AAA.png +0 -0
  48. package/dist/assets/images/CT-AAA2.png +0 -0
  49. package/dist/assets/images/CT-Air.png +0 -0
  50. package/dist/assets/images/CT-Bone.png +0 -0
  51. package/dist/assets/images/CT-Bones.png +0 -0
  52. package/dist/assets/images/CT-Cardiac.png +0 -0
  53. package/dist/assets/images/CT-Cardiac2.png +0 -0
  54. package/dist/assets/images/CT-Cardiac3.png +0 -0
  55. package/dist/assets/images/CT-Chest-Contrast-Enhanced.png +0 -0
  56. package/dist/assets/images/CT-Chest-Vessels.png +0 -0
  57. package/dist/assets/images/CT-Coronary-Arteries-2.png +0 -0
  58. package/dist/assets/images/CT-Coronary-Arteries-3.png +0 -0
  59. package/dist/assets/images/CT-Coronary-Arteries.png +0 -0
  60. package/dist/assets/images/CT-Cropped-Volume-Bone.png +0 -0
  61. package/dist/assets/images/CT-Fat.png +0 -0
  62. package/dist/assets/images/CT-Liver-Vasculature.png +0 -0
  63. package/dist/assets/images/CT-Lung.png +0 -0
  64. package/dist/assets/images/CT-MIP.png +0 -0
  65. package/dist/assets/images/CT-Muscle.png +0 -0
  66. package/dist/assets/images/CT-Pulmonary-Arteries.png +0 -0
  67. package/dist/assets/images/CT-Soft-Tissue.png +0 -0
  68. package/dist/assets/images/DTI-FA-Brain.png +0 -0
  69. package/dist/assets/images/MR-Angio.png +0 -0
  70. package/dist/assets/images/MR-Default.png +0 -0
  71. package/dist/assets/images/MR-MIP.png +0 -0
  72. package/dist/assets/images/MR-T2-Brain.png +0 -0
  73. package/dist/assets/images/VolumeRendering.png +0 -0
  74. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  75. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  76. package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.d3a56dc9f62df5e11019.js} +3 -3
  77. package/dist/histogram-worker.bundle.829e14ec12c2b41a4323.js +359 -0
  78. package/dist/index.html +1 -1
  79. package/dist/{index.worker.e62ecca63f1a2e124230.worker.js → index.worker.64c896c4316fcd506666.worker.js} +2 -2
  80. package/dist/index.worker.64c896c4316fcd506666.worker.js.map +1 -0
  81. package/dist/polySeg.bundle.63011312c3c79e717ea9.js +249 -0
  82. package/dist/serve.json +12 -0
  83. package/dist/sw.js +1 -1
  84. package/package.json +26 -22
  85. package/dist/181.bundle.a62b9f0ec692299acb35.js +0 -1527
  86. package/dist/23.bundle.e008ad788170f2ed5569.js +0 -900
  87. package/dist/604.bundle.a51f83e64004bca5f497.js +0 -1848
  88. package/dist/613.bundle.9e7072e5b575354fe51e.js +0 -532
  89. package/dist/743.bundle.489f7df3a089d4d374e1.js +0 -78007
  90. package/dist/75788f12450d4c5ed494.wasm +0 -0
  91. package/dist/775.bundle.2285e7e0e67878948c0d.js +0 -1009
  92. package/dist/788.bundle.207ac23c0dfa70cbe3fb.js +0 -2682
  93. package/dist/82.bundle.d6fdcca0f67540bb226a.js +0 -1049
  94. package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
  95. /package/dist/{19.css → 325.css} +0 -0
  96. /package/dist/{776.css → 41.css} +0 -0
  97. /package/dist/{579.css → 481.css} +0 -0
  98. /package/dist/{250.css → 544.css} +0 -0
  99. /package/dist/{221.css → 633.css} +0 -0
@@ -1,9 +1,9 @@
1
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[236],{
1
+ "use strict";
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[889],{
2
3
 
3
- /***/ 80965:
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('{"u2":"@ohif/extension-dicom-microscopy"}');
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.u2;
19
+ const id = package_namespaceObject.UU;
20
20
 
21
21
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
22
- var react = __webpack_require__(43001);
23
- // EXTERNAL MODULE: ../../ui/src/index.js + 486 modules
24
- var src = __webpack_require__(22582);
25
- // EXTERNAL MODULE: ../../core/src/index.ts + 65 modules
26
- var core_src = __webpack_require__(71771);
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__(69190);
29
- // EXTERNAL MODULE: ../../../node_modules/mathjs/lib/esm/index.js + 982 modules
30
- var esm = __webpack_require__(55220);
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 */.JBn)(m);
120
+ const mInverted = (0,esm/* inv */.WCD)(m);
121
121
  const vSlide = [[point[0]], [point[1]], [1]];
122
- const vImage = (0,esm/* multiply */.JpY)(mInverted, vSlide);
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 */.hC {
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(_ref) {
418
- let {
419
- uid,
420
- properties
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 */.hC {
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 */.hC {
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 = _ref => {
1312
- let {
1310
+ onRelabel = ({
1311
+ label
1312
+ }) => this.managedViewers.forEach(mv => mv.updateROIProperties({
1313
+ uid: roiAnnotation.uid,
1314
+ properties: {
1313
1315
  label
1314
- } = _ref;
1315
- return this.managedViewers.forEach(mv => mv.updateROIProperties({
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: _ref2 => {
1362
- let {
1363
- configuration = {}
1364
- } = _ref2;
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__(67540);
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(_ref) {
1386
- let {
1387
- uiDialogService,
1388
- title = 'Annotation',
1389
- defaultValue = '',
1390
- callback = (value, action) => {}
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 = _ref2 => {
1394
- let {
1395
- action,
1396
- value
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 */.Vq,
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 */.LZ.dt.secondary
1423
+ type: src/* ButtonEnums.type */.Ny.NW.secondary
1430
1424
  }, {
1431
1425
  id: 'save',
1432
1426
  text: 'Save',
1433
- type: src/* ButtonEnums.type */.LZ.dt.primary
1427
+ type: src/* ButtonEnums.type */.Ny.NW.primary
1434
1428
  }],
1435
1429
  onSubmit: onSubmitHandler,
1436
- body: _ref3 => {
1437
- let {
1438
- value,
1439
- setValue
1440
- } = _ref3;
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, _ref, annotations) {
1489
- let {
1490
- SeriesDescription,
1491
- SeriesNumber
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["default"].sr.templates.ObservationContext({
1506
- observerPersonContext: new dcmjs_es["default"].sr.templates.ObserverContext({
1507
- observerType: new dcmjs_es["default"].sr.coding.CodedConcept({
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["default"].sr.templates.PersonObserverIdentifyingAttributes({
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["default"].sr.templates.ObserverContext({
1517
- observerType: new dcmjs_es["default"].sr.coding.CodedConcept({
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["default"].sr.templates.DeviceObserverIdentifyingAttributes({
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["default"].sr.templates.SubjectContext({
1527
- subjectClass: new dcmjs_es["default"].sr.coding.CodedConcept({
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["default"].sr.templates.SubjectContextSpecimen({
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["default"].sr.valueTypes.NumContentItem({
1565
- name: new dcmjs_es["default"].sr.coding.CodedConcept({
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["default"].sr.coding.CodedConcept({
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["default"].sr.valueTypes.TextContentItem({
1583
- name: new dcmjs_es["default"].sr.coding.CodedConcept({
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["default"].sr.templates.PlanarROIMeasurementsAndQualitativeEvaluations({
1594
- trackingIdentifier: new dcmjs_es["default"].sr.templates.TrackingIdentifier({
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["default"].sr.contentItems.ImageRegion3D({
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["default"].sr.coding.CodedConcept({
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["default"].sr.templates.MeasurementReport({
1615
- languageOfContentItemAndDescendants: new dcmjs_es["default"].sr.templates.LanguageOfContentItemAndDescendants({}),
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["default"].sr.coding.CodedConcept({
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["default"].sr.documents.Comprehensive3DSR({
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["default"].data.DicomMetaDictionary.uid(),
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["default"].data.DicomMetaDictionary.uid(),
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["default"].data.DicomMetaDictionary.uid()],
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["default"].data;
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 = _ref => {
1935
- let {
1936
- uid
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 = _ref2 => {
1948
- let {
1949
- uid,
1950
- isActive
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 */.wt, {
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 */.Zh)(['MicroscopyTable', 'Common'])(MicroscopyPanel);
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(_ref) {
2014
- let {
2015
- commandsManager,
2016
- extensionManager,
2017
- servicesManager
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 */.O_)();
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(_ref) {
2047
- let {
2048
- servicesManager,
2049
- commandsManager,
2050
- extensionManager
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: _ref2 => {
2060
- let {
2061
- uid
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: _ref3 => {
2071
- let {
2072
- uid
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: _ref4 => {
2090
- let {
2091
- toolName,
2092
- toolGroupId = 'MICROSCOPY'
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["default"];
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(_ref) {
2288
- let {
2289
- servicesManager,
2290
- extensionManager
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["default"].adapters.DICOMMicroscopyViewer.MeasurementReport;
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 */ 18).then(__webpack_require__.t.bind(__webpack_require__, 42613, 23));
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["default"];
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(_ref) {
2577
- let {
2578
- servicesManager,
2579
- extensionManager
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(743), __webpack_require__.e(604), __webpack_require__.e(417), __webpack_require__.e(23), __webpack_require__.e(342), __webpack_require__.e(250)]).then(__webpack_require__.bind(__webpack_require__, 76516));
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
- /* harmony default export */ const dicom_microscopy_src = ({
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(_ref) {
2619
- let {
2620
- servicesManager,
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(_ref2) {
2634
- let {
2635
- servicesManager,
2636
- extensionManager,
2637
- commandsManager
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 */.O_)();
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(_ref3) {
2681
- let {
2682
- servicesManager,
2683
- commandsManager,
2684
- extensionManager
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