Revert "fix(measurement): fix for measurement jump is not switching series in 2DMPR (#4779)" (#4898)
This commit is contained in:
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,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user