ohif-viewer/Packages/ohif-lesiontracker/client/lib/clearMeasurementTimepointData.js

49 lines
1.6 KiB
JavaScript

import { OHIF } from 'meteor/ohif:core';
const removeToolDataWithMeasurementId = (imageId, toolType, measurementId) => {
OHIF.log.info('removeToolDataWithMeasurementId');
const toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.toolState;
// Find any related toolData
if (!toolState[imageId] || !toolState[imageId][toolType]) {
return;
}
const toolData = toolState[imageId][toolType].data;
if (!toolData.length) {
return;
}
// Search toolData for entries linked to the specified Measurement
const toRemove = [];
toolData.forEach(function(measurement, index) {
if (measurement.id === measurementId ||
measurement._id === measurementId) {
toRemove.push(index);
return false;
}
});
OHIF.log.info('Removing Indices: ');
OHIF.log.info(toRemove);
// If any toolData entries need to be removed, splice them from
// the toolData array
toRemove.forEach(function(index) {
toolData.splice(index, 1);
});
};
OHIF.lesiontracker.clearMeasurementTimepointData = (measurementId, timepointId) => {
const data = Measurements.findOne(measurementId);
// Clear the Measurement data for this timepoint
const imageId = data.timepoints[timepointId].imageId;
const toolType = data.toolType;
removeToolDataWithMeasurementId(imageId, toolType, measurementId);
// Update any viewports that are currently displaying this imageId
const enabledElements = cornerstone.getEnabledElementsByImageId(imageId);
enabledElements.forEach(enabledElement => cornerstone.updateImage(enabledElement.element));
};