LT-372: Preventing creation of targets with no size

This commit is contained in:
Bruno Alves de Faria 2016-11-18 18:47:34 -02:00
parent 49ba8eb7a7
commit 2ac832846d
4 changed files with 24 additions and 20 deletions

View File

@ -1,6 +1,5 @@
import { OHIF } from 'meteor/ohif:core';
import { toolManager } from 'meteor/ohif:viewerbase';
import { _ } from 'meteor/underscore';
(function($, cornerstone, cornerstoneMath, cornerstoneTools) {
@ -32,26 +31,10 @@ import { _ } from 'meteor/underscore';
};
};
const validateMeasurement = (measurementData, eventData) => {
if (!measurementData) {
return false;
}
const handles = measurementData.handles;
const start = _.pick(handles.start, ['x', 'y']);
const end = _.pick(handles.end, ['x', 'y']);
if (_.isEqual(start, end)) {
cornerstoneTools.removeToolState(eventData.element, toolType, measurementData);
return false;
}
return true;
};
// Define a callback to get your text annotation
// This could be used, e.g. to open a modal
function getMeasurementLocationCallback(measurementData, eventData) {
if (!validateMeasurement(measurementData, eventData)) {
if (OHIF.lesiontracker.removeMeasurementIfInvalid(measurementData, eventData)) {
return;
}
@ -64,7 +47,7 @@ import { _ } from 'meteor/underscore';
}
function changeMeasurementLocationCallback(measurementData, eventData) {
if (!validateMeasurement(measurementData, eventData)) {
if (OHIF.lesiontracker.removeMeasurementIfInvalid(measurementData, eventData)) {
return;
}
@ -139,7 +122,7 @@ import { _ } from 'meteor/underscore';
$(element).on('CornerstoneToolsMouseMove', eventData, cornerstoneTools.nonTarget.mouseMoveCallback);
$(element).on('CornerstoneToolsMouseDown', eventData, cornerstoneTools.nonTarget.mouseDownCallback);
$(element).on('CornerstoneToolsMouseDownActivate', eventData, cornerstoneTools.nonTarget.mouseDownActivateCallback);
$(element).on('CornerstoneToolsMouseDoubleClick', eventData, doubleClickCallback);
$(element).on('CornerstoneToolsMouseDoubleClick', eventData, doubleClickCallback);
cornerstone.updateImage(mouseEventData.element);
});

View File

@ -40,6 +40,10 @@ Template.measurementLocationDialog.onCreated(() => {
const timepointApi = instance.data.timepointApi;
const toggleLabel = (measurementData, eventData, doneCallback) => {
if (OHIF.lesiontracker.removeMeasurementIfInvalid(measurementData, eventData)) {
return;
}
const getHandlePosition = key => _.pick(measurementData.handles[key], ['x', 'y']);
const start = getHandlePosition('start');
const end = getHandlePosition('end');

View File

@ -6,6 +6,7 @@ import './studylist/studylistModification.js';
import './TrialCriteriaConstraints.js';
import './MeasurementValidation.js';
import './pixelSpacingAutorunCheck.js';
import './removeMeasurementIfInvalid.js';
import './toggleLesionTrackerTools.js';
import './clearMeasurementTimepointData.js';
import './convertToNonTarget.js';

View File

@ -0,0 +1,16 @@
import { OHIF } from 'meteor/ohif:core';
import { _ } from 'meteor/underscore';
OHIF.lesiontracker.removeMeasurementIfInvalid = (measurementData, eventData) => {
const handles = measurementData.handles;
const start = _.pick(handles.start, ['x', 'y']);
const end = _.pick(handles.end, ['x', 'y']);
const element = eventData.element;
const toolType = measurementData.toolType;
if (_.isEqual(start, end)) {
cornerstoneTools.removeToolState(element, toolType, measurementData);
return true;
}
return false;
};