Update measurement data in lesion table

This commit is contained in:
Aysel Afsar 2015-10-29 19:05:04 -04:00
parent 78faa2a8f9
commit 9fb5cc2953
3 changed files with 98 additions and 223 deletions

View File

@ -17,7 +17,6 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
var element = mouseEventData.element;
timepointID = getActiveTimepointID(element);
var lesionNumber = measurementManagerDAL.getLesionNumber(timepointID);
console.log(lesionNumber);
var lesionCounter = "";
// Subscribe CornerstoneMouseup event, when mouse is up, call lesionDialog
@ -137,82 +136,14 @@ var cornerstoneTools = (function ($, cornerstone, cornerstoneMath, cornerstoneTo
function updateLesionCollection(lesionData, currentElement) {
if (lesionData.active) {
activeLesionMeasurementData = lesionData;
if(lesionData.timepointID != undefined && lesionData.timepointID != "") {
// Update Measurements Collection
measurementManagerDAL.updateTimepointData(lesionData);
} else {
activeLesionMeasurementData = lesionData;
}
}
// TODO: Option1: Create a global variable like lesionMeasurementData
// TODO: Insert lesionData inside the lesionMeasurementData
// TODO: Send the lesionMeasurementData to lesionDialog by ShowLesionDialog event
/*if (lesionMeasurementData != undefined && lesionMeasurementData.lesionNumber === lesionData.index) {
lesionMeasurementData.timepoints.now.longestDiameter = lesionData.measurementText;
console.log(lesionMeasurementData.timepoints.now.longestDiameter);
} else {
lesionMeasurementData = {
lesionNumber: lesionData.index,
isTarget: true,
location: '',
timepoints: {
"now": {
imageId: "blah",
timepointUid: "timepointX",
date: 2010,
isDirty: true,
longestDiameter: lesionData.measurementText
},
"earlier": {
imageId: "blah2",
timepointUid: "timepointy",
date: 2010,
isDirty: true,
longestDiameter: 8
}
}
};
}*/
// TODO: Option2:
// Check collection has this lesionData
/*var isFound = Measurements.findOne({lesionNumber: lesionData.index});
// TODO: Decide which time point is changed
if (isFound) {
// Update measurement text
Measurements.update(
{ lesionNumber: lesionData.index },
{
$set: {
"timepoints.now.longestDiameter": lesionData.measurementText
}
}, {multi: true}
);
console.log(Measurements.find());
} else {
var lesionObject = {
lesionNumber: lesionData.index,
isTarget: true,
location: '',
isHidden: true,
timepoints: {
"now": {
imageId: "blah",
timepointUid: "timepointX",
date: 2010,
isDirty: true,
longestDiameter: lesionData.measurementText
},
"earlier": {
imageId: "blah2",
timepointUid: "timepointy",
date: 2010,
isDirty: true,
longestDiameter: 8
}
}
};
Measurements.insert(lesionObject);
}*/
}
function renderLesion(lesion, context, eventData){

View File

@ -2,50 +2,6 @@ var measurementManagerDAL = (function () {
var trialPatientLocations = [];
var timepoints = [];
// timepointID = tabId + activeViewportIndex
/*timepoints = [
{
timepointID: "tp0",
rois: [
{
UID: "345",
number: 1,
measurement: "22.34",
locationUID: 12345
},
{
UID: "245",
number: 2,
measurement: "22.34",
locationUID: 1745
}
]
},
{
timepointID: "tp1",
rois: [
{
UID: "243",
number: 1,
measurement: "22.34",
locationUID: 12345
}
]
},
{
timepointID: "tp2",
rois: [
{
UID: "253",
number: 1,
measurement: "0.34",
locationUID: 12345
}
]
}
];
*/
// Returns trialPatientLocations array
function getPatientLocations () {
return trialPatientLocations;
@ -76,13 +32,6 @@ var measurementManagerDAL = (function () {
return locationUID;
}
// Insert Measurements Collection
function insertDataToMeasurementCollection (lesionData) {
}
function getContentId () {
return Session.get("activeContentId");
}
@ -93,9 +42,43 @@ var measurementManagerDAL = (function () {
return tabData[0].timepoints;
}
// Adds new timepoint item to tiemepoints array
function addLesionData (lesionData) {
// Add timepoint data to Measurements collection
function addTimepointData(lesionData) {
var contentId = getContentId();
var timepointsOfTab = getTimepointsOfTab();
var timepointsArr = [];
for(var i=0; i< timepointsOfTab.length; i++) {
var timepointId = timepointsOfTab[i].timepointID;
var lesionTimepointId = lesionData.timepointID;
if (timepointId === lesionTimepointId) {
// Add real mesurement
var timepointObject = {};
timepointObject[timepointId] = {longestDiameter: lesionData.measurementText};
timepointsArr.push(timepointObject);
} else {
// Add null measurement
var timepointObject = {};
timepointObject[timepointId] = {longestDiameter: ""};
timepointsArr.push(timepointObject);
}
}
var lesionDataCollectionObject = {
lesionNumber: lesionData.lesionNumber,
isTarget: true,
locationUID: lesionData.locationUID,
location: getLocationName(lesionData.locationUID),
timepoints: timepointsArr
};
Measurements.insert({contentId: contentId, lesionData: lesionDataCollectionObject});
}
// Update timepoint data in Measurements collection
function updateTimepointData (lesionData) {
var contentId = getContentId();
var timepointID = lesionData.timepointID;
var tabMeasurements = Measurements.find({contentId: contentId, "lesionData.lesionNumber": lesionData.lesionNumber}).fetch();
@ -119,39 +102,31 @@ var measurementManagerDAL = (function () {
}, {multi: true}
);
} else {
// Add new measurement data
var timepointsOfTab = getTimepointsOfTab();
var timepointsArr = [];
for(var i=0; i< timepointsOfTab.length; i++) {
var timepointId = timepointsOfTab[i].timepointID;
var lesionTimepointId = lesionData.timepointID;
if (timepointId === lesionTimepointId) {
// Add real mesurement
var timepointObject = {};
timepointObject[timepointId] = {longestDiameter: lesionData.measurementText};
timepointsArr.push(timepointObject);
} else {
// Add null measurement
var timepointObject = {};
timepointObject[timepointId] = {longestDiameter: ""};
timepointsArr.push(timepointObject);
}
}
var lesionDataCollectionObject = {
lesionNumber: lesionData.lesionNumber,
isTarget: true,
location: getLocationName(lesionData.locationUID),
timepoints: timepointsArr
};
Measurements.insert({contentId: contentId, lesionData: lesionDataCollectionObject});
}
}
// Check timepointData is found in Measurements collection
function timepointDataIsFound (lesionNumber) {
var contentId = getContentId();
var timepointData = Measurements.findOne({contentId: contentId, "lesionData.lesionNumber": lesionNumber});
if (timepointData != undefined) {
return true;
} else {
return false;
}
}
// Adds new timepoint item to tiemepoints array
function addLesionData (lesionData) {
if(timepointDataIsFound(lesionData)) {
// Update data
updateTimepointData(lesionData);
} else{
// Insert data
addTimepointData(lesionData);
}
// TODO: This code block will be removed
// Populate timepoints array
var roi = {
uid: lesionData.uid,
@ -169,47 +144,48 @@ var measurementManagerDAL = (function () {
timepoints.push({timepointID: timepointID, rois: [roi]});
}
insertDataToMeasurementCollection(lesionData);
}
// Returns new lesion number according to timepointID
function getNewLesionNumber (timepointID) {
// Check timepoint is in timepoints array
for (var i=0; i< timepoints.length; i++) {
var timepoint = timepoints[i];
if(timepoint.timepointID === timepointID) {
return timepoint.rois.length + 1;
}
}
var contentId = getContentId();
var lesionNumberCounter = 0;
var timepointsData = Measurements.find({contentId: contentId}).fetch();
if(timepointsData.length > 0) {
for(var i=0; i< timepointsData.length; i++) {
var timepointData = timepointsData[i];
var timepoints = timepointData.lesionData.timepoints;
for(var j=0; j< timepoints.length; j++) {
var timepoint = timepoints[j];
var key = Object.keys(timepoint);
if(key == timepointID) {
if (timepoint[key].longestDiameter === "") {
return timepointData.lesionData.lesionNumber;
// Add new time point
timepoints.push({timepointID: timepointID, rois: []});
} else {
lesionNumberCounter = lesionNumberCounter + 1;
}
}
}
}
console.log(lesionNumberCounter + 1);
return lesionNumberCounter + 1;
}
return 1;
}
// If lesion number is added for any timepoint, returns lesion locationUID
function isLesionNumberAdded (lesionNumber) {
if (timepointDataIsFound(lesionNumber)){
var contentId = getContentId();
var timepointData = Measurements.find({contentId: contentId, "lesionData.lesionNumber": lesionNumber}).fetch();
return timepointData[0].lesionData.locationUID;
for (var i=0; i< timepoints.length; i++) {
var timepoint = timepoints[i];
var rois = timepoint.rois;
for(var j=0; j<rois.length; j++) {
var roi = rois[j];
if (roi.number === lesionNumber) {
return roi.locationUID;
}
}
}
return null
return null;
}
// Adds lesion data to Measurements collection
function addLesionToMeasurementsCollection (lesionData){
Measurements.insert(lesionData);
}
return {
@ -218,7 +194,8 @@ var measurementManagerDAL = (function () {
addLesionData: addLesionData,
getLesionNumber: getNewLesionNumber,
isLesionNumberAdded: isLesionNumberAdded,
getTimepoints: getTimepoints
getTimepoints: getTimepoints,
updateTimepointData: updateTimepointData
};
})();

View File

@ -7,7 +7,7 @@ Template.lesionDialog.onRendered(function () {
if(locationUID != null) {
activeLesionMeasurementData.locationUID = locationUID;
measurementManagerDAL.addLesionData(activeLesionMeasurementData);
measurementManagerDAL.updateTimepointData(activeLesionMeasurementData);
}else{
// Show Dialog
@ -23,36 +23,3 @@ Template.lesionDialog.onRendered(function () {
});
});
// Listen lesionMeaurementCreated Event and when this event is triggered, show lesionLocationDialog Box
/*
$(document).on("lesionMeasurementCreated",function(e,eventCaller,data){
console.log("Lesion measurement xreated");
var element = data.element;
var tabId = data.tabId;
var viewports = $("#content"+tabId).find(".imageViewerViewport");
var viewportIndex = $(viewports).index($(element));
data.viewportIndex = viewportIndex;
data.totalViewportCount = viewports.length;
//Set Lesion Table Data to insert into lesion table
setLesionTableData(data);
// Check popup will shown or not
var returnVal = lesionNumberIsAdded(data);
if(!returnVal.isFound) {
if( !Session.get("lesionLocationSelected") ) {
$("#modal-dialog-container").css({
"top": eventCaller.pageY,
"left": eventCaller.pageX
});
$("#lesionDialog").modal("show");
}
} else {
// If lesionNumber is added before:
data.rowIndex = returnVal.rowIndex;
$(document).trigger("addLesionToExistedRow",data);
}
});*/