diff --git a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx index 240752e7bf..9c867c1b65 100644 --- a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx +++ b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx @@ -20,6 +20,7 @@ import { getViewportDataOverlaySettingsMenu } from '../components/ViewportDataOv import { getViewportPresentations } from '../utils/presentations/getViewportPresentations'; import { useSynchronizersStore } from '../stores/useSynchronizersStore'; import ActiveViewportBehavior from '../utils/ActiveViewportBehavior'; +import { WITH_NAVIGATION } from '../services/ViewportService/CornerstoneViewportService'; const STACK = 'stack'; @@ -505,12 +506,16 @@ function _jumpToMeasurement(measurement, targetElementRef, viewportId, servicesM const viewport = enabledElement.viewport as csTypes.IStackViewport | csTypes.IVolumeViewport; 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"); return; } - viewport.setViewReference(metadata); + try { + viewport.setViewReference(metadata); + } catch (e) { + console.warn('Unable to apply', metadata, e); + } cs3DTools.annotation.selection.setAnnotationSelected(measurement.uid); // Jump to measurement consumed, remove. diff --git a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts index 4cca464cd9..82f7fbb037 100644 --- a/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts +++ b/extensions/cornerstone/src/services/ViewportService/CornerstoneViewportService.ts @@ -38,6 +38,8 @@ const EVENTS = { VIEWPORT_VOLUMES_CHANGED: 'event::cornerstoneViewportService:viewportVolumesChanged', }; +export const WITH_NAVIGATION = { withNavigation: true, withOrientation: true }; + /** * Handles cornerstone viewport logic including enabling, disabling, and * updating the viewport. @@ -1141,7 +1143,11 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi ): void { const viewRef = positionPresentation?.viewReference; if (viewRef) { - viewport.setViewReference(viewRef); + if (viewport.isReferenceViewable(viewRef, WITH_NAVIGATION)) { + viewport.setViewReference(viewRef); + } else { + console.warn('Unable to apply reference viewable', viewRef); + } } const viewPresentation = positionPresentation?.viewPresentation;