fix(measurement): Restore viewport interactivity when deleting in-progress Spline or Livewire measurement (#5905)

This commit is contained in:
Ghadeer Albattarni authored and GitHub committed 2026-04-01 16:52:14 -04:00
1 parent f999f3eab5
commit 7929f0898f
3 files changed
+147 -3

No files matched your search

@@ -1,5 +1,5 @@
import { eventTarget, Types } from '@cornerstonejs/core';
import { Enums, annotation } from '@cornerstonejs/tools';
import { Enums, annotation, cancelActiveManipulations } from '@cornerstonejs/tools';
import { DicomMetadataStore } from '@ohif/core';
import * as CSExtensionEnums from './enums';
@@ -504,6 +504,12 @@ const connectMeasurementServiceToTools = ({
if (source?.name && source.name !== CORNERSTONE_3D_TOOLS_SOURCE_NAME) {
return;
}
// Cancel any active tool manipulation (e.g., Spline/Livewire) to avoid leaving the tool
// in a drawing state after deleting a not completed measurement, which can block viewport interactivity.
const element = getActiveViewportEnabledElement(viewportGridService)?.viewport?.element;
if (element) {
cancelActiveManipulations(element);
}
const removedAnnotation = annotation.state.getAnnotation(removedMeasurementId);
removeAnnotation(removedMeasurementId);
// Ensure `removedAnnotation` is available before triggering the memo,