ohif-viewer/Packages/ohif-lesiontracker/client/compatibility/bidirectionalTool/doubleClickCallback.js
2017-12-28 08:59:25 -02:00

42 lines
1.4 KiB
JavaScript

import { cornerstone, cornerstoneTools } from 'meteor/ohif:cornerstone';
import { toolType } from './definitions';
import pointNearTool from './pointNearTool';
export default function (event, eventData) {
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;
}
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;
}
}
}