Added data persistence for lesion measurements and timepoints

This commit is contained in:
Erik Ziegler committed 2015-11-19 21:11:59 +01:00
1 parent 1facbfb0b1
commit 0af0069d69
15 files changed
+157 -73

No files matched your search

@@ -1,5 +1,4 @@
var activeLesionMeasurementData;
var timepointID;
var cornerstoneTools = (function($, cornerstone, cornerstoneMath, cornerstoneTools) {
"use strict";
@@ -40,7 +39,7 @@ var cornerstoneTools = (function($, cornerstone, cornerstoneMath, cornerstoneToo
var measurementData = createNewMeasurement(mouseEventData);
var eventData = {
mouseButtonMask: mouseEventData.which,
mouseButtonMask: mouseEventData.which
};
// associate this data with this imageId so we can render it and manipulate it
@@ -188,10 +187,6 @@ var cornerstoneTools = (function($, cornerstone, cornerstoneMath, cornerstoneToo
return;
}
updateLesions(toolData, eventData);
}
function updateLesions(toolData, eventData) {
// we have tool data for this element - iterate over each one and draw it
var context = eventData.canvasContext.canvas.getContext('2d');
context.setTransform(1, 0, 0, 1, 0, 0);
@@ -9,6 +9,10 @@ var measurementManagerDAL = (function() {
// Add timepoint data to Measurements collection
function addTimepointData(lesionData) {
var timepoints = Timepoints.find().fetch();
var study = cornerstoneTools.metaData.get('study', lesionData.imageId);
var series = cornerstoneTools.metaData.get('study', lesionData.imageId);
var timepointsObject = {};
for (var i = 0; i < timepoints.length; i++) {
@@ -17,10 +21,12 @@ var measurementManagerDAL = (function() {
var timepointObject;
if (timepointId === lesionTimepointId) {
// Add real mesurement
// Add real measurement
timepointObject = {
longestDiameter: lesionData.measurementText,
imageId: lesionData.imageId,
studyInstanceUid: study.instanceUid,
seriesInstanceUid: series.instanceUid
};
} else {
// Add null measurement
@@ -33,6 +39,7 @@ var measurementManagerDAL = (function() {
}
var lesionDataObject = {
patientId: timepoints[0].patientId,
lesionUID: uuid.v4(),
number: Measurements.find().count() + 1,
lesionNumber: lesionData.lesionNumber,
@@ -47,10 +54,10 @@ var measurementManagerDAL = (function() {
// Update timepoint data in Measurements collection
function updateTimepointData(lesionData) {
// Find the specific lesion to be updated
var measurement = Measurements.find({
var measurement = Measurements.findOne({
lesionNumber: lesionData.lesionNumber,
isTarget: lesionData.isTarget
}).fetch()[0];
});
// If no such lesion exists, stop here
if (!measurement) {
@@ -65,10 +72,7 @@ var measurementManagerDAL = (function() {
timepoints[timepointID].longestDiameter = lesionData.measurementText;
timepoints[timepointID].imageId = lesionData.imageId;
Measurements.update({
lesionNumber: lesionData.lesionNumber,
isTarget: lesionData.isTarget
}, {
Measurements.update(measurement._id, {
$set: {
timepoints: timepoints
}
@@ -81,13 +85,14 @@ var measurementManagerDAL = (function() {
lesionNumber: lesionData.lesionNumber,
isTarget: lesionData.isTarget
});
if (timepointData) {
return true;
}
return false;
}
// Adds new timepoint item to tiemepoints array
// Adds new timepoint item to timepoints array
function addLesionData(lesionData) {
if (hasTimepointData(lesionData)) {
// Update data
@@ -115,6 +120,10 @@ var measurementManagerDAL = (function() {
var measurement = measurements[i];
var timepoints = measurement.timepoints;
if (!timepoints[timepointID]) {
return;
}
if (timepoints[timepointID].longestDiameter === '') {
return measurement.lesionNumber;
} else {
@@ -130,10 +139,10 @@ var measurementManagerDAL = (function() {
return;
}
var measurement = Measurements.find({
var measurement = Measurements.findOne({
lesionNumber: lesionData.lesionNumber,
isTarget: lesionData.isTarget
}).fetch()[0];
});
return measurement.locationUID;
}