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,51 +87,69 @@ var measurementManagerDAL = (function () {
|
|||||||
return Session.get("activeContentId");
|
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
|
// Adds new timepoint item to tiemepoints array
|
||||||
function addLesionData (lesionData) {
|
function addLesionData (lesionData) {
|
||||||
|
|
||||||
// TODO: if find lesionNumber, add
|
|
||||||
// TODO: Unless create new object
|
|
||||||
var contentId = getContentId();
|
var contentId = getContentId();
|
||||||
var timepointID = lesionData.timepointID;
|
var timepointID = lesionData.timepointID;
|
||||||
var tabMeasurements = Measurements.find({contentId: contentId}).fetch();
|
var tabMeasurements = Measurements.find({contentId: contentId, "lesionData.lesionNumber": lesionData.lesionNumber}).fetch();
|
||||||
var existingMeasurement;
|
var tabMeasurementsData = tabMeasurements[0];
|
||||||
if(tabMeasurements != undefined && tabMeasurements.length > 0) {
|
if (tabMeasurements != undefined && tabMeasurements.length > 0) {
|
||||||
var tabLesionData = tabMeasurements.filter(function(item){return (item.lesionData.lesionNumber == lesionData.lesionNumber);} )[0];
|
|
||||||
if(tabLesionData != undefined) {
|
// Update timepoint
|
||||||
existingMeasurement = tabLesionData.lesionData;
|
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(
|
Measurements.update(
|
||||||
{ contentId: contentId, "lesionData.lesionNumber": lesionData.lesionNumber},
|
{ contentId: contentId, "lesionData.lesionNumber": lesionData.lesionNumber},
|
||||||
{
|
{
|
||||||
$set: {
|
$set: {
|
||||||
"lesionData.timepoints": existingTimepoint
|
"lesionData.timepoints": timepointArr
|
||||||
}
|
}
|
||||||
}, {multi: true}
|
}, {multi: true}
|
||||||
);
|
);
|
||||||
console.log(Measurements.find())
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
var timepointArr = {};
|
// Add new measurement data
|
||||||
timepointArr[timepointID] = {longestDiameter: lesionData.measurementText};
|
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 = {
|
var lesionDataCollectionObject = {
|
||||||
lesionNumber: lesionData.lesionNumber,
|
lesionNumber: lesionData.lesionNumber,
|
||||||
isTarget: true,
|
isTarget: true,
|
||||||
location: getLocationName(lesionData.locationUID),
|
location: getLocationName(lesionData.locationUID),
|
||||||
timepoints: timepointArr
|
timepoints: timepointsArr
|
||||||
};
|
};
|
||||||
|
|
||||||
Measurements.insert({contentId: contentId, lesionData: lesionDataCollectionObject});
|
Measurements.insert({contentId: contentId, lesionData: lesionDataCollectionObject});
|
||||||
console.log(Measurements.find());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Populate timepoints array
|
// Populate timepoints array
|
||||||
|
|||||||
@ -7,9 +7,11 @@
|
|||||||
<th id="thTarget">Target</th>
|
<th id="thTarget">Target</th>
|
||||||
<th id="thLocation">Location</th>
|
<th id="thLocation">Location</th>
|
||||||
<!--Each time point name as a column-->
|
<!--Each time point name as a column-->
|
||||||
{{ #each timepointNames }}
|
{{ #each tabTimepoints }}
|
||||||
|
{{ #each timepoints }}
|
||||||
{{ >lesionTableTimepointHeader }}
|
{{ >lesionTableTimepointHeader }}
|
||||||
{{ /each }}
|
{{ /each }}
|
||||||
|
{{ /each }}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|||||||
@ -1,15 +1,14 @@
|
|||||||
Measurements = new Meteor.Collection(null);
|
Measurements = new Meteor.Collection(null);
|
||||||
TimepointNames = new Meteor.Collection(null);
|
TabsTimepoints = new Meteor.Collection(null);
|
||||||
|
|
||||||
Template.lesionTable.helpers({
|
Template.lesionTable.helpers({
|
||||||
'measurement': function() {
|
'measurement': function() {
|
||||||
var contentId = Session.get("activeContentId");
|
var contentId = Session.get("activeContentId");
|
||||||
console.log(Measurements.find({contentId: contentId}));
|
|
||||||
return Measurements.find({contentId: contentId});
|
return Measurements.find({contentId: contentId});
|
||||||
},
|
},
|
||||||
'timepointNames': function() {
|
'tabTimepoints': function() {
|
||||||
var contentId = Session.get("activeContentId");
|
var contentId = Session.get("activeContentId");
|
||||||
return Template.instance().timepointNamesDictionary.get(contentId);
|
return TabsTimepoints.find({contentId: contentId});
|
||||||
},
|
},
|
||||||
'lesionData': function() {
|
'lesionData': function() {
|
||||||
var array = [];
|
var array = [];
|
||||||
@ -23,26 +22,41 @@ Template.lesionTable.helpers({
|
|||||||
|
|
||||||
Template.lesionTable.onRendered(function() {
|
Template.lesionTable.onRendered(function() {
|
||||||
|
|
||||||
// TODO: Create seperate method
|
|
||||||
var cols = Template.instance().data.viewportColumns.curValue;
|
var cols = Template.instance().data.viewportColumns.curValue;
|
||||||
var rows = Template.instance().data.viewportRows.curValue;
|
var rows = Template.instance().data.viewportRows.curValue;
|
||||||
|
|
||||||
var totalViewports = cols * rows;
|
var totalViewports = cols * rows;
|
||||||
|
|
||||||
var contentId = Session.get('activeContentId');
|
var contentId = Session.get('activeContentId');
|
||||||
|
var timepointsArray = [];
|
||||||
for(var i=0; i< totalViewports; i++) {
|
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 timepointID = contentId.toString()+ i.toString();
|
||||||
var timepointName = "Baseline";
|
var timepointName = "Baseline";
|
||||||
if(i > 0) {
|
if(i > 0) {
|
||||||
timepointName = "Follow Up "+i;
|
timepointName = "Follow Up "+i;
|
||||||
}
|
}
|
||||||
var timepointObject = {id: timepointID, name: timepointName};
|
var timepointObject = {timepointID: timepointID, timepointName: timepointName};
|
||||||
timepointNamesArray.push(timepointObject);
|
timepointsArray.push(timepointObject);
|
||||||
Template.instance().timepointNamesDictionary.set(contentId, timepointNamesArray);
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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({
|
Template.lesionTableRow.helpers({
|
||||||
'timepoints': function() {
|
'timepoints': function() {
|
||||||
var array = [];
|
return this.lesionData.timepoints;
|
||||||
var timepoints = this.lesionData.timepoints;
|
|
||||||
Object.keys(timepoints).forEach(function(key) {
|
|
||||||
array.push(timepoints[key]);
|
|
||||||
});
|
|
||||||
return array;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -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">
|
<template name="lesionTableTimepointHeader">
|
||||||
<th>{{name}}</th>
|
<th>{{timepointName}}</th>
|
||||||
</template>
|
</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/lesionTableRow/lesionTableRow.js', 'client');
|
||||||
|
|
||||||
api.addFiles('components/lesionTableTimepointCell/lesionTableTimepointCell.html', '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.html', 'client');
|
||||||
|
api.addFiles('components/lesionTableTimepointHeader/lesionTableTimepointHeader.js', 'client');
|
||||||
|
|
||||||
|
|
||||||
// Library functions
|
// Library functions
|
||||||
api.addFiles('lib/getActiveTimepointID.js', 'client');
|
api.addFiles('lib/getActiveTimepointID.js', 'client');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user