diff --git a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx index 9c867c1b65..297bf0770c 100644 --- a/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx +++ b/extensions/cornerstone/src/Viewport/OHIFCornerstoneViewport.tsx @@ -265,7 +265,6 @@ const OHIFCornerstoneViewport = React.memo( measurement = cacheJumpToMeasurementEvent.measurement; // Delete the position presentation so that viewport navigates direct presentations.positionPresentation = null; - cacheJumpToMeasurementEvent = null; } // Note: This is a hack to get the grid to re-render the OHIFCornerstoneViewport component @@ -287,7 +286,13 @@ const OHIFCornerstoneViewport = React.memo( ); if (measurement) { - cs3DTools.annotation.selection.setAnnotationSelected(measurement.uid); + _checkForCachedJumpToMeasurementEvents( + elementRef, + viewportId, + displaySets, + servicesManager + ); + cacheJumpToMeasurementEvent = null; } }; @@ -315,8 +320,6 @@ const OHIFCornerstoneViewport = React.memo( servicesManager ); - _checkForCachedJumpToMeasurementEvents(elementRef, viewportId, displaySets, servicesManager); - return () => { unsubscribeFromJumpToMeasurementEvents(); }; @@ -453,6 +456,16 @@ function _subscribeToJumpToMeasurementEvents(elementRef, viewportId, servicesMan if (cacheJumpToMeasurementEvent.cornerstoneViewport !== viewportId) { return; } + const viewportInfo = cornerstoneViewportService.getViewportInfo(viewportId); + // Confirm viewportInfo matches measurement displaySetInstanceUID and referencedImageId + if ( + !viewportInfo?.contains( + measurement.displaySetInstanceUID, + measurement.referencedImageId || measurement.metadata?.referencedImageId + ) + ) { + return; + } _jumpToMeasurement(measurement, elementRef, viewportId, servicesManager); } );