From 77e75fe4d9c2d206dd623f23e43d9aeedab61e3a Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Wed, 16 Nov 2016 14:03:02 +0100 Subject: [PATCH] LT-338: Fix odd hanging protocol subscription issues --- .../client/components/viewer/viewer.js | 1 + .../client/lesionTrackerHangingProtocol.js | 109 ----------------- .../server/lesionTrackerHangingProtocol.js | 115 ++++++++++++++++++ 3 files changed, 116 insertions(+), 109 deletions(-) delete mode 100644 LesionTracker/client/lesionTrackerHangingProtocol.js create mode 100644 LesionTracker/server/lesionTrackerHangingProtocol.js diff --git a/LesionTracker/client/components/viewer/viewer.js b/LesionTracker/client/components/viewer/viewer.js index 2e6a57d37..81fb1d3bb 100644 --- a/LesionTracker/client/components/viewer/viewer.js +++ b/LesionTracker/client/components/viewer/viewer.js @@ -10,6 +10,7 @@ Template.viewer.onCreated(() => { ViewerData = window.ViewerData || ViewerData; const instance = Template.instance(); + instance.subscribe('hangingprotocols'); ValidationErrors.remove({}); diff --git a/LesionTracker/client/lesionTrackerHangingProtocol.js b/LesionTracker/client/lesionTrackerHangingProtocol.js deleted file mode 100644 index 414bf75a6..000000000 --- a/LesionTracker/client/lesionTrackerHangingProtocol.js +++ /dev/null @@ -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); \ No newline at end of file diff --git a/LesionTracker/server/lesionTrackerHangingProtocol.js b/LesionTracker/server/lesionTrackerHangingProtocol.js new file mode 100644 index 000000000..536b12807 --- /dev/null +++ b/LesionTracker/server/lesionTrackerHangingProtocol.js @@ -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); +}); \ No newline at end of file