@ohif/app 3.8.0-beta.70 → 3.8.0-beta.71
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/{41.bundle.6ec0794a483e9a30eb94.js → 41.bundle.b5a6c70f88cf565cad3e.js} +47 -4
- package/dist/{448.bundle.9177b9d909654efbc8d5.js → 448.bundle.599d81471e1d7f7962bc.js} +47 -2
- package/dist/{574.bundle.83afbc7922736fc6846d.js → 574.bundle.b262cbe9f2afd7275271.js} +68 -46
- package/dist/{595.bundle.1c1a50c4ff87763b786a.js → 595.bundle.c25147a450c67defb3d5.js} +31 -3
- package/dist/{699.bundle.db05df7b8e2ad605e928.js → 699.bundle.02c15c3cc4c04dbf7f51.js} +20 -2
- package/dist/{90.bundle.f41c8c4fc78cdfd4de30.js → 90.bundle.27637ef740946d5c8948.js} +3 -4
- package/dist/app.bundle.css +1 -1
- package/dist/{app.bundle.e21e5afd46fb064cb5de.js → app.bundle.d1c8b09ab30d221fddf0.js} +607 -244
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.e7b4c29fb9173e8567b8.js → polySeg.bundle.01449e456b7d4a737d4f.js} +1 -1
- package/dist/sw.js +1 -1
- package/package.json +17 -17
- /package/dist/{155.bundle.0dabe8513b605b01ac3d.js → 155.bundle.091ace1591aff1f6b679.js} +0 -0
- /package/dist/{164.bundle.0b1a2be351543c1433e8.js → 164.bundle.fcc94cd4e142a409769d.js} +0 -0
- /package/dist/{188.bundle.81e83b073b6fd4ae0058.js → 188.bundle.0081530bd886a18676eb.js} +0 -0
- /package/dist/{191.bundle.7d89c921abefd1140d50.js → 191.bundle.ef35ed1f90a988b3952b.js} +0 -0
- /package/dist/{2.bundle.04dbbf67a52fe109749c.js → 2.bundle.ab8937194aad592bc7b4.js} +0 -0
- /package/dist/{342.bundle.6e49f63ea7cea4645c0a.js → 342.bundle.9be178d7555a64de203a.js} +0 -0
- /package/dist/{425.bundle.ffcdde2143a5757926b9.js → 425.bundle.e44cfce041ba5209a878.js} +0 -0
- /package/dist/{504.bundle.993d7e2dec36257d4ce4.js → 504.bundle.5ccd6d4269fa77a0a7e7.js} +0 -0
- /package/dist/{559.bundle.4f111410af43324629ca.js → 559.bundle.fb8ac10c41eb734e2f3d.js} +0 -0
- /package/dist/{594.bundle.ffeebda1bb9a81182a80.js → 594.bundle.b70ca7a91d85ebd5d8c4.js} +0 -0
- /package/dist/{724.bundle.eada9d6c23678a5a2947.js → 724.bundle.d50ce9fb0ab01b9378b7.js} +0 -0
- /package/dist/{862.bundle.959ef65b18c1d3b5e2b4.js → 862.bundle.809c87a7ba9da6fb29c8.js} +0 -0
- /package/dist/{889.bundle.67c6e5f988c9b1d289ef.js → 889.bundle.1c17d0d13e157ac21d38.js} +0 -0
- /package/dist/{905.bundle.eb821474b36b96b897f9.js → 905.bundle.206e44c3bbd1df1a900b.js} +0 -0
- /package/dist/{907.bundle.ca904d9747480a0e4bf1.js → 907.bundle.11700f7af989b5af8bc3.js} +0 -0
- /package/dist/{961.bundle.65967b1a4af002af1d1d.js → 961.bundle.a1ffb667eb04cbe07210.js} +0 -0
|
@@ -93,14 +93,22 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage
|
|
|
93
93
|
toolName: toolNames.Angle
|
|
94
94
|
}, {
|
|
95
95
|
toolName: toolNames.CobbAngle
|
|
96
|
-
}, {
|
|
97
|
-
toolName: toolNames.PlanarFreehandROI
|
|
98
96
|
}, {
|
|
99
97
|
toolName: toolNames.Magnify
|
|
100
98
|
}, {
|
|
101
99
|
toolName: toolNames.SegmentationDisplay
|
|
102
100
|
}, {
|
|
103
101
|
toolName: toolNames.CalibrationLine
|
|
102
|
+
}, {
|
|
103
|
+
toolName: toolNames.AdvancedMagnify
|
|
104
|
+
}, {
|
|
105
|
+
toolName: toolNames.UltrasoundDirectional
|
|
106
|
+
}, {
|
|
107
|
+
toolName: toolNames.PlanarFreehandROI
|
|
108
|
+
}, {
|
|
109
|
+
toolName: toolNames.SplineROI
|
|
110
|
+
}, {
|
|
111
|
+
toolName: toolNames.LivewireContour
|
|
104
112
|
}],
|
|
105
113
|
// enabled
|
|
106
114
|
enabled: [{
|
|
@@ -359,6 +367,27 @@ const toolbarButtons = [{
|
|
|
359
367
|
tooltip: 'Circle Tool',
|
|
360
368
|
commands: setToolActiveToolbar,
|
|
361
369
|
evaluate: 'evaluate.cornerstoneTool'
|
|
370
|
+
}), createButton({
|
|
371
|
+
id: 'PlanarFreehandROI',
|
|
372
|
+
icon: 'icon-tool-freehand-roi',
|
|
373
|
+
label: 'Freehand ROI',
|
|
374
|
+
tooltip: 'Freehand ROI',
|
|
375
|
+
commands: setToolActiveToolbar,
|
|
376
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
377
|
+
}), createButton({
|
|
378
|
+
id: 'SplineROI',
|
|
379
|
+
icon: 'icon-tool-spline-roi',
|
|
380
|
+
label: 'Spline ROI',
|
|
381
|
+
tooltip: 'Spline ROI',
|
|
382
|
+
commands: setToolActiveToolbar,
|
|
383
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
384
|
+
}), createButton({
|
|
385
|
+
id: 'LivewireContour',
|
|
386
|
+
icon: 'icon-tool-livewire',
|
|
387
|
+
label: 'Livewire tool',
|
|
388
|
+
tooltip: 'Livewire tool',
|
|
389
|
+
commands: setToolActiveToolbar,
|
|
390
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
362
391
|
})]
|
|
363
392
|
}
|
|
364
393
|
}, {
|
|
@@ -561,7 +590,7 @@ const moreTools = [{
|
|
|
561
590
|
commands: 'invertViewport',
|
|
562
591
|
evaluate: 'evaluate.viewportProperties.toggle'
|
|
563
592
|
}), moreTools_createButton({
|
|
564
|
-
id: '
|
|
593
|
+
id: 'DragProbe',
|
|
565
594
|
icon: 'tool-probe',
|
|
566
595
|
label: 'Probe',
|
|
567
596
|
tooltip: 'Probe',
|
|
@@ -604,10 +633,24 @@ const moreTools = [{
|
|
|
604
633
|
evaluate: 'evaluate.cornerstoneTool'
|
|
605
634
|
}), moreTools_createButton({
|
|
606
635
|
id: 'TagBrowser',
|
|
607
|
-
icon: '
|
|
636
|
+
icon: 'dicom-tag-browser',
|
|
608
637
|
label: 'Dicom Tag Browser',
|
|
609
638
|
tooltip: 'Dicom Tag Browser',
|
|
610
639
|
commands: 'openDICOMTagViewer'
|
|
640
|
+
}), moreTools_createButton({
|
|
641
|
+
id: 'AdvancedMagnify',
|
|
642
|
+
icon: 'icon-tool-loupe',
|
|
643
|
+
label: 'Loupe',
|
|
644
|
+
tooltip: 'Loupe',
|
|
645
|
+
commands: setToolActiveToolbar,
|
|
646
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
647
|
+
}), moreTools_createButton({
|
|
648
|
+
id: 'UltrasoundDirectionalTool',
|
|
649
|
+
icon: 'icon-tool-ultrasound-bidirectional',
|
|
650
|
+
label: 'Ultrasound Directional',
|
|
651
|
+
tooltip: 'Ultrasound Directional',
|
|
652
|
+
commands: setToolActiveToolbar,
|
|
653
|
+
evaluate: ['evaluate.cornerstoneTool', 'evaluate.isUS']
|
|
611
654
|
})]
|
|
612
655
|
}
|
|
613
656
|
}];
|
|
@@ -108,6 +108,27 @@ const toolbarButtons = [{
|
|
|
108
108
|
tooltip: 'Circle Tool',
|
|
109
109
|
commands: setToolActiveToolbar,
|
|
110
110
|
evaluate: 'evaluate.cornerstoneTool'
|
|
111
|
+
}), createButton({
|
|
112
|
+
id: 'PlanarFreehandROI',
|
|
113
|
+
icon: 'icon-tool-freehand-roi',
|
|
114
|
+
label: 'Freehand ROI',
|
|
115
|
+
tooltip: 'Freehand ROI',
|
|
116
|
+
commands: setToolActiveToolbar,
|
|
117
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
118
|
+
}), createButton({
|
|
119
|
+
id: 'SplineROI',
|
|
120
|
+
icon: 'icon-tool-spline-roi',
|
|
121
|
+
label: 'Spline ROI',
|
|
122
|
+
tooltip: 'Spline ROI',
|
|
123
|
+
commands: setToolActiveToolbar,
|
|
124
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
125
|
+
}), createButton({
|
|
126
|
+
id: 'LivewireContour',
|
|
127
|
+
icon: 'icon-tool-livewire',
|
|
128
|
+
label: 'Livewire tool',
|
|
129
|
+
tooltip: 'Livewire tool',
|
|
130
|
+
commands: setToolActiveToolbar,
|
|
131
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
111
132
|
})]
|
|
112
133
|
}
|
|
113
134
|
}, {
|
|
@@ -278,6 +299,16 @@ function initDefaultToolGroup(extensionManager, toolGroupService, commandsManage
|
|
|
278
299
|
toolName: toolNames.Magnify
|
|
279
300
|
}, {
|
|
280
301
|
toolName: toolNames.SegmentationDisplay
|
|
302
|
+
}, {
|
|
303
|
+
toolName: toolNames.AdvancedMagnify
|
|
304
|
+
}, {
|
|
305
|
+
toolName: toolNames.UltrasoundDirectional
|
|
306
|
+
}, {
|
|
307
|
+
toolName: toolNames.PlanarFreehandROI
|
|
308
|
+
}, {
|
|
309
|
+
toolName: toolNames.SplineROI
|
|
310
|
+
}, {
|
|
311
|
+
toolName: toolNames.LivewireContour
|
|
281
312
|
}],
|
|
282
313
|
// enabled
|
|
283
314
|
enabled: [{
|
|
@@ -567,7 +598,7 @@ const moreTools = [{
|
|
|
567
598
|
commands: 'invertViewport',
|
|
568
599
|
evaluate: 'evaluate.viewportProperties.toggle'
|
|
569
600
|
}), moreTools_createButton({
|
|
570
|
-
id: '
|
|
601
|
+
id: 'DragProbe',
|
|
571
602
|
icon: 'tool-probe',
|
|
572
603
|
label: 'Probe',
|
|
573
604
|
tooltip: 'Probe',
|
|
@@ -610,10 +641,24 @@ const moreTools = [{
|
|
|
610
641
|
evaluate: 'evaluate.cornerstoneTool'
|
|
611
642
|
}), moreTools_createButton({
|
|
612
643
|
id: 'TagBrowser',
|
|
613
|
-
icon: '
|
|
644
|
+
icon: 'dicom-tag-browser',
|
|
614
645
|
label: 'Dicom Tag Browser',
|
|
615
646
|
tooltip: 'Dicom Tag Browser',
|
|
616
647
|
commands: 'openDICOMTagViewer'
|
|
648
|
+
}), moreTools_createButton({
|
|
649
|
+
id: 'AdvancedMagnify',
|
|
650
|
+
icon: 'icon-tool-loupe',
|
|
651
|
+
label: 'Loupe',
|
|
652
|
+
tooltip: 'Loupe',
|
|
653
|
+
commands: setToolActiveToolbar,
|
|
654
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
655
|
+
}), moreTools_createButton({
|
|
656
|
+
id: 'UltrasoundDirectionalTool',
|
|
657
|
+
icon: 'icon-tool-ultrasound-bidirectional',
|
|
658
|
+
label: 'Ultrasound Directional',
|
|
659
|
+
tooltip: 'Ultrasound Directional',
|
|
660
|
+
commands: setToolActiveToolbar,
|
|
661
|
+
evaluate: ['evaluate.cornerstoneTool', 'evaluate.isUS']
|
|
617
662
|
})]
|
|
618
663
|
}
|
|
619
664
|
}];
|
|
@@ -295,9 +295,9 @@ function CustomizableViewportOverlay({
|
|
|
295
295
|
const topRightCustomization = customizationService.getModeCustomization('cornerstoneOverlayTopRight');
|
|
296
296
|
const bottomLeftCustomization = customizationService.getModeCustomization('cornerstoneOverlayBottomLeft');
|
|
297
297
|
const bottomRightCustomization = customizationService.getModeCustomization('cornerstoneOverlayBottomRight');
|
|
298
|
-
const
|
|
298
|
+
const instances = (0,react.useMemo)(() => {
|
|
299
299
|
if (viewportData != null) {
|
|
300
|
-
return
|
|
300
|
+
return _getViewportInstances(viewportData);
|
|
301
301
|
} else {
|
|
302
302
|
return null;
|
|
303
303
|
}
|
|
@@ -383,7 +383,7 @@ function CustomizableViewportOverlay({
|
|
|
383
383
|
formatTime: formatDICOMTime,
|
|
384
384
|
formatNumberPrecision: formatNumberPrecision
|
|
385
385
|
},
|
|
386
|
-
instance,
|
|
386
|
+
instance: instances ? instances[item?.instanceIndex] : null,
|
|
387
387
|
voi,
|
|
388
388
|
scale,
|
|
389
389
|
instanceNumber
|
|
@@ -403,47 +403,60 @@ function CustomizableViewportOverlay({
|
|
|
403
403
|
return renderItem.content(overlayItemProps);
|
|
404
404
|
}
|
|
405
405
|
}
|
|
406
|
-
}, [element, viewportData, imageSliceData, viewportId, servicesManager, customizationService,
|
|
406
|
+
}, [element, viewportData, imageSliceData, viewportId, servicesManager, customizationService, instances, voi, scale, instanceNumber]);
|
|
407
407
|
const getContent = (0,react.useCallback)((customization, defaultItems, keyPrefix) => {
|
|
408
408
|
const items = customization?.items ?? defaultItems;
|
|
409
409
|
return /*#__PURE__*/react.createElement(react.Fragment, null, items.map((item, index) => /*#__PURE__*/react.createElement("div", {
|
|
410
410
|
key: `${keyPrefix}_${index}`
|
|
411
411
|
}, item?.condition ? item.condition({
|
|
412
|
-
instance,
|
|
412
|
+
instance: instances ? instances[item?.instanceIndex] : null,
|
|
413
413
|
formatters: {
|
|
414
414
|
formatDate: formatDICOMDate
|
|
415
415
|
}
|
|
416
416
|
}) ? _renderOverlayItem(item) : null : _renderOverlayItem(item))));
|
|
417
417
|
}, [_renderOverlayItem]);
|
|
418
|
+
const studyDateItem = {
|
|
419
|
+
id: 'StudyDate',
|
|
420
|
+
customizationType: 'ohif.overlayItem',
|
|
421
|
+
label: '',
|
|
422
|
+
title: 'Study date',
|
|
423
|
+
condition: ({
|
|
424
|
+
instance
|
|
425
|
+
}) => instance && instance.StudyDate,
|
|
426
|
+
contentF: ({
|
|
427
|
+
instance,
|
|
428
|
+
formatters: {
|
|
429
|
+
formatDate
|
|
430
|
+
}
|
|
431
|
+
}) => formatDate(instance.StudyDate)
|
|
432
|
+
};
|
|
433
|
+
const seriesDescriptionItem = {
|
|
434
|
+
id: 'SeriesDescription',
|
|
435
|
+
customizationType: 'ohif.overlayItem',
|
|
436
|
+
label: '',
|
|
437
|
+
title: 'Series description',
|
|
438
|
+
attribute: 'SeriesDescription',
|
|
439
|
+
condition: ({
|
|
440
|
+
instance
|
|
441
|
+
}) => {
|
|
442
|
+
return instance && instance.SeriesDescription;
|
|
443
|
+
}
|
|
444
|
+
};
|
|
445
|
+
const topLeftItems = instances ? instances.map((instance, index) => {
|
|
446
|
+
return [{
|
|
447
|
+
...studyDateItem,
|
|
448
|
+
instanceIndex: index
|
|
449
|
+
}, {
|
|
450
|
+
...seriesDescriptionItem,
|
|
451
|
+
instanceIndex: index
|
|
452
|
+
}];
|
|
453
|
+
}).flat() : [];
|
|
418
454
|
return /*#__PURE__*/react.createElement(ui_src/* ViewportOverlay */.pU, {
|
|
419
455
|
topLeft:
|
|
420
456
|
/**
|
|
421
457
|
* Inline default overlay items for a more standard expansion
|
|
422
458
|
*/
|
|
423
|
-
getContent(topLeftCustomization, [
|
|
424
|
-
id: 'StudyDate',
|
|
425
|
-
customizationType: 'ohif.overlayItem',
|
|
426
|
-
label: '',
|
|
427
|
-
title: 'Study date',
|
|
428
|
-
condition: ({
|
|
429
|
-
instance
|
|
430
|
-
}) => instance && instance.StudyDate,
|
|
431
|
-
contentF: ({
|
|
432
|
-
instance,
|
|
433
|
-
formatters: {
|
|
434
|
-
formatDate
|
|
435
|
-
}
|
|
436
|
-
}) => formatDate(instance.StudyDate)
|
|
437
|
-
}, {
|
|
438
|
-
id: 'SeriesDescription',
|
|
439
|
-
customizationType: 'ohif.overlayItem',
|
|
440
|
-
label: '',
|
|
441
|
-
title: 'Series description',
|
|
442
|
-
attribute: 'SeriesDescription',
|
|
443
|
-
condition: ({
|
|
444
|
-
instance
|
|
445
|
-
}) => instance && instance.SeriesDescription
|
|
446
|
-
}], 'topLeftOverlayItem'),
|
|
459
|
+
getContent(topLeftCustomization, [...topLeftItems], 'topLeftOverlayItem'),
|
|
447
460
|
topRight: getContent(topRightCustomization, [], 'topRightOverlayItem'),
|
|
448
461
|
bottomLeft: getContent(bottomLeftCustomization, [{
|
|
449
462
|
id: 'WindowLevel',
|
|
@@ -462,18 +475,25 @@ function CustomizableViewportOverlay({
|
|
|
462
475
|
}], 'bottomRightOverlayItem')
|
|
463
476
|
});
|
|
464
477
|
}
|
|
465
|
-
function
|
|
466
|
-
|
|
478
|
+
function _getViewportInstances(viewportData) {
|
|
479
|
+
const imageIds = [];
|
|
467
480
|
if (viewportData.viewportType === dist_esm.Enums.ViewportType.STACK) {
|
|
468
|
-
|
|
481
|
+
imageIds.push(viewportData.data.imageIds[0]);
|
|
469
482
|
} else if (viewportData.viewportType === dist_esm.Enums.ViewportType.ORTHOGRAPHIC) {
|
|
470
483
|
const volumes = viewportData.data;
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
484
|
+
volumes.forEach(volume => {
|
|
485
|
+
if (!volume?.imageIds) {
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
imageIds.push(volume.imageIds[0]);
|
|
489
|
+
});
|
|
475
490
|
}
|
|
476
|
-
|
|
491
|
+
const instances = [];
|
|
492
|
+
imageIds.forEach(imageId => {
|
|
493
|
+
const instance = dist_esm.metaData.get('instance', imageId) || {};
|
|
494
|
+
instances.push(instance);
|
|
495
|
+
});
|
|
496
|
+
return instances;
|
|
477
497
|
}
|
|
478
498
|
const getInstanceNumber = (viewportData, viewportId, imageIndex, cornerstoneViewportService) => {
|
|
479
499
|
let instanceNumber;
|
|
@@ -482,7 +502,7 @@ const getInstanceNumber = (viewportData, viewportId, imageIndex, cornerstoneView
|
|
|
482
502
|
instanceNumber = _getInstanceNumberFromStack(viewportData, imageIndex);
|
|
483
503
|
break;
|
|
484
504
|
case dist_esm.Enums.ViewportType.ORTHOGRAPHIC:
|
|
485
|
-
instanceNumber = _getInstanceNumberFromVolume(viewportData, viewportId, cornerstoneViewportService);
|
|
505
|
+
instanceNumber = _getInstanceNumberFromVolume(viewportData, viewportId, cornerstoneViewportService, imageIndex);
|
|
486
506
|
break;
|
|
487
507
|
}
|
|
488
508
|
return instanceNumber ?? null;
|
|
@@ -507,14 +527,16 @@ function _getInstanceNumberFromStack(viewportData, imageIndex) {
|
|
|
507
527
|
// Since volume viewports can be in any view direction, they can render
|
|
508
528
|
// a reconstructed image which don't have imageIds; therefore, no instance and instanceNumber
|
|
509
529
|
// Here we check if viewport is in the acquisition direction and if so, we get the instanceNumber
|
|
510
|
-
function _getInstanceNumberFromVolume(viewportData, viewportId, cornerstoneViewportService) {
|
|
511
|
-
const volumes = viewportData.
|
|
512
|
-
|
|
513
|
-
// Todo: support fusion of acquisition plane which has instanceNumber
|
|
514
|
-
if (!volumes || volumes.length > 1) {
|
|
530
|
+
function _getInstanceNumberFromVolume(viewportData, viewportId, cornerstoneViewportService, imageIndex) {
|
|
531
|
+
const volumes = viewportData.data;
|
|
532
|
+
if (!volumes) {
|
|
515
533
|
return;
|
|
516
534
|
}
|
|
517
|
-
|
|
535
|
+
|
|
536
|
+
// Todo: support fusion of acquisition plane which has instanceNumber
|
|
537
|
+
const {
|
|
538
|
+
volume
|
|
539
|
+
} = volumes[0];
|
|
518
540
|
const {
|
|
519
541
|
direction,
|
|
520
542
|
imageIds
|
|
@@ -610,9 +632,9 @@ function InstanceNumberOverlayItem({
|
|
|
610
632
|
style: {
|
|
611
633
|
color: customization && customization.color || undefined
|
|
612
634
|
}
|
|
613
|
-
}, /*#__PURE__*/react.createElement("span", {
|
|
635
|
+
}, /*#__PURE__*/react.createElement("span", null, instanceNumber !== undefined && instanceNumber !== null ? /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("span", {
|
|
614
636
|
className: "mr-1 shrink-0"
|
|
615
|
-
}, "I:"), /*#__PURE__*/react.createElement("span", null,
|
|
637
|
+
}, "I:"), /*#__PURE__*/react.createElement("span", null, `${instanceNumber} (${imageIndex + 1}/${numberOfSlices})`)) : `${imageIndex + 1}/${numberOfSlices}`));
|
|
616
638
|
}
|
|
617
639
|
CustomizableViewportOverlay.propTypes = {
|
|
618
640
|
viewportData: (prop_types_default()).object,
|
|
@@ -843,7 +843,6 @@ function initCornerstoneTools(configuration = {}) {
|
|
|
843
843
|
(0,dist_esm.addTool)(dist_esm.DragProbeTool);
|
|
844
844
|
(0,dist_esm.addTool)(dist_esm.AngleTool);
|
|
845
845
|
(0,dist_esm.addTool)(dist_esm.CobbAngleTool);
|
|
846
|
-
(0,dist_esm.addTool)(dist_esm.PlanarFreehandROITool);
|
|
847
846
|
(0,dist_esm.addTool)(dist_esm.MagnifyTool);
|
|
848
847
|
(0,dist_esm.addTool)(dist_esm.CrosshairsTool);
|
|
849
848
|
(0,dist_esm.addTool)(dist_esm.SegmentationDisplayTool);
|
|
@@ -854,6 +853,11 @@ function initCornerstoneTools(configuration = {}) {
|
|
|
854
853
|
(0,dist_esm.addTool)(dist_esm.RectangleScissorsTool);
|
|
855
854
|
(0,dist_esm.addTool)(dist_esm.SphereScissorsTool);
|
|
856
855
|
(0,dist_esm.addTool)(tools_ImageOverlayViewerTool);
|
|
856
|
+
(0,dist_esm.addTool)(dist_esm.AdvancedMagnifyTool);
|
|
857
|
+
(0,dist_esm.addTool)(dist_esm.UltrasoundDirectionalTool);
|
|
858
|
+
(0,dist_esm.addTool)(dist_esm.PlanarFreehandROITool);
|
|
859
|
+
(0,dist_esm.addTool)(dist_esm.SplineROITool);
|
|
860
|
+
(0,dist_esm.addTool)(dist_esm.LivewireContourTool);
|
|
857
861
|
|
|
858
862
|
// Modify annotation tools to use dashed lines on SR
|
|
859
863
|
const annotationStyle = {
|
|
@@ -886,7 +890,6 @@ const toolNames = {
|
|
|
886
890
|
Bidirectional: dist_esm.BidirectionalTool.toolName,
|
|
887
891
|
Angle: dist_esm.AngleTool.toolName,
|
|
888
892
|
CobbAngle: dist_esm.CobbAngleTool.toolName,
|
|
889
|
-
PlanarFreehandROI: dist_esm.PlanarFreehandROITool.toolName,
|
|
890
893
|
Magnify: dist_esm.MagnifyTool.toolName,
|
|
891
894
|
Crosshairs: dist_esm.CrosshairsTool.toolName,
|
|
892
895
|
SegmentationDisplay: dist_esm.SegmentationDisplayTool.toolName,
|
|
@@ -896,7 +899,12 @@ const toolNames = {
|
|
|
896
899
|
CircleScissors: dist_esm.CircleScissorsTool.toolName,
|
|
897
900
|
RectangleScissors: dist_esm.RectangleScissorsTool.toolName,
|
|
898
901
|
SphereScissors: dist_esm.SphereScissorsTool.toolName,
|
|
899
|
-
ImageOverlayViewer: tools_ImageOverlayViewerTool.toolName
|
|
902
|
+
ImageOverlayViewer: tools_ImageOverlayViewerTool.toolName,
|
|
903
|
+
AdvancedMagnify: dist_esm.AdvancedMagnifyTool.toolName,
|
|
904
|
+
UltrasoundDirectional: dist_esm.UltrasoundDirectionalTool.toolName,
|
|
905
|
+
SplineROI: dist_esm.SplineROITool.toolName,
|
|
906
|
+
LivewireContour: dist_esm.LivewireContourTool.toolName,
|
|
907
|
+
PlanarFreehandROI: dist_esm.PlanarFreehandROITool.toolName
|
|
900
908
|
};
|
|
901
909
|
|
|
902
910
|
;// CONCATENATED MODULE: ../../../extensions/cornerstone/src/utils/measurementServiceMappings/constants/supportedTools.js
|
|
@@ -7290,6 +7298,26 @@ function getToolbarModule({
|
|
|
7290
7298
|
};
|
|
7291
7299
|
}
|
|
7292
7300
|
}
|
|
7301
|
+
}, {
|
|
7302
|
+
name: 'evaluate.isUS',
|
|
7303
|
+
evaluate: ({
|
|
7304
|
+
viewportId,
|
|
7305
|
+
disabledText
|
|
7306
|
+
}) => {
|
|
7307
|
+
const displaySetUIDs = viewportGridService.getDisplaySetsUIDsForViewport(viewportId);
|
|
7308
|
+
if (!displaySetUIDs?.length) {
|
|
7309
|
+
return;
|
|
7310
|
+
}
|
|
7311
|
+
const displaySets = displaySetUIDs.map(displaySetService.getDisplaySetByUID);
|
|
7312
|
+
const isUS = displaySets.some(displaySet => displaySet.Modality === 'US');
|
|
7313
|
+
if (!isUS) {
|
|
7314
|
+
return {
|
|
7315
|
+
disabled: true,
|
|
7316
|
+
className: '!text-common-bright ohif-disabled',
|
|
7317
|
+
disabledText: disabledText ?? 'Not available on the current viewport'
|
|
7318
|
+
};
|
|
7319
|
+
}
|
|
7320
|
+
}
|
|
7293
7321
|
}, {
|
|
7294
7322
|
name: 'evaluate.viewportProperties.toggle',
|
|
7295
7323
|
evaluate: ({
|
|
@@ -212,7 +212,7 @@ const toolbarButtons = [{
|
|
|
212
212
|
commands: 'invertViewport',
|
|
213
213
|
evaluate: 'evaluate.viewportProperties.toggle'
|
|
214
214
|
}), createButton({
|
|
215
|
-
id: '
|
|
215
|
+
id: 'DragProbe',
|
|
216
216
|
icon: 'tool-probe',
|
|
217
217
|
label: 'Probe',
|
|
218
218
|
tooltip: 'Probe',
|
|
@@ -255,10 +255,24 @@ const toolbarButtons = [{
|
|
|
255
255
|
evaluate: 'evaluate.cornerstoneTool'
|
|
256
256
|
}), createButton({
|
|
257
257
|
id: 'TagBrowser',
|
|
258
|
-
icon: '
|
|
258
|
+
icon: 'dicom-tag-browser',
|
|
259
259
|
label: 'Dicom Tag Browser',
|
|
260
260
|
tooltip: 'Dicom Tag Browser',
|
|
261
261
|
commands: 'openDICOMTagViewer'
|
|
262
|
+
}), createButton({
|
|
263
|
+
id: 'AdvancedMagnify',
|
|
264
|
+
icon: 'icon-tool-loupe',
|
|
265
|
+
label: 'Loupe',
|
|
266
|
+
tooltip: 'Loupe',
|
|
267
|
+
commands: setToolActiveToolbar,
|
|
268
|
+
evaluate: 'evaluate.cornerstoneTool'
|
|
269
|
+
}), createButton({
|
|
270
|
+
id: 'UltrasoundDirectionalTool',
|
|
271
|
+
icon: 'icon-tool-ultrasound-bidirectional',
|
|
272
|
+
label: 'Ultrasound Directional',
|
|
273
|
+
tooltip: 'Ultrasound Directional',
|
|
274
|
+
commands: setToolActiveToolbar,
|
|
275
|
+
evaluate: ['evaluate.cornerstoneTool', 'evaluate.isUS']
|
|
262
276
|
})]
|
|
263
277
|
}
|
|
264
278
|
}];
|
|
@@ -538,6 +552,10 @@ function createTools(utilityModule) {
|
|
|
538
552
|
toolName: toolNames.Magnify
|
|
539
553
|
}, {
|
|
540
554
|
toolName: toolNames.SegmentationDisplay
|
|
555
|
+
}, {
|
|
556
|
+
toolName: toolNames.AdvancedMagnify
|
|
557
|
+
}, {
|
|
558
|
+
toolName: toolNames.UltrasoundDirectional
|
|
541
559
|
}],
|
|
542
560
|
disabled: [{
|
|
543
561
|
toolName: toolNames.ReferenceLines
|
|
@@ -2529,8 +2529,7 @@ function Toolbar({
|
|
|
2529
2529
|
servicesManager: servicesManager
|
|
2530
2530
|
}, componentProps));
|
|
2531
2531
|
return /*#__PURE__*/react.createElement("div", {
|
|
2532
|
-
key: id
|
|
2533
|
-
className: "mr-1"
|
|
2532
|
+
key: id
|
|
2534
2533
|
}, tool);
|
|
2535
2534
|
}));
|
|
2536
2535
|
}
|
|
@@ -2589,8 +2588,8 @@ function ViewerHeader({
|
|
|
2589
2588
|
hotkeyDefinitions,
|
|
2590
2589
|
hotkeyDefaults
|
|
2591
2590
|
} = hotkeysManager;
|
|
2592
|
-
const versionNumber = "3.8.0-beta.
|
|
2593
|
-
const commitHash = "
|
|
2591
|
+
const versionNumber = "3.8.0-beta.71";
|
|
2592
|
+
const commitHash = "cea27d438d1de2c1ec90cbaefdc2b31a1d9980a1";
|
|
2594
2593
|
const menuOptions = [{
|
|
2595
2594
|
title: t('Header:About'),
|
|
2596
2595
|
icon: 'info',
|