ohif-viewer/Packages/lesiontracker/components/lesionLocationDialog/lesionLocationDialog.js

78 lines
2.8 KiB
JavaScript

var lastAddedLesionData;
//fill selectLesionLocation element
var lesionLocationsArray = [
{location:"Brain Brainstem",hasDescription:false, description:""},
{location:"Brain Cerebellum Left",hasDescription:false, description:""},
{location:"Brain Cerebrum Left",hasDescription:false, description:""},
{location:"Brain Cerebrum Right",hasDescription:false, description:""},
{location:"Brain Multiple Sites",hasDescription:false, description:""}
];
Template.lesionLocationDialog.onRendered(function () {
console.log(this.data);
function fillSelectLesionLocation () {
var el = $("#selectLesionLocation");
el.find('option:not(:first)').remove();
$.each(lesionLocationsArray, function(key, value) {
el.append("<option value='" + key+ "'>" + value.location + "</option>");
});
}
// Fill dropdown
fillSelectLesionLocation();
// Observe Measurements Collection Changes
Measurements.find().observe({
added: function (lesionData) {
lastAddedLesionData = lesionData
},
changed: function(lesionData) {
console.log("lesionData is changed!");
}
});
});
Template.lesionLocationDialog.events({
'click button#btnCloseLesionPopup': function (e) {
$("#lesionDialog").modal("hide");
// TODO: Remove lastAddedLesionData from canvas
// TODO: Remove lastAddedLesionData from collection
},
'change select#selectLesionLocation': function (e) {
var el = $(e.target);
var selectedLocationIndex = el.val()
if(selectedLocationIndex !== "-1"){
// Get selected location data
var locationObj = lesionLocationsArray[selectedLocationIndex];
// Gets active lesion measurement data that is latest added data
var activeLesionMeasurementData = Session.get("lesionMeasurementData");
// Adds location data to trialPatientLocations array and returns locationUID
var locationUID = measurementManagerDAL.addNewLocation(locationObj);
// Linkk locationUID with activeLesionMeasurementData
activeLesionMeasurementData.locationUID = locationUID;
// Adds lesion data to timepoints array
measurementManagerDAL.addLesionData(activeLesionMeasurementData);
// Trigger location selected event
$(document).trigger("lesionLocationSelected",locationObj);
// Set activeModule parameters in index.html
$("#lesionDialog").modal("hide");
// Select first option
el.val($("#selectLesionLocation option:first").val());
// Set lesion location selected session to prevent open
Session.set("lesionLocationSelected", true);
}
}
});