LT-372: Preventing creation of targets with no size
This commit is contained in:
parent
49ba8eb7a7
commit
2ac832846d
@ -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);
|
||||
});
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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;
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user