53 lines
1.9 KiB
JavaScript
53 lines
1.9 KiB
JavaScript
import { _ } from 'meteor/underscore';
|
|
import { OHIF } from 'meteor/ohif:core';
|
|
|
|
OHIF.lesiontracker.configureTargetToolsHandles = () => {
|
|
const toggleLabel = (measurementData, eventData, doneCallback) => {
|
|
delete measurementData.isCreating;
|
|
|
|
if (OHIF.lesiontracker.removeMeasurementIfInvalid(measurementData, eventData)) {
|
|
return;
|
|
}
|
|
|
|
const getHandlePosition = key => _.pick(measurementData.handles[key], ['x', 'y']);
|
|
const start = getHandlePosition('start');
|
|
const end = getHandlePosition('end');
|
|
const getDirection = axis => start[axis] < end[axis] ? 1 : -1;
|
|
const position = OHIF.cornerstone.pixelToPage(eventData.element, end);
|
|
|
|
OHIF.measurements.toggleLabelButton({
|
|
measurement: measurementData,
|
|
element: eventData.element,
|
|
measurementApi: OHIF.viewer.measurementApi,
|
|
position: position,
|
|
direction: {
|
|
x: getDirection('x'),
|
|
y: getDirection('y')
|
|
}
|
|
});
|
|
};
|
|
|
|
const callbackConfig = {
|
|
// TODO: Check the position for these, the Add Label button position seems very awkward
|
|
getMeasurementLocationCallback: toggleLabel,
|
|
changeMeasurementLocationCallback: toggleLabel,
|
|
};
|
|
|
|
// TODO: Reconcile this with the configuration in toolManager it would be better to have this
|
|
// all in one place.
|
|
const appendConfig = toolType => {
|
|
const tool = cornerstoneTools[toolType];
|
|
const toolConfig = tool.getConfiguration();
|
|
const config = Object.assign({}, toolConfig, callbackConfig);
|
|
|
|
tool.setConfiguration(config);
|
|
};
|
|
|
|
// Append the callback configuration to bidirectional tool
|
|
appendConfig('bidirectional');
|
|
|
|
// Append the callback configuration to CR and UN tools
|
|
appendConfig('targetCR');
|
|
appendConfig('targetUN');
|
|
};
|