83 lines
2.5 KiB
JavaScript
83 lines
2.5 KiB
JavaScript
import { Template } from 'meteor/templating';
|
|
import { ReactiveDict } from 'meteor/reactive-dict';
|
|
|
|
// TODO: Check why I can't use absolute paths for this? Keeps saying module not found
|
|
import { AdditionalFinding } from '../../../both/schema/additionalFinding';
|
|
|
|
Template.additionalFindings.onCreated(function additionalFindingsOnCreated() {
|
|
console.log('additionalFindingsOnCreated');
|
|
const instance = Template.instance();
|
|
|
|
instance.currentSchema = AdditionalFinding;
|
|
instance.state = new ReactiveDict();
|
|
|
|
if (!instance.data.currentTimepointId) {
|
|
console.warn('Case has no timepointId');
|
|
return;
|
|
}
|
|
|
|
const currentTimepointId = instance.data.currentTimepointId;
|
|
if (!currentTimepointId) {
|
|
console.warn('No currentTimepointId');
|
|
}
|
|
|
|
console.log(AdditionalFindings.find().fetch());
|
|
const additionalFindings = AdditionalFindings.findOne({
|
|
timepointId: currentTimepointId
|
|
});
|
|
|
|
if (additionalFindings) {
|
|
instance.id = additionalFindings._id;
|
|
|
|
// Don't store the MongoDB Id in the ReactiveDict
|
|
delete additionalFindings._id;
|
|
|
|
instance.state.set(additionalFindings);
|
|
} else {
|
|
const defaultData = instance.currentSchema.clean({});
|
|
instance.state.set(defaultData);
|
|
|
|
// Include patientId and timepointId
|
|
defaultData.patientId = Session.get('patientId');
|
|
defaultData.timepointId = currentTimepointId;
|
|
|
|
// TODO: Turn this into a Meteor Call to insert it on the server
|
|
instance.id = AdditionalFindings.insert(defaultData);
|
|
}
|
|
});
|
|
|
|
Template.additionalFindings.onRendered(function additionalFindingsOnRendered() {
|
|
const instance = Template.instance();
|
|
|
|
instance.autorun(() => {
|
|
console.log('Updating AdditionalFindings Collection');
|
|
console.log(instance.state.all());
|
|
|
|
// TODO: Turn this into a Meteor Call to update it on the server
|
|
let update = instance.state.all();
|
|
AdditionalFindings.update(instance.id, {
|
|
$set: update
|
|
});
|
|
});
|
|
});
|
|
|
|
Template.additionalFindings.helpers({
|
|
// We need these helper methods
|
|
// since we assign them into instance object instead of instance.data
|
|
currentSchema() {
|
|
return Template.instance().currentSchema;
|
|
},
|
|
|
|
state() {
|
|
return Template.instance().state;
|
|
},
|
|
|
|
regionsOfMetastaticDiseaseSelect2Options() {
|
|
return {
|
|
placeholder: 'Search Regions',
|
|
allowClear: true,
|
|
multiple: true
|
|
};
|
|
}
|
|
});
|