[OHIF-278] Jumping to a measurement should set it to "active" in cornerstone-tools, highlighting it as green (#1888)

* Set cornerstone tool active when jumping to measurement.

* Remove debugger statement

* Also set active on left/right actionbar buttons.
This commit is contained in:
James Petts 2020-07-10 20:38:40 +01:00 committed by GitHub
parent 3eba027003
commit 59003362c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,32 @@
import cornerstone from 'cornerstone-core';
import cornerstoneTools from 'cornerstone-tools';
const { globalImageIdSpecificToolStateManager } = cornerstoneTools;
export default function setMeasurementActive(measurement) {
const { id } = measurement;
const toolState = globalImageIdSpecificToolStateManager.saveToolState();
Object.keys(toolState).forEach(imageId => {
const imageIdSpecificToolState = toolState[imageId];
Object.keys(imageIdSpecificToolState).forEach(toolType => {
const toolSpecificToolState = imageIdSpecificToolState[toolType];
const toolSpecificToolData = toolSpecificToolState.data;
if (toolSpecificToolData && toolSpecificToolData.length) {
toolSpecificToolData.forEach(data => {
data.active = data.id === id ? true : false;
});
}
});
});
const enabledElements = cornerstoneTools.store.state.enabledElements;
enabledElements.forEach(element => {
cornerstone.updateImage(element);
});
}

View File

@ -12,6 +12,7 @@ import { useDebounce } from '@hooks';
import ActionButtons from './ActionButtons';
import { useTrackedMeasurements } from '../../getContextModule';
import createReportAsync from './../../_shared/createReportAsync.js';
import setCornerstoneMeasurementActive from '../../_shared/setCornerstoneMeasurementActive';
const { formatDate } = utils;
@ -163,6 +164,8 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) {
const measurement = MeasurementService.getMeasurement(id);
const { referenceSeriesUID, SOPInstanceUID } = measurement;
setCornerstoneMeasurementActive(measurement);
const displaySets = DisplaySetService.getDisplaySetsForSeries(
referenceSeriesUID
);

View File

@ -14,6 +14,7 @@ import { useTrackedMeasurements } from './../getContextModule';
import ViewportOverlay from './ViewportOverlay';
import ViewportLoadingIndicator from './ViewportLoadingIndicator';
import setCornerstoneMeasurementActive from '../_shared/setCornerstoneMeasurementActive';
const { formatDate } = utils;
@ -272,6 +273,8 @@ function TrackedCornerstoneViewport({
m => m.id === newTrackedMeasurementId
);
setCornerstoneMeasurementActive(measurement);
const {
displaySetInstanceUID,
imageIndex,