LT-338: Fix odd hanging protocol subscription issues

This commit is contained in:
Erik Ziegler 2016-11-16 14:03:02 +01:00
parent dcd7e3f1c5
commit 77e75fe4d9
3 changed files with 116 additions and 109 deletions

View File

@ -10,6 +10,7 @@ Template.viewer.onCreated(() => {
ViewerData = window.ViewerData || ViewerData;
const instance = Template.instance();
instance.subscribe('hangingprotocols');
ValidationErrors.remove({});

View File

@ -1,109 +0,0 @@
//------------------------------------------------------------------------------
// Define Baseline protocol
var proto = new HP.Protocol('LT_Baseline');
proto.locked = true;
var isBaseline = new HP.ProtocolMatchingRule();
isBaseline.required = true;
isBaseline.weight = 1;
isBaseline.attribute = 'timepointType';
isBaseline.constraint = {
equals: {
value: 'baseline'
}
};
proto.addProtocolMatchingRule(isBaseline);
var oneByOne = new HP.ViewportStructure('grid', {
rows: 1,
columns: 1
});
// Stage 1
var single = new HP.Viewport();
var baseline = new HP.StudyMatchingRule(true);
baseline.required = true;
baseline.attribute = 'timepointType';
baseline.constraint = {
equals: {
value: 'baseline'
}
};
single.studyMatchingRules.push(baseline);
var first = new HP.Stage(oneByOne, 'oneByOne');
first.viewports.push(single);
proto.addStage(first);
HP.lesionTrackerBaselineProtocol = proto;
HP.lesionTrackerBaselineProtocol.id = 'lesionTrackerBaselineProtocol';
//------------------------------------------------------------------------------
// Define Followup Protocol
var proto = new HP.Protocol('LT_BaselineFollowup');
proto.locked = true;
var isFollowup = new HP.ProtocolMatchingRule();
isFollowup.required = true;
isFollowup.weight = 2;
isFollowup.attribute = 'timepointType';
isFollowup.constraint = {
equals: {
value: 'followup'
}
};
proto.addProtocolMatchingRule(isFollowup);
var oneByTwo = new HP.ViewportStructure('grid', {
rows: 1,
columns: 2
});
// Stage 1
var left = new HP.Viewport();
var right = new HP.Viewport();
var baseline = new HP.StudyMatchingRule(true);
baseline.required = true;
baseline.attribute = 'timepointType';
baseline.constraint = {
equals: {
value: 'baseline'
}
};
var followup = new HP.StudyMatchingRule();
followup.required = true;
followup.attribute = 'timepointType';
followup.constraint = {
equals: {
value: 'followup'
}
};
left.studyMatchingRules.push(followup);
right.studyMatchingRules.push(baseline);
var first = new HP.Stage(oneByTwo, 'oneByTwo');
first.viewports.push(left);
first.viewports.push(right);
proto.addStage(first);
HP.lesionTrackerFollowupProtocol = proto;
HP.lesionTrackerFollowupProtocol.id = 'lesionTrackerFollowupProtocol';
Meteor.call('removeHangingProtocolByID', HP.lesionTrackerBaselineProtocol.id, function() {
HangingProtocols.insert(HP.lesionTrackerBaselineProtocol);
});
Meteor.call('removeHangingProtocolByID', HP.lesionTrackerFollowupProtocol.id, function() {
HangingProtocols.insert(HP.lesionTrackerFollowupProtocol);
});
HangingProtocols.insert(HP.defaultProtocol);

View File

@ -0,0 +1,115 @@
import { Meteor } from 'meteor/meteor';
Meteor.startup(() => {
console.log('Adding Lesion Tracker Hanging Protocols');
//------------------------------------------------------------------------------
// Define Baseline protocol
const proto = new HP.Protocol('LT_Baseline');
proto.locked = true;
const isBaseline = new HP.ProtocolMatchingRule();
isBaseline.required = true;
isBaseline.weight = 1;
isBaseline.attribute = 'timepointType';
isBaseline.constraint = {
equals: {
value: 'baseline'
}
};
proto.addProtocolMatchingRule(isBaseline);
const oneByOne = new HP.ViewportStructure('grid', {
rows: 1,
columns: 1
});
// Stage 1
const single = new HP.Viewport();
const baseline = new HP.StudyMatchingRule(true);
baseline.required = true;
baseline.attribute = 'timepointType';
baseline.constraint = {
equals: {
value: 'baseline'
}
};
single.studyMatchingRules.push(baseline);
const first = new HP.Stage(oneByOne, 'oneByOne');
first.viewports.push(single);
proto.addStage(first);
HP.lesionTrackerBaselineProtocol = proto;
HP.lesionTrackerBaselineProtocol.id = 'lesionTrackerBaselineProtocol';
//------------------------------------------------------------------------------
// Define Followup Protocol
const protoFollowup = new HP.Protocol('LT_BaselineFollowup');
protoFollowup.locked = true;
const isFollowup = new HP.ProtocolMatchingRule();
isFollowup.required = true;
isFollowup.weight = 2;
isFollowup.attribute = 'timepointType';
isFollowup.constraint = {
equals: {
value: 'followup'
}
};
protoFollowup.addProtocolMatchingRule(isFollowup);
const oneByTwo = new HP.ViewportStructure('grid', {
rows: 1,
columns: 2
});
// Stage 1
const left = new HP.Viewport();
const right = new HP.Viewport();
const baseline2 = new HP.StudyMatchingRule(true);
baseline2.required = true;
baseline2.attribute = 'timepointType';
baseline2.constraint = {
equals: {
value: 'baseline'
}
};
const followup = new HP.StudyMatchingRule();
followup.required = true;
followup.attribute = 'timepointType';
followup.constraint = {
equals: {
value: 'followup'
}
};
left.studyMatchingRules.push(followup);
right.studyMatchingRules.push(baseline2);
const first2 = new HP.Stage(oneByTwo, 'oneByTwo');
first2.viewports.push(left);
first2.viewports.push(right);
protoFollowup.addStage(first2);
HP.lesionTrackerFollowupProtocol = protoFollowup;
HP.lesionTrackerFollowupProtocol.id = 'lesionTrackerFollowupProtocol';
Meteor.call('removeHangingProtocolByID', HP.lesionTrackerBaselineProtocol.id, function() {
HangingProtocols.insert(HP.lesionTrackerBaselineProtocol);
});
Meteor.call('removeHangingProtocolByID', HP.lesionTrackerFollowupProtocol.id, function() {
HangingProtocols.insert(HP.lesionTrackerFollowupProtocol);
});
HangingProtocols.insert(HP.defaultProtocol);
});