ohif-viewer/Packages/ohif-lesiontracker/client/compatibility/bidirectionalTool/doubleClickCallback.js
2018-03-26 08:36:48 -03:00

50 lines
1.5 KiB
JavaScript

import { cornerstone, cornerstoneTools } from 'meteor/ohif:cornerstone';
import { toolType } from './definitions';
import pointNearTool from './pointNearTool';
export default function (event) {
const eventData = event.detail;
const { element } = eventData.element;
function doneCallback(data, deleteTool) {
if (deleteTool === true) {
cornerstoneTools.removeToolState(element, toolType, data);
cornerstone.updateImage(element);
}
}
const buttonMask = event.data && event.data.mouseButtonMask;
if (buttonMask && !cornerstoneTools.isMouseButtonEnabled(eventData.which, buttonMask)) {
return false;
}
// Check if the element is enabled and stop here if not
try {
cornerstone.getEnabledElement(element);
} catch (error) {
return;
}
const config = cornerstoneTools.bidirectional.getConfiguration();
const coords = eventData.currentPoints.canvas;
const toolData = cornerstoneTools.getToolState(element, toolType);
// now check to see if there is a handle we can move
if (!toolData) return;
let data;
for (let i = 0; i < toolData.data.length; i++) {
data = toolData.data[i];
if (pointNearTool(element, data, coords)) {
data.active = true;
cornerstone.updateImage(element);
// Allow relabelling via a callback
config.changeMeasurementLocationCallback(data, eventData, doneCallback);
event.stopImmediatePropagation();
return false;
}
}
}