From b99b986630bb5abe67c039d9ef443b07c442cbb5 Mon Sep 17 00:00:00 2001 From: Leonardo Campos Date: Tue, 14 Feb 2017 01:25:44 -0200 Subject: [PATCH] LT-413: Enable analytics on Lesion Tracker --- LesionTracker/server/dropAllCollections.js | 8 ++++++-- .../ohif-hanging-protocols/client/collections.js | 2 ++ .../client/components/optionsModal/optionsModal.js | 1 + Packages/ohif-lesiontracker/server/methods.js | 12 ++++++++---- Packages/ohif-lesiontracker/server/publications.js | 5 +++++ Packages/ohif-study-list/both/schema/servers.js | 10 ++++++++++ .../client/active-entry/activeEntrySignIn.js | 4 ++++ .../ohif-user-management/server/createDemoUser.js | 7 ++++++- config/dcm4cheeDIMSE.json | 1 + config/orthancDICOMWeb.json | 1 + config/orthancDIMSE.json | 1 + 11 files changed, 45 insertions(+), 7 deletions(-) diff --git a/LesionTracker/server/dropAllCollections.js b/LesionTracker/server/dropAllCollections.js index 252d3f7e8..e72e5e89d 100644 --- a/LesionTracker/server/dropAllCollections.js +++ b/LesionTracker/server/dropAllCollections.js @@ -1,12 +1,16 @@ // Temporary fix to drop all Collections on server restart // http://stackoverflow.com/questions/23891631/meteor-how-can-i-drop-all-mongo-collections-and-clear-all-data-on-startup Meteor.startup(() => { - console.warn('Dropping all Collections!'); + if (!Meteor.settings.dropCollections) { + return; + } + + console.warn('Dropping all global Collections!'); Object.keys(global).forEach((key) => { const object = global[key]; if (object instanceof Meteor.Collection) { if (!(/^server|currentServer$/).test(object._name)) { - console.warn(`Dropping: ${object._debugName}`); + console.warn(`Dropping: ${object._debugName || object._name}`); object.remove({}); } } diff --git a/Packages/ohif-hanging-protocols/client/collections.js b/Packages/ohif-hanging-protocols/client/collections.js index ae3a0e967..d5430b0f2 100644 --- a/Packages/ohif-hanging-protocols/client/collections.js +++ b/Packages/ohif-hanging-protocols/client/collections.js @@ -1,6 +1,8 @@ MatchedProtocols = new Meteor.Collection(null); +MatchedProtocols._debugName = 'MatchedProtocols'; Comparators = new Meteor.Collection(null); +Comparators._debugName = 'Comparators'; var comparators = [{ id: 'equals', diff --git a/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.js b/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.js index caefb1936..7c70bad8e 100644 --- a/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.js +++ b/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.js @@ -1,6 +1,7 @@ import { OHIF } from 'meteor/ohif:core'; TrialCriteriaTypes = new Meteor.Collection(null); +TrialCriteriaTypes._debugName = 'TrialCriteriaTypes'; TrialCriteriaTypes.insert({ id: 'RECIST', diff --git a/Packages/ohif-lesiontracker/server/methods.js b/Packages/ohif-lesiontracker/server/methods.js index 88a7e90fc..45054e391 100644 --- a/Packages/ohif-lesiontracker/server/methods.js +++ b/Packages/ohif-lesiontracker/server/methods.js @@ -6,9 +6,11 @@ import { measurementTools } from 'meteor/ohif:lesiontracker/both/configuration/m let MeasurementCollections = {}; measurementTools.forEach(tool => { MeasurementCollections[tool.id] = new Mongo.Collection(tool.id); + MeasurementCollections[tool.id]._debugName = tool.id; }); const Timepoints = new Mongo.Collection('timepoints'); +Timepoints._debugName = 'Timepoints'; Timepoints.find().observe({ remove() { @@ -18,10 +20,12 @@ Timepoints.find().observe({ // Drop our collections for testing purposes Meteor.startup(() => { - Timepoints.remove({}); - measurementTools.forEach(tool => { - MeasurementCollections[tool.id].remove({}); - }); + if (Meteor.settings.dropCollections) { + Timepoints.remove({}); + measurementTools.forEach(tool => { + MeasurementCollections[tool.id].remove({}); + }); + } }); // TODO: Make storage use update instead of clearing the entire collection and diff --git a/Packages/ohif-lesiontracker/server/publications.js b/Packages/ohif-lesiontracker/server/publications.js index 4aca6c6cd..0d4f0e9ea 100644 --- a/Packages/ohif-lesiontracker/server/publications.js +++ b/Packages/ohif-lesiontracker/server/publications.js @@ -39,10 +39,15 @@ Meteor.publish('reviewers', function() { // Temporary fix to drop all Collections on server restart // http://stackoverflow.com/questions/23891631/meteor-how-can-i-drop-all-mongo-collections-and-clear-all-data-on-startup Meteor.startup(function() { + if (!Meteor.settings.dropCollections) { + return; + } + for (var property in global) { var object = global[property]; if (object instanceof Meteor.Collection) { if (!(/^server|currentServer$/).test(object._name)) { + console.warn(`Dropping: ${object._debugName || object._name}`); object.remove({}); } } diff --git a/Packages/ohif-study-list/both/schema/servers.js b/Packages/ohif-study-list/both/schema/servers.js index bc4bd2111..439ad5123 100644 --- a/Packages/ohif-study-list/both/schema/servers.js +++ b/Packages/ohif-study-list/both/schema/servers.js @@ -167,6 +167,11 @@ export const PublicServerConfig = new SimpleSchema({ label: 'Verify Email', defaultValue: false }, + demoUserEnabled: { + type: Boolean, + label: 'Creates demo user on startup and show TestDrive button', + defaultValue: true + }, ui: { type: UISettings, label: 'UI Settings' @@ -196,6 +201,11 @@ export const ServerConfiguration = new SimpleSchema({ label: 'Default Service Type', defaultValue: 'dicomWeb' }, + dropCollections: { + type: Boolean, + label: 'Drop database collections', + defaultValue: false + }, public: { type: PublicServerConfig, label: 'Public Server Configuration', diff --git a/Packages/ohif-user-management/client/active-entry/activeEntrySignIn.js b/Packages/ohif-user-management/client/active-entry/activeEntrySignIn.js index 0894f4ff8..d58728bbe 100644 --- a/Packages/ohif-user-management/client/active-entry/activeEntrySignIn.js +++ b/Packages/ohif-user-management/client/active-entry/activeEntrySignIn.js @@ -5,6 +5,10 @@ import { ActiveEntry } from 'meteor/clinical:active-entry'; Template.entrySignIn.hooks({ rendered: function () { + if (!Meteor.settings.public.demoUserEnabled) { + return; + } + // Create Test Drive button dynamically let btnTestDrive = $('