@ohif/app 3.9.0-beta.4 → 3.9.0-beta.40
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/{117.bundle.a80b1511ef4b302fb7cc.js → 117.bundle.1f7b56504d506e7259e3.js} +66 -69
- package/dist/{889.bundle.6df37a2db81b97f4a76a.js → 121.bundle.d1d51ac098a41f618eab.js} +40 -12
- package/dist/{998.bundle.f2ba5b6c1aa0caa6d672.js → 129.bundle.29770734ee3882c107c0.js} +40 -25
- package/dist/{574.bundle.72bd5061ccd504235419.js → 139.bundle.09e5af0a9ae8a285af77.js} +25 -37
- package/dist/{989.bundle.bf32dc457ea9abccca09.js → 14.bundle.90dd112f5bc6f21d6ce1.js} +5 -5
- package/dist/{783.bundle.1f650e1ef1b10d19870f.js → 140.bundle.a58cbadd477749143dea.js} +2 -2
- package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.2b23bfbcb23497d7c87a.js} +548 -301
- package/dist/{544.bundle.e8227e98860e39636a00.js → 172.bundle.e0ee762bee7496d6491e.js} +16 -30
- package/dist/{487.bundle.a517b1d6cd2d82b9a7ea.js → 194.bundle.2dde300e0ed19254b6ba.js} +5 -5
- package/dist/{699.bundle.f62694527f6dfe417f81.js → 211.bundle.e8eea5d565da00092f57.js} +43 -5
- package/dist/{776.bundle.91747df457143051f872.js → 218.bundle.ec4ecebd17f837a87fff.js} +10 -12
- package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.34db90a140e37d34fd71.js} +544 -221
- package/dist/{530.bundle.17b9a34fefff133e5379.js → 265.bundle.b32a0cc143efa80ee3cc.js} +8 -12
- package/dist/{862.bundle.55dde21bab4c841b6259.js → 323.bundle.955cc8f5eb5c01295118.js} +5 -9
- package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.fcb2038060a062129d34.js} +7 -0
- package/dist/{550.bundle.4f728d9ab7a8c7685abd.js → 363.bundle.34dddd70f4ffd669287e.js} +234 -150
- package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.bd9884c274c26a54dfae.js} +101 -18
- package/dist/{682.bundle.0909fbf9a76430e4bbc9.js → 382.bundle.df3ca2c99f3547b31d5b.js} +38 -5
- package/dist/{907.bundle.d2c612ec56380e73df89.js → 444.bundle.7d0ca442eef652e676fc.js} +4 -4
- package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.0f1848f6a2cf34829fef.js} +16 -3
- package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.2f703ca4598a3be0d748.js} +950 -348
- package/dist/{905.bundle.c1c60224a599e789feb4.js → 552.bundle.274e23ec01ab41ad7189.js} +3 -3
- package/dist/{981.bundle.cccdc8caaa5a11f4a998.js → 555.bundle.b2a12c8da6bb11dad2b7.js} +14 -13
- package/dist/{939.bundle.9d93b2e47c52338747a2.js → 612.bundle.297a033523539e0b47f9.js} +2 -2
- package/dist/{295.bundle.9926ff25c6dbf53845b1.js → 675.bundle.c9720f40fd7c7e9b7e54.js} +5 -9
- package/dist/{325.bundle.1c54c1689fb4b1955e8c.js → 717.bundle.ea82dab5ef9f7f640319.js} +58 -26
- package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
- package/dist/{121.bundle.b582314ec0024fdf2d15.js → 792.bundle.485ad2f98823a4b3feb1.js} +6 -10
- package/dist/{721.bundle.0de8f780088aee87dbd9.js → 799.bundle.e744c0af4fdf31b180ac.js} +12 -12
- package/dist/{448.bundle.077b4b50ee63487516eb.js → 806.bundle.1632ea111682147bad5f.js} +19 -6
- package/dist/{297.bundle.194d8985ab974839b5b6.js → 837.bundle.ff9fe44bf863a5bceabc.js} +2 -2
- package/dist/{961.bundle.6aea7b3de9e93a9ebab1.js → 853.bundle.1ccbecc265671c9e009e.js} +4 -4
- package/dist/{473.bundle.6cd4be953853f35b29c3.js → 914.bundle.e15be8089bf422ed7b51.js} +512 -274
- package/dist/{94.bundle.08683468d52365475d9a.js → 920.bundle.0b80f44e0e0df6829650.js} +39 -9
- package/dist/{390.bundle.5a21388b461ee51db594.js → 944.bundle.a58e0a80876da559f6b9.js} +653 -95
- package/dist/{243.bundle.391c2805222b849abc2c.js → 989.bundle.47ce0ed7ca8119f2a0f9.js} +4 -4
- package/dist/app-config.js +5 -1
- package/dist/app.bundle.css +5 -4
- package/dist/{app.bundle.9e22e72ec23a08cde379.js → app.bundle.e10ba453bd29c6aa3df0.js} +162761 -45947
- package/dist/assets/images/action-new-dialog.svg +14 -0
- package/dist/assets/images/arrow-down.svg +5 -0
- package/dist/assets/images/arrow-left-small.svg +6 -0
- package/dist/assets/images/arrow-left.svg +6 -0
- package/dist/assets/images/arrow-right-small.svg +6 -0
- package/dist/assets/images/arrow-right.svg +6 -0
- package/dist/assets/images/calendar.svg +5 -0
- package/dist/assets/images/cancel.svg +8 -0
- package/dist/assets/images/checkbox-active.svg +9 -0
- package/dist/assets/images/checkbox-checked.svg +9 -0
- package/dist/assets/images/checkbox-default.svg +3 -0
- package/dist/assets/images/checkbox-unchecked.svg +3 -0
- package/dist/assets/images/chevron-down.svg +3 -0
- package/dist/assets/images/chevron-left.svg +3 -0
- package/dist/assets/images/chevron-menu.svg +12 -0
- package/dist/assets/images/chevron-next.svg +6 -0
- package/dist/assets/images/chevron-prev.svg +6 -0
- package/dist/assets/images/chevron-right.svg +3 -0
- package/dist/assets/images/circled-checkmark.svg +6 -0
- package/dist/assets/images/clipboard.svg +1 -0
- package/dist/assets/images/closeIcon.svg +3 -0
- package/dist/assets/images/content-next.svg +9 -0
- package/dist/assets/images/content-prev.svg +9 -0
- package/dist/assets/images/dotted-circle.svg +3 -0
- package/dist/assets/images/edit-patient.svg +15 -0
- package/dist/assets/images/exclamation.svg +9 -0
- package/dist/assets/images/external-link.svg +5 -0
- package/dist/assets/images/eye-hidden.svg +8 -0
- package/dist/assets/images/eye-visible.svg +6 -0
- package/dist/assets/images/focus-frame-target.svg +13 -0
- package/dist/assets/images/group-layers.svg +6 -0
- package/dist/assets/images/icon-add.svg +15 -0
- package/dist/assets/images/icon-alert-small.svg +8 -0
- package/dist/assets/images/icon-chevron-patient.svg +12 -0
- package/dist/assets/images/icon-clear-field.svg +8 -0
- package/dist/assets/images/icon-close.svg +8 -0
- package/dist/assets/images/icon-color-lut.svg +23 -0
- package/dist/assets/images/icon-delete.svg +17 -0
- package/dist/assets/images/icon-disclosure-close.svg +12 -0
- package/dist/assets/images/icon-disclosure-open.svg +12 -0
- package/dist/assets/images/icon-display-settings.svg +21 -0
- package/dist/assets/images/icon-more-menu.svg +17 -0
- package/dist/assets/images/icon-mpr-alt.svg +9 -0
- package/dist/assets/images/icon-multiple-patients.svg +21 -0
- package/dist/assets/images/icon-next-inactive.svg +6 -0
- package/dist/assets/images/icon-next.svg +6 -0
- package/dist/assets/images/icon-patient.svg +13 -0
- package/dist/assets/images/icon-pause.svg +6 -0
- package/dist/assets/images/icon-play.svg +6 -0
- package/dist/assets/images/icon-prev-inactive.svg +6 -0
- package/dist/assets/images/icon-prev.svg +6 -0
- package/dist/assets/images/icon-rename.svg +15 -0
- package/dist/assets/images/icon-search.svg +9 -0
- package/dist/assets/images/icon-settings.svg +13 -0
- package/dist/assets/images/icon-status-alert.svg +8 -0
- package/dist/assets/images/icon-tool-scissor.svg +17 -0
- package/dist/assets/images/icon-toolbar-back.svg +12 -0
- package/dist/assets/images/icon-transferring.svg +6 -0
- package/dist/assets/images/icon-upload.svg +6 -0
- package/dist/assets/images/icons-alert-outline.svg +8 -0
- package/dist/assets/images/illustration-investigational-use.svg +20 -0
- package/dist/assets/images/info-action.svg +10 -0
- package/dist/assets/images/info-link.svg +7 -0
- package/dist/assets/images/info.svg +3 -0
- package/dist/assets/images/launch-arrow.svg +7 -0
- package/dist/assets/images/launch-info.svg +8 -0
- package/dist/assets/images/layout-advanced-3d-four-up.svg +13 -0
- package/dist/assets/images/layout-advanced-3d-main.svg +12 -0
- package/dist/assets/images/layout-advanced-3d-only.svg +9 -0
- package/dist/assets/images/layout-advanced-3d-primary.svg +12 -0
- package/dist/assets/images/layout-advanced-axial-primary.svg +11 -0
- package/dist/assets/images/layout-advanced-mpr.svg +11 -0
- package/dist/assets/images/layout-common-1x1.svg +9 -0
- package/dist/assets/images/layout-common-1x2.svg +10 -0
- package/dist/assets/images/layout-common-2x2.svg +11 -0
- package/dist/assets/images/layout-common-2x3.svg +12 -0
- package/dist/assets/images/list-bullets.svg +10 -0
- package/dist/assets/images/loading-ohif-mark.svg +5 -0
- package/dist/assets/images/lock.svg +1 -0
- package/dist/assets/images/logo-ohif-small.svg +5 -0
- package/dist/assets/images/magnifier.svg +7 -0
- package/dist/assets/images/navigation-panel-right-hide.svg +5 -0
- package/dist/assets/images/navigation-panel-right-reveal.svg +5 -0
- package/dist/assets/images/next-arrow.svg +12 -0
- package/dist/assets/images/notifications-error.svg +8 -0
- package/dist/assets/images/notifications-info.svg +8 -0
- package/dist/assets/images/notifications-success.svg +6 -0
- package/dist/assets/images/notifications-warning.svg +8 -0
- package/dist/assets/images/notificationwarning-diamond.svg +10 -0
- package/dist/assets/images/ohif-logo-color-darkbg.svg +20 -0
- package/dist/assets/images/ohif-logo.svg +18 -0
- package/dist/assets/images/old-play.svg +9 -0
- package/dist/assets/images/old-stop.svg +9 -0
- package/dist/assets/images/old-trash.svg +9 -0
- package/dist/assets/images/panel-group-more.svg +6 -0
- package/dist/assets/images/panel-group-open-close.svg +6 -0
- package/dist/assets/images/pencil.svg +4 -0
- package/dist/assets/images/power-off.svg +11 -0
- package/dist/assets/images/prev-arrow.svg +12 -0
- package/dist/assets/images/profile.svg +1 -0
- package/dist/assets/images/push-left.svg +5 -0
- package/dist/assets/images/push-right.svg +5 -0
- package/dist/assets/images/row-add.svg +8 -0
- package/dist/assets/images/row-edit.svg +9 -0
- package/dist/assets/images/row-hidden.svg +11 -0
- package/dist/assets/images/row-lock.svg +7 -0
- package/dist/assets/images/row-shown.svg +9 -0
- package/dist/assets/images/row-unlock.svg +7 -0
- package/dist/assets/images/settings.svg +6 -0
- package/dist/assets/images/side-panel-close-left.svg +14 -0
- package/dist/assets/images/side-panel-close-right.svg +14 -0
- package/dist/assets/images/sorting-active-down.svg +6 -0
- package/dist/assets/images/sorting-active-up.svg +6 -0
- package/dist/assets/images/sorting.svg +6 -0
- package/dist/assets/images/status-alert-warning.svg +9 -0
- package/dist/assets/images/status-alert.svg +7 -0
- package/dist/assets/images/status-locked.svg +7 -0
- package/dist/assets/images/status-tracked.svg +7 -0
- package/dist/assets/images/status-untracked.svg +6 -0
- package/dist/assets/images/tab-4d.svg +13 -0
- package/dist/assets/images/tab-linear.svg +8 -0
- package/dist/assets/images/tab-patient-info.svg +7 -0
- package/dist/assets/images/tab-roi-threshold.svg +10 -0
- package/dist/assets/images/tab-segmentation.svg +11 -0
- package/dist/assets/images/tab-studies.svg +13 -0
- package/dist/assets/images/tool-3d-rotate.svg +20 -0
- package/dist/assets/images/tool-angle.svg +12 -0
- package/dist/assets/images/tool-annotate.svg +11 -0
- package/dist/assets/images/tool-bidirectional.svg +21 -0
- package/dist/assets/images/tool-calibrate.svg +19 -0
- package/dist/assets/images/tool-capture.svg +10 -0
- package/dist/assets/images/tool-cine.svg +9 -0
- package/dist/assets/images/tool-circle.svg +8 -0
- package/dist/assets/images/tool-cobb-angle.svg +14 -0
- package/dist/assets/images/tool-create-threshold.svg +9 -0
- package/dist/assets/images/tool-crosshair.svg +14 -0
- package/dist/assets/images/tool-dicom-tag-browser.svg +15 -0
- package/dist/assets/images/tool-flip-horizontal.svg +10 -0
- package/dist/assets/images/tool-freehand-polygon.svg +37 -0
- package/dist/assets/images/tool-freehand-roi.svg +12 -0
- package/dist/assets/images/tool-freehand.svg +34 -0
- package/dist/assets/images/tool-fusion-color.svg +13 -0
- package/dist/assets/images/tool-invert.svg +10 -0
- package/dist/assets/images/tool-layout-default.svg +22 -0
- package/dist/assets/images/tool-length.svg +16 -0
- package/dist/assets/images/tool-magnetic-roi.svg +17 -0
- package/dist/assets/images/tool-magnify.svg +7 -0
- package/dist/assets/images/tool-measure-elipse.svg +12 -0
- package/dist/assets/images/tool-more-menu.svg +6 -0
- package/dist/assets/images/tool-move.svg +13 -0
- package/dist/assets/images/tool-polygon.svg +3 -0
- package/dist/assets/images/tool-quick-magnify.svg +11 -0
- package/dist/assets/images/tool-rectangle.svg +12 -0
- package/dist/assets/images/tool-reference-lines.svg +13 -0
- package/dist/assets/images/tool-reset.svg +9 -0
- package/dist/assets/images/tool-rotate-right.svg +12 -0
- package/dist/assets/images/tool-seg-brush.svg +9 -0
- package/dist/assets/images/tool-seg-eraser.svg +10 -0
- package/dist/assets/images/tool-seg-shape.svg +9 -0
- package/dist/assets/images/tool-seg-threshold.svg +17 -0
- package/dist/assets/images/tool-spline-roi.svg +14 -0
- package/dist/assets/images/tool-stack-image-sync.svg +10 -0
- package/dist/assets/images/tool-stack-scroll.svg +10 -0
- package/dist/assets/images/tool-toggle-dicom-overlay.svg +9 -0
- package/dist/assets/images/tool-ultrasound-bidirectional.svg +15 -0
- package/dist/assets/images/tool-window-level.svg +9 -0
- package/dist/assets/images/tool-window-region.svg +12 -0
- package/dist/assets/images/tool-zoom.svg +9 -0
- package/dist/assets/images/tracked.svg +6 -0
- package/dist/assets/images/ui-arrow-down.svg +3 -0
- package/dist/assets/images/ui-arrow-left.svg +3 -0
- package/dist/assets/images/ui-arrow-right.svg +3 -0
- package/dist/assets/images/ui-arrow-up.svg +3 -0
- package/dist/assets/images/unlink.svg +9 -0
- package/dist/assets/images/viewport-status-tracked.svg +13 -0
- package/dist/assets/images/viewport-window-level.svg +17 -0
- package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/google.js +1 -0
- package/dist/{histogram-worker.bundle.829e14ec12c2b41a4323.js → histogram-worker.bundle.6b31e5ed4c4a7a6998f2.js} +2 -2
- package/dist/index.html +1 -1
- package/dist/{polySeg.bundle.1799686b019040500219.js → polySeg.bundle.df492df5042827938ba4.js} +3 -3
- package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.8f4b505fad3d371489fe.js} +4 -4
- package/dist/sw.js +1 -1
- package/package.json +26 -23
- /package/dist/{998.css → 129.css} +0 -0
- /package/dist/{574.css → 139.css} +0 -0
- /package/dist/{544.css → 172.css} +0 -0
- /package/dist/{550.css → 363.css} +0 -0
- /package/dist/{325.css → 404.css} +0 -0
- /package/dist/{481.css → 717.css} +0 -0
- /package/dist/{726.bundle.c8de818cf1a3ff0cf7d2.js → 726.bundle.90d63d40a19b058034ee.js} +0 -0
- /package/dist/{835.bundle.4c0eaa2c1a427ee41817.js → 835.bundle.5d1951da8bbc6afdf3e0.js} +0 -0
- /package/dist/{931.bundle.d270a1fda9a2836c3cc5.js → 931.bundle.058f8de4606f27b31f4f.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[
|
|
1
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[501],{
|
|
2
2
|
|
|
3
3
|
/***/ 6203:
|
|
4
4
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
@@ -260,13 +260,15 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
260
260
|
static get useCustomRenderingPipeline() {
|
|
261
261
|
return false;
|
|
262
262
|
}
|
|
263
|
-
applyViewOrientation(orientation) {
|
|
263
|
+
applyViewOrientation(orientation, resetCamera = true) {
|
|
264
264
|
const { viewPlaneNormal, viewUp } = this._getOrientationVectors(orientation);
|
|
265
265
|
const camera = this.getVtkActiveCamera();
|
|
266
266
|
camera.setDirectionOfProjection(-viewPlaneNormal[0], -viewPlaneNormal[1], -viewPlaneNormal[2]);
|
|
267
267
|
camera.setViewUpFrom(viewUp);
|
|
268
268
|
this.initialViewUp = viewUp;
|
|
269
|
-
|
|
269
|
+
if (resetCamera) {
|
|
270
|
+
this.resetCamera();
|
|
271
|
+
}
|
|
270
272
|
}
|
|
271
273
|
initializeVolumeNewImageEventDispatcher() {
|
|
272
274
|
const volumeNewImageHandlerBound = volumeNewImageHandler.bind(this);
|
|
@@ -495,28 +497,96 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
495
497
|
}
|
|
496
498
|
getViewReference(viewRefSpecifier = {}) {
|
|
497
499
|
const target = super.getViewReference(viewRefSpecifier);
|
|
500
|
+
const volumeId = this.getVolumeId(viewRefSpecifier);
|
|
498
501
|
if (viewRefSpecifier?.forFrameOfReference !== false) {
|
|
499
|
-
target.volumeId =
|
|
502
|
+
target.volumeId = volumeId;
|
|
500
503
|
}
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
};
|
|
504
|
+
if (typeof viewRefSpecifier?.sliceIndex !== 'number') {
|
|
505
|
+
return target;
|
|
506
|
+
}
|
|
507
|
+
const { viewPlaneNormal } = target;
|
|
508
|
+
const delta = viewRefSpecifier.sliceIndex - this.getSliceIndex();
|
|
509
|
+
const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
510
|
+
const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
|
|
511
|
+
const { focalPoint, position } = camera;
|
|
512
|
+
const { newFocalPoint } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
513
|
+
target.cameraFocalPoint = newFocalPoint;
|
|
514
|
+
return target;
|
|
505
515
|
}
|
|
506
516
|
isReferenceViewable(viewRef, options) {
|
|
517
|
+
if (!viewRef.FrameOfReferenceUID) {
|
|
518
|
+
return false;
|
|
519
|
+
}
|
|
507
520
|
if (!super.isReferenceViewable(viewRef, options)) {
|
|
508
521
|
return false;
|
|
509
522
|
}
|
|
510
523
|
if (options?.withNavigation) {
|
|
511
524
|
return true;
|
|
512
525
|
}
|
|
513
|
-
const currentSliceIndex = this.
|
|
526
|
+
const currentSliceIndex = this.getSliceIndex();
|
|
514
527
|
const { sliceIndex } = viewRef;
|
|
515
528
|
if (Array.isArray(sliceIndex)) {
|
|
516
529
|
return (sliceIndex[0] <= currentSliceIndex && currentSliceIndex <= sliceIndex[1]);
|
|
517
530
|
}
|
|
518
531
|
return sliceIndex === undefined || sliceIndex === currentSliceIndex;
|
|
519
532
|
}
|
|
533
|
+
scroll(delta = 1) {
|
|
534
|
+
const volumeId = this.getVolumeId();
|
|
535
|
+
const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
536
|
+
if (!sliceRangeInfo) {
|
|
537
|
+
return;
|
|
538
|
+
}
|
|
539
|
+
const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
|
|
540
|
+
const { focalPoint, viewPlaneNormal, position } = camera;
|
|
541
|
+
const { newFocalPoint, newPosition } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
542
|
+
this.setCamera({
|
|
543
|
+
focalPoint: newFocalPoint,
|
|
544
|
+
position: newPosition,
|
|
545
|
+
});
|
|
546
|
+
}
|
|
547
|
+
setViewReference(viewRef) {
|
|
548
|
+
if (!viewRef) {
|
|
549
|
+
return;
|
|
550
|
+
}
|
|
551
|
+
const volumeId = this.getVolumeId();
|
|
552
|
+
const { viewPlaneNormal: refViewPlaneNormal, FrameOfReferenceUID: refFrameOfReference, cameraFocalPoint, viewUp, } = viewRef;
|
|
553
|
+
let { sliceIndex } = viewRef;
|
|
554
|
+
const { focalPoint, viewPlaneNormal, position } = this.getCamera();
|
|
555
|
+
const isNegativeNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqualNegative)(viewPlaneNormal, refViewPlaneNormal);
|
|
556
|
+
const isSameNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqual)(viewPlaneNormal, refViewPlaneNormal);
|
|
557
|
+
if (typeof sliceIndex === 'number' &&
|
|
558
|
+
viewRef.volumeId === volumeId &&
|
|
559
|
+
(isNegativeNormal || isSameNormal)) {
|
|
560
|
+
const { currentStepIndex, sliceRangeInfo, numScrollSteps } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
|
|
561
|
+
const { sliceRange, spacingInNormalDirection } = sliceRangeInfo;
|
|
562
|
+
if (isNegativeNormal) {
|
|
563
|
+
sliceIndex = numScrollSteps - sliceIndex - 1;
|
|
564
|
+
}
|
|
565
|
+
const delta = sliceIndex - currentStepIndex;
|
|
566
|
+
const { newFocalPoint, newPosition } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
|
|
567
|
+
this.setCamera({ focalPoint: newFocalPoint, position: newPosition });
|
|
568
|
+
}
|
|
569
|
+
else if (refFrameOfReference === this.getFrameOfReferenceUID()) {
|
|
570
|
+
if (refViewPlaneNormal && !isNegativeNormal && !isSameNormal) {
|
|
571
|
+
this.setOrientation({ viewPlaneNormal: refViewPlaneNormal, viewUp });
|
|
572
|
+
return this.setViewReference(viewRef);
|
|
573
|
+
}
|
|
574
|
+
if (cameraFocalPoint) {
|
|
575
|
+
const focalDelta = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.subtract */ .eR.subtract([0, 0, 0], cameraFocalPoint, focalPoint);
|
|
576
|
+
const useNormal = refViewPlaneNormal ?? viewPlaneNormal;
|
|
577
|
+
const normalDot = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.dot */ .eR.dot(focalDelta, useNormal);
|
|
578
|
+
if (!(0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqual)(normalDot, 0)) {
|
|
579
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.scale */ .eR.scale(focalDelta, useNormal, normalDot);
|
|
580
|
+
}
|
|
581
|
+
const newFocal = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.add */ .eR.add([0, 0, 0], focalPoint, focalDelta);
|
|
582
|
+
const newPosition = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.add */ .eR.add([0, 0, 0], position, focalDelta);
|
|
583
|
+
this.setCamera({ focalPoint: newFocal, position: newPosition });
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
else {
|
|
587
|
+
throw new Error(`Incompatible view refs: ${refFrameOfReference}!==${this.getFrameOfReferenceUID()}`);
|
|
588
|
+
}
|
|
589
|
+
}
|
|
520
590
|
setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, rotation, } = {}, volumeId, suppressEvents = false) {
|
|
521
591
|
if (this.globalDefaultProperties == null) {
|
|
522
592
|
this.setDefaultProperties({
|
|
@@ -675,7 +745,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
675
745
|
this.render();
|
|
676
746
|
}
|
|
677
747
|
}
|
|
678
|
-
setOrientation(
|
|
748
|
+
setOrientation(_orientation, _immediate = true) {
|
|
679
749
|
console.warn('Method "setOrientation" needs implementation');
|
|
680
750
|
}
|
|
681
751
|
initializeColorTransferFunction(volumeInputArray) {
|
|
@@ -811,14 +881,15 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
811
881
|
return volume.getScalarData()[voxelIndex];
|
|
812
882
|
}
|
|
813
883
|
getVolumeId(specifier) {
|
|
884
|
+
const actorEntries = this.getActors();
|
|
885
|
+
if (!actorEntries) {
|
|
886
|
+
return;
|
|
887
|
+
}
|
|
814
888
|
if (!specifier?.volumeId) {
|
|
815
|
-
const actorEntries = this.getActors();
|
|
816
|
-
if (!actorEntries) {
|
|
817
|
-
return;
|
|
818
|
-
}
|
|
819
889
|
return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
|
|
820
890
|
}
|
|
821
|
-
return
|
|
891
|
+
return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume' &&
|
|
892
|
+
actorEntry.uid === specifier.volumeId)?.uid;
|
|
822
893
|
}
|
|
823
894
|
getReferenceId(specifier = {}) {
|
|
824
895
|
let { volumeId, sliceIndex: sliceIndex } = specifier;
|
|
@@ -829,7 +900,8 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
|
|
|
829
900
|
}
|
|
830
901
|
volumeId = actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
|
|
831
902
|
}
|
|
832
|
-
|
|
903
|
+
const currentIndex = this.getSliceIndex();
|
|
904
|
+
sliceIndex ??= currentIndex;
|
|
833
905
|
const { viewPlaneNormal, focalPoint } = this.getCamera();
|
|
834
906
|
const querySeparator = volumeId.indexOf('?') > -1 ? '&' : '?';
|
|
835
907
|
return `volumeId:${volumeId}${querySeparator}sliceIndex=${sliceIndex}&viewPlaneNormal=${viewPlaneNormal.join(',')}&focalPoint=${focalPoint.join(',')}`;
|
|
@@ -1968,20 +2040,8 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
1968
2040
|
resize(this._cpuFallbackEnabledElement);
|
|
1969
2041
|
}
|
|
1970
2042
|
};
|
|
1971
|
-
this.getFrameOfReferenceUID = () =>
|
|
1972
|
-
|
|
1973
|
-
if (!imageId) {
|
|
1974
|
-
return;
|
|
1975
|
-
}
|
|
1976
|
-
const imagePlaneModule = metaData.get('imagePlaneModule', imageId);
|
|
1977
|
-
if (!imagePlaneModule) {
|
|
1978
|
-
return;
|
|
1979
|
-
}
|
|
1980
|
-
return imagePlaneModule.frameOfReferenceUID;
|
|
1981
|
-
};
|
|
1982
|
-
this.getCornerstoneImage = () => {
|
|
1983
|
-
return this.csImage;
|
|
1984
|
-
};
|
|
2043
|
+
this.getFrameOfReferenceUID = (sliceIndex) => this.getImagePlaneReferenceData(sliceIndex)?.FrameOfReferenceUID;
|
|
2044
|
+
this.getCornerstoneImage = () => this.csImage;
|
|
1985
2045
|
this.createActorMapper = (imageData) => {
|
|
1986
2046
|
const mapper = vtkImageMapper$1.newInstance();
|
|
1987
2047
|
mapper.setInputData(imageData);
|
|
@@ -2957,6 +3017,28 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
2957
3017
|
imagePixelModule,
|
|
2958
3018
|
};
|
|
2959
3019
|
}
|
|
3020
|
+
getImagePlaneReferenceData(sliceIndex = this.getCurrentImageIdIndex()) {
|
|
3021
|
+
const imageId = this.imageIds[sliceIndex];
|
|
3022
|
+
if (!imageId) {
|
|
3023
|
+
return;
|
|
3024
|
+
}
|
|
3025
|
+
const imagePlaneModule = metaData.get(enums.MetadataModules.IMAGE_PLANE, imageId);
|
|
3026
|
+
if (!imagePlaneModule) {
|
|
3027
|
+
return;
|
|
3028
|
+
}
|
|
3029
|
+
const { imagePositionPatient, frameOfReferenceUID: FrameOfReferenceUID } = imagePlaneModule;
|
|
3030
|
+
let { rowCosines, columnCosines } = imagePlaneModule;
|
|
3031
|
+
rowCosines ||= [1, 0, 0];
|
|
3032
|
+
columnCosines ||= [0, 1, 0];
|
|
3033
|
+
const viewPlaneNormal = (esm/* vec3.cross */.eR.cross([0, 0, 0], columnCosines, rowCosines));
|
|
3034
|
+
return {
|
|
3035
|
+
FrameOfReferenceUID,
|
|
3036
|
+
viewPlaneNormal,
|
|
3037
|
+
cameraFocalPoint: imagePositionPatient,
|
|
3038
|
+
referencedImageId: imageId,
|
|
3039
|
+
sliceIndex,
|
|
3040
|
+
};
|
|
3041
|
+
}
|
|
2960
3042
|
_getCameraOrientation(imageDataDirection) {
|
|
2961
3043
|
const viewPlaneNormal = imageDataDirection.slice(6, 9).map((x) => -x);
|
|
2962
3044
|
const viewUp = imageDataDirection.slice(3, 6).map((x) => -x);
|
|
@@ -3272,7 +3354,7 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
3272
3354
|
this.cpuRenderingInvalidated = true;
|
|
3273
3355
|
this._cpuFallbackEnabledElement.transform = (0,calculateTransform/* default */.A)(this._cpuFallbackEnabledElement);
|
|
3274
3356
|
}
|
|
3275
|
-
|
|
3357
|
+
addImages(stackInputs) {
|
|
3276
3358
|
const actors = this.getActors();
|
|
3277
3359
|
stackInputs.forEach((stackInput) => {
|
|
3278
3360
|
const image = cache/* default */.Ay.getImage(stackInput.imageId);
|
|
@@ -3567,24 +3649,39 @@ class StackViewport extends Viewport/* default */.A {
|
|
|
3567
3649
|
return referencedImageId?.endsWith(imageURI);
|
|
3568
3650
|
}
|
|
3569
3651
|
getViewReference(viewRefSpecifier = {}) {
|
|
3570
|
-
const { sliceIndex
|
|
3571
|
-
|
|
3572
|
-
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
|
-
}
|
|
3576
|
-
|
|
3577
|
-
|
|
3578
|
-
|
|
3579
|
-
|
|
3580
|
-
if (viewRef) {
|
|
3581
|
-
const { viewPlaneNormal, sliceIndex } = viewRef;
|
|
3582
|
-
if (viewPlaneNormal &&
|
|
3583
|
-
!(0,utilities.isEqual)(viewPlaneNormal, camera.viewPlaneNormal)) {
|
|
3652
|
+
const { sliceIndex = this.getCurrentImageIdIndex() } = viewRefSpecifier;
|
|
3653
|
+
const reference = super.getViewReference(viewRefSpecifier);
|
|
3654
|
+
const referencedImageId = this.imageIds[sliceIndex];
|
|
3655
|
+
if (!referencedImageId) {
|
|
3656
|
+
return;
|
|
3657
|
+
}
|
|
3658
|
+
reference.referencedImageId = referencedImageId;
|
|
3659
|
+
if (this.getCurrentImageIdIndex() !== sliceIndex) {
|
|
3660
|
+
const referenceData = this.getImagePlaneReferenceData(sliceIndex);
|
|
3661
|
+
if (!referenceData) {
|
|
3584
3662
|
return;
|
|
3585
3663
|
}
|
|
3586
|
-
|
|
3587
|
-
|
|
3664
|
+
Object.assign(reference, referenceData);
|
|
3665
|
+
}
|
|
3666
|
+
return reference;
|
|
3667
|
+
}
|
|
3668
|
+
setViewReference(viewRef) {
|
|
3669
|
+
if (!viewRef) {
|
|
3670
|
+
return;
|
|
3671
|
+
}
|
|
3672
|
+
const { referencedImageId, sliceIndex, volumeId } = viewRef;
|
|
3673
|
+
if (typeof sliceIndex === 'number' &&
|
|
3674
|
+
referencedImageId &&
|
|
3675
|
+
referencedImageId === this.imageIds[sliceIndex]) {
|
|
3676
|
+
this.setImageIdIndex(sliceIndex);
|
|
3677
|
+
}
|
|
3678
|
+
else {
|
|
3679
|
+
const foundIndex = this.imageIds.indexOf(referencedImageId);
|
|
3680
|
+
if (foundIndex !== -1) {
|
|
3681
|
+
this.setImageIdIndex(foundIndex);
|
|
3682
|
+
}
|
|
3683
|
+
else {
|
|
3684
|
+
throw new Error('Unsupported - referenced image id not found');
|
|
3588
3685
|
}
|
|
3589
3686
|
}
|
|
3590
3687
|
}
|
|
@@ -4480,7 +4577,7 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
4480
4577
|
if (options.withNavigation) {
|
|
4481
4578
|
return true;
|
|
4482
4579
|
}
|
|
4483
|
-
const currentIndex = this.
|
|
4580
|
+
const currentIndex = this.getSliceIndex();
|
|
4484
4581
|
if (Array.isArray(sliceIndex)) {
|
|
4485
4582
|
return currentIndex >= sliceIndex[0] && currentIndex <= sliceIndex[1];
|
|
4486
4583
|
}
|
|
@@ -4517,6 +4614,9 @@ class VideoViewport extends Viewport/* default */.A {
|
|
|
4517
4614
|
getCurrentImageIdIndex() {
|
|
4518
4615
|
return Math.round(this.videoElement.currentTime * this.fps);
|
|
4519
4616
|
}
|
|
4617
|
+
getSliceIndex() {
|
|
4618
|
+
return this.getCurrentImageIdIndex();
|
|
4619
|
+
}
|
|
4520
4620
|
getCamera() {
|
|
4521
4621
|
const { parallelScale } = this.videoCamera;
|
|
4522
4622
|
const canvasCenter = [
|
|
@@ -4920,7 +5020,7 @@ class Viewport {
|
|
|
4920
5020
|
this.setDisplayAreaScale(displayArea);
|
|
4921
5021
|
}
|
|
4922
5022
|
else {
|
|
4923
|
-
this.setInterpolationType(this.getProperties()
|
|
5023
|
+
this.setInterpolationType(this.getProperties()?.interpolationType || _enums__WEBPACK_IMPORTED_MODULE_13__.InterpolationType.LINEAR);
|
|
4924
5024
|
this.setDisplayAreaFit(displayArea);
|
|
4925
5025
|
}
|
|
4926
5026
|
if (storeAsInitialCamera) {
|
|
@@ -5126,6 +5226,9 @@ class Viewport {
|
|
|
5126
5226
|
getCurrentImageIdIndex() {
|
|
5127
5227
|
throw new Error('Not implemented');
|
|
5128
5228
|
}
|
|
5229
|
+
getSliceIndex() {
|
|
5230
|
+
throw new Error('Not implemented');
|
|
5231
|
+
}
|
|
5129
5232
|
getReferenceId(_specifier) {
|
|
5130
5233
|
return null;
|
|
5131
5234
|
}
|
|
@@ -5149,6 +5252,9 @@ class Viewport {
|
|
|
5149
5252
|
}, storeAsInitialCamera);
|
|
5150
5253
|
}
|
|
5151
5254
|
getZoom(compareCamera = this.initialCamera) {
|
|
5255
|
+
if (!compareCamera) {
|
|
5256
|
+
return 1;
|
|
5257
|
+
}
|
|
5152
5258
|
const activeCamera = this.getVtkActiveCamera();
|
|
5153
5259
|
const { parallelScale: initialParallelScale } = compareCamera;
|
|
5154
5260
|
return initialParallelScale / activeCamera.getParallelScale();
|
|
@@ -5402,12 +5508,13 @@ class Viewport {
|
|
|
5402
5508
|
return { widthWorld: maxX - minX, heightWorld: maxY - minY };
|
|
5403
5509
|
}
|
|
5404
5510
|
getViewReference(viewRefSpecifier = {}) {
|
|
5405
|
-
const { focalPoint: cameraFocalPoint, viewPlaneNormal } = this.getCamera();
|
|
5511
|
+
const { focalPoint: cameraFocalPoint, viewPlaneNormal, viewUp, } = this.getCamera();
|
|
5406
5512
|
const target = {
|
|
5407
5513
|
FrameOfReferenceUID: this.getFrameOfReferenceUID(),
|
|
5408
5514
|
cameraFocalPoint,
|
|
5409
5515
|
viewPlaneNormal,
|
|
5410
|
-
|
|
5516
|
+
viewUp,
|
|
5517
|
+
sliceIndex: viewRefSpecifier.sliceIndex ?? this.getSliceIndex(),
|
|
5411
5518
|
};
|
|
5412
5519
|
return target;
|
|
5413
5520
|
}
|
|
@@ -5421,7 +5528,7 @@ class Viewport {
|
|
|
5421
5528
|
if (viewPlaneNormal &&
|
|
5422
5529
|
!(0,_utilities__WEBPACK_IMPORTED_MODULE_9__.isEqual)(viewPlaneNormal, camera.viewPlaneNormal) &&
|
|
5423
5530
|
!(0,_utilities__WEBPACK_IMPORTED_MODULE_9__.isEqual)(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.negate */ .eR.negate(camera.viewPlaneNormal, camera.viewPlaneNormal), viewPlaneNormal)) {
|
|
5424
|
-
return options?.
|
|
5531
|
+
return options?.withOrientation === true;
|
|
5425
5532
|
}
|
|
5426
5533
|
return true;
|
|
5427
5534
|
}
|
|
@@ -5449,19 +5556,22 @@ class Viewport {
|
|
|
5449
5556
|
}
|
|
5450
5557
|
return target;
|
|
5451
5558
|
}
|
|
5452
|
-
|
|
5453
|
-
|
|
5454
|
-
|
|
5455
|
-
|
|
5456
|
-
|
|
5457
|
-
|
|
5458
|
-
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5462
|
-
|
|
5463
|
-
|
|
5464
|
-
|
|
5559
|
+
setViewReference(viewRef) {
|
|
5560
|
+
}
|
|
5561
|
+
setViewPresentation(viewPres) {
|
|
5562
|
+
if (!viewPres) {
|
|
5563
|
+
return;
|
|
5564
|
+
}
|
|
5565
|
+
const { displayArea, zoom = this.getZoom(), pan, rotation } = viewPres;
|
|
5566
|
+
if (displayArea !== this.getDisplayArea()) {
|
|
5567
|
+
this.setDisplayArea(displayArea);
|
|
5568
|
+
}
|
|
5569
|
+
this.setZoom(zoom);
|
|
5570
|
+
if (pan) {
|
|
5571
|
+
this.setPan(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec2.scale */ .Zc.scale([0, 0], pan, zoom));
|
|
5572
|
+
}
|
|
5573
|
+
if (rotation >= 0) {
|
|
5574
|
+
this.setRotation(rotation);
|
|
5465
5575
|
}
|
|
5466
5576
|
}
|
|
5467
5577
|
_shouldUseNativeDataType() {
|
|
@@ -5550,15 +5660,15 @@ class Viewport {
|
|
|
5550
5660
|
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
5551
5661
|
/* harmony export */ });
|
|
5552
5662
|
/* harmony import */ var _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84441);
|
|
5553
|
-
/* harmony import */ var
|
|
5554
|
-
/* harmony import */ var
|
|
5555
|
-
/* harmony import */ var
|
|
5556
|
-
/* harmony import */ var
|
|
5557
|
-
/* harmony import */ var
|
|
5558
|
-
/* harmony import */ var
|
|
5559
|
-
/* harmony import */ var
|
|
5560
|
-
/* harmony import */ var
|
|
5561
|
-
/* harmony import */ var
|
|
5663
|
+
/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
|
|
5664
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88903);
|
|
5665
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
|
|
5666
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(35678);
|
|
5667
|
+
/* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6203);
|
|
5668
|
+
/* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83853);
|
|
5669
|
+
/* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22350);
|
|
5670
|
+
/* harmony import */ var _utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97508);
|
|
5671
|
+
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(44753);
|
|
5562
5672
|
|
|
5563
5673
|
|
|
5564
5674
|
|
|
@@ -5569,18 +5679,14 @@ class Viewport {
|
|
|
5569
5679
|
|
|
5570
5680
|
|
|
5571
5681
|
|
|
5572
|
-
class VolumeViewport extends
|
|
5682
|
+
class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A {
|
|
5573
5683
|
constructor(props) {
|
|
5574
5684
|
super(props);
|
|
5575
5685
|
this._useAcquisitionPlaneForViewPlane = false;
|
|
5576
5686
|
this.getNumberOfSlices = () => {
|
|
5577
|
-
const { numberOfSlices } = (0,
|
|
5687
|
+
const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
|
|
5578
5688
|
return numberOfSlices;
|
|
5579
5689
|
};
|
|
5580
|
-
this.getSliceIndex = () => {
|
|
5581
|
-
const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this);
|
|
5582
|
-
return imageIndex;
|
|
5583
|
-
};
|
|
5584
5690
|
this.getCurrentImageIdIndex = (volumeId) => {
|
|
5585
5691
|
const { viewPlaneNormal, focalPoint } = this.getCamera();
|
|
5586
5692
|
const imageData = this.getImageData(volumeId);
|
|
@@ -5588,24 +5694,28 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5588
5694
|
return;
|
|
5589
5695
|
}
|
|
5590
5696
|
const { origin, direction, spacing } = imageData;
|
|
5591
|
-
const spacingInNormal = (0,
|
|
5592
|
-
const sub =
|
|
5593
|
-
|
|
5594
|
-
const distance =
|
|
5697
|
+
const spacingInNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSpacingInNormalDirection)({ direction, spacing }, viewPlaneNormal);
|
|
5698
|
+
const sub = gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.create */ .eR.create();
|
|
5699
|
+
gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.sub */ .eR.sub(sub, focalPoint, origin);
|
|
5700
|
+
const distance = gl_matrix__WEBPACK_IMPORTED_MODULE_9__/* .vec3.dot */ .eR.dot(sub, viewPlaneNormal);
|
|
5595
5701
|
return Math.round(Math.abs(distance) / spacingInNormal);
|
|
5596
5702
|
};
|
|
5703
|
+
this.getSliceIndex = () => {
|
|
5704
|
+
const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
|
|
5705
|
+
return imageIndex;
|
|
5706
|
+
};
|
|
5597
5707
|
this.getCurrentImageId = () => {
|
|
5598
5708
|
const actorEntry = this.getDefaultActor();
|
|
5599
|
-
if (!actorEntry || !(0,
|
|
5709
|
+
if (!actorEntry || !(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
|
|
5600
5710
|
return;
|
|
5601
5711
|
}
|
|
5602
5712
|
const { uid } = actorEntry;
|
|
5603
|
-
const volume =
|
|
5713
|
+
const volume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(uid);
|
|
5604
5714
|
if (!volume) {
|
|
5605
5715
|
return;
|
|
5606
5716
|
}
|
|
5607
5717
|
const { viewPlaneNormal, focalPoint } = this.getCamera();
|
|
5608
|
-
return (0,
|
|
5718
|
+
return (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getClosestImageId)(volume, focalPoint, viewPlaneNormal);
|
|
5609
5719
|
};
|
|
5610
5720
|
this.getSlicePlaneCoordinates = () => {
|
|
5611
5721
|
const actorEntry = this.getDefaultActor();
|
|
@@ -5614,30 +5724,30 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5614
5724
|
return [];
|
|
5615
5725
|
}
|
|
5616
5726
|
const volumeId = actorEntry.uid;
|
|
5617
|
-
const imageVolume =
|
|
5727
|
+
const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeId);
|
|
5618
5728
|
const camera = this.getCamera();
|
|
5619
5729
|
const { focalPoint, position, viewPlaneNormal } = camera;
|
|
5620
|
-
const spacingInNormalDirection = (0,
|
|
5621
|
-
const sliceRange = (0,
|
|
5730
|
+
const spacingInNormalDirection = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSpacingInNormalDirection)(imageVolume, viewPlaneNormal);
|
|
5731
|
+
const sliceRange = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSliceRange)(actorEntry.actor, viewPlaneNormal, focalPoint);
|
|
5622
5732
|
const numSlicesBackward = Math.round((sliceRange.current - sliceRange.min) / spacingInNormalDirection);
|
|
5623
5733
|
const numSlicesForward = Math.round((sliceRange.max - sliceRange.current) / spacingInNormalDirection);
|
|
5624
5734
|
const currentSliceIndex = this.getSliceIndex();
|
|
5625
5735
|
const focalPoints = [];
|
|
5626
5736
|
for (let i = -numSlicesBackward; i <= numSlicesForward; i++) {
|
|
5627
|
-
const { newFocalPoint: point } = (0,
|
|
5737
|
+
const { newFocalPoint: point } = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, i);
|
|
5628
5738
|
focalPoints.push({ sliceIndex: currentSliceIndex + i, point });
|
|
5629
5739
|
}
|
|
5630
5740
|
return focalPoints;
|
|
5631
5741
|
};
|
|
5632
5742
|
const { orientation } = this.options;
|
|
5633
|
-
if (orientation && orientation !==
|
|
5743
|
+
if (orientation && orientation !== _enums__WEBPACK_IMPORTED_MODULE_3__.OrientationAxis.ACQUISITION) {
|
|
5634
5744
|
this.applyViewOrientation(orientation);
|
|
5635
5745
|
return;
|
|
5636
5746
|
}
|
|
5637
5747
|
this._useAcquisitionPlaneForViewPlane = true;
|
|
5638
5748
|
}
|
|
5639
5749
|
async setVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
|
|
5640
|
-
const firstImageVolume =
|
|
5750
|
+
const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
|
|
5641
5751
|
if (!firstImageVolume) {
|
|
5642
5752
|
throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
|
|
5643
5753
|
}
|
|
@@ -5648,7 +5758,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5648
5758
|
return super.setVolumes(volumeInputArray, immediate, suppressEvents);
|
|
5649
5759
|
}
|
|
5650
5760
|
async addVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
|
|
5651
|
-
const firstImageVolume =
|
|
5761
|
+
const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
|
|
5652
5762
|
if (!firstImageVolume) {
|
|
5653
5763
|
throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
|
|
5654
5764
|
}
|
|
@@ -5661,8 +5771,8 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5661
5771
|
setOrientation(orientation, immediate = true) {
|
|
5662
5772
|
let viewPlaneNormal, viewUp;
|
|
5663
5773
|
if (typeof orientation === 'string') {
|
|
5664
|
-
if (
|
|
5665
|
-
({ viewPlaneNormal, viewUp } =
|
|
5774
|
+
if (_constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[orientation]) {
|
|
5775
|
+
({ viewPlaneNormal, viewUp } = _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[orientation]);
|
|
5666
5776
|
}
|
|
5667
5777
|
else if (orientation === 'acquisition') {
|
|
5668
5778
|
({ viewPlaneNormal, viewUp } = this._getAcquisitionPlaneOrientation());
|
|
@@ -5691,7 +5801,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5691
5801
|
return;
|
|
5692
5802
|
}
|
|
5693
5803
|
const volumeId = actorEntry.uid;
|
|
5694
|
-
const imageVolume =
|
|
5804
|
+
const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeId);
|
|
5695
5805
|
if (!imageVolume) {
|
|
5696
5806
|
throw new Error(`imageVolume with id: ${volumeId} does not exist in cache`);
|
|
5697
5807
|
}
|
|
@@ -5736,12 +5846,15 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5736
5846
|
this.render();
|
|
5737
5847
|
}
|
|
5738
5848
|
}
|
|
5739
|
-
resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false) {
|
|
5849
|
+
resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false) {
|
|
5850
|
+
const { orientation } = this.viewportProperties;
|
|
5851
|
+
if (orientation) {
|
|
5852
|
+
this.applyViewOrientation(orientation, false);
|
|
5853
|
+
}
|
|
5740
5854
|
super.resetCamera(resetPan, resetZoom, resetToCenter);
|
|
5741
5855
|
this.resetVolumeViewportClippingRange();
|
|
5742
5856
|
const activeCamera = this.getVtkActiveCamera();
|
|
5743
5857
|
const viewPlaneNormal = activeCamera.getViewPlaneNormal();
|
|
5744
|
-
const viewUp = activeCamera.getViewUp();
|
|
5745
5858
|
const focalPoint = activeCamera.getFocalPoint();
|
|
5746
5859
|
const actorEntries = this.getActors();
|
|
5747
5860
|
actorEntries.forEach((actorEntry) => {
|
|
@@ -5754,7 +5867,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5754
5867
|
const clipPlane1 = _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance();
|
|
5755
5868
|
const clipPlane2 = _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance();
|
|
5756
5869
|
const newVtkPlanes = [clipPlane1, clipPlane2];
|
|
5757
|
-
let slabThickness =
|
|
5870
|
+
let slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
5758
5871
|
if (actorEntry.slabThickness) {
|
|
5759
5872
|
slabThickness = actorEntry.slabThickness;
|
|
5760
5873
|
}
|
|
@@ -5764,13 +5877,22 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5764
5877
|
}
|
|
5765
5878
|
});
|
|
5766
5879
|
if (resetRotation &&
|
|
5767
|
-
|
|
5768
|
-
const viewToReset =
|
|
5880
|
+
_constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[this.viewportProperties.orientation] !== undefined) {
|
|
5881
|
+
const viewToReset = _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[this.viewportProperties.orientation];
|
|
5769
5882
|
this.setCameraNoEvent({
|
|
5770
5883
|
viewUp: viewToReset.viewUp,
|
|
5771
5884
|
viewPlaneNormal: viewToReset.viewPlaneNormal,
|
|
5772
5885
|
});
|
|
5773
5886
|
}
|
|
5887
|
+
if (!supressEvents) {
|
|
5888
|
+
const eventDetail = {
|
|
5889
|
+
viewportId: this.id,
|
|
5890
|
+
camera: this.getCamera(),
|
|
5891
|
+
renderingEngineId: this.renderingEngineId,
|
|
5892
|
+
element: this.element,
|
|
5893
|
+
};
|
|
5894
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.CAMERA_RESET, eventDetail);
|
|
5895
|
+
}
|
|
5774
5896
|
return true;
|
|
5775
5897
|
}
|
|
5776
5898
|
setSlabThickness(slabThickness, filterActorUIDs = []) {
|
|
@@ -5784,7 +5906,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5784
5906
|
});
|
|
5785
5907
|
}
|
|
5786
5908
|
actorEntries.forEach((actorEntry) => {
|
|
5787
|
-
if ((0,
|
|
5909
|
+
if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
|
|
5788
5910
|
actorEntry.slabThickness = slabThickness;
|
|
5789
5911
|
}
|
|
5790
5912
|
});
|
|
@@ -5793,6 +5915,27 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5793
5915
|
this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
|
|
5794
5916
|
this.viewportProperties.slabThickness = slabThickness;
|
|
5795
5917
|
}
|
|
5918
|
+
resetSlabThickness() {
|
|
5919
|
+
const actorEntries = this.getActors();
|
|
5920
|
+
actorEntries.forEach((actorEntry) => {
|
|
5921
|
+
if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
|
|
5922
|
+
actorEntry.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
5923
|
+
}
|
|
5924
|
+
});
|
|
5925
|
+
const currentCamera = this.getCamera();
|
|
5926
|
+
this.updateClippingPlanesForActors(currentCamera);
|
|
5927
|
+
this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
|
|
5928
|
+
this.viewportProperties.slabThickness = undefined;
|
|
5929
|
+
}
|
|
5930
|
+
getViewReference(viewRefSpecifier = {}) {
|
|
5931
|
+
const viewRef = super.getViewReference(viewRefSpecifier);
|
|
5932
|
+
if (!viewRef?.volumeId) {
|
|
5933
|
+
return;
|
|
5934
|
+
}
|
|
5935
|
+
const volume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(viewRef.volumeId);
|
|
5936
|
+
viewRef.referencedImageId = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getClosestImageId)(volume, viewRef.cameraFocalPoint, viewRef.viewPlaneNormal);
|
|
5937
|
+
return viewRef;
|
|
5938
|
+
}
|
|
5796
5939
|
resetProperties(volumeId) {
|
|
5797
5940
|
this._resetProperties(volumeId);
|
|
5798
5941
|
}
|
|
@@ -5804,20 +5947,20 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5804
5947
|
throw new Error(`No actor found for the given volumeId: ${volumeId}`);
|
|
5805
5948
|
}
|
|
5806
5949
|
if (volumeActor.slabThickness) {
|
|
5807
|
-
volumeActor.slabThickness =
|
|
5950
|
+
volumeActor.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
5808
5951
|
this.viewportProperties.slabThickness = undefined;
|
|
5809
5952
|
this.updateClippingPlanesForActors(this.getCamera());
|
|
5810
5953
|
}
|
|
5811
|
-
const imageVolume =
|
|
5954
|
+
const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeActor.uid);
|
|
5812
5955
|
if (!imageVolume) {
|
|
5813
5956
|
throw new Error(`imageVolume with id: ${volumeActor.uid} does not exist in cache`);
|
|
5814
5957
|
}
|
|
5815
|
-
(0,
|
|
5816
|
-
if ((0,
|
|
5958
|
+
(0,_helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)(volumeActor.actor, imageVolume, false);
|
|
5959
|
+
if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.isImageActor)(volumeActor)) {
|
|
5817
5960
|
const transferFunction = volumeActor.actor
|
|
5818
5961
|
.getProperty()
|
|
5819
5962
|
.getRGBTransferFunction(0);
|
|
5820
|
-
(0,
|
|
5963
|
+
(0,_utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__.setTransferFunctionNodes)(transferFunction, this.initialTransferFunctionNodes);
|
|
5821
5964
|
}
|
|
5822
5965
|
const eventDetails = {
|
|
5823
5966
|
...super.getVOIModifiedEventDetail(volumeId),
|
|
@@ -5827,12 +5970,12 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
|
|
|
5827
5970
|
const resetToCenter = true;
|
|
5828
5971
|
const resetCameraRotation = true;
|
|
5829
5972
|
this.resetCamera(resetPan, resetZoom, resetToCenter, resetCameraRotation);
|
|
5830
|
-
(0,
|
|
5973
|
+
(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.VOI_MODIFIED, eventDetails);
|
|
5831
5974
|
}
|
|
5832
5975
|
getSlicesClippingPlanes() {
|
|
5833
5976
|
const focalPoints = this.getSlicePlaneCoordinates();
|
|
5834
5977
|
const { viewPlaneNormal } = this.getCamera();
|
|
5835
|
-
const slabThickness =
|
|
5978
|
+
const slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
|
|
5836
5979
|
return focalPoints.map(({ point, sliceIndex }) => {
|
|
5837
5980
|
const vtkPlanes = [_kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance(), _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance()];
|
|
5838
5981
|
this.setOrientationOfClippingPlanes(vtkPlanes, slabThickness, viewPlaneNormal, point);
|
|
@@ -5895,6 +6038,9 @@ class VolumeViewport3D extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__/
|
|
|
5895
6038
|
resetProperties(volumeId) {
|
|
5896
6039
|
return null;
|
|
5897
6040
|
}
|
|
6041
|
+
resetSlabThickness() {
|
|
6042
|
+
return null;
|
|
6043
|
+
}
|
|
5898
6044
|
}
|
|
5899
6045
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VolumeViewport3D);
|
|
5900
6046
|
|
|
@@ -8220,9 +8366,7 @@ async function createVolumeActor(props, element, viewportId, suppressEvents = fa
|
|
|
8220
8366
|
if (numberOfComponents === 3) {
|
|
8221
8367
|
volumeActor.getProperty().setIndependentComponents(false);
|
|
8222
8368
|
}
|
|
8223
|
-
|
|
8224
|
-
await (0,setDefaultVolumeVOI/* default */.A)(volumeActor, imageVolume, useNativeDataType);
|
|
8225
|
-
}
|
|
8369
|
+
await (0,setDefaultVolumeVOI/* default */.A)(volumeActor, imageVolume, useNativeDataType);
|
|
8226
8370
|
if (callback) {
|
|
8227
8371
|
callback({ volumeActor, volumeId });
|
|
8228
8372
|
}
|
|
@@ -8313,21 +8457,19 @@ const PRIORITY = 0;
|
|
|
8313
8457
|
const REQUEST_TYPE = _enums__WEBPACK_IMPORTED_MODULE_3__.RequestType.Prefetch;
|
|
8314
8458
|
async function setDefaultVolumeVOI(volumeActor, imageVolume, useNativeDataType) {
|
|
8315
8459
|
let voi = getVOIFromMetadata(imageVolume);
|
|
8316
|
-
if (!voi) {
|
|
8460
|
+
if (!voi && imageVolume?.imageIds?.length) {
|
|
8317
8461
|
voi = await getVOIFromMinMax(imageVolume, useNativeDataType);
|
|
8462
|
+
voi = handlePreScaledVolume(imageVolume, voi);
|
|
8318
8463
|
}
|
|
8319
|
-
if (
|
|
8320
|
-
|
|
8321
|
-
|
|
8322
|
-
voi = handlePreScaledVolume(imageVolume, voi);
|
|
8323
|
-
const { lower, upper } = voi;
|
|
8324
|
-
if (lower === 0 && upper === 0) {
|
|
8464
|
+
if ((voi?.lower === 0 && voi?.upper === 0) ||
|
|
8465
|
+
voi?.lower === undefined ||
|
|
8466
|
+
voi?.upper === undefined) {
|
|
8325
8467
|
return;
|
|
8326
8468
|
}
|
|
8327
8469
|
volumeActor
|
|
8328
8470
|
.getProperty()
|
|
8329
8471
|
.getRGBTransferFunction(0)
|
|
8330
|
-
.setMappingRange(lower, upper);
|
|
8472
|
+
.setMappingRange(voi.lower, voi.upper);
|
|
8331
8473
|
}
|
|
8332
8474
|
function handlePreScaledVolume(imageVolume, voi) {
|
|
8333
8475
|
const imageIds = imageVolume.imageIds;
|
|
@@ -8343,18 +8485,26 @@ function handlePreScaledVolume(imageVolume, voi) {
|
|
|
8343
8485
|
return voi;
|
|
8344
8486
|
}
|
|
8345
8487
|
function getVOIFromMetadata(imageVolume) {
|
|
8346
|
-
const { imageIds } = imageVolume;
|
|
8347
|
-
|
|
8348
|
-
|
|
8349
|
-
|
|
8350
|
-
|
|
8351
|
-
const
|
|
8352
|
-
|
|
8353
|
-
|
|
8354
|
-
|
|
8355
|
-
?
|
|
8356
|
-
: windowCenter
|
|
8357
|
-
|
|
8488
|
+
const { imageIds, metadata } = imageVolume;
|
|
8489
|
+
let voi;
|
|
8490
|
+
if (imageIds.length) {
|
|
8491
|
+
const imageIdIndex = Math.floor(imageIds.length / 2);
|
|
8492
|
+
const imageId = imageIds[imageIdIndex];
|
|
8493
|
+
const voiLutModule = _metaData__WEBPACK_IMPORTED_MODULE_1__.get('voiLutModule', imageId);
|
|
8494
|
+
if (voiLutModule && voiLutModule.windowWidth && voiLutModule.windowCenter) {
|
|
8495
|
+
const { windowWidth, windowCenter } = voiLutModule;
|
|
8496
|
+
voi = {
|
|
8497
|
+
windowWidth: Array.isArray(windowWidth) ? windowWidth[0] : windowWidth,
|
|
8498
|
+
windowCenter: Array.isArray(windowCenter)
|
|
8499
|
+
? windowCenter[0]
|
|
8500
|
+
: windowCenter,
|
|
8501
|
+
};
|
|
8502
|
+
}
|
|
8503
|
+
}
|
|
8504
|
+
else {
|
|
8505
|
+
voi = metadata?.voiLut?.[0];
|
|
8506
|
+
}
|
|
8507
|
+
if (voi) {
|
|
8358
8508
|
const { lower, upper } = _utilities__WEBPACK_IMPORTED_MODULE_2__.windowLevel.toLowHighRange(Number(voi.windowWidth), Number(voi.windowCenter));
|
|
8359
8509
|
return {
|
|
8360
8510
|
lower,
|
|
@@ -8417,13 +8567,13 @@ async function getVOIFromMinMax(imageVolume, useNativeDataType) {
|
|
|
8417
8567
|
}
|
|
8418
8568
|
function _getImageScalarDataFromImageVolume(imageVolume, byteOffset, bytePerPixel, voxelsPerImage) {
|
|
8419
8569
|
const { scalarData } = imageVolume;
|
|
8420
|
-
const {
|
|
8570
|
+
const { buffer } = scalarData;
|
|
8421
8571
|
if (scalarData.BYTES_PER_ELEMENT !== bytePerPixel) {
|
|
8422
8572
|
byteOffset *= scalarData.BYTES_PER_ELEMENT / bytePerPixel;
|
|
8423
8573
|
}
|
|
8424
8574
|
const TypedArray = scalarData.constructor;
|
|
8425
8575
|
const imageScalarData = new TypedArray(voxelsPerImage);
|
|
8426
|
-
const volumeBufferView = new TypedArray(
|
|
8576
|
+
const volumeBufferView = new TypedArray(buffer, byteOffset, voxelsPerImage);
|
|
8427
8577
|
imageScalarData.set(volumeBufferView);
|
|
8428
8578
|
return imageScalarData;
|
|
8429
8579
|
}
|
|
@@ -8849,7 +8999,12 @@ class RenderingEngine {
|
|
|
8849
8999
|
const prevCamera = vp.getCamera();
|
|
8850
9000
|
const rotation = vp.getRotation();
|
|
8851
9001
|
const { flipHorizontal } = prevCamera;
|
|
8852
|
-
|
|
9002
|
+
const resetPan = true;
|
|
9003
|
+
const resetZoom = true;
|
|
9004
|
+
const resetToCenter = true;
|
|
9005
|
+
const resetRotation = false;
|
|
9006
|
+
const supressEvents = true;
|
|
9007
|
+
vp.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, supressEvents);
|
|
8853
9008
|
const displayArea = vp.getDisplayArea();
|
|
8854
9009
|
if (keepCamera) {
|
|
8855
9010
|
if (displayArea) {
|
|
@@ -15318,7 +15473,7 @@ class Cache {
|
|
|
15318
15473
|
this._imageCacheSize = 0;
|
|
15319
15474
|
this._volumeCacheSize = 0;
|
|
15320
15475
|
this._maxCacheSize = 3 * ONE_GB;
|
|
15321
|
-
this._maxInstanceSize =
|
|
15476
|
+
this._maxInstanceSize = 4 * ONE_GB - 8;
|
|
15322
15477
|
this.setMaxCacheSize = (newMaxCacheSize) => {
|
|
15323
15478
|
if (!newMaxCacheSize || typeof newMaxCacheSize !== 'number') {
|
|
15324
15479
|
const errorMessage = `New max cacheSize ${this._maxCacheSize} should be defined and should be a number.`;
|
|
@@ -24383,7 +24538,7 @@ function findMatchingColormap(rgbPoints, actor) {
|
|
|
24383
24538
|
return false;
|
|
24384
24539
|
}
|
|
24385
24540
|
for (let i = 0; i < presetRGBPoints.length; i += 4) {
|
|
24386
|
-
if (!(0,_isEqual__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .
|
|
24541
|
+
if (!(0,_isEqual__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay)(presetRGBPoints.slice(i + 1, i + 4), rgbPoints.slice(i + 1, i + 4))) {
|
|
24387
24542
|
return false;
|
|
24388
24543
|
}
|
|
24389
24544
|
}
|
|
@@ -24412,6 +24567,7 @@ function findMatchingColormap(rgbPoints, actor) {
|
|
|
24412
24567
|
}
|
|
24413
24568
|
return {
|
|
24414
24569
|
name: matchedColormap.Name,
|
|
24570
|
+
opacity,
|
|
24415
24571
|
};
|
|
24416
24572
|
}
|
|
24417
24573
|
|
|
@@ -24746,6 +24902,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
24746
24902
|
__webpack_require__.d(__webpack_exports__, {
|
|
24747
24903
|
PointsManager: () => (/* reexport */ PointsManager),
|
|
24748
24904
|
ProgressiveIterator: () => (/* reexport */ ProgressiveIterator),
|
|
24905
|
+
RLEVoxelMap: () => (/* reexport */ RLEVoxelMap),
|
|
24749
24906
|
VoxelManager: () => (/* reexport */ VoxelManager),
|
|
24750
24907
|
actorIsA: () => (/* reexport */ actorCheck/* actorIsA */.N),
|
|
24751
24908
|
applyPreset: () => (/* reexport */ applyPreset),
|
|
@@ -24801,7 +24958,9 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
24801
24958
|
imageToWorldCoords: () => (/* reexport */ imageToWorldCoords),
|
|
24802
24959
|
indexWithinDimensions: () => (/* reexport */ indexWithinDimensions),
|
|
24803
24960
|
invertRgbTransferFunction: () => (/* reexport */ invertRgbTransferFunction),
|
|
24804
|
-
isEqual: () => (/* reexport */ isEqual/*
|
|
24961
|
+
isEqual: () => (/* reexport */ isEqual/* isEqual */.n4),
|
|
24962
|
+
isEqualAbs: () => (/* reexport */ isEqual/* isEqualAbs */.Ph),
|
|
24963
|
+
isEqualNegative: () => (/* reexport */ isEqual/* isEqualNegative */.WC),
|
|
24805
24964
|
isImageActor: () => (/* reexport */ actorCheck/* isImageActor */.e),
|
|
24806
24965
|
isOpposite: () => (/* reexport */ isOpposite),
|
|
24807
24966
|
isPTPrescaledWithSUV: () => (/* reexport */ utilities_isPTPrescaledWithSUV),
|
|
@@ -25232,6 +25391,9 @@ function createUint8SharedArray(length) {
|
|
|
25232
25391
|
|
|
25233
25392
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/createFloat32SharedArray.js
|
|
25234
25393
|
|
|
25394
|
+
const SMALL_MEMORY_LIMIT = 2 * 1024 * 1024 * 1024 - 2;
|
|
25395
|
+
const BIG_MEMORY_LIMIT = SMALL_MEMORY_LIMIT * 2;
|
|
25396
|
+
const PAGE_SIZE = 65536;
|
|
25235
25397
|
function createFloat32SharedArray(length) {
|
|
25236
25398
|
if (!(0,init/* getShouldUseSharedArrayBuffer */.TB)()) {
|
|
25237
25399
|
throw new Error('Your page is NOT cross-origin isolated, see https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated');
|
|
@@ -25239,8 +25401,20 @@ function createFloat32SharedArray(length) {
|
|
|
25239
25401
|
if (window.SharedArrayBuffer === undefined) {
|
|
25240
25402
|
throw new Error('SharedArrayBuffer is NOT supported in your browser see https://developer.chrome.com/blog/enabling-shared-array-buffer/');
|
|
25241
25403
|
}
|
|
25242
|
-
const
|
|
25243
|
-
|
|
25404
|
+
const byteLength = length * 4;
|
|
25405
|
+
if (byteLength < SMALL_MEMORY_LIMIT) {
|
|
25406
|
+
const sharedArrayBuffer = new SharedArrayBuffer(byteLength);
|
|
25407
|
+
return new Float32Array(sharedArrayBuffer);
|
|
25408
|
+
}
|
|
25409
|
+
else if (byteLength < BIG_MEMORY_LIMIT) {
|
|
25410
|
+
const pages = Math.ceil(byteLength / PAGE_SIZE);
|
|
25411
|
+
const memory = new WebAssembly.Memory({
|
|
25412
|
+
initial: pages,
|
|
25413
|
+
maximum: pages,
|
|
25414
|
+
shared: true,
|
|
25415
|
+
});
|
|
25416
|
+
return new Float32Array(memory.buffer, 0, length);
|
|
25417
|
+
}
|
|
25244
25418
|
}
|
|
25245
25419
|
/* harmony default export */ const utilities_createFloat32SharedArray = (createFloat32SharedArray);
|
|
25246
25420
|
|
|
@@ -25428,23 +25602,28 @@ const isPTPrescaledWithSUV = (image) => {
|
|
|
25428
25602
|
|
|
25429
25603
|
|
|
25430
25604
|
|
|
25431
|
-
function renderToCanvasGPU(canvas,
|
|
25605
|
+
function renderToCanvasGPU(canvas, imageOrVolume, modality = undefined, renderingEngineId = '_thumbnails', viewportOptions = {
|
|
25606
|
+
displayArea: { imageArea: [1, 1] },
|
|
25607
|
+
}) {
|
|
25432
25608
|
if (!canvas || !(canvas instanceof HTMLCanvasElement)) {
|
|
25433
25609
|
throw new Error('canvas element is required');
|
|
25434
25610
|
}
|
|
25435
|
-
const
|
|
25611
|
+
const isVolume = !imageOrVolume.imageId;
|
|
25612
|
+
const image = !isVolume && imageOrVolume;
|
|
25613
|
+
const volume = isVolume && imageOrVolume;
|
|
25614
|
+
const imageIdToPrint = image?.imageId || volume?.volumeId;
|
|
25436
25615
|
const viewportId = `renderGPUViewport-${imageIdToPrint}`;
|
|
25437
|
-
const imageId = image.imageId;
|
|
25438
25616
|
const element = document.createElement('div');
|
|
25439
25617
|
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
25618
|
+
if (!viewportOptions.displayArea) {
|
|
25619
|
+
viewportOptions.displayArea = { imageArea: [1, 1] };
|
|
25620
|
+
}
|
|
25440
25621
|
const originalWidth = canvas.width;
|
|
25441
25622
|
const originalHeight = canvas.height;
|
|
25442
|
-
element.style.width = `${originalWidth + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
25443
|
-
element.style.height = `${originalHeight + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
25623
|
+
element.style.width = `${originalWidth / devicePixelRatio + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
25624
|
+
element.style.height = `${originalHeight / devicePixelRatio + getOrCreateCanvas/* EPSILON */.p8}px`;
|
|
25444
25625
|
element.style.visibility = 'hidden';
|
|
25445
25626
|
element.style.position = 'absolute';
|
|
25446
|
-
canvas.width = originalWidth * devicePixelRatio;
|
|
25447
|
-
canvas.height = originalHeight * devicePixelRatio;
|
|
25448
25627
|
document.body.appendChild(element);
|
|
25449
25628
|
const uniqueId = viewportId.split(':').join('-');
|
|
25450
25629
|
element.setAttribute('viewport-id-for-remove', uniqueId);
|
|
@@ -25453,26 +25632,44 @@ function renderToCanvasGPU(canvas, image, modality = undefined, renderingEngineI
|
|
|
25453
25632
|
new RenderingEngine/* default */.Ay(renderingEngineId);
|
|
25454
25633
|
let viewport = renderingEngine.getViewport(viewportId);
|
|
25455
25634
|
if (!viewport) {
|
|
25456
|
-
const
|
|
25635
|
+
const viewportInput = {
|
|
25457
25636
|
viewportId,
|
|
25458
|
-
type: enums.ViewportType.STACK,
|
|
25637
|
+
type: isVolume ? enums.ViewportType.ORTHOGRAPHIC : enums.ViewportType.STACK,
|
|
25459
25638
|
element,
|
|
25460
25639
|
defaultOptions: {
|
|
25461
25640
|
...viewportOptions,
|
|
25462
25641
|
suppressEvents: true,
|
|
25463
25642
|
},
|
|
25464
25643
|
};
|
|
25465
|
-
renderingEngine.enableElement(
|
|
25644
|
+
renderingEngine.enableElement(viewportInput);
|
|
25466
25645
|
viewport = renderingEngine.getViewport(viewportId);
|
|
25467
25646
|
}
|
|
25468
25647
|
return new Promise((resolve) => {
|
|
25469
25648
|
let elementRendered = false;
|
|
25649
|
+
let { viewReference } = viewportOptions;
|
|
25470
25650
|
const onImageRendered = (eventDetail) => {
|
|
25471
25651
|
if (elementRendered) {
|
|
25472
25652
|
return;
|
|
25473
25653
|
}
|
|
25654
|
+
if (viewReference) {
|
|
25655
|
+
const useViewRef = viewReference;
|
|
25656
|
+
viewReference = null;
|
|
25657
|
+
viewport.setViewReference(useViewRef);
|
|
25658
|
+
viewport.render();
|
|
25659
|
+
return;
|
|
25660
|
+
}
|
|
25474
25661
|
const context = canvas.getContext('2d');
|
|
25475
25662
|
context.drawImage(temporaryCanvas, 0, 0, temporaryCanvas.width, temporaryCanvas.height, 0, 0, canvas.width, canvas.height);
|
|
25663
|
+
const origin = viewport.canvasToWorld([0, 0]);
|
|
25664
|
+
const topRight = viewport.canvasToWorld([
|
|
25665
|
+
temporaryCanvas.width / devicePixelRatio,
|
|
25666
|
+
0,
|
|
25667
|
+
]);
|
|
25668
|
+
const bottomLeft = viewport.canvasToWorld([
|
|
25669
|
+
0,
|
|
25670
|
+
temporaryCanvas.height / devicePixelRatio,
|
|
25671
|
+
]);
|
|
25672
|
+
const thicknessMm = 1;
|
|
25476
25673
|
elementRendered = true;
|
|
25477
25674
|
element.removeEventListener(enums.Events.IMAGE_RENDERED, onImageRendered);
|
|
25478
25675
|
setTimeout(() => {
|
|
@@ -25482,10 +25679,20 @@ function renderToCanvasGPU(canvas, image, modality = undefined, renderingEngineI
|
|
|
25482
25679
|
element.remove();
|
|
25483
25680
|
});
|
|
25484
25681
|
}, 0);
|
|
25485
|
-
resolve(
|
|
25682
|
+
resolve({
|
|
25683
|
+
origin,
|
|
25684
|
+
bottomLeft,
|
|
25685
|
+
topRight,
|
|
25686
|
+
thicknessMm,
|
|
25687
|
+
});
|
|
25486
25688
|
};
|
|
25487
25689
|
element.addEventListener(enums.Events.IMAGE_RENDERED, onImageRendered);
|
|
25488
|
-
|
|
25690
|
+
if (isVolume) {
|
|
25691
|
+
viewport.setVolumes([volume], false, true);
|
|
25692
|
+
}
|
|
25693
|
+
else {
|
|
25694
|
+
viewport.renderImageObject(imageOrVolume);
|
|
25695
|
+
}
|
|
25489
25696
|
viewport.resetCamera();
|
|
25490
25697
|
if (modality === 'PT' && !utilities_isPTPrescaledWithSUV(image)) {
|
|
25491
25698
|
viewport.setProperties({
|
|
@@ -25509,7 +25716,12 @@ var drawImageSync = __webpack_require__(49892);
|
|
|
25509
25716
|
|
|
25510
25717
|
|
|
25511
25718
|
|
|
25512
|
-
function renderToCanvasCPU(canvas,
|
|
25719
|
+
function renderToCanvasCPU(canvas, imageOrVolume, modality, _renderingEngineId, _viewportOptions) {
|
|
25720
|
+
const volume = imageOrVolume;
|
|
25721
|
+
if (volume.volumeId) {
|
|
25722
|
+
throw new Error('Unsupported volume rendering for CPU');
|
|
25723
|
+
}
|
|
25724
|
+
const image = imageOrVolume;
|
|
25513
25725
|
const viewport = (0,getDefaultViewport/* default */.A)(canvas, image, modality);
|
|
25514
25726
|
const enabledElement = {
|
|
25515
25727
|
canvas,
|
|
@@ -25521,7 +25733,7 @@ function renderToCanvasCPU(canvas, image, modality, _renderingEngineId, _viewpor
|
|
|
25521
25733
|
const invalidated = true;
|
|
25522
25734
|
return new Promise((resolve, reject) => {
|
|
25523
25735
|
(0,drawImageSync/* default */.A)(enabledElement, invalidated);
|
|
25524
|
-
resolve(
|
|
25736
|
+
resolve(null);
|
|
25525
25737
|
});
|
|
25526
25738
|
}
|
|
25527
25739
|
|
|
@@ -25533,28 +25745,36 @@ function renderToCanvasCPU(canvas, image, modality, _renderingEngineId, _viewpor
|
|
|
25533
25745
|
|
|
25534
25746
|
|
|
25535
25747
|
|
|
25748
|
+
|
|
25536
25749
|
function loadImageToCanvas(options) {
|
|
25537
|
-
const { canvas, imageId, requestType = enums.RequestType.Thumbnail, priority = -5, renderingEngineId = '_thumbnails', useCPURendering = false, thumbnail = false, imageAspect = false,
|
|
25538
|
-
const
|
|
25750
|
+
const { canvas, imageId, viewReference, requestType = enums.RequestType.Thumbnail, priority = -5, renderingEngineId = '_thumbnails', useCPURendering = false, thumbnail = false, imageAspect = false, viewportOptions: baseViewportOptions, } = options;
|
|
25751
|
+
const volumeId = viewReference?.volumeId;
|
|
25752
|
+
const isVolume = volumeId && !imageId;
|
|
25753
|
+
const viewportOptions = viewReference && baseViewportOptions
|
|
25754
|
+
? { ...baseViewportOptions, viewReference }
|
|
25755
|
+
: baseViewportOptions;
|
|
25539
25756
|
const renderFn = useCPURendering ? renderToCanvasCPU : renderToCanvasGPU;
|
|
25540
25757
|
return new Promise((resolve, reject) => {
|
|
25541
|
-
function successCallback(
|
|
25758
|
+
function successCallback(imageOrVolume, imageId) {
|
|
25542
25759
|
const { modality } = metaData.get('generalSeriesModule', imageId) || {};
|
|
25543
|
-
image
|
|
25760
|
+
const image = !isVolume && imageOrVolume;
|
|
25761
|
+
const volume = isVolume && imageOrVolume;
|
|
25762
|
+
if (image) {
|
|
25763
|
+
image.isPreScaled = image.isPreScaled || image.preScale?.scaled;
|
|
25764
|
+
}
|
|
25544
25765
|
if (thumbnail) {
|
|
25545
25766
|
canvas.height = 256;
|
|
25546
25767
|
canvas.width = 256;
|
|
25547
25768
|
}
|
|
25548
|
-
if (
|
|
25549
|
-
canvas.width = canvas.
|
|
25550
|
-
canvas.height = canvas.offsetHeight * devicePixelRatio;
|
|
25769
|
+
if (imageAspect && image) {
|
|
25770
|
+
canvas.width = image && (canvas.height * image.width) / image.height;
|
|
25551
25771
|
}
|
|
25552
|
-
|
|
25553
|
-
|
|
25772
|
+
canvas.style.width = `${canvas.width / devicePixelRatio}px`;
|
|
25773
|
+
canvas.style.height = `${canvas.height / devicePixelRatio}px`;
|
|
25774
|
+
if (volume && useCPURendering) {
|
|
25775
|
+
reject(new Error('CPU rendering of volume not supported'));
|
|
25554
25776
|
}
|
|
25555
|
-
renderFn(canvas,
|
|
25556
|
-
resolve(imageId);
|
|
25557
|
-
});
|
|
25777
|
+
renderFn(canvas, imageOrVolume, modality, renderingEngineId, viewportOptions).then(resolve);
|
|
25558
25778
|
}
|
|
25559
25779
|
function errorCallback(error, imageId) {
|
|
25560
25780
|
console.error(error, imageId);
|
|
@@ -25567,20 +25787,28 @@ function loadImageToCanvas(options) {
|
|
|
25567
25787
|
errorCallback.call(this, error, imageId);
|
|
25568
25788
|
});
|
|
25569
25789
|
}
|
|
25570
|
-
const { useNorm16Texture
|
|
25571
|
-
const useNativeDataType = useNorm16Texture || preferSizeOverAccuracy;
|
|
25790
|
+
const { useNorm16Texture } = (0,init/* getConfiguration */.D0)().rendering;
|
|
25572
25791
|
const options = {
|
|
25573
25792
|
targetBuffer: {
|
|
25574
|
-
type:
|
|
25793
|
+
type: useNorm16Texture ? undefined : 'Float32Array',
|
|
25575
25794
|
},
|
|
25576
25795
|
preScale: {
|
|
25577
25796
|
enabled: true,
|
|
25578
25797
|
},
|
|
25579
|
-
useNativeDataType,
|
|
25580
25798
|
useRGBA: !!useCPURendering,
|
|
25581
25799
|
requestType,
|
|
25582
25800
|
};
|
|
25583
|
-
|
|
25801
|
+
if (volumeId) {
|
|
25802
|
+
const volume = cache/* default */.Ay.getVolume(volumeId);
|
|
25803
|
+
if (!volume) {
|
|
25804
|
+
reject(new Error(`Volume id ${volumeId} not found in cache`));
|
|
25805
|
+
}
|
|
25806
|
+
const useImageId = volume.imageIds[0];
|
|
25807
|
+
successCallback(volume, useImageId);
|
|
25808
|
+
}
|
|
25809
|
+
else {
|
|
25810
|
+
imageLoadPoolManager/* default */.A.addRequest(sendRequest.bind(null, imageId, null, options), requestType, { imageId }, priority);
|
|
25811
|
+
}
|
|
25584
25812
|
});
|
|
25585
25813
|
}
|
|
25586
25814
|
|
|
@@ -26348,8 +26576,8 @@ function getScalingParameters(imageId) {
|
|
|
26348
26576
|
const generalSeriesModule = (0,metaData.get)('generalSeriesModule', imageId) || {};
|
|
26349
26577
|
const { modality } = generalSeriesModule;
|
|
26350
26578
|
const scalingParameters = {
|
|
26351
|
-
rescaleSlope: modalityLutModule.rescaleSlope,
|
|
26352
|
-
rescaleIntercept: modalityLutModule.rescaleIntercept,
|
|
26579
|
+
rescaleSlope: modalityLutModule.rescaleSlope || 1,
|
|
26580
|
+
rescaleIntercept: modalityLutModule.rescaleIntercept ?? 0,
|
|
26353
26581
|
modality,
|
|
26354
26582
|
};
|
|
26355
26583
|
const suvFactor = (0,metaData.get)('scalingModule', imageId) || {};
|
|
@@ -26462,11 +26690,15 @@ function sortImageIdsAndGetSpacing(imageIds, scanAxisNormal) {
|
|
|
26462
26690
|
Math.abs(distanceBetweenFirstAndMiddleImages) /
|
|
26463
26691
|
Math.floor(imageIds.length / 2);
|
|
26464
26692
|
}
|
|
26465
|
-
const { imagePositionPatient: origin, sliceThickness } = dist_esm.metaData.get('imagePlaneModule', sortedImageIds[0]);
|
|
26693
|
+
const { imagePositionPatient: origin, sliceThickness, spacingBetweenSlices, } = dist_esm.metaData.get('imagePlaneModule', sortedImageIds[0]);
|
|
26466
26694
|
const { strictZSpacingForVolumeViewport } = (0,dist_esm.getConfiguration)().rendering;
|
|
26467
26695
|
if (zSpacing === 0 && !strictZSpacingForVolumeViewport) {
|
|
26468
|
-
if (sliceThickness) {
|
|
26469
|
-
console.log('Could not calculate zSpacing. Using
|
|
26696
|
+
if (sliceThickness && spacingBetweenSlices) {
|
|
26697
|
+
console.log('Could not calculate zSpacing. Using spacingBetweenSlices');
|
|
26698
|
+
zSpacing = spacingBetweenSlices;
|
|
26699
|
+
}
|
|
26700
|
+
else if (sliceThickness) {
|
|
26701
|
+
console.log('Could not calculate zSpacing and no spacingBetweenSlices. Using sliceThickness');
|
|
26470
26702
|
zSpacing = sliceThickness;
|
|
26471
26703
|
}
|
|
26472
26704
|
else {
|
|
@@ -26579,8 +26811,8 @@ function isValidVolume(imageIds) {
|
|
|
26579
26811
|
modality === baseMetadata.modality &&
|
|
26580
26812
|
columns === baseMetadata.columns &&
|
|
26581
26813
|
rows === baseMetadata.rows &&
|
|
26582
|
-
(0,isEqual/* default */.
|
|
26583
|
-
(0,isEqual/* default */.
|
|
26814
|
+
(0,isEqual/* default */.Ay)(imageOrientationPatient, baseMetadata.imageOrientationPatient) &&
|
|
26815
|
+
(0,isEqual/* default */.Ay)(pixelSpacing, baseMetadata.pixelSpacing));
|
|
26584
26816
|
});
|
|
26585
26817
|
return validVolume;
|
|
26586
26818
|
}
|
|
@@ -27024,9 +27256,11 @@ async function convertStackToVolumeViewport({ viewport, options, }) {
|
|
|
27024
27256
|
},
|
|
27025
27257
|
], [viewportId]);
|
|
27026
27258
|
const volumeViewportNewVolumeHandler = () => {
|
|
27027
|
-
|
|
27028
|
-
|
|
27029
|
-
|
|
27259
|
+
if (!options.orientation) {
|
|
27260
|
+
volumeViewport.setCamera({
|
|
27261
|
+
...prevCamera,
|
|
27262
|
+
});
|
|
27263
|
+
}
|
|
27030
27264
|
volumeViewport.render();
|
|
27031
27265
|
element.removeEventListener(enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, volumeViewportNewVolumeHandler);
|
|
27032
27266
|
};
|
|
@@ -27413,7 +27647,7 @@ class VoxelManager {
|
|
|
27413
27647
|
return [scalarData[index++], scalarData[index++], scalarData[index++]];
|
|
27414
27648
|
}, (index, v) => {
|
|
27415
27649
|
index *= 3;
|
|
27416
|
-
const isChanged = !(0,isEqual/* default */.
|
|
27650
|
+
const isChanged = !(0,isEqual/* default */.Ay)(scalarData[index], v);
|
|
27417
27651
|
scalarData[index++] = v[0];
|
|
27418
27652
|
scalarData[index++] = v[1];
|
|
27419
27653
|
scalarData[index++] = v[2];
|
|
@@ -27767,6 +28001,7 @@ function hexToRgb(hex) {
|
|
|
27767
28001
|
|
|
27768
28002
|
|
|
27769
28003
|
|
|
28004
|
+
|
|
27770
28005
|
|
|
27771
28006
|
|
|
27772
28007
|
/***/ }),
|
|
@@ -27776,7 +28011,10 @@ function hexToRgb(hex) {
|
|
|
27776
28011
|
|
|
27777
28012
|
"use strict";
|
|
27778
28013
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
27779
|
-
/* harmony export */
|
|
28014
|
+
/* harmony export */ Ay: () => (/* binding */ isEqual),
|
|
28015
|
+
/* harmony export */ Ph: () => (/* binding */ isEqualAbs),
|
|
28016
|
+
/* harmony export */ WC: () => (/* binding */ isEqualNegative),
|
|
28017
|
+
/* harmony export */ n4: () => (/* binding */ isEqual)
|
|
27780
28018
|
/* harmony export */ });
|
|
27781
28019
|
function areNumbersEqualWithTolerance(num1, num2, tolerance) {
|
|
27782
28020
|
return Math.abs(num1 - num2) <= tolerance;
|
|
@@ -27810,6 +28048,11 @@ function isEqual(v1, v2, tolerance = 1e-5) {
|
|
|
27810
28048
|
}
|
|
27811
28049
|
return false;
|
|
27812
28050
|
}
|
|
28051
|
+
const negative = (v) => typeof v === 'number' ? -v : v?.map ? v.map(negative) : !v;
|
|
28052
|
+
const abs = (v) => typeof v === 'number' ? Math.abs(v) : v?.map ? v.map(abs) : v;
|
|
28053
|
+
const isEqualNegative = (v1, v2, tolerance = undefined) => isEqual(v1, negative(v2), tolerance);
|
|
28054
|
+
const isEqualAbs = (v1, v2, tolerance = undefined) => isEqual(abs(v1), abs(v2), tolerance);
|
|
28055
|
+
|
|
27813
28056
|
|
|
27814
28057
|
|
|
27815
28058
|
/***/ }),
|
|
@@ -28830,7 +29073,7 @@ const CursorNames = [...svgCursorNames, ...standardCursorNames];
|
|
|
28830
29073
|
|
|
28831
29074
|
/***/ }),
|
|
28832
29075
|
|
|
28833
|
-
/***/
|
|
29076
|
+
/***/ 49574:
|
|
28834
29077
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
28835
29078
|
|
|
28836
29079
|
"use strict";
|
|
@@ -28848,6 +29091,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
28848
29091
|
drawPath: () => (/* reexport */ drawPath),
|
|
28849
29092
|
drawPolyline: () => (/* reexport */ drawPolyline),
|
|
28850
29093
|
drawRect: () => (/* reexport */ drawRect),
|
|
29094
|
+
drawRectByCoordinates: () => (/* reexport */ drawRectByCoordinates),
|
|
28851
29095
|
drawRedactionRect: () => (/* reexport */ drawRedactionRect),
|
|
28852
29096
|
drawTextBox: () => (/* reexport */ drawingSvg_drawTextBox)
|
|
28853
29097
|
});
|
|
@@ -29367,11 +29611,11 @@ function drawLinkedTextBox(svgDrawingHelper, annotationUID, textBoxUID, textLine
|
|
|
29367
29611
|
}
|
|
29368
29612
|
/* harmony default export */ const drawingSvg_drawLinkedTextBox = (drawLinkedTextBox);
|
|
29369
29613
|
|
|
29370
|
-
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/
|
|
29614
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawRectByCoordinates.js
|
|
29371
29615
|
|
|
29372
29616
|
|
|
29373
29617
|
|
|
29374
|
-
function
|
|
29618
|
+
function drawRectByCoordinates(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates, options = {}, dataId = '') {
|
|
29375
29619
|
const { color, width: _width, lineWidth, lineDash, } = Object.assign({
|
|
29376
29620
|
color: 'rgb(0, 255, 0)',
|
|
29377
29621
|
width: '2',
|
|
@@ -29382,16 +29626,28 @@ function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, opt
|
|
|
29382
29626
|
const svgns = 'http://www.w3.org/2000/svg';
|
|
29383
29627
|
const svgNodeHash = drawingSvg_getHash(annotationUID, 'rect', rectangleUID);
|
|
29384
29628
|
const existingRect = svgDrawingHelper.getSvgNode(svgNodeHash);
|
|
29385
|
-
const
|
|
29386
|
-
const width = Math.
|
|
29387
|
-
const height = Math.
|
|
29629
|
+
const [topLeft, topRight, bottomLeft, bottomRight] = canvasCoordinates;
|
|
29630
|
+
const width = Math.hypot(topLeft[0] - topRight[0], topLeft[1] - topRight[1]);
|
|
29631
|
+
const height = Math.hypot(topLeft[0] - bottomLeft[0], topLeft[1] - bottomLeft[1]);
|
|
29632
|
+
const center = [
|
|
29633
|
+
(bottomRight[0] + topLeft[0]) / 2,
|
|
29634
|
+
(bottomRight[1] + topLeft[1]) / 2,
|
|
29635
|
+
];
|
|
29636
|
+
const leftEdgeCenter = [
|
|
29637
|
+
(bottomLeft[0] + topLeft[0]) / 2,
|
|
29638
|
+
(bottomLeft[1] + topLeft[1]) / 2,
|
|
29639
|
+
];
|
|
29640
|
+
const angle = (Math.atan2(center[1] - leftEdgeCenter[1], center[0] - leftEdgeCenter[0]) *
|
|
29641
|
+
180) /
|
|
29642
|
+
Math.PI;
|
|
29388
29643
|
const attributes = {
|
|
29389
|
-
x: `${
|
|
29390
|
-
y: `${
|
|
29644
|
+
x: `${center[0] - width / 2}`,
|
|
29645
|
+
y: `${center[1] - height / 2}`,
|
|
29391
29646
|
width: `${width}`,
|
|
29392
29647
|
height: `${height}`,
|
|
29393
29648
|
stroke: color,
|
|
29394
29649
|
fill: 'transparent',
|
|
29650
|
+
transform: `rotate(${angle} ${center[0]} ${center[1]})`,
|
|
29395
29651
|
'stroke-width': strokeWidth,
|
|
29396
29652
|
'stroke-dasharray': lineDash,
|
|
29397
29653
|
};
|
|
@@ -29409,6 +29665,16 @@ function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, opt
|
|
|
29409
29665
|
}
|
|
29410
29666
|
}
|
|
29411
29667
|
|
|
29668
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawRect.js
|
|
29669
|
+
|
|
29670
|
+
function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, options = {}, dataId = '') {
|
|
29671
|
+
const topLeft = [start[0], start[1]];
|
|
29672
|
+
const topRight = [end[0], start[1]];
|
|
29673
|
+
const bottomLeft = [start[0], end[1]];
|
|
29674
|
+
const bottomRight = [end[0], end[1]];
|
|
29675
|
+
drawRectByCoordinates(svgDrawingHelper, annotationUID, rectangleUID, [topLeft, topRight, bottomLeft, bottomRight], options, dataId);
|
|
29676
|
+
}
|
|
29677
|
+
|
|
29412
29678
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawArrow.js
|
|
29413
29679
|
|
|
29414
29680
|
function drawArrow(svgDrawingHelper, annotationUID, arrowUID, start, end, options = {}) {
|
|
@@ -29514,6 +29780,7 @@ function drawRedactionRect(svgDrawingHelper, annotationUID, rectangleUID, start,
|
|
|
29514
29780
|
|
|
29515
29781
|
|
|
29516
29782
|
|
|
29783
|
+
|
|
29517
29784
|
/***/ }),
|
|
29518
29785
|
|
|
29519
29786
|
/***/ 42111:
|
|
@@ -29749,12 +30016,12 @@ var WorkerTypes_ChangeTypes;
|
|
|
29749
30016
|
|
|
29750
30017
|
/***/ }),
|
|
29751
30018
|
|
|
29752
|
-
/***/
|
|
30019
|
+
/***/ 94101:
|
|
29753
30020
|
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
|
|
29754
30021
|
|
|
29755
30022
|
"use strict";
|
|
29756
30023
|
|
|
29757
|
-
// UNUSED EXPORTS: annotationInterpolationEventDispatcher, cameraModifiedEventDispatcher, imageRenderedEventDispatcher, imageSpacingCalibratedEventDispatcher, keyboardToolEventDispatcher, mouseToolEventDispatcher, touchToolEventDispatcher
|
|
30024
|
+
// UNUSED EXPORTS: annotationInterpolationEventDispatcher, cameraModifiedEventDispatcher, cameraResetEventDispatcher, imageRenderedEventDispatcher, imageSpacingCalibratedEventDispatcher, keyboardToolEventDispatcher, mouseToolEventDispatcher, touchToolEventDispatcher
|
|
29758
30025
|
|
|
29759
30026
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
|
|
29760
30027
|
var esm = __webpack_require__(92136);
|
|
@@ -29936,6 +30203,34 @@ const annotationInterpolationEventDispatcher_disable = function () {
|
|
|
29936
30203
|
disable: annotationInterpolationEventDispatcher_disable,
|
|
29937
30204
|
});
|
|
29938
30205
|
|
|
30206
|
+
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/cameraResetEventDispatcher.js
|
|
30207
|
+
|
|
30208
|
+
|
|
30209
|
+
|
|
30210
|
+
const { Active: cameraResetEventDispatcher_Active, Passive: cameraResetEventDispatcher_Passive, Enabled: cameraResetEventDispatcher_Enabled } = enums.ToolModes;
|
|
30211
|
+
const onCameraReset = function (evt) {
|
|
30212
|
+
const enabledTools = (0,getToolsWithModesForMouseEvent/* default */.A)(evt, [
|
|
30213
|
+
cameraResetEventDispatcher_Active,
|
|
30214
|
+
cameraResetEventDispatcher_Passive,
|
|
30215
|
+
cameraResetEventDispatcher_Enabled,
|
|
30216
|
+
]);
|
|
30217
|
+
enabledTools.forEach((tool) => {
|
|
30218
|
+
if (tool.onResetCamera) {
|
|
30219
|
+
tool.onResetCamera(evt);
|
|
30220
|
+
}
|
|
30221
|
+
});
|
|
30222
|
+
};
|
|
30223
|
+
const cameraResetEventDispatcher_enable = function (element) {
|
|
30224
|
+
element.addEventListener(esm.Enums.Events.CAMERA_RESET, onCameraReset);
|
|
30225
|
+
};
|
|
30226
|
+
const cameraResetEventDispatcher_disable = function (element) {
|
|
30227
|
+
element.removeEventListener(esm.Enums.Events.CAMERA_RESET, onCameraReset);
|
|
30228
|
+
};
|
|
30229
|
+
/* harmony default export */ const cameraResetEventDispatcher = ({
|
|
30230
|
+
enable: cameraResetEventDispatcher_enable,
|
|
30231
|
+
disable: cameraResetEventDispatcher_disable,
|
|
30232
|
+
});
|
|
30233
|
+
|
|
29939
30234
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/index.js
|
|
29940
30235
|
|
|
29941
30236
|
|
|
@@ -29947,6 +30242,7 @@ const annotationInterpolationEventDispatcher_disable = function () {
|
|
|
29947
30242
|
|
|
29948
30243
|
|
|
29949
30244
|
|
|
30245
|
+
|
|
29950
30246
|
/***/ }),
|
|
29951
30247
|
|
|
29952
30248
|
/***/ 90202:
|
|
@@ -29962,7 +30258,7 @@ const annotationInterpolationEventDispatcher_disable = function () {
|
|
|
29962
30258
|
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(74119);
|
|
29963
30259
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(90252);
|
|
29964
30260
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(38296);
|
|
29965
|
-
/* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
30261
|
+
/* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75908);
|
|
29966
30262
|
/* harmony import */ var _utilities_contourSegmentation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7259);
|
|
29967
30263
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
|
|
29968
30264
|
/* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(81848);
|
|
@@ -30065,12 +30361,14 @@ function findIntersectingContour(viewport, sourcePolyline, contourSegmentationAn
|
|
|
30065
30361
|
function createPolylineHole(viewport, targetAnnotation, holeAnnotation) {
|
|
30066
30362
|
const { windingDirection: targetWindingDirection } = targetAnnotation.data.contour;
|
|
30067
30363
|
const { windingDirection: holeWindingDirection } = holeAnnotation.data.contour;
|
|
30068
|
-
if (targetWindingDirection === holeWindingDirection) {
|
|
30069
|
-
holeAnnotation.data.contour.polyline.reverse();
|
|
30070
|
-
holeAnnotation.data.contour.windingDirection = targetWindingDirection * -1;
|
|
30071
|
-
}
|
|
30072
30364
|
(0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_4__.addChildAnnotation)(targetAnnotation, holeAnnotation);
|
|
30073
30365
|
_utilities_contourSegmentation__WEBPACK_IMPORTED_MODULE_6__.removeContourSegmentationAnnotation(holeAnnotation);
|
|
30366
|
+
const { contour: holeContour } = holeAnnotation.data;
|
|
30367
|
+
const holePolyline = convertContourPolylineToCanvasSpace(holeContour.polyline, viewport);
|
|
30368
|
+
_utilities_contours__WEBPACK_IMPORTED_MODULE_5__.updateContourPolyline(holeAnnotation, {
|
|
30369
|
+
points: holePolyline,
|
|
30370
|
+
closed: holeContour.closed,
|
|
30371
|
+
}, viewport);
|
|
30074
30372
|
const { element } = viewport;
|
|
30075
30373
|
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
|
|
30076
30374
|
const { renderingEngine } = enabledElement;
|
|
@@ -30558,7 +30856,7 @@ function _imageChangeEventListener(evt) {
|
|
|
30558
30856
|
imageActor.getMapper().setInputData(imageData);
|
|
30559
30857
|
},
|
|
30560
30858
|
},
|
|
30561
|
-
]
|
|
30859
|
+
]);
|
|
30562
30860
|
(0,segmentation_triggerSegmentationRender/* default */.Ay)(toolGroup.id);
|
|
30563
30861
|
return;
|
|
30564
30862
|
}
|
|
@@ -30684,7 +30982,7 @@ function annotationRemovedListener(evt) {
|
|
|
30684
30982
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61738);
|
|
30685
30983
|
/* harmony import */ var _store_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55588);
|
|
30686
30984
|
/* harmony import */ var _eventListeners__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60878);
|
|
30687
|
-
/* harmony import */ var _eventDispatchers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
|
|
30985
|
+
/* harmony import */ var _eventDispatchers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(94101);
|
|
30688
30986
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52610);
|
|
30689
30987
|
|
|
30690
30988
|
|
|
@@ -30850,6 +31148,8 @@ class AnnotationGroup {
|
|
|
30850
31148
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
|
|
30851
31149
|
/* harmony import */ var _annotationLocking__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48428);
|
|
30852
31150
|
/* harmony import */ var _annotationVisibility__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21009);
|
|
31151
|
+
/* harmony import */ var _utilities_defineProperties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(99595);
|
|
31152
|
+
|
|
30853
31153
|
|
|
30854
31154
|
|
|
30855
31155
|
|
|
@@ -30946,6 +31246,8 @@ class FrameOfReferenceSpecificAnnotationManager {
|
|
|
30946
31246
|
toolSpecificAnnotations.push(annotation);
|
|
30947
31247
|
(0,_annotationLocking__WEBPACK_IMPORTED_MODULE_2__.checkAndDefineIsLockedProperty)(annotation);
|
|
30948
31248
|
(0,_annotationVisibility__WEBPACK_IMPORTED_MODULE_3__.checkAndDefineIsVisibleProperty)(annotation);
|
|
31249
|
+
(0,_utilities_defineProperties__WEBPACK_IMPORTED_MODULE_4__/* .checkAndDefineTextBoxProperty */ .Q)(annotation);
|
|
31250
|
+
(0,_utilities_defineProperties__WEBPACK_IMPORTED_MODULE_4__/* .checkAndDefineCachedStatsProperty */ .d)(annotation);
|
|
30949
31251
|
};
|
|
30950
31252
|
this.removeAnnotation = (annotationUID) => {
|
|
30951
31253
|
const { annotations } = this;
|
|
@@ -30968,14 +31270,27 @@ class FrameOfReferenceSpecificAnnotationManager {
|
|
|
30968
31270
|
};
|
|
30969
31271
|
this.removeAnnotations = (groupKey, toolName) => {
|
|
30970
31272
|
const annotations = this.annotations;
|
|
30971
|
-
|
|
30972
|
-
|
|
30973
|
-
|
|
31273
|
+
const removedAnnotations = [];
|
|
31274
|
+
if (!annotations[groupKey]) {
|
|
31275
|
+
return removedAnnotations;
|
|
31276
|
+
}
|
|
31277
|
+
if (toolName) {
|
|
31278
|
+
const annotationsForTool = annotations[groupKey][toolName];
|
|
31279
|
+
for (const annotation of annotationsForTool) {
|
|
31280
|
+
this.removeAnnotation(annotation.annotationUID);
|
|
31281
|
+
removedAnnotations.push(annotation);
|
|
30974
31282
|
}
|
|
30975
|
-
|
|
30976
|
-
|
|
31283
|
+
}
|
|
31284
|
+
else {
|
|
31285
|
+
for (const toolName in annotations[groupKey]) {
|
|
31286
|
+
const annotationsForTool = annotations[groupKey][toolName];
|
|
31287
|
+
for (const annotation of annotationsForTool) {
|
|
31288
|
+
this.removeAnnotation(annotation.annotationUID);
|
|
31289
|
+
removedAnnotations.push(annotation);
|
|
31290
|
+
}
|
|
30977
31291
|
}
|
|
30978
31292
|
}
|
|
31293
|
+
return removedAnnotations;
|
|
30979
31294
|
};
|
|
30980
31295
|
this.saveAnnotations = (groupKey, toolName) => {
|
|
30981
31296
|
const annotations = this.annotations;
|
|
@@ -31028,7 +31343,12 @@ class FrameOfReferenceSpecificAnnotationManager {
|
|
|
31028
31343
|
return count;
|
|
31029
31344
|
};
|
|
31030
31345
|
this.removeAllAnnotations = () => {
|
|
31031
|
-
|
|
31346
|
+
const removedAnnotations = [];
|
|
31347
|
+
for (const annotation of this.getAllAnnotations()) {
|
|
31348
|
+
this.removeAnnotation(annotation.annotationUID);
|
|
31349
|
+
removedAnnotations.push(annotation);
|
|
31350
|
+
}
|
|
31351
|
+
return removedAnnotations;
|
|
31032
31352
|
};
|
|
31033
31353
|
if (!uid) {
|
|
31034
31354
|
uid = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities.uuidv4();
|
|
@@ -31254,18 +31574,17 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
31254
31574
|
/* harmony export */ invalidateAnnotation: () => (/* binding */ invalidateAnnotation),
|
|
31255
31575
|
/* harmony export */ removeAllAnnotations: () => (/* binding */ removeAllAnnotations),
|
|
31256
31576
|
/* harmony export */ removeAnnotation: () => (/* binding */ removeAnnotation),
|
|
31577
|
+
/* harmony export */ removeAnnotations: () => (/* binding */ removeAnnotations),
|
|
31257
31578
|
/* harmony export */ resetAnnotationManager: () => (/* binding */ resetAnnotationManager),
|
|
31258
31579
|
/* harmony export */ setAnnotationManager: () => (/* binding */ setAnnotationManager)
|
|
31259
31580
|
/* harmony export */ });
|
|
31260
31581
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
|
|
31261
|
-
/* harmony import */ var
|
|
31262
|
-
/* harmony import */ var
|
|
31263
|
-
/* harmony import */ var _helpers_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54177);
|
|
31582
|
+
/* harmony import */ var _FrameOfReferenceSpecificAnnotationManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22581);
|
|
31583
|
+
/* harmony import */ var _helpers_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(54177);
|
|
31264
31584
|
|
|
31265
31585
|
|
|
31266
31586
|
|
|
31267
|
-
|
|
31268
|
-
let defaultManager = _FrameOfReferenceSpecificAnnotationManager__WEBPACK_IMPORTED_MODULE_2__/* .defaultFrameOfReferenceSpecificAnnotationManager */ .H;
|
|
31587
|
+
let defaultManager = _FrameOfReferenceSpecificAnnotationManager__WEBPACK_IMPORTED_MODULE_1__/* .defaultFrameOfReferenceSpecificAnnotationManager */ .H;
|
|
31269
31588
|
function getAnnotationManager() {
|
|
31270
31589
|
return defaultManager;
|
|
31271
31590
|
}
|
|
@@ -31273,7 +31592,7 @@ function setAnnotationManager(annotationManager) {
|
|
|
31273
31592
|
defaultManager = annotationManager;
|
|
31274
31593
|
}
|
|
31275
31594
|
function resetAnnotationManager() {
|
|
31276
|
-
defaultManager =
|
|
31595
|
+
defaultManager = _FrameOfReferenceSpecificAnnotationManager__WEBPACK_IMPORTED_MODULE_1__/* .defaultFrameOfReferenceSpecificAnnotationManager */ .H;
|
|
31277
31596
|
}
|
|
31278
31597
|
function getAnnotations(toolName, annotationGroupSelector) {
|
|
31279
31598
|
const manager = getAnnotationManager();
|
|
@@ -31323,11 +31642,11 @@ function addAnnotation(annotation, annotationGroupSelector) {
|
|
|
31323
31642
|
if (annotationGroupSelector instanceof HTMLDivElement) {
|
|
31324
31643
|
const groupKey = manager.getGroupKey(annotationGroupSelector);
|
|
31325
31644
|
manager.addAnnotation(annotation, groupKey);
|
|
31326
|
-
(0,
|
|
31645
|
+
(0,_helpers_state__WEBPACK_IMPORTED_MODULE_2__/* .triggerAnnotationAddedForElement */ .$f)(annotation, annotationGroupSelector);
|
|
31327
31646
|
}
|
|
31328
31647
|
else {
|
|
31329
31648
|
manager.addAnnotation(annotation);
|
|
31330
|
-
(0,
|
|
31649
|
+
(0,_helpers_state__WEBPACK_IMPORTED_MODULE_2__/* .triggerAnnotationAddedForFOR */ ._3)(annotation);
|
|
31331
31650
|
}
|
|
31332
31651
|
return annotation.annotationUID;
|
|
31333
31652
|
}
|
|
@@ -31347,12 +31666,7 @@ function removeAnnotation(annotationUID) {
|
|
|
31347
31666
|
}
|
|
31348
31667
|
annotation.childAnnotationUIDs?.forEach((childAnnotationUID) => removeAnnotation(childAnnotationUID));
|
|
31349
31668
|
manager.removeAnnotation(annotationUID);
|
|
31350
|
-
|
|
31351
|
-
const eventDetail = {
|
|
31352
|
-
annotation,
|
|
31353
|
-
annotationManagerUID: manager.uid,
|
|
31354
|
-
};
|
|
31355
|
-
(0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.triggerEvent)(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget, eventType, eventDetail);
|
|
31669
|
+
(0,_helpers_state__WEBPACK_IMPORTED_MODULE_2__/* .triggerAnnotationRemoved */ .SH)({ annotation, annotationManagerUID: manager.uid });
|
|
31356
31670
|
}
|
|
31357
31671
|
function getAnnotation(annotationUID) {
|
|
31358
31672
|
const manager = getAnnotationManager();
|
|
@@ -31361,7 +31675,24 @@ function getAnnotation(annotationUID) {
|
|
|
31361
31675
|
}
|
|
31362
31676
|
function removeAllAnnotations() {
|
|
31363
31677
|
const manager = getAnnotationManager();
|
|
31364
|
-
manager.removeAllAnnotations();
|
|
31678
|
+
const removedAnnotations = manager.removeAllAnnotations();
|
|
31679
|
+
for (const annotation of removedAnnotations) {
|
|
31680
|
+
(0,_helpers_state__WEBPACK_IMPORTED_MODULE_2__/* .triggerAnnotationRemoved */ .SH)({
|
|
31681
|
+
annotation,
|
|
31682
|
+
annotationManagerUID: manager.uid,
|
|
31683
|
+
});
|
|
31684
|
+
}
|
|
31685
|
+
}
|
|
31686
|
+
function removeAnnotations(toolName, annotationGroupSelector) {
|
|
31687
|
+
const manager = getAnnotationManager();
|
|
31688
|
+
const groupKey = manager.getGroupKey(annotationGroupSelector);
|
|
31689
|
+
const removedAnnotations = manager.removeAnnotations(groupKey, toolName);
|
|
31690
|
+
for (const annotation of removedAnnotations) {
|
|
31691
|
+
(0,_helpers_state__WEBPACK_IMPORTED_MODULE_2__/* .triggerAnnotationRemoved */ .SH)({
|
|
31692
|
+
annotation,
|
|
31693
|
+
annotationManagerUID: manager.uid,
|
|
31694
|
+
});
|
|
31695
|
+
}
|
|
31365
31696
|
}
|
|
31366
31697
|
function invalidateAnnotation(annotation) {
|
|
31367
31698
|
let currAnnotation = annotation;
|
|
@@ -31716,6 +32047,7 @@ function getStyleProperty(property, styleSpecifier, state, mode) {
|
|
|
31716
32047
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
31717
32048
|
/* harmony export */ $f: () => (/* binding */ triggerAnnotationAddedForElement),
|
|
31718
32049
|
/* harmony export */ PS: () => (/* binding */ triggerContourAnnotationCompleted),
|
|
32050
|
+
/* harmony export */ SH: () => (/* binding */ triggerAnnotationRemoved),
|
|
31719
32051
|
/* harmony export */ XF: () => (/* binding */ triggerAnnotationModified),
|
|
31720
32052
|
/* harmony export */ _3: () => (/* binding */ triggerAnnotationAddedForFOR),
|
|
31721
32053
|
/* harmony export */ dZ: () => (/* binding */ triggerAnnotationCompleted)
|
|
@@ -31765,6 +32097,10 @@ function triggerAnnotationAddedForFOR(annotation) {
|
|
|
31765
32097
|
(0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.triggerEvent)(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget, eventType, eventDetail);
|
|
31766
32098
|
});
|
|
31767
32099
|
}
|
|
32100
|
+
function triggerAnnotationRemoved(eventDetail) {
|
|
32101
|
+
const eventType = _enums__WEBPACK_IMPORTED_MODULE_1__.Events.ANNOTATION_REMOVED;
|
|
32102
|
+
(0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.triggerEvent)(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.eventTarget, eventType, eventDetail);
|
|
32103
|
+
}
|
|
31768
32104
|
function triggerAnnotationModified(annotation, element, changeType = _enums__WEBPACK_IMPORTED_MODULE_1__.ChangeTypes.HandlesUpdated) {
|
|
31769
32105
|
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
|
|
31770
32106
|
const { viewportId, renderingEngineId } = enabledElement;
|
|
@@ -34678,8 +35014,8 @@ function removeTool(ToolClass) {
|
|
|
34678
35014
|
|
|
34679
35015
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventListeners/index.js + 17 modules
|
|
34680
35016
|
var eventListeners = __webpack_require__(60878);
|
|
34681
|
-
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/index.js +
|
|
34682
|
-
var eventDispatchers = __webpack_require__(
|
|
35017
|
+
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/index.js + 8 modules
|
|
35018
|
+
var eventDispatchers = __webpack_require__(94101);
|
|
34683
35019
|
// EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/triggerAnnotationRender.js
|
|
34684
35020
|
var triggerAnnotationRender = __webpack_require__(6805);
|
|
34685
35021
|
;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/addEnabledElement.js
|
|
@@ -34701,6 +35037,7 @@ function addEnabledElement(evt) {
|
|
|
34701
35037
|
imageRenderedEventDispatcher.enable(element);
|
|
34702
35038
|
cameraModifiedEventDispatcher.enable(element);
|
|
34703
35039
|
imageSpacingCalibratedEventDispatcher.enable(element);
|
|
35040
|
+
cameraResetEventDispatcher.enable(element);
|
|
34704
35041
|
mouseToolEventDispatcher.enable(element);
|
|
34705
35042
|
keyboardToolEventDispatcher.enable(element);
|
|
34706
35043
|
touchToolEventDispatcher.enable(element);
|
|
@@ -34791,6 +35128,7 @@ function removeEnabledElement(elementDisabledEvt) {
|
|
|
34791
35128
|
imageRenderedEventDispatcher.disable(element);
|
|
34792
35129
|
cameraModifiedEventDispatcher.disable(element);
|
|
34793
35130
|
imageSpacingCalibratedEventDispatcher.disable(element);
|
|
35131
|
+
cameraResetEventDispatcher.disable(element);
|
|
34794
35132
|
mouseToolEventDispatcher.disable(element);
|
|
34795
35133
|
keyboardToolEventDispatcher.disable(element);
|
|
34796
35134
|
touchToolEventDispatcher.disable(element);
|
|
@@ -34997,7 +35335,7 @@ function presentationViewSyncCallback_presentationViewSyncCallback(_synchronizer
|
|
|
34997
35335
|
const tViewport = renderingEngine.getViewport(targetViewport.viewportId);
|
|
34998
35336
|
const sViewport = renderingEngine.getViewport(sourceViewport.viewportId);
|
|
34999
35337
|
const presentationView = sViewport.getViewPresentation(options);
|
|
35000
|
-
tViewport.
|
|
35338
|
+
tViewport.setViewPresentation(presentationView);
|
|
35001
35339
|
tViewport.render();
|
|
35002
35340
|
}
|
|
35003
35341
|
|
|
@@ -35240,7 +35578,7 @@ const createStackImageSynchronizer = (/* unused pure expression or super */ null
|
|
|
35240
35578
|
/* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48428);
|
|
35241
35579
|
/* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21009);
|
|
35242
35580
|
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(54177);
|
|
35243
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
35581
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
|
|
35244
35582
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
|
|
35245
35583
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(84901);
|
|
35246
35584
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(90252);
|
|
@@ -35729,10 +36067,10 @@ class AnnotationEraserTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .BaseToo
|
|
|
35729
36067
|
continue;
|
|
35730
36068
|
}
|
|
35731
36069
|
const annotations = (0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__.getAnnotations)(toolName, element);
|
|
35732
|
-
if (!annotations) {
|
|
36070
|
+
if (!annotations.length) {
|
|
35733
36071
|
continue;
|
|
35734
36072
|
}
|
|
35735
|
-
const interactableAnnotations = toolInstance.filterInteractableAnnotationsForElement(element, annotations);
|
|
36073
|
+
const interactableAnnotations = toolInstance.filterInteractableAnnotationsForElement(element, annotations) || [];
|
|
35736
36074
|
for (const annotation of interactableAnnotations) {
|
|
35737
36075
|
if (toolInstance.isPointNearTool(element, annotation, currentPoints.canvas, 10, interactionType)) {
|
|
35738
36076
|
annotationsToRemove.push(annotation.annotationUID);
|
|
@@ -35764,7 +36102,7 @@ AnnotationEraserTool.toolName = 'Eraser';
|
|
|
35764
36102
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92136);
|
|
35765
36103
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52610);
|
|
35766
36104
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38296);
|
|
35767
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
|
|
36105
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(49574);
|
|
35768
36106
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(61738);
|
|
35769
36107
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(84901);
|
|
35770
36108
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(90252);
|
|
@@ -35814,7 +36152,12 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
|
|
|
35814
36152
|
supportedInteractionTypes: ['Mouse'],
|
|
35815
36153
|
configuration: {
|
|
35816
36154
|
shadow: true,
|
|
35817
|
-
viewportIndicators:
|
|
36155
|
+
viewportIndicators: false,
|
|
36156
|
+
viewportIndicatorsConfig: {
|
|
36157
|
+
radius: 5,
|
|
36158
|
+
x: null,
|
|
36159
|
+
y: null,
|
|
36160
|
+
},
|
|
35818
36161
|
autoPan: {
|
|
35819
36162
|
enabled: false,
|
|
35820
36163
|
panSize: 10,
|
|
@@ -35878,12 +36221,20 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
|
|
|
35878
36221
|
viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
|
|
35879
36222
|
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_4__.getEnabledElementByIds)(viewportId, renderingEngineId);
|
|
35880
36223
|
const { viewport } = enabledElement;
|
|
36224
|
+
const resetPan = true;
|
|
36225
|
+
const resetZoom = true;
|
|
36226
|
+
const resetToCenter = true;
|
|
36227
|
+
const resetRotation = true;
|
|
36228
|
+
const supressEvents = true;
|
|
36229
|
+
viewport.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, supressEvents);
|
|
36230
|
+
viewport.resetSlabThickness();
|
|
35881
36231
|
const { element } = viewport;
|
|
35882
36232
|
let annotations = this._getAnnotations(enabledElement);
|
|
35883
36233
|
annotations = this.filterInteractableAnnotationsForElement(element, annotations);
|
|
35884
36234
|
if (annotations.length) {
|
|
35885
36235
|
(0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_6__.removeAnnotation)(annotations[0].annotationUID);
|
|
35886
36236
|
}
|
|
36237
|
+
viewport.render();
|
|
35887
36238
|
});
|
|
35888
36239
|
this.computeToolCenter(viewportsInfo);
|
|
35889
36240
|
};
|
|
@@ -36021,6 +36372,9 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
|
|
|
36021
36372
|
const viewportIdsToRender = (0,_utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_10__.getViewportIdsWithToolToRender)(element, this.getToolName(), requireSameOrientation);
|
|
36022
36373
|
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
|
|
36023
36374
|
};
|
|
36375
|
+
this.onResetCamera = (evt) => {
|
|
36376
|
+
this.resetCrosshairs();
|
|
36377
|
+
};
|
|
36024
36378
|
this.mouseMoveCallback = (evt, filteredToolAnnotations) => {
|
|
36025
36379
|
const { element, currentPoints } = evt.detail;
|
|
36026
36380
|
const canvasCoords = currentPoints.canvas;
|
|
@@ -36402,12 +36756,16 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
|
|
|
36402
36756
|
renderStatus = true;
|
|
36403
36757
|
data.handles.rotationPoints = newRtpoints;
|
|
36404
36758
|
data.handles.slabThicknessPoints = newStpoints;
|
|
36759
|
+
debugger;
|
|
36405
36760
|
if (this.configuration.viewportIndicators) {
|
|
36761
|
+
const { viewportIndicatorsConfig } = this.configuration;
|
|
36762
|
+
const xOffset = viewportIndicatorsConfig?.xOffset || 0.95;
|
|
36763
|
+
const yOffset = viewportIndicatorsConfig?.yOffset || 0.05;
|
|
36406
36764
|
const referenceColorCoordinates = [
|
|
36407
|
-
clientWidth *
|
|
36408
|
-
clientHeight *
|
|
36765
|
+
clientWidth * xOffset,
|
|
36766
|
+
clientHeight * yOffset,
|
|
36409
36767
|
];
|
|
36410
|
-
const circleRadius = canvasDiagonalLength * 0.01;
|
|
36768
|
+
const circleRadius = viewportIndicatorsConfig?.circleRadius || canvasDiagonalLength * 0.01;
|
|
36411
36769
|
const circleUID = '0';
|
|
36412
36770
|
(0,_drawingSvg__WEBPACK_IMPORTED_MODULE_7__.drawCircle)(svgDrawingHelper, annotationUID, circleUID, referenceColorCoordinates, circleRadius, { color, fill: color });
|
|
36413
36771
|
}
|
|
@@ -37773,7 +38131,7 @@ OrientationMarkerTool.toolName = 'OrientationMarker';
|
|
|
37773
38131
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
|
|
37774
38132
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
|
|
37775
38133
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52610);
|
|
37776
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
38134
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
|
|
37777
38135
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23072);
|
|
37778
38136
|
/* harmony import */ var _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28062);
|
|
37779
38137
|
|
|
@@ -38062,7 +38420,7 @@ PlanarRotateTool.toolName = 'PlanarRotate';
|
|
|
38062
38420
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
|
|
38063
38421
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38296);
|
|
38064
38422
|
/* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21009);
|
|
38065
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
38423
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
|
|
38066
38424
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90252);
|
|
38067
38425
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23072);
|
|
38068
38426
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44753);
|
|
@@ -38390,7 +38748,7 @@ ReferenceCursors.toolName = 'ReferenceCursors';
|
|
|
38390
38748
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44753);
|
|
38391
38749
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
|
|
38392
38750
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
|
|
38393
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
38751
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
|
|
38394
38752
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90252);
|
|
38395
38753
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23072);
|
|
38396
38754
|
/* harmony import */ var _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28062);
|
|
@@ -38629,7 +38987,7 @@ ReferenceLines.toolName = 'ReferenceLines';
|
|
|
38629
38987
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
|
|
38630
38988
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92136);
|
|
38631
38989
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
|
|
38632
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(
|
|
38990
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
|
|
38633
38991
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52610);
|
|
38634
38992
|
|
|
38635
38993
|
|
|
@@ -38931,8 +39289,8 @@ class ScaleOverlayTool extends _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MOD
|
|
|
38931
39289
|
viewportId: enabledElement.viewport.id,
|
|
38932
39290
|
};
|
|
38933
39291
|
const canvasSize = {
|
|
38934
|
-
width: canvas.width,
|
|
38935
|
-
height: canvas.height,
|
|
39292
|
+
width: canvas.width / window.devicePixelRatio || 1,
|
|
39293
|
+
height: canvas.height / window.devicePixelRatio || 1,
|
|
38936
39294
|
};
|
|
38937
39295
|
const topLeft = annotation.data.handles.points[0];
|
|
38938
39296
|
const topRight = annotation.data.handles.points[1];
|
|
@@ -39345,7 +39703,7 @@ SculptorTool.toolName = 'SculptorTool';
|
|
|
39345
39703
|
"use strict";
|
|
39346
39704
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
|
|
39347
39705
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38296);
|
|
39348
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
39706
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49574);
|
|
39349
39707
|
/* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52610);
|
|
39350
39708
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23072);
|
|
39351
39709
|
/* harmony import */ var _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28062);
|
|
@@ -39672,6 +40030,7 @@ class TrackballRotateTool extends _base__WEBPACK_IMPORTED_MODULE_4__/* .BaseTool
|
|
|
39672
40030
|
}) {
|
|
39673
40031
|
super(toolProps, defaultToolProps);
|
|
39674
40032
|
this._resizeObservers = new Map();
|
|
40033
|
+
this._hasResolutionChanged = false;
|
|
39675
40034
|
this.preMouseDownCallback = (evt) => {
|
|
39676
40035
|
const eventDetail = evt.detail;
|
|
39677
40036
|
const { element } = eventDetail;
|
|
@@ -39681,15 +40040,19 @@ class TrackballRotateTool extends _base__WEBPACK_IMPORTED_MODULE_4__/* .BaseTool
|
|
|
39681
40040
|
const actor = actorEntry.actor;
|
|
39682
40041
|
const mapper = actor.getMapper();
|
|
39683
40042
|
const originalSampleDistance = mapper.getSampleDistance();
|
|
39684
|
-
|
|
39685
|
-
|
|
39686
|
-
|
|
40043
|
+
if (!this._hasResolutionChanged) {
|
|
40044
|
+
mapper.setSampleDistance(originalSampleDistance * 2);
|
|
40045
|
+
this._hasResolutionChanged = true;
|
|
40046
|
+
if (this.cleanUp !== null) {
|
|
40047
|
+
document.removeEventListener('mouseup', this.cleanUp);
|
|
40048
|
+
}
|
|
40049
|
+
this.cleanUp = () => {
|
|
40050
|
+
mapper.setSampleDistance(originalSampleDistance);
|
|
40051
|
+
viewport.render();
|
|
40052
|
+
this._hasResolutionChanged = false;
|
|
40053
|
+
};
|
|
40054
|
+
document.addEventListener('mouseup', this.cleanUp, { once: true });
|
|
39687
40055
|
}
|
|
39688
|
-
this.cleanUp = () => {
|
|
39689
|
-
mapper.setSampleDistance(originalSampleDistance);
|
|
39690
|
-
viewport.render();
|
|
39691
|
-
};
|
|
39692
|
-
document.addEventListener('mouseup', this.cleanUp, { once: true });
|
|
39693
40056
|
return true;
|
|
39694
40057
|
};
|
|
39695
40058
|
this._getViewportsInfo = () => {
|
|
@@ -39890,6 +40253,248 @@ VolumeRotateMouseWheelTool.toolName = 'VolumeRotateMouseWheel';
|
|
|
39890
40253
|
/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (VolumeRotateMouseWheelTool)));
|
|
39891
40254
|
|
|
39892
40255
|
|
|
40256
|
+
/***/ }),
|
|
40257
|
+
|
|
40258
|
+
/***/ 60747:
|
|
40259
|
+
/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
|
|
40260
|
+
|
|
40261
|
+
"use strict";
|
|
40262
|
+
/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96214);
|
|
40263
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
|
|
40264
|
+
/* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95778);
|
|
40265
|
+
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54177);
|
|
40266
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
|
|
40267
|
+
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(61738);
|
|
40268
|
+
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(84901);
|
|
40269
|
+
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90252);
|
|
40270
|
+
/* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(40233);
|
|
40271
|
+
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23072);
|
|
40272
|
+
/* harmony import */ var _utilities_voi__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(14149);
|
|
40273
|
+
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(74119);
|
|
40274
|
+
|
|
40275
|
+
|
|
40276
|
+
|
|
40277
|
+
|
|
40278
|
+
|
|
40279
|
+
|
|
40280
|
+
|
|
40281
|
+
|
|
40282
|
+
|
|
40283
|
+
|
|
40284
|
+
|
|
40285
|
+
|
|
40286
|
+
class WindowLevelRegionTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationTool */ .EC {
|
|
40287
|
+
constructor(toolProps = {}, defaultToolProps = {
|
|
40288
|
+
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
40289
|
+
configuration: {
|
|
40290
|
+
minWindowWidth: 10,
|
|
40291
|
+
},
|
|
40292
|
+
}) {
|
|
40293
|
+
super(toolProps, defaultToolProps);
|
|
40294
|
+
this.addNewAnnotation = (evt) => {
|
|
40295
|
+
const eventDetail = evt.detail;
|
|
40296
|
+
const { currentPoints, element } = eventDetail;
|
|
40297
|
+
const worldPos = currentPoints.world;
|
|
40298
|
+
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
|
|
40299
|
+
const { viewport, renderingEngine } = enabledElement;
|
|
40300
|
+
this.isDrawing = true;
|
|
40301
|
+
const camera = viewport.getCamera();
|
|
40302
|
+
const { viewPlaneNormal, viewUp } = camera;
|
|
40303
|
+
const referencedImageId = this.getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp);
|
|
40304
|
+
const FrameOfReferenceUID = viewport.getFrameOfReferenceUID();
|
|
40305
|
+
const annotation = {
|
|
40306
|
+
invalidated: true,
|
|
40307
|
+
highlighted: true,
|
|
40308
|
+
metadata: {
|
|
40309
|
+
toolName: this.getToolName(),
|
|
40310
|
+
viewPlaneNormal: [...viewPlaneNormal],
|
|
40311
|
+
viewUp: [...viewUp],
|
|
40312
|
+
FrameOfReferenceUID,
|
|
40313
|
+
referencedImageId,
|
|
40314
|
+
},
|
|
40315
|
+
data: {
|
|
40316
|
+
handles: {
|
|
40317
|
+
points: [
|
|
40318
|
+
[...worldPos],
|
|
40319
|
+
[...worldPos],
|
|
40320
|
+
[...worldPos],
|
|
40321
|
+
[...worldPos],
|
|
40322
|
+
],
|
|
40323
|
+
},
|
|
40324
|
+
cachedStats: {},
|
|
40325
|
+
},
|
|
40326
|
+
};
|
|
40327
|
+
(0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .addAnnotation */ .lC)(annotation, element);
|
|
40328
|
+
const viewportIdsToRender = (0,_utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_7__.getViewportIdsWithToolToRender)(element, this.getToolName());
|
|
40329
|
+
this.editData = {
|
|
40330
|
+
annotation,
|
|
40331
|
+
viewportIdsToRender,
|
|
40332
|
+
};
|
|
40333
|
+
this._activateDraw(element);
|
|
40334
|
+
(0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__.hideElementCursor)(element);
|
|
40335
|
+
evt.preventDefault();
|
|
40336
|
+
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
|
|
40337
|
+
return annotation;
|
|
40338
|
+
};
|
|
40339
|
+
this._endCallback = (evt) => {
|
|
40340
|
+
const eventDetail = evt.detail;
|
|
40341
|
+
const { element } = eventDetail;
|
|
40342
|
+
const { annotation, viewportIdsToRender } = this.editData;
|
|
40343
|
+
this._deactivateDraw(element);
|
|
40344
|
+
(0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__.resetElementCursor)(element);
|
|
40345
|
+
const { renderingEngine } = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
|
|
40346
|
+
this.editData = null;
|
|
40347
|
+
this.isDrawing = false;
|
|
40348
|
+
(0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .removeAnnotation */ .O8)(annotation.annotationUID);
|
|
40349
|
+
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
|
|
40350
|
+
(0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_3__/* .triggerAnnotationCompleted */ .dZ)(annotation);
|
|
40351
|
+
this.applyWindowLevelRegion(annotation, element);
|
|
40352
|
+
};
|
|
40353
|
+
this._dragCallback = (evt) => {
|
|
40354
|
+
this.isDrawing = true;
|
|
40355
|
+
const eventDetail = evt.detail;
|
|
40356
|
+
const { element } = eventDetail;
|
|
40357
|
+
const { annotation, viewportIdsToRender } = this.editData;
|
|
40358
|
+
const { data } = annotation;
|
|
40359
|
+
const { currentPoints } = eventDetail;
|
|
40360
|
+
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
|
|
40361
|
+
const { worldToCanvas, canvasToWorld } = enabledElement.viewport;
|
|
40362
|
+
const worldPos = currentPoints.world;
|
|
40363
|
+
const { points } = data.handles;
|
|
40364
|
+
const DEFAULT_HANDLE_INDEX = 3;
|
|
40365
|
+
points[DEFAULT_HANDLE_INDEX] = [...worldPos];
|
|
40366
|
+
const bottomLeftCanvas = worldToCanvas(points[0]);
|
|
40367
|
+
const topRightCanvas = worldToCanvas(points[3]);
|
|
40368
|
+
const bottomRightCanvas = [
|
|
40369
|
+
topRightCanvas[0],
|
|
40370
|
+
bottomLeftCanvas[1],
|
|
40371
|
+
];
|
|
40372
|
+
const topLeftCanvas = [
|
|
40373
|
+
bottomLeftCanvas[0],
|
|
40374
|
+
topRightCanvas[1],
|
|
40375
|
+
];
|
|
40376
|
+
const bottomRightWorld = canvasToWorld(bottomRightCanvas);
|
|
40377
|
+
const topLeftWorld = canvasToWorld(topLeftCanvas);
|
|
40378
|
+
points[1] = bottomRightWorld;
|
|
40379
|
+
points[2] = topLeftWorld;
|
|
40380
|
+
annotation.invalidated = true;
|
|
40381
|
+
const { renderingEngine } = enabledElement;
|
|
40382
|
+
(0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
|
|
40383
|
+
};
|
|
40384
|
+
this._activateDraw = (element) => {
|
|
40385
|
+
_store__WEBPACK_IMPORTED_MODULE_5__/* .state */ .wk.isInteractingWithTool = true;
|
|
40386
|
+
element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_UP, this._endCallback);
|
|
40387
|
+
element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_DRAG, this._dragCallback);
|
|
40388
|
+
element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_MOVE, this._dragCallback);
|
|
40389
|
+
element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_CLICK, this._endCallback);
|
|
40390
|
+
element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_END, this._endCallback);
|
|
40391
|
+
element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_DRAG, this._dragCallback);
|
|
40392
|
+
element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_TAP, this._endCallback);
|
|
40393
|
+
};
|
|
40394
|
+
this._deactivateDraw = (element) => {
|
|
40395
|
+
_store__WEBPACK_IMPORTED_MODULE_5__/* .state */ .wk.isInteractingWithTool = false;
|
|
40396
|
+
element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_UP, this._endCallback);
|
|
40397
|
+
element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_DRAG, this._dragCallback);
|
|
40398
|
+
element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_MOVE, this._dragCallback);
|
|
40399
|
+
element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_CLICK, this._endCallback);
|
|
40400
|
+
element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_END, this._endCallback);
|
|
40401
|
+
element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_DRAG, this._dragCallback);
|
|
40402
|
+
element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_TAP, this._endCallback);
|
|
40403
|
+
};
|
|
40404
|
+
this.renderAnnotation = (enabledElement, svgDrawingHelper) => {
|
|
40405
|
+
let renderStatus = false;
|
|
40406
|
+
const { viewport } = enabledElement;
|
|
40407
|
+
const { element } = viewport;
|
|
40408
|
+
let annotations = (0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .getAnnotations */ .Rh)(this.getToolName(), element);
|
|
40409
|
+
if (!annotations?.length) {
|
|
40410
|
+
return renderStatus;
|
|
40411
|
+
}
|
|
40412
|
+
annotations = this.filterInteractableAnnotationsForElement(element, annotations);
|
|
40413
|
+
if (!annotations?.length) {
|
|
40414
|
+
return renderStatus;
|
|
40415
|
+
}
|
|
40416
|
+
const styleSpecifier = {
|
|
40417
|
+
toolGroupId: this.toolGroupId,
|
|
40418
|
+
toolName: this.getToolName(),
|
|
40419
|
+
viewportId: enabledElement.viewport.id,
|
|
40420
|
+
};
|
|
40421
|
+
for (let i = 0; i < annotations.length; i++) {
|
|
40422
|
+
const annotation = annotations[i];
|
|
40423
|
+
const { annotationUID, data } = annotation;
|
|
40424
|
+
const { points } = data.handles;
|
|
40425
|
+
const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
|
|
40426
|
+
styleSpecifier.annotationUID = annotationUID;
|
|
40427
|
+
const { color, lineWidth, lineDash } = this.getAnnotationStyle({
|
|
40428
|
+
annotation,
|
|
40429
|
+
styleSpecifier,
|
|
40430
|
+
});
|
|
40431
|
+
if (!viewport.getRenderingEngine()) {
|
|
40432
|
+
console.warn('Rendering Engine has been destroyed');
|
|
40433
|
+
return renderStatus;
|
|
40434
|
+
}
|
|
40435
|
+
const dataId = `${annotationUID}-rect`;
|
|
40436
|
+
const rectangleUID = '0';
|
|
40437
|
+
(0,_drawingSvg__WEBPACK_IMPORTED_MODULE_4__.drawRect)(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates[0], canvasCoordinates[3], {
|
|
40438
|
+
color,
|
|
40439
|
+
lineDash,
|
|
40440
|
+
lineWidth,
|
|
40441
|
+
}, dataId);
|
|
40442
|
+
renderStatus = true;
|
|
40443
|
+
}
|
|
40444
|
+
return renderStatus;
|
|
40445
|
+
};
|
|
40446
|
+
this.applyWindowLevelRegion = (annotation, element) => {
|
|
40447
|
+
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
|
|
40448
|
+
const { viewport } = enabledElement;
|
|
40449
|
+
const imageData = _utilities_voi__WEBPACK_IMPORTED_MODULE_10__.windowLevel.extractWindowLevelRegionToolData(viewport);
|
|
40450
|
+
const { data } = annotation;
|
|
40451
|
+
const { points } = data.handles;
|
|
40452
|
+
const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
|
|
40453
|
+
const startCanvas = canvasCoordinates[0];
|
|
40454
|
+
const endCanvas = canvasCoordinates[3];
|
|
40455
|
+
let left = Math.min(startCanvas[0], endCanvas[0]);
|
|
40456
|
+
let top = Math.min(startCanvas[1], endCanvas[1]);
|
|
40457
|
+
let width = Math.abs(startCanvas[0] - endCanvas[0]);
|
|
40458
|
+
let height = Math.abs(startCanvas[1] - endCanvas[1]);
|
|
40459
|
+
left = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.clip)(left, 0, imageData.width);
|
|
40460
|
+
top = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.clip)(top, 0, imageData.height);
|
|
40461
|
+
width = Math.floor(Math.min(width, Math.abs(imageData.width - left)));
|
|
40462
|
+
height = Math.floor(Math.min(height, Math.abs(imageData.height - top)));
|
|
40463
|
+
const pixelLuminanceData = _utilities_voi__WEBPACK_IMPORTED_MODULE_10__.windowLevel.getLuminanceFromRegion(imageData, Math.round(left), Math.round(top), width, height);
|
|
40464
|
+
const minMaxMean = _utilities_voi__WEBPACK_IMPORTED_MODULE_10__.windowLevel.calculateMinMaxMean(pixelLuminanceData, imageData.minPixelValue, imageData.maxPixelValue);
|
|
40465
|
+
if (this.configuration.minWindowWidth === undefined) {
|
|
40466
|
+
this.configuration.minWindowWidth = 10;
|
|
40467
|
+
}
|
|
40468
|
+
const windowWidth = Math.max(Math.abs(minMaxMean.max - minMaxMean.min), this.configuration.minWindowWidth);
|
|
40469
|
+
const windowCenter = minMaxMean.mean;
|
|
40470
|
+
const voiRange = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities.windowLevel.toLowHighRange(windowWidth, windowCenter);
|
|
40471
|
+
viewport.setProperties({ voiRange });
|
|
40472
|
+
viewport.render();
|
|
40473
|
+
};
|
|
40474
|
+
this.cancel = () => {
|
|
40475
|
+
return null;
|
|
40476
|
+
};
|
|
40477
|
+
this.isPointNearTool = () => {
|
|
40478
|
+
return null;
|
|
40479
|
+
};
|
|
40480
|
+
this.toolSelectedCallback = () => {
|
|
40481
|
+
return null;
|
|
40482
|
+
};
|
|
40483
|
+
this.handleSelectedCallback = () => {
|
|
40484
|
+
return null;
|
|
40485
|
+
};
|
|
40486
|
+
this._activateModify = () => {
|
|
40487
|
+
return null;
|
|
40488
|
+
};
|
|
40489
|
+
this._deactivateModify = () => {
|
|
40490
|
+
return null;
|
|
40491
|
+
};
|
|
40492
|
+
}
|
|
40493
|
+
}
|
|
40494
|
+
WindowLevelRegionTool.toolName = 'WindowLevelRegion';
|
|
40495
|
+
/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (WindowLevelRegionTool)));
|
|
40496
|
+
|
|
40497
|
+
|
|
39893
40498
|
/***/ }),
|
|
39894
40499
|
|
|
39895
40500
|
/***/ 455:
|
|
@@ -40301,7 +40906,7 @@ ZoomTool.toolName = 'Zoom';
|
|
|
40301
40906
|
/* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21954);
|
|
40302
40907
|
/* harmony import */ var _utilities_math_angle_angleBetweenLines__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(52475);
|
|
40303
40908
|
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(74119);
|
|
40304
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
|
|
40909
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
|
|
40305
40910
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
|
|
40306
40911
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(90252);
|
|
40307
40912
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(23072);
|
|
@@ -40357,6 +40962,7 @@ class AngleTool extends _base__WEBPACK_IMPORTED_MODULE_2__/* .AnnotationTool */
|
|
|
40357
40962
|
viewUp: [...viewUp],
|
|
40358
40963
|
FrameOfReferenceUID,
|
|
40359
40964
|
referencedImageId,
|
|
40965
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
40360
40966
|
},
|
|
40361
40967
|
data: {
|
|
40362
40968
|
handles: {
|
|
@@ -40770,7 +41376,7 @@ AngleTool.toolName = 'Angle';
|
|
|
40770
41376
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
|
|
40771
41377
|
/* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48428);
|
|
40772
41378
|
/* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21954);
|
|
40773
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
41379
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
|
|
40774
41380
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
|
|
40775
41381
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90252);
|
|
40776
41382
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23072);
|
|
@@ -40822,6 +41428,7 @@ class ArrowAnnotateTool extends _base__WEBPACK_IMPORTED_MODULE_2__/* .Annotation
|
|
|
40822
41428
|
viewUp: [...viewUp],
|
|
40823
41429
|
FrameOfReferenceUID,
|
|
40824
41430
|
referencedImageId,
|
|
41431
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
40825
41432
|
},
|
|
40826
41433
|
data: {
|
|
40827
41434
|
text: '',
|
|
@@ -41219,7 +41826,7 @@ ArrowAnnotateTool.toolName = 'ArrowAnnotate';
|
|
|
41219
41826
|
/* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48428);
|
|
41220
41827
|
/* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21009);
|
|
41221
41828
|
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(54177);
|
|
41222
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
|
|
41829
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
|
|
41223
41830
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
|
|
41224
41831
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84901);
|
|
41225
41832
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90252);
|
|
@@ -41289,6 +41896,7 @@ class CircleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationTool
|
|
|
41289
41896
|
viewUp: [...viewUp],
|
|
41290
41897
|
FrameOfReferenceUID,
|
|
41291
41898
|
referencedImageId,
|
|
41899
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
41292
41900
|
},
|
|
41293
41901
|
data: {
|
|
41294
41902
|
label: '',
|
|
@@ -41838,7 +42446,7 @@ CircleROITool.toolName = 'CircleROI';
|
|
|
41838
42446
|
/* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21954);
|
|
41839
42447
|
/* harmony import */ var _utilities_math_angle_angleBetweenLines__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(52475);
|
|
41840
42448
|
/* harmony import */ var _utilities_math_midPoint__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(76727);
|
|
41841
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
|
|
42449
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49574);
|
|
41842
42450
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61738);
|
|
41843
42451
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90252);
|
|
41844
42452
|
/* harmony import */ var _utilities_drawing__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(10910);
|
|
@@ -41897,6 +42505,7 @@ class CobbAngleTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationTool
|
|
|
41897
42505
|
viewUp: [...viewUp],
|
|
41898
42506
|
FrameOfReferenceUID,
|
|
41899
42507
|
referencedImageId,
|
|
42508
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
41900
42509
|
},
|
|
41901
42510
|
data: {
|
|
41902
42511
|
handles: {
|
|
@@ -42536,7 +43145,7 @@ CobbAngleTool.toolName = 'CobbAngle';
|
|
|
42536
43145
|
|
|
42537
43146
|
"use strict";
|
|
42538
43147
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
|
|
42539
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(
|
|
43148
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49574);
|
|
42540
43149
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(90252);
|
|
42541
43150
|
/* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(40233);
|
|
42542
43151
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23072);
|
|
@@ -42694,7 +43303,7 @@ DragProbeTool.toolName = 'DragProbe';
|
|
|
42694
43303
|
/* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48428);
|
|
42695
43304
|
/* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21009);
|
|
42696
43305
|
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(54177);
|
|
42697
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
|
|
43306
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
|
|
42698
43307
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
|
|
42699
43308
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84901);
|
|
42700
43309
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90252);
|
|
@@ -42763,6 +43372,7 @@ class EllipticalROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .Annotation
|
|
|
42763
43372
|
viewUp: [...viewUp],
|
|
42764
43373
|
FrameOfReferenceUID,
|
|
42765
43374
|
referencedImageId,
|
|
43375
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
42766
43376
|
},
|
|
42767
43377
|
data: {
|
|
42768
43378
|
label: '',
|
|
@@ -43271,63 +43881,55 @@ class EllipticalROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .Annotation
|
|
|
43271
43881
|
post2Index[0] = Math.floor(post2Index[0]);
|
|
43272
43882
|
post2Index[1] = Math.floor(post2Index[1]);
|
|
43273
43883
|
post2Index[2] = Math.floor(post2Index[2]);
|
|
43274
|
-
|
|
43275
|
-
|
|
43276
|
-
|
|
43277
|
-
|
|
43278
|
-
|
|
43279
|
-
|
|
43280
|
-
|
|
43281
|
-
|
|
43282
|
-
|
|
43283
|
-
|
|
43284
|
-
|
|
43285
|
-
|
|
43286
|
-
|
|
43287
|
-
|
|
43288
|
-
|
|
43289
|
-
|
|
43290
|
-
|
|
43291
|
-
|
|
43292
|
-
|
|
43293
|
-
|
|
43294
|
-
|
|
43295
|
-
|
|
43296
|
-
|
|
43297
|
-
|
|
43298
|
-
|
|
43299
|
-
|
|
43300
|
-
|
|
43301
|
-
|
|
43302
|
-
|
|
43303
|
-
|
|
43304
|
-
|
|
43305
|
-
|
|
43306
|
-
|
|
43307
|
-
|
|
43308
|
-
|
|
43309
|
-
|
|
43310
|
-
|
|
43311
|
-
|
|
43312
|
-
|
|
43313
|
-
|
|
43314
|
-
|
|
43315
|
-
|
|
43316
|
-
|
|
43317
|
-
|
|
43318
|
-
|
|
43319
|
-
|
|
43320
|
-
|
|
43321
|
-
|
|
43322
|
-
|
|
43323
|
-
};
|
|
43324
|
-
}
|
|
43325
|
-
else {
|
|
43326
|
-
this.isHandleOutsideImage = true;
|
|
43327
|
-
cachedStats[targetId] = {
|
|
43328
|
-
Modality: metadata.Modality,
|
|
43329
|
-
};
|
|
43330
|
-
}
|
|
43884
|
+
this.isHandleOutsideImage = !this._isInsideVolume(pos1Index, post2Index, dimensions);
|
|
43885
|
+
const iMin = Math.min(pos1Index[0], post2Index[0]);
|
|
43886
|
+
const iMax = Math.max(pos1Index[0], post2Index[0]);
|
|
43887
|
+
const jMin = Math.min(pos1Index[1], post2Index[1]);
|
|
43888
|
+
const jMax = Math.max(pos1Index[1], post2Index[1]);
|
|
43889
|
+
const kMin = Math.min(pos1Index[2], post2Index[2]);
|
|
43890
|
+
const kMax = Math.max(pos1Index[2], post2Index[2]);
|
|
43891
|
+
const boundsIJK = [
|
|
43892
|
+
[iMin, iMax],
|
|
43893
|
+
[jMin, jMax],
|
|
43894
|
+
[kMin, kMax],
|
|
43895
|
+
];
|
|
43896
|
+
const center = [
|
|
43897
|
+
(topLeftWorld[0] + bottomRightWorld[0]) / 2,
|
|
43898
|
+
(topLeftWorld[1] + bottomRightWorld[1]) / 2,
|
|
43899
|
+
(topLeftWorld[2] + bottomRightWorld[2]) / 2,
|
|
43900
|
+
];
|
|
43901
|
+
const ellipseObj = {
|
|
43902
|
+
center,
|
|
43903
|
+
xRadius: Math.abs(topLeftWorld[0] - bottomRightWorld[0]) / 2,
|
|
43904
|
+
yRadius: Math.abs(topLeftWorld[1] - bottomRightWorld[1]) / 2,
|
|
43905
|
+
zRadius: Math.abs(topLeftWorld[2] - bottomRightWorld[2]) / 2,
|
|
43906
|
+
};
|
|
43907
|
+
const { worldWidth, worldHeight } = (0,_utilities_planar_getWorldWidthAndHeightFromTwoPoints__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .A)(viewPlaneNormal, viewUp, worldPos1, worldPos2);
|
|
43908
|
+
const isEmptyArea = worldWidth === 0 && worldHeight === 0;
|
|
43909
|
+
const handles = [pos1Index, post2Index];
|
|
43910
|
+
const { scale, areaUnits } = (0,_utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_2__/* .getCalibratedLengthUnitsAndScale */ .Op)(image, handles);
|
|
43911
|
+
const area = Math.abs(Math.PI * (worldWidth / 2) * (worldHeight / 2)) /
|
|
43912
|
+
scale /
|
|
43913
|
+
scale;
|
|
43914
|
+
const modalityUnitOptions = {
|
|
43915
|
+
isPreScaled: (0,_utilities_viewport_isViewportPreScaled__WEBPACK_IMPORTED_MODULE_19__/* .isViewportPreScaled */ .u)(viewport, targetId),
|
|
43916
|
+
isSuvScaled: this.isSuvScaled(viewport, targetId, annotation.metadata.referencedImageId),
|
|
43917
|
+
};
|
|
43918
|
+
const modalityUnit = (0,_utilities_getModalityUnit__WEBPACK_IMPORTED_MODULE_18__/* .getModalityUnit */ .c)(metadata.Modality, annotation.metadata.referencedImageId, modalityUnitOptions);
|
|
43919
|
+
const pointsInShape = (0,_utilities__WEBPACK_IMPORTED_MODULE_3__.pointInShapeCallback)(imageData, (pointLPS) => (0,_utilities_math_ellipse__WEBPACK_IMPORTED_MODULE_15__.pointInEllipse)(ellipseObj, pointLPS, { fast: true }), this.configuration.statsCalculator.statsCallback, boundsIJK);
|
|
43920
|
+
const stats = this.configuration.statsCalculator.getStatistics();
|
|
43921
|
+
cachedStats[targetId] = {
|
|
43922
|
+
Modality: metadata.Modality,
|
|
43923
|
+
area,
|
|
43924
|
+
mean: stats.mean?.value,
|
|
43925
|
+
max: stats.max?.value,
|
|
43926
|
+
stdDev: stats.stdDev?.value,
|
|
43927
|
+
statsArray: stats.array,
|
|
43928
|
+
pointsInShape,
|
|
43929
|
+
isEmptyArea,
|
|
43930
|
+
areaUnit: areaUnits,
|
|
43931
|
+
modalityUnit,
|
|
43932
|
+
};
|
|
43331
43933
|
}
|
|
43332
43934
|
annotation.invalidated = false;
|
|
43333
43935
|
(0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__/* .triggerAnnotationModified */ .XF)(annotation, element);
|
|
@@ -43398,7 +44000,7 @@ EllipticalROITool.toolName = 'EllipticalROI';
|
|
|
43398
44000
|
/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96214);
|
|
43399
44001
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
|
|
43400
44002
|
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54177);
|
|
43401
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
44003
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
|
|
43402
44004
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(61738);
|
|
43403
44005
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90252);
|
|
43404
44006
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(23072);
|
|
@@ -43597,7 +44199,7 @@ KeyImageTool.toolName = 'KeyImage';
|
|
|
43597
44199
|
/* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21009);
|
|
43598
44200
|
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(54177);
|
|
43599
44201
|
/* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(21954);
|
|
43600
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(
|
|
44202
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49574);
|
|
43601
44203
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61738);
|
|
43602
44204
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90252);
|
|
43603
44205
|
/* harmony import */ var _utilities_drawing__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(10910);
|
|
@@ -44043,7 +44645,7 @@ LengthTool.toolName = 'Length';
|
|
|
44043
44645
|
/* harmony import */ var _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1320);
|
|
44044
44646
|
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54177);
|
|
44045
44647
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
|
|
44046
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
44648
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
|
|
44047
44649
|
|
|
44048
44650
|
|
|
44049
44651
|
|
|
@@ -44096,7 +44698,7 @@ class LivewireContourSegmentationTool extends _LivewireContourTool__WEBPACK_IMPO
|
|
|
44096
44698
|
}
|
|
44097
44699
|
this.updateAnnotation(acceptedPath);
|
|
44098
44700
|
this.scissors = null;
|
|
44099
|
-
this.
|
|
44701
|
+
this.scissorsNext = null;
|
|
44100
44702
|
this.editData = null;
|
|
44101
44703
|
annotation.data.handles.interpolationSources = null;
|
|
44102
44704
|
if (repeatInterpolation) {
|
|
@@ -44147,7 +44749,7 @@ LivewireContourSegmentationTool.toolName = 'LivewireContourSegmentationTool';
|
|
|
44147
44749
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44753);
|
|
44148
44750
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
|
|
44149
44751
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
|
|
44150
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
44752
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
|
|
44151
44753
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61738);
|
|
44152
44754
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84901);
|
|
44153
44755
|
/* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
|
|
@@ -44442,7 +45044,7 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
|
|
|
44442
45044
|
element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_5__.Events.TOUCH_TAP, this._mouseDownCallback);
|
|
44443
45045
|
};
|
|
44444
45046
|
}
|
|
44445
|
-
setupBaseEditData(worldPos, element, annotation,
|
|
45047
|
+
setupBaseEditData(worldPos, element, annotation, nextPos, contourHoleProcessingEnabled) {
|
|
44446
45048
|
const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
|
|
44447
45049
|
const { viewport } = enabledElement;
|
|
44448
45050
|
this.isDrawing = true;
|
|
@@ -44485,12 +45087,12 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
|
|
|
44485
45087
|
const { voiRange } = viewport.getProperties();
|
|
44486
45088
|
const startPos = worldToSlice(worldPos);
|
|
44487
45089
|
this.scissors = _utilities_livewire_LivewireScissors__WEBPACK_IMPORTED_MODULE_12__/* .LivewireScissors */ .f.createInstanceFromRawPixelData(scalarData, width, height, voiRange);
|
|
44488
|
-
if (
|
|
44489
|
-
this.
|
|
44490
|
-
this.
|
|
45090
|
+
if (nextPos) {
|
|
45091
|
+
this.scissorsNext = _utilities_livewire_LivewireScissors__WEBPACK_IMPORTED_MODULE_12__/* .LivewireScissors */ .f.createInstanceFromRawPixelData(scalarData, width, height, voiRange);
|
|
45092
|
+
this.scissorsNext.startSearch(worldToSlice(nextPos));
|
|
44491
45093
|
}
|
|
44492
45094
|
this.scissors.startSearch(startPos);
|
|
44493
|
-
const newAnnotation = !
|
|
45095
|
+
const newAnnotation = !nextPos;
|
|
44494
45096
|
const confirmedPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
|
|
44495
45097
|
const currentPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
|
|
44496
45098
|
const currentPathNext = newAnnotation ? undefined : new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
|
|
@@ -44506,7 +45108,7 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
|
|
|
44506
45108
|
lastCanvasPoint,
|
|
44507
45109
|
confirmedPath,
|
|
44508
45110
|
currentPath,
|
|
44509
|
-
|
|
45111
|
+
confirmedPathNext: currentPathNext,
|
|
44510
45112
|
closed: false,
|
|
44511
45113
|
handleIndex: this.editData?.handleIndex ?? annotation.handles?.activeHandleIndex,
|
|
44512
45114
|
worldToSlice,
|
|
@@ -44532,7 +45134,7 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
|
|
|
44532
45134
|
clearEditData() {
|
|
44533
45135
|
this.editData = null;
|
|
44534
45136
|
this.scissors = null;
|
|
44535
|
-
this.
|
|
45137
|
+
this.scissorsNext = null;
|
|
44536
45138
|
this.isDrawing = false;
|
|
44537
45139
|
}
|
|
44538
45140
|
editHandle(worldPos, element, annotation, handleIndex) {
|
|
@@ -44541,11 +45143,11 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
|
|
|
44541
45143
|
const { length: numHandles } = handlePoints;
|
|
44542
45144
|
const previousHandle = handlePoints[(handleIndex - 1 + numHandles) % numHandles];
|
|
44543
45145
|
const nextHandle = handlePoints[(handleIndex + 1) % numHandles];
|
|
44544
|
-
if (!this.editData?.
|
|
45146
|
+
if (!this.editData?.confirmedPathNext) {
|
|
44545
45147
|
this.setupBaseEditData(previousHandle, element, annotation, nextHandle);
|
|
44546
45148
|
const { polyline } = data.contour;
|
|
44547
45149
|
const confirmedPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
|
|
44548
|
-
const
|
|
45150
|
+
const confirmedPathNext = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
|
|
44549
45151
|
const { worldToSlice } = this.editData;
|
|
44550
45152
|
const previousIndex = (0,_utilities_contours_findHandlePolylineIndex__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(annotation, handleIndex - 1);
|
|
44551
45153
|
const nextIndex = (0,_utilities_contours_findHandlePolylineIndex__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(annotation, handleIndex + 1);
|
|
@@ -44553,17 +45155,14 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
|
|
|
44553
45155
|
throw new Error(`Can't find handle index ${nextIndex === -1 && nextHandle} ${previousIndex === -1 && previousHandle}`);
|
|
44554
45156
|
}
|
|
44555
45157
|
if (handleIndex === 0) {
|
|
44556
|
-
|
|
44557
|
-
}
|
|
44558
|
-
else if (nextIndex < previousIndex) {
|
|
44559
|
-
throw new Error(`Expected right index after left index, but were: ${previousIndex} ${nextIndex}`);
|
|
45158
|
+
confirmedPathNext.addPoints(polyline.slice(nextIndex + 1, previousIndex).map(worldToSlice));
|
|
44560
45159
|
}
|
|
44561
45160
|
else {
|
|
44562
45161
|
confirmedPath.addPoints(polyline.slice(0, previousIndex + 1).map(worldToSlice));
|
|
44563
|
-
|
|
45162
|
+
confirmedPathNext.addPoints(polyline.slice(nextIndex, polyline.length).map(worldToSlice));
|
|
44564
45163
|
}
|
|
44565
45164
|
this.editData.confirmedPath = confirmedPath;
|
|
44566
|
-
this.editData.
|
|
45165
|
+
this.editData.confirmedPathNext = confirmedPathNext;
|
|
44567
45166
|
}
|
|
44568
45167
|
const { editData, scissors } = this;
|
|
44569
45168
|
const { worldToSlice, sliceToWorld } = editData;
|
|
@@ -44583,14 +45182,14 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
|
|
|
44583
45182
|
}
|
|
44584
45183
|
handlePoints[handleIndex] = sliceToWorld(slicePos);
|
|
44585
45184
|
const pathPointsLeft = scissors.findPathToPoint(slicePos);
|
|
44586
|
-
const pathPointsRight = this.
|
|
45185
|
+
const pathPointsRight = this.scissorsNext.findPathToPoint(slicePos);
|
|
44587
45186
|
const currentPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
|
|
44588
45187
|
currentPath.prependPath(editData.confirmedPath);
|
|
44589
45188
|
if (handleIndex !== 0) {
|
|
44590
45189
|
currentPath.addPoints(pathPointsLeft);
|
|
44591
45190
|
}
|
|
44592
45191
|
currentPath.addPoints(pathPointsRight.reverse());
|
|
44593
|
-
currentPath.appendPath(editData.
|
|
45192
|
+
currentPath.appendPath(editData.confirmedPathNext);
|
|
44594
45193
|
if (handleIndex === 0) {
|
|
44595
45194
|
currentPath.addPoints(pathPointsLeft);
|
|
44596
45195
|
}
|
|
@@ -44649,17 +45248,19 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
|
|
|
44649
45248
|
if (!this.editData || !livewirePath) {
|
|
44650
45249
|
return;
|
|
44651
45250
|
}
|
|
44652
|
-
const { annotation, sliceToWorld } = this.editData;
|
|
45251
|
+
const { annotation, sliceToWorld, worldToSlice, closed, newAnnotation } = this.editData;
|
|
44653
45252
|
let { pointArray: imagePoints } = livewirePath;
|
|
44654
45253
|
if (imagePoints.length > 1) {
|
|
44655
45254
|
imagePoints = [...imagePoints, imagePoints[0]];
|
|
44656
45255
|
}
|
|
45256
|
+
const targetWindingDirection = newAnnotation && closed ? _types_ContourAnnotation__WEBPACK_IMPORTED_MODULE_10__/* .ContourWindingDirection */ .W.Clockwise : undefined;
|
|
44657
45257
|
this.updateContourPolyline(annotation, {
|
|
44658
45258
|
points: imagePoints,
|
|
44659
|
-
closed
|
|
44660
|
-
targetWindingDirection
|
|
45259
|
+
closed,
|
|
45260
|
+
targetWindingDirection,
|
|
44661
45261
|
}, {
|
|
44662
45262
|
canvasToWorld: sliceToWorld,
|
|
45263
|
+
worldToCanvas: worldToSlice,
|
|
44663
45264
|
});
|
|
44664
45265
|
}
|
|
44665
45266
|
}
|
|
@@ -44726,7 +45327,7 @@ PlanarFreehandContourSegmentationTool.toolName =
|
|
|
44726
45327
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
|
|
44727
45328
|
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54177);
|
|
44728
45329
|
/* harmony import */ var _utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24592);
|
|
44729
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
45330
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
|
|
44730
45331
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
|
|
44731
45332
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(84901);
|
|
44732
45333
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(90252);
|
|
@@ -45106,7 +45707,7 @@ ProbeTool.toolName = 'Probe';
|
|
|
45106
45707
|
/* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48428);
|
|
45107
45708
|
/* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21009);
|
|
45108
45709
|
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(54177);
|
|
45109
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(
|
|
45710
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
|
|
45110
45711
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
|
|
45111
45712
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84901);
|
|
45112
45713
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90252);
|
|
@@ -45172,6 +45773,7 @@ class RectangleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationT
|
|
|
45172
45773
|
viewUp: [...viewUp],
|
|
45173
45774
|
FrameOfReferenceUID,
|
|
45174
45775
|
referencedImageId,
|
|
45776
|
+
...viewport.getViewReference({ points: [worldPos] }),
|
|
45175
45777
|
},
|
|
45176
45778
|
data: {
|
|
45177
45779
|
label: '',
|
|
@@ -45519,7 +46121,7 @@ class RectangleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationT
|
|
|
45519
46121
|
}
|
|
45520
46122
|
const dataId = `${annotationUID}-rect`;
|
|
45521
46123
|
const rectangleUID = '0';
|
|
45522
|
-
(0,_drawingSvg__WEBPACK_IMPORTED_MODULE_9__.
|
|
46124
|
+
(0,_drawingSvg__WEBPACK_IMPORTED_MODULE_9__.drawRectByCoordinates)(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates, {
|
|
45523
46125
|
color,
|
|
45524
46126
|
lineDash,
|
|
45525
46127
|
lineWidth,
|
|
@@ -45703,7 +46305,7 @@ SplineContourSegmentationTool.toolName = 'SplineContourSegmentationTool';
|
|
|
45703
46305
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
|
|
45704
46306
|
/* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
|
|
45705
46307
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
|
|
45706
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(
|
|
46308
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
|
|
45707
46309
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61738);
|
|
45708
46310
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84901);
|
|
45709
46311
|
/* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
|
|
@@ -46457,7 +47059,7 @@ SplineROITool.toolName = 'SplineROI';
|
|
|
46457
47059
|
/* harmony import */ var _utilities_throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21090);
|
|
46458
47060
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(38296);
|
|
46459
47061
|
/* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(54177);
|
|
46460
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
47062
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
|
|
46461
47063
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
|
|
46462
47064
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90252);
|
|
46463
47065
|
/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(74119);
|
|
@@ -46942,7 +47544,7 @@ UltrasoundDirectionalTool.toolName = 'UltrasoundDirectionalTool';
|
|
|
46942
47544
|
/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96214);
|
|
46943
47545
|
/* harmony import */ var _utilities_throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21090);
|
|
46944
47546
|
/* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(95778);
|
|
46945
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
47547
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
|
|
46946
47548
|
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(61738);
|
|
46947
47549
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(84901);
|
|
46948
47550
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90252);
|
|
@@ -47967,7 +48569,7 @@ async function _addLabelmapToViewport(viewport, labelmapData, segmentationRepres
|
|
|
47967
48569
|
/* harmony import */ var _strategies_fillCircle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4069);
|
|
47968
48570
|
/* harmony import */ var _strategies_eraseCircle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(11852);
|
|
47969
48571
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(84901);
|
|
47970
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(
|
|
48572
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(49574);
|
|
47971
48573
|
/* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(40233);
|
|
47972
48574
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(23072);
|
|
47973
48575
|
/* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(63421);
|
|
@@ -48439,7 +49041,7 @@ BrushTool.toolName = 'Brush';
|
|
|
48439
49041
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84901);
|
|
48440
49042
|
/* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
|
|
48441
49043
|
/* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48428);
|
|
48442
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
49044
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
|
|
48443
49045
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(90252);
|
|
48444
49046
|
/* harmony import */ var _utilities_throttle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21090);
|
|
48445
49047
|
/* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21009);
|
|
@@ -48803,7 +49405,7 @@ CircleROIStartEndThresholdTool.toolName = 'CircleROIStartEndThreshold';
|
|
|
48803
49405
|
/* harmony import */ var _strategies_fillCircle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4069);
|
|
48804
49406
|
/* harmony import */ var _strategies_eraseCircle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11852);
|
|
48805
49407
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
|
|
48806
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
49408
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
|
|
48807
49409
|
/* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
|
|
48808
49410
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23072);
|
|
48809
49411
|
/* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(63421);
|
|
@@ -49300,7 +49902,7 @@ PaintFillTool.toolName = 'PaintFill';
|
|
|
49300
49902
|
/* harmony import */ var _strategies_eraseRectangle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(66211);
|
|
49301
49903
|
/* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90252);
|
|
49302
49904
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84901);
|
|
49303
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(
|
|
49905
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
|
|
49304
49906
|
/* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40233);
|
|
49305
49907
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(23072);
|
|
49306
49908
|
/* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(63421);
|
|
@@ -49670,7 +50272,7 @@ SegmentSelectTool.toolName = 'SegmentSelectTool';
|
|
|
49670
50272
|
/* harmony import */ var _strategies_fillSphere__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61604);
|
|
49671
50273
|
/* harmony import */ var _strategies_eraseSphere__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4373);
|
|
49672
50274
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
|
|
49673
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(
|
|
50275
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
|
|
49674
50276
|
/* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
|
|
49675
50277
|
/* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23072);
|
|
49676
50278
|
/* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(63421);
|
|
@@ -50271,7 +50873,7 @@ function triggerSegmentationRender(toolGroupId) {
|
|
|
50271
50873
|
/* unused harmony exports annotationRenderingEngine, triggerAnnotationRender */
|
|
50272
50874
|
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
|
|
50273
50875
|
/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84901);
|
|
50274
|
-
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(
|
|
50876
|
+
/* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49574);
|
|
50275
50877
|
/* harmony import */ var _getToolsWithModesForElement__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42360);
|
|
50276
50878
|
|
|
50277
50879
|
|