diff --git a/Packages/lesiontracker/compatibility/measurementManagerDAL.js b/Packages/lesiontracker/compatibility/measurementManagerDAL.js
index 4564acfea..05ec765b1 100644
--- a/Packages/lesiontracker/compatibility/measurementManagerDAL.js
+++ b/Packages/lesiontracker/compatibility/measurementManagerDAL.js
@@ -87,53 +87,71 @@ var measurementManagerDAL = (function () {
return Session.get("activeContentId");
}
+ function getTimepointsOfTab (){
+ var contentId = getContentId();
+ var tabData = TabsTimepoints.find({contentId: contentId}).fetch();
+ return tabData[0].timepoints;
+ }
+
// Adds new timepoint item to tiemepoints array
function addLesionData (lesionData) {
- // TODO: if find lesionNumber, add
- // TODO: Unless create new object
var contentId = getContentId();
var timepointID = lesionData.timepointID;
- var tabMeasurements = Measurements.find({contentId: contentId}).fetch();
- var existingMeasurement;
- if(tabMeasurements != undefined && tabMeasurements.length > 0) {
- var tabLesionData = tabMeasurements.filter(function(item){return (item.lesionData.lesionNumber == lesionData.lesionNumber);} )[0];
- if(tabLesionData != undefined) {
- existingMeasurement = tabLesionData.lesionData;
+ var tabMeasurements = Measurements.find({contentId: contentId, "lesionData.lesionNumber": lesionData.lesionNumber}).fetch();
+ var tabMeasurementsData = tabMeasurements[0];
+ if (tabMeasurements != undefined && tabMeasurements.length > 0) {
+
+ // Update timepoint
+ var timepointArr = tabMeasurementsData.lesionData.timepoints;
+ for(var i=0; i< timepointArr.length; i++) {
+ var timepoint = timepointArr[i];
+ if(timepoint[timepointID] != undefined) {
+ timepoint[timepointID].longestDiameter = lesionData.measurementText;
+ }
}
- }
-
- if (existingMeasurement != undefined) {
-
- var existingTimepoint = existingMeasurement.timepoints;
- existingTimepoint[timepointID] = {longestDiameter: lesionData.measurementText};
-
Measurements.update(
{ contentId: contentId, "lesionData.lesionNumber": lesionData.lesionNumber},
{
$set: {
- "lesionData.timepoints": existingTimepoint
+ "lesionData.timepoints": timepointArr
}
}, {multi: true}
);
- console.log(Measurements.find())
} else {
- var timepointArr = {};
- timepointArr[timepointID] = {longestDiameter: lesionData.measurementText};
+ // 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: timepointArr
+ timepoints: timepointsArr
};
Measurements.insert({contentId: contentId, lesionData: lesionDataCollectionObject});
- console.log(Measurements.find());
-
}
-
+
// Populate timepoints array
var roi = {
uid: lesionData.uid,
diff --git a/Packages/lesiontracker/components/lesionTable/lesionTable.html b/Packages/lesiontracker/components/lesionTable/lesionTable.html
index f3619ecec..68cca4b56 100644
--- a/Packages/lesiontracker/components/lesionTable/lesionTable.html
+++ b/Packages/lesiontracker/components/lesionTable/lesionTable.html
@@ -7,8 +7,10 @@
Target |
Location |
- {{ #each timepointNames }}
- {{ >lesionTableTimepointHeader }}
+ {{ #each tabTimepoints }}
+ {{ #each timepoints }}
+ {{ >lesionTableTimepointHeader }}
+ {{ /each }}
{{ /each }}
diff --git a/Packages/lesiontracker/components/lesionTable/lesionTable.js b/Packages/lesiontracker/components/lesionTable/lesionTable.js
index 165db1cac..a219fdcb4 100644
--- a/Packages/lesiontracker/components/lesionTable/lesionTable.js
+++ b/Packages/lesiontracker/components/lesionTable/lesionTable.js
@@ -1,15 +1,14 @@
Measurements = new Meteor.Collection(null);
-TimepointNames = new Meteor.Collection(null);
+TabsTimepoints = new Meteor.Collection(null);
Template.lesionTable.helpers({
'measurement': function() {
var contentId = Session.get("activeContentId");
- console.log(Measurements.find({contentId: contentId}));
return Measurements.find({contentId: contentId});
},
- 'timepointNames': function() {
+ 'tabTimepoints': function() {
var contentId = Session.get("activeContentId");
- return Template.instance().timepointNamesDictionary.get(contentId);
+ return TabsTimepoints.find({contentId: contentId});
},
'lesionData': function() {
var array = [];
@@ -23,26 +22,41 @@ Template.lesionTable.helpers({
Template.lesionTable.onRendered(function() {
- // TODO: Create seperate method
var cols = Template.instance().data.viewportColumns.curValue;
var rows = Template.instance().data.viewportRows.curValue;
var totalViewports = cols * rows;
var contentId = Session.get('activeContentId');
+ var timepointsArray = [];
for(var i=0; i< totalViewports; i++) {
- var timepointNamesArray = [];
- if(Template.instance().timepointNamesDictionary.get(contentId) != undefined) {
- timepointNamesArray = Template.instance().timepointNamesDictionary.get(contentId);
- }
+
var timepointID = contentId.toString()+ i.toString();
var timepointName = "Baseline";
if(i > 0) {
timepointName = "Follow Up "+i;
}
- var timepointObject = {id: timepointID, name: timepointName};
- timepointNamesArray.push(timepointObject);
- Template.instance().timepointNamesDictionary.set(contentId, timepointNamesArray);
+ var timepointObject = {timepointID: timepointID, timepointName: timepointName};
+ timepointsArray.push(timepointObject);
+
+ }
+
+ // Prevent duplicate data when onRendered is called
+ var tabTimepoint = TabsTimepoints.find({contentId: contentId}).fetch();
+ if (tabTimepoint != undefined && tabTimepoint.length > 0) {
+ // Update timepoints
+ TabsTimepoints.update(
+ { contentId: contentId},
+ {
+ $set: {
+ timepoints: timepointsArray
+ }
+ }, {multi: true}
+ );
+ } else {
+
+ // Insert new timepoints array
+ TabsTimepoints.insert({contentId: contentId, timepoints: timepointsArray});
}
});
diff --git a/Packages/lesiontracker/components/lesionTableRow/lesionTableRow.js b/Packages/lesiontracker/components/lesionTableRow/lesionTableRow.js
index d7f0c9d37..8d4f412b9 100644
--- a/Packages/lesiontracker/components/lesionTableRow/lesionTableRow.js
+++ b/Packages/lesiontracker/components/lesionTableRow/lesionTableRow.js
@@ -1,10 +1,5 @@
Template.lesionTableRow.helpers({
'timepoints': function() {
- var array = [];
- var timepoints = this.lesionData.timepoints;
- Object.keys(timepoints).forEach(function(key) {
- array.push(timepoints[key]);
- });
- return array;
+ return this.lesionData.timepoints;
}
});
diff --git a/Packages/lesiontracker/components/lesionTableTimepointCell/lesionTableTimepointCell.js b/Packages/lesiontracker/components/lesionTableTimepointCell/lesionTableTimepointCell.js
new file mode 100644
index 000000000..c19772d12
--- /dev/null
+++ b/Packages/lesiontracker/components/lesionTableTimepointCell/lesionTableTimepointCell.js
@@ -0,0 +1,6 @@
+Template.lesionTableTimepointCell.helpers({
+ 'longestDiameter': function() {
+ var longestDiameter = this[Object.keys(this)[0]].longestDiameter;
+ return longestDiameter;
+ }
+});
\ No newline at end of file
diff --git a/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.html b/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.html
index 6800cd376..2bd4a7756 100644
--- a/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.html
+++ b/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.html
@@ -1,3 +1,3 @@
- {{name}} |
+ {{timepointName}} |
\ No newline at end of file
diff --git a/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.js b/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.js
new file mode 100644
index 000000000..fe1d49009
--- /dev/null
+++ b/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.js
@@ -0,0 +1,5 @@
+Template.lesionTableTimepointHeader.helpers({
+ 'timepoints': function (){
+ return this.timepoints;
+ }
+});
\ No newline at end of file
diff --git a/Packages/lesiontracker/package.js b/Packages/lesiontracker/package.js
index 420ee6338..7f1eabfa8 100644
--- a/Packages/lesiontracker/package.js
+++ b/Packages/lesiontracker/package.js
@@ -31,8 +31,11 @@ Package.onUse(function (api) {
api.addFiles('components/lesionTableRow/lesionTableRow.js', 'client');
api.addFiles('components/lesionTableTimepointCell/lesionTableTimepointCell.html', 'client');
+ api.addFiles('components/lesionTableTimepointCell/lesionTableTimepointCell.js', 'client');
api.addFiles('components/lesionTableTimepointHeader/lesionTableTimepointHeader.html', 'client');
+ api.addFiles('components/lesionTableTimepointHeader/lesionTableTimepointHeader.js', 'client');
+
// Library functions
api.addFiles('lib/getActiveTimepointID.js', 'client');