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 { OHIF } from 'meteor/ohif:core';
|
||||||
import { toolManager } from 'meteor/ohif:viewerbase';
|
import { toolManager } from 'meteor/ohif:viewerbase';
|
||||||
import { _ } from 'meteor/underscore';
|
|
||||||
|
|
||||||
(function($, cornerstone, cornerstoneMath, cornerstoneTools) {
|
(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
|
// Define a callback to get your text annotation
|
||||||
// This could be used, e.g. to open a modal
|
// This could be used, e.g. to open a modal
|
||||||
function getMeasurementLocationCallback(measurementData, eventData) {
|
function getMeasurementLocationCallback(measurementData, eventData) {
|
||||||
if (!validateMeasurement(measurementData, eventData)) {
|
if (OHIF.lesiontracker.removeMeasurementIfInvalid(measurementData, eventData)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,7 +47,7 @@ import { _ } from 'meteor/underscore';
|
|||||||
}
|
}
|
||||||
|
|
||||||
function changeMeasurementLocationCallback(measurementData, eventData) {
|
function changeMeasurementLocationCallback(measurementData, eventData) {
|
||||||
if (!validateMeasurement(measurementData, eventData)) {
|
if (OHIF.lesiontracker.removeMeasurementIfInvalid(measurementData, eventData)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,7 +122,7 @@ import { _ } from 'meteor/underscore';
|
|||||||
$(element).on('CornerstoneToolsMouseMove', eventData, cornerstoneTools.nonTarget.mouseMoveCallback);
|
$(element).on('CornerstoneToolsMouseMove', eventData, cornerstoneTools.nonTarget.mouseMoveCallback);
|
||||||
$(element).on('CornerstoneToolsMouseDown', eventData, cornerstoneTools.nonTarget.mouseDownCallback);
|
$(element).on('CornerstoneToolsMouseDown', eventData, cornerstoneTools.nonTarget.mouseDownCallback);
|
||||||
$(element).on('CornerstoneToolsMouseDownActivate', eventData, cornerstoneTools.nonTarget.mouseDownActivateCallback);
|
$(element).on('CornerstoneToolsMouseDownActivate', eventData, cornerstoneTools.nonTarget.mouseDownActivateCallback);
|
||||||
$(element).on('CornerstoneToolsMouseDoubleClick', eventData, doubleClickCallback);
|
$(element).on('CornerstoneToolsMouseDoubleClick', eventData, doubleClickCallback);
|
||||||
|
|
||||||
cornerstone.updateImage(mouseEventData.element);
|
cornerstone.updateImage(mouseEventData.element);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -40,6 +40,10 @@ Template.measurementLocationDialog.onCreated(() => {
|
|||||||
const timepointApi = instance.data.timepointApi;
|
const timepointApi = instance.data.timepointApi;
|
||||||
|
|
||||||
const toggleLabel = (measurementData, eventData, doneCallback) => {
|
const toggleLabel = (measurementData, eventData, doneCallback) => {
|
||||||
|
if (OHIF.lesiontracker.removeMeasurementIfInvalid(measurementData, eventData)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const getHandlePosition = key => _.pick(measurementData.handles[key], ['x', 'y']);
|
const getHandlePosition = key => _.pick(measurementData.handles[key], ['x', 'y']);
|
||||||
const start = getHandlePosition('start');
|
const start = getHandlePosition('start');
|
||||||
const end = getHandlePosition('end');
|
const end = getHandlePosition('end');
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import './studylist/studylistModification.js';
|
|||||||
import './TrialCriteriaConstraints.js';
|
import './TrialCriteriaConstraints.js';
|
||||||
import './MeasurementValidation.js';
|
import './MeasurementValidation.js';
|
||||||
import './pixelSpacingAutorunCheck.js';
|
import './pixelSpacingAutorunCheck.js';
|
||||||
|
import './removeMeasurementIfInvalid.js';
|
||||||
import './toggleLesionTrackerTools.js';
|
import './toggleLesionTrackerTools.js';
|
||||||
import './clearMeasurementTimepointData.js';
|
import './clearMeasurementTimepointData.js';
|
||||||
import './convertToNonTarget.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