Revert "fix(measurement): fix for measurement jump is not switching series in 2DMPR (#4779)" (#4898)

This commit is contained in:
Alireza authored and GitHub committed 2025-03-28 10:17:33 -04:00
1 parent 3f06c966eb
commit eafa2efda5
4 files changed
+26 -100

No files matched your search

@@ -264,10 +264,11 @@ const OHIFCornerstoneViewport = React.memo(
const presentations = getViewportPresentations(viewportId, viewportOptions);
let measurement;
if (cacheJumpToMeasurementEvent?.cornerstoneViewport === viewportId) {
if (cacheJumpToMeasurementEvent?.viewportId === viewportId) {
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
@@ -280,7 +281,7 @@ const OHIFCornerstoneViewport = React.memo(
viewportOptions.needsRerendering = false;
}
await cornerstoneViewportService.setViewportData(
cornerstoneViewportService.setViewportData(
viewportId,
viewportData,
viewportOptions,
@@ -289,13 +290,7 @@ const OHIFCornerstoneViewport = React.memo(
);
if (measurement) {
_checkForCachedJumpToMeasurementEvents(
elementRef,
viewportId,
displaySets,
servicesManager
);
cacheJumpToMeasurementEvent = null;
cs3DTools.annotation.selection.setAnnotationSelected(measurement.uid);
}
};
@@ -323,6 +318,8 @@ const OHIFCornerstoneViewport = React.memo(
servicesManager
);
_checkForCachedJumpToMeasurementEvents(elementRef, viewportId, displaySets, servicesManager);
return () => {
unsubscribeFromJumpToMeasurementEvents();
};
@@ -454,16 +451,6 @@ 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);
}
);
@@ -372,7 +372,7 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi
* @param publicDisplaySetOptions - The public display set options.
* @param presentations - The presentations to set.
*/
public async setViewportData(
public setViewportData(
viewportId: string,
viewportData: StackViewportData | VolumeViewportData,
publicViewportOptions: PublicViewportOptions,
@@ -458,14 +458,21 @@ class CornerstoneViewportService extends PubSubService implements IViewportServi
this.viewportsById.set(viewportId, viewportInfo);
const viewport = renderingEngine.getViewport(viewportId);
await this._setDisplaySets(viewport, viewportData, viewportInfo, presentations);
const displaySetPromise = this._setDisplaySets(
viewport,
viewportData,
viewportInfo,
presentations
);
// The broadcast event here ensures that listeners have a valid, up to date
// viewport to access. Doing it too early can result in exceptions or
// invalid data.
this._broadcastEvent(this.EVENTS.VIEWPORT_DATA_CHANGED, {
viewportData,
viewportId,
displaySetPromise.then(() => {
this._broadcastEvent(this.EVENTS.VIEWPORT_DATA_CHANGED, {
viewportData,
viewportId,
});
});
}