NonTarget Tool refactoring

NonTarget Tool is using callback function to set lesion number,
Unused function-nonTargetToolAdded is removed from lesionTable.js
This commit is contained in:
Evren Ozkan committed 2015-11-12 11:31:29 -05:00
1 parent a205727c27
commit 37c3eb4c71
5 files changed
+276 -229

No files matched your search

@@ -4,38 +4,42 @@
var toolType = 'nonTarget';
// Define a callback to get your text annotation
// This could be used, e.g. to open a modal
function getTextCallback(doneChangingTextCallback) {
doneChangingTextCallback(prompt('Enter your annotation:'));
}
function changeTextCallback(data, doneChangingTextCallback) {
doneChangingTextCallback(prompt('Change your annotation:'));
}
var configuration = {
getTextCallback: getTextCallback,
changeTextCallback: changeTextCallback,
setLesionNumberCallback: setLesionNumberCallback,
getNonTargetLesionLocationCallback: getNonTargetLesionLocationCallback,
changeNonTargetLesionLocationCallback: changeNonTargetLesionLocationCallback,
drawHandles: false,
drawHandlesOnHover: true,
arrowFirst: true
};
// Set lesion number
// Get Non-Target lesions on image
function setLesionNumberCallback(measurementData, eventData, doneCallback) {
var lesionNumber = 1;
doneCallback(lesionNumber);
}
// Define a callback to get your text annotation
// This could be used, e.g. to open a modal
function getNonTargetLesionLocationCallback(measurementData, eventData, doneCallback) {
doneCallback(prompt('Enter your lesion location:'));
}
function changeNonTargetLesionLocationCallback(measurementData, eventData, doneCallback) {
doneCallback(prompt('Change your lesion location:'));
}
/// --- Mouse Tool --- ///
///////// BEGIN ACTIVE TOOL ///////
function addNewMeasurement(mouseEventData) {
function doneChangingTextCallback(text) {
if (text !== null) {
measurementData.text = text;
} else {
cornerstoneTools.removeToolState(mouseEventData.element, toolType, measurementData);
}
var element = mouseEventData.element;
measurementData.active = false;
cornerstone.updateImage(mouseEventData.element);
function doneCallback(lesionNumber) {
measurementData.lesionName = "Non-Target "+lesionNumber;
measurementData.lesionNumber = lesionNumber;
measurementData.active = true;
cornerstone.updateImage(element);
}
var measurementData = createNewMeasurement(mouseEventData);
@@ -53,21 +57,24 @@
$(mouseEventData.element).off('CornerstoneToolsMouseDown', cornerstoneTools.nonTarget.mouseDownCallback);
$(mouseEventData.element).off('CornerstoneToolsMouseDownActivate', cornerstoneTools.nonTarget.mouseDownActivateCallback);
cornerstone.updateImage(mouseEventData.element);
var config = cornerstoneTools.nonTarget.getConfiguration();
// Set lesion number and lesion name
if (measurementData.lesionName === undefined) {
config.setLesionNumberCallback(measurementData, mouseEventData, doneCallback);
}
cornerstone.updateImage(element);
cornerstoneTools.moveNewHandle(mouseEventData, measurementData.handles.end, function() {
if (cornerstoneTools.anyHandlesOutsideImage(mouseEventData, measurementData.handles)) {
// delete the measurement
cornerstoneTools.removeToolState(mouseEventData.element, toolType, measurementData);
}
var config = cornerstoneTools.nonTarget.getConfiguration();
if (measurementData.text === undefined) {
config.getTextCallback(doneChangingTextCallback);
}
config.getNonTargetLesionLocationCallback(measurementData, mouseEventData, doneCallback);
$(mouseEventData.element).on('CornerstoneToolsMouseMove', eventData, cornerstoneTools.nonTarget.mouseMoveCallback);
// CornerstoneToolsMouseDown Event
$(mouseEventData.element).on('CornerstoneToolsMouseDown', eventData, cornerstoneTools.nonTarget.mouseDownCallback);
$(mouseEventData.element).on('CornerstoneToolsMouseDownActivate', eventData, cornerstoneTools.nonTarget.mouseDownActivateCallback);
@@ -77,17 +84,6 @@
function createNewMeasurement(mouseEventData) {
// create the measurement data for this tool with the end handle activated
// TODO: Get text from measurements collection
// Subscribe CornerstoneMouseup event, when mouse is up, call lesionDialog
$(mouseEventData.element).on("CornerstoneToolsMouseUp", function (e) {
// Unsubscribe CornerstoneToolsMouseUp event
$(mouseEventData.element).off("CornerstoneToolsMouseUp");
$(mouseEventData.element).trigger("NonTargetToolAdded", [e, measurementData]);
});
var timepointID = $(mouseEventData.element).data('timepointID');
var lesionNumber = measurementManagerDAL.getNewLesionNumber(timepointID, false);
var measurementData = {
visible: true,
active: true,
@@ -114,9 +110,9 @@
}
},
imageId: mouseEventData.image.imageId,
lesionNumber: lesionNumber,
text: "Non-Target " + lesionNumber,
isTarget: false
measurementText: '',
isTarget: false,
uid: uuid.v4()
};
return measurementData;
@@ -271,9 +267,9 @@
// Draw the text
if (lesion.text && lesion.text !== '') {
if (lesion.lesionName && lesion.lesionName !== '') {
context.font = font;
var boundingBox = cornerstoneTools.drawTextBox(context, lesion.text, canvasTextLocation.x, canvasTextLocation.y, color);
var boundingBox = cornerstoneTools.drawTextBox(context, lesion.lesionName, canvasTextLocation.x, canvasTextLocation.y, color);
lesion.handles.textBox.boundingBox = boundingBox;
}