diff --git a/LesionTracker/client/components/app/app.html b/LesionTracker/client/components/app/app.html
index ec011ed1c..9a3c18afb 100644
--- a/LesionTracker/client/components/app/app.html
+++ b/LesionTracker/client/components/app/app.html
@@ -28,7 +28,6 @@
- {{>optionsModal}}
{{>serverInformationModal}}
{{>lastLoginModal}}
{{>progressDialog}}
diff --git a/LesionTracker/client/components/toolbarSection/toolbarSection.html b/LesionTracker/client/components/toolbarSection/toolbarSection.html
index 34c4dc95a..0654390c6 100644
--- a/LesionTracker/client/components/toolbarSection/toolbarSection.html
+++ b/LesionTracker/client/components/toolbarSection/toolbarSection.html
@@ -5,7 +5,7 @@
{{>roundedButtonGroup leftSidebarToggleButtonData}}
- {{>toolbarSectionTools toolbarButtons=toolbarButtons extraToolbarButtons=extraToolbarButtons}}
+ {{>toolbarSectionTools toolbarButtons=toolbarButtons}}
{{#if splitView}}
{{>studySeriesQuickSwitch (clone this side="right" viewportIndex=1)}}
diff --git a/LesionTracker/client/components/toolbarSection/toolbarSection.js b/LesionTracker/client/components/toolbarSection/toolbarSection.js
index 1822d76df..56fe253fd 100644
--- a/LesionTracker/client/components/toolbarSection/toolbarSection.js
+++ b/LesionTracker/client/components/toolbarSection/toolbarSection.js
@@ -1,5 +1,6 @@
import { Template } from 'meteor/templating';
import { Session } from 'meteor/session';
+import { OHIF } from 'meteor/ohif:core';
import { Viewerbase } from 'meteor/ohif:viewerbase';
Template.toolbarSection.helpers({
@@ -233,14 +234,9 @@ Template.toolbarSection.events({
},
'click #toggleTrial'(event) {
- const $this = $(event.currentTarget);
-
- // Stop here if the tool is disabled
- if ($this.hasClass('disabled')) {
- return;
+ if (!$(event.currentTarget).hasClass('disabled')) {
+ OHIF.ui.showDialog('trialOptionsModal');
}
-
- $('#optionsModal').modal();
}
});
diff --git a/LesionTracker/client/routes.js b/LesionTracker/client/routes.js
index 9c8bd2afe..c505cff73 100644
--- a/LesionTracker/client/routes.js
+++ b/LesionTracker/client/routes.js
@@ -15,7 +15,6 @@ Router.onBeforeAction('loading');
var data = {
additionalTemplates: [
- 'optionsModal',
'serverInformationModal',
'lastLoginModal',
'viewSeriesDetailsModal'
diff --git a/OHIFViewer/client/components/toolbarSection/toolbarSection.html b/OHIFViewer/client/components/toolbarSection/toolbarSection.html
index fe062ac84..b652328eb 100644
--- a/OHIFViewer/client/components/toolbarSection/toolbarSection.html
+++ b/OHIFViewer/client/components/toolbarSection/toolbarSection.html
@@ -4,9 +4,7 @@
{{>roundedButtonGroup leftSidebarToggleButtonData}}
- {{>toolbarSectionTools
- toolbarButtons=toolbarButtons
- extraToolbarButtons=extraToolbarButtons}}
+ {{>toolbarSectionTools toolbarButtons=toolbarButtons}}
{{>roundedButtonGroup rightSidebarToggleButtonData}}
diff --git a/Packages/ohif-lesiontracker/both/configuration/tools/bidirectional.js b/Packages/ohif-lesiontracker/both/configuration/tools/bidirectional.js
index c23f3294d..fc22d939c 100644
--- a/Packages/ohif-lesiontracker/both/configuration/tools/bidirectional.js
+++ b/Packages/ohif-lesiontracker/both/configuration/tools/bidirectional.js
@@ -1,5 +1,6 @@
import { SimpleSchema } from 'meteor/aldeed:simple-schema';
import { MeasurementSchemaTypes } from 'meteor/ohif:measurements/both/schema/measurements';
+// import { OHIF } from 'meteor/ohif:core';
const CornerstoneHandleSchema = MeasurementSchemaTypes.CornerstoneHandleSchema;
@@ -68,7 +69,7 @@ const displayFunction = data => {
// const nodalType = data.isNodal ? 'nodal' : 'extraNodal';
// Get criteria types
- // const criteriaTypes = TrialCriteriaTypes.find({
+ // const criteriaTypes = OHIF.lesiontracker.TrialCriteriaTypes.find({
// selected: true
// }).map(criteria => {
// return criteria.id;
diff --git a/Packages/ohif-lesiontracker/client/components/index.js b/Packages/ohif-lesiontracker/client/components/index.js
index 4b9bd4f05..4eda24336 100644
--- a/Packages/ohif-lesiontracker/client/components/index.js
+++ b/Packages/ohif-lesiontracker/client/components/index.js
@@ -1,9 +1,9 @@
import './dialog/nonTargetMeasurement.html';
import './dialog/nonTargetMeasurement.js';
-import './optionsModal/optionsModal.html';
-import './optionsModal/optionsModal.styl';
-import './optionsModal/optionsModal.js';
+import './trialOptionsModal/irRCDescription.html';
+import './trialOptionsModal/recistDescription.html';
-import './optionsModal/recistDescription/recistDescription.html';
-import './optionsModal/irRCDescription/irRCDescription.html';
+import './trialOptionsModal/trialOptionsModal.html';
+import './trialOptionsModal/trialOptionsModal.styl';
+import './trialOptionsModal/trialOptionsModal.js';
diff --git a/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.html b/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.html
deleted file mode 100644
index 81c6f3b42..000000000
--- a/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
Select one or more Trial Criteria types:
- {{ #each trialCriteriaTypes}}
-
- {{ /each }}
-
-
Selected Trial Criteria:
- {{ #each trialCriteriaTypes}}
- {{ #if selected }}
-
- {{> Template.dynamic template=descriptionTemplate }}
-
- {{ /if }}
- {{ /each }}
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.js b/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.js
deleted file mode 100644
index 7c70bad8e..000000000
--- a/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import { OHIF } from 'meteor/ohif:core';
-
-TrialCriteriaTypes = new Meteor.Collection(null);
-TrialCriteriaTypes._debugName = 'TrialCriteriaTypes';
-
-TrialCriteriaTypes.insert({
- id: 'RECIST',
- name: 'RECIST 1.1',
- descriptionTemplate: 'recistDescription',
- selected: true
-});
-
-TrialCriteriaTypes.insert({
- id: 'irRC',
- name: 'irRC',
- descriptionTemplate: 'irRCDescription',
- selected: false
-});
-
-Template.optionsModal.helpers({
- trialCriteriaTypes: function() {
- return TrialCriteriaTypes.find();
- }
-});
-
-Template.optionsModal.events({
- /**
- * When the trial criteria radio buttons are changed, change the
- * trial assessment criteria for the Lesion Tracker
- *
- * @param e The 'change' event on the selected radio button
- */
- 'change input.trialCriteria': function(e) {
- var isChecked = e.currentTarget.checked;
-
- // Set "Selected" to false for the entire collection
- // TODO: Remove this when we allow multiple criteria
- TrialCriteriaTypes.update({}, {
- $set: {
- selected: false
- }
- }, {
- multi: true
- });
-
- // Set the current Criteria in the collection to selected
- TrialCriteriaTypes.update(this._id, {
- $set: {
- selected: isChecked
- }
- });
- }
-});
diff --git a/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.styl b/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.styl
deleted file mode 100644
index c957dd295..000000000
--- a/Packages/ohif-lesiontracker/client/components/optionsModal/optionsModal.styl
+++ /dev/null
@@ -1,7 +0,0 @@
-.trialCriteriaLabel
- margin: 0 5px
-
-#optionsModal
- .panel
- background-color: transparent
-
\ No newline at end of file
diff --git a/Packages/ohif-lesiontracker/client/components/optionsModal/irRCDescription/irRCDescription.html b/Packages/ohif-lesiontracker/client/components/trialOptionsModal/irRCDescription.html
similarity index 100%
rename from Packages/ohif-lesiontracker/client/components/optionsModal/irRCDescription/irRCDescription.html
rename to Packages/ohif-lesiontracker/client/components/trialOptionsModal/irRCDescription.html
diff --git a/Packages/ohif-lesiontracker/client/components/optionsModal/recistDescription/recistDescription.html b/Packages/ohif-lesiontracker/client/components/trialOptionsModal/recistDescription.html
similarity index 100%
rename from Packages/ohif-lesiontracker/client/components/optionsModal/recistDescription/recistDescription.html
rename to Packages/ohif-lesiontracker/client/components/trialOptionsModal/recistDescription.html
diff --git a/Packages/ohif-lesiontracker/client/components/trialOptionsModal/trialOptionsModal.html b/Packages/ohif-lesiontracker/client/components/trialOptionsModal/trialOptionsModal.html
new file mode 100644
index 000000000..2759b17e4
--- /dev/null
+++ b/Packages/ohif-lesiontracker/client/components/trialOptionsModal/trialOptionsModal.html
@@ -0,0 +1,17 @@
+
+ {{#dialogForm (extend this
+ schema=instance.schema id='trialOptionsModal' dialogClass='modal-lg'
+ confirmLabel='Save' title='Clinical Trial Options'
+ )}}
+ Select one or more Trial Criteria types:
+ {{>groupRadio class='js-trial' labelClass='form-group' key='trialCriteria'}}
+
+
Selected Trial Criteria:
+
+ {{#let descriptionTemplate=(getDescriptionTemplate instance.selectedTrial.get)}}
+ {{>Template.dynamic template=descriptionTemplate}}
+ {{/let}}
+
+
+ {{/dialogForm}}
+
diff --git a/Packages/ohif-lesiontracker/client/components/trialOptionsModal/trialOptionsModal.js b/Packages/ohif-lesiontracker/client/components/trialOptionsModal/trialOptionsModal.js
new file mode 100644
index 000000000..ee91c7b4b
--- /dev/null
+++ b/Packages/ohif-lesiontracker/client/components/trialOptionsModal/trialOptionsModal.js
@@ -0,0 +1,72 @@
+import { Meteor } from 'meteor/meteor';
+import { Template } from 'meteor/templating';
+import { ReactiveVar } from 'meteor/reactive-var';
+import { _ } from 'meteor/underscore';
+import { OHIF } from 'meteor/ohif:core';
+import { SimpleSchema } from 'meteor/aldeed:simple-schema';
+
+Meteor.startup(() => {
+ const TrialCriteriaTypes = new Meteor.Collection(null);
+ TrialCriteriaTypes._debugName = 'TrialCriteriaTypes';
+
+ TrialCriteriaTypes.insert({
+ id: 'RECIST',
+ name: 'RECIST 1.1',
+ descriptionTemplate: 'recistDescription',
+ selected: true
+ });
+
+ TrialCriteriaTypes.insert({
+ id: 'irRC',
+ name: 'irRC',
+ descriptionTemplate: 'irRCDescription',
+ selected: false
+ });
+
+ OHIF.lesiontracker.TrialCriteriaTypes = TrialCriteriaTypes;
+});
+
+Template.trialOptionsModal.onCreated(() => {
+ const instance = Template.instance();
+ const { TrialCriteriaTypes } = OHIF.lesiontracker;
+ const types = TrialCriteriaTypes.find().fetch();
+ const defaultValue = _.findWhere(types, { selected: true })._id;
+ instance.selectedTrial = new ReactiveVar(defaultValue);
+
+ instance.schema = new SimpleSchema({
+ trialCriteria: {
+ type: String,
+ allowedValues: _.pluck(types, '_id'),
+ valuesLabels: _.pluck(types, 'name'),
+ defaultValue
+ }
+ });
+
+ instance.data.promise.then(formData => {
+ // Set "selected" to false for the entire collection
+ TrialCriteriaTypes.update({}, {
+ $set: { selected: false }
+ }, {
+ multi: true
+ });
+
+ // TODO: Use filter with "_id: $in" when allowing multiple criteria
+ // Set "selected" to true for the current criteria
+ TrialCriteriaTypes.update(formData.trialCriteria, {
+ $set: { selected: true }
+ });
+ });
+});
+
+Template.trialOptionsModal.helpers({
+ getDescriptionTemplate(_id) {
+ return OHIF.lesiontracker.TrialCriteriaTypes.findOne(_id).descriptionTemplate;
+ }
+});
+
+Template.trialOptionsModal.events({
+ 'change .js-trial'(event, instance) {
+ const form = instance.$('form').first().data('component');
+ instance.selectedTrial.set(form.value().trialCriteria);
+ }
+});
diff --git a/Packages/ohif-lesiontracker/client/components/trialOptionsModal/trialOptionsModal.styl b/Packages/ohif-lesiontracker/client/components/trialOptionsModal/trialOptionsModal.styl
new file mode 100644
index 000000000..39d3bbede
--- /dev/null
+++ b/Packages/ohif-lesiontracker/client/components/trialOptionsModal/trialOptionsModal.styl
@@ -0,0 +1,3 @@
+#trialOptionsModal
+ .panel
+ background-color: transparent
diff --git a/Packages/ohif-lesiontracker/client/lib/MeasurementValidation.js b/Packages/ohif-lesiontracker/client/lib/MeasurementValidation.js
index 63928e864..437bf043c 100644
--- a/Packages/ohif-lesiontracker/client/lib/MeasurementValidation.js
+++ b/Packages/ohif-lesiontracker/client/lib/MeasurementValidation.js
@@ -218,7 +218,7 @@ function assessSingleMeasurement(constraints, measurementData) {
function validateSingleMeasurement(measurementData) {
// Obtain the name of the current TrialResponseAssessmentCriteria that
// we are using.
- var criteriaTypes = TrialCriteriaTypes.find({
+ var criteriaTypes = OHIF.lesiontracker.TrialCriteriaTypes.find({
selected: true
}).map(function(criteria) {
return criteria.id;
@@ -268,7 +268,7 @@ function validateGroups() {
// Obtain the names of the current TrialResponseAssessmentCriteria that
// we are using.
- var criteriaTypes = TrialCriteriaTypes.find({
+ var criteriaTypes = OHIF.lesiontracker.TrialCriteriaTypes.find({
selected: true
}).map(function(criteria) {
return criteria.id;
@@ -305,7 +305,7 @@ function validateGroups() {
function validateAll() {
// Obtain the names of the current TrialResponseAssessmentCriteria that
// we are using.
- var criteriaTypes = TrialCriteriaTypes.find({
+ var criteriaTypes = OHIF.lesiontracker.TrialCriteriaTypes.find({
selected: true
}).map(function(criteria) {
return criteria.id;
diff --git a/Packages/ohif-lesiontracker/package.js b/Packages/ohif-lesiontracker/package.js
index 0ae134e04..9e17bda6c 100644
--- a/Packages/ohif-lesiontracker/package.js
+++ b/Packages/ohif-lesiontracker/package.js
@@ -38,7 +38,6 @@ Package.onUse(function(api) {
api.export('ValidationErrors', 'client');
api.export('LesionLocations', 'client');
api.export('LocationResponses', 'client');
- api.export('TrialCriteriaTypes', 'client');
// Export collections spanning both client and server
api.export('Configuration', ['client', 'server']);
diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.js b/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.js
index cf4d8a7be..501322209 100644
--- a/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.js
+++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.js
@@ -39,7 +39,7 @@ Template.measurementTableView.helpers({
getNewToolGroup(tool) {
const configuration = OHIF.measurements.MeasurementApi.getConfiguration();
- const trialCriteriaType = TrialCriteriaTypes.findOne({ selected: true });
+ const trialCriteriaType = OHIF.lesiontracker.TrialCriteriaTypes.findOne({ selected: true });
const trialCriteriaTypeId = trialCriteriaType.id.toLowerCase();
const trialToolGroupMap = {
recist: 'nonTargets',
diff --git a/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js b/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js
index 56a2f0abc..7628d9863 100644
--- a/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js
+++ b/Packages/ohif-measurements/client/conformance/ConformanceCriteria.js
@@ -22,9 +22,9 @@ class ConformanceCriteria {
}, 300);
Tracker.autorun(() => {
- const trialCriteriaType = TrialCriteriaTypes.findOne({ selected: true });
+ const selectedType = OHIF.lesiontracker.TrialCriteriaTypes.findOne({ selected: true });
this.measurementApi.changeObserver.depend();
- validate(trialCriteriaType);
+ validate(selectedType);
});
}