fix: Changes to address hang/crash on jump to instance (#4679)
This commit is contained in:
parent
afd528b8d7
commit
e480e841bb
@ -20,6 +20,7 @@ import { getViewportDataOverlaySettingsMenu } from '../components/ViewportDataOv
|
|||||||
import { getViewportPresentations } from '../utils/presentations/getViewportPresentations';
|
import { getViewportPresentations } from '../utils/presentations/getViewportPresentations';
|
||||||
import { useSynchronizersStore } from '../stores/useSynchronizersStore';
|
import { useSynchronizersStore } from '../stores/useSynchronizersStore';
|
||||||
import ActiveViewportBehavior from '../utils/ActiveViewportBehavior';
|
import ActiveViewportBehavior from '../utils/ActiveViewportBehavior';
|
||||||
|
import { WITH_NAVIGATION } from '../services/ViewportService/CornerstoneViewportService';
|
||||||
|
|
||||||
const STACK = 'stack';
|
const STACK = 'stack';
|
||||||
|
|
||||||
@ -505,12 +506,16 @@ function _jumpToMeasurement(measurement, targetElementRef, viewportId, servicesM
|
|||||||
const viewport = enabledElement.viewport as csTypes.IStackViewport | csTypes.IVolumeViewport;
|
const viewport = enabledElement.viewport as csTypes.IStackViewport | csTypes.IVolumeViewport;
|
||||||
|
|
||||||
const { metadata } = measurement;
|
const { metadata } = measurement;
|
||||||
if (!viewport.isReferenceViewable(metadata, { withNavigation: true, withOrientation: true })) {
|
if (!viewport.isReferenceViewable(metadata, WITH_NAVIGATION)) {
|
||||||
console.log("Reference isn't viewable, postponing until updated");
|
console.log("Reference isn't viewable, postponing until updated");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
viewport.setViewReference(metadata);
|
viewport.setViewReference(metadata);
|
||||||
|
} catch (e) {
|
||||||
|
console.warn('Unable to apply', metadata, e);
|
||||||
|
}
|
||||||
|
|
||||||
cs3DTools.annotation.selection.setAnnotationSelected(measurement.uid);
|
cs3DTools.annotation.selection.setAnnotationSelected(measurement.uid);
|
||||||
// Jump to measurement consumed, remove.
|
// Jump to measurement consumed, remove.
|
||||||
|
|||||||
@ -38,6 +38,8 @@ const EVENTS = {
|
|||||||
VIEWPORT_VOLUMES_CHANGED: 'event::cornerstoneViewportService:viewportVolumesChanged',
|
VIEWPORT_VOLUMES_CHANGED: 'event::cornerstoneViewportService:viewportVolumesChanged',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const WITH_NAVIGATION = { withNavigation: true, withOrientation: true };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles cornerstone viewport logic including enabling, disabling, and
|
* Handles cornerstone viewport logic including enabling, disabling, and
|
||||||
* updating the viewport.
|
* updating the viewport.
|
||||||
@ -1141,7 +1143,11 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi
|
|||||||
): void {
|
): void {
|
||||||
const viewRef = positionPresentation?.viewReference;
|
const viewRef = positionPresentation?.viewReference;
|
||||||
if (viewRef) {
|
if (viewRef) {
|
||||||
|
if (viewport.isReferenceViewable(viewRef, WITH_NAVIGATION)) {
|
||||||
viewport.setViewReference(viewRef);
|
viewport.setViewReference(viewRef);
|
||||||
|
} else {
|
||||||
|
console.warn('Unable to apply reference viewable', viewRef);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const viewPresentation = positionPresentation?.viewPresentation;
|
const viewPresentation = positionPresentation?.viewPresentation;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user