diff --git a/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.html b/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.html
index 318ae510a..ce76cab1d 100644
--- a/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.html
+++ b/Packages/ohif-measurements/client/components/longitudinal/longitudinalStudyListContextMenu/longitudinalStudyListContextMenu.html
@@ -2,17 +2,26 @@
{{#dropdownForm}}
View
-
- Associate
+
+ {{#let classes=getAssociationClasses}}
+
+ Associate
-
+
Remove Association
+ {{/let}}
+
0) {
+ assessment.selected = selectedStudies.length;
+ // Loop through the selected Studies and return true if at least one study has no association.
+ for (let i = selectedStudies.length - 1; i >= 0; --i) {
+ let study = selectedStudies[i],
+ timepoints = timepointApi.study(study.studyInstanceUid);
+ if (timepoints && timepoints.length > 0) {
+ assessment.associated++;
+ }
+ }
+ }
+ }
+ return assessment;
+}
+
+Template.longitudinalStudyListContextMenu.helpers({
+
+ getAssociationClasses() {
+ const disabledClass = 'disabled';
+ let classList = '';
+
+ const assessment = getAssociationAssessment();
+ if (assessment.selected < 1 || assessment.associated > 0) {
+ classList += disabledClass;
+ }
+
+ return classList;
+ },
+
+ getRemoveAssociationClasses() {
+ const disabledClass = 'disabled';
+ let classList = '';
+
+ const assessment = getAssociationAssessment();
+ if (assessment.selected < 1 || assessment.selected !== assessment.associated) {
+ classList += disabledClass;
+ }
+
+ return classList;
+ }
+});
+
Template.longitudinalStudyListContextMenu.replaces(defaultTemplate);
+Template[defaultTemplate].inheritsHelpersFrom('longitudinalStudyListContextMenu');
StudyList.functions.launchStudyAssociation = () => OHIF.ui.showFormDialog('dialogStudyAssociation');
StudyList.functions.removeTimepointAssociations = removeTimepointAssociations;
diff --git a/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js b/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js
index fbaedadd3..c1528a108 100644
--- a/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js
+++ b/Packages/ohif-study-list/client/components/studyContextMenu/studyContextMenu.js
@@ -1,4 +1,5 @@
import { OHIF } from 'meteor/ohif:core';
+import { $ } from 'meteor/jquery';
/**
* This function is used inside the StudyList package to define a right click callback
@@ -55,12 +56,18 @@ function viewSeriesDetails() {
Template.studyContextMenu.events({
'click a': function(e) {
- var study = Template.studyContextMenu.$study;
- var id = $(e.currentTarget).attr('id');
+ var id, fn, target = $(e.currentTarget);
- var fn = StudyList.functions[id];
- if (fn && typeof(fn) === 'function') {
- fn(study);
+ if (target.hasClass('disabled')) {
+ return;
+ }
+
+ id = target.attr('id');
+ if (id in StudyList.functions) {
+ fn = StudyList.functions[id];
+ if (typeof fn === 'function') {
+ fn(Template.studyContextMenu.$study);
+ }
}
var dialog = $('#studyContextMenu');