Set lesion table row data in correct columns
Populate Measurements collection according to lesion table columns
This commit is contained in:
parent
074f043a65
commit
78faa2a8f9
@ -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,
|
||||
|
||||
@ -7,8 +7,10 @@
|
||||
<th id="thTarget">Target</th>
|
||||
<th id="thLocation">Location</th>
|
||||
<!--Each time point name as a column-->
|
||||
{{ #each timepointNames }}
|
||||
{{ >lesionTableTimepointHeader }}
|
||||
{{ #each tabTimepoints }}
|
||||
{{ #each timepoints }}
|
||||
{{ >lesionTableTimepointHeader }}
|
||||
{{ /each }}
|
||||
{{ /each }}
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@ -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});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@ -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;
|
||||
}
|
||||
});
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
Template.lesionTableTimepointCell.helpers({
|
||||
'longestDiameter': function() {
|
||||
var longestDiameter = this[Object.keys(this)[0]].longestDiameter;
|
||||
return longestDiameter;
|
||||
}
|
||||
});
|
||||
@ -1,3 +1,3 @@
|
||||
<template name="lesionTableTimepointHeader">
|
||||
<th>{{name}}</th>
|
||||
<th>{{timepointName}}</th>
|
||||
</template>
|
||||
@ -0,0 +1,5 @@
|
||||
Template.lesionTableTimepointHeader.helpers({
|
||||
'timepoints': function (){
|
||||
return this.timepoints;
|
||||
}
|
||||
});
|
||||
@ -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');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user