From cd4a9a51da6be3ad582e35b3e6146badb7df21ea Mon Sep 17 00:00:00 2001 From: Aysel Afsar Date: Wed, 2 Mar 2016 15:49:20 -0500 Subject: [PATCH] LT-115: Set CR/UN/EX buttons as enabled for follow-up timepoints --- LesionTracker/client/components/viewer.js | 12 +++------- .../lib/setTimepointActiveTool.js | 10 -------- .../lesiontracker/lib/timepointAutoCheck.js | 23 +++++++++++++++++++ .../lib/worklist/worklistModification.js | 3 --- Packages/lesiontracker/package.js | 4 ++-- .../components/viewer/toolbar/toolbar.js | 14 +++++++++++ Packages/viewerbase/lib/toolManager.js | 7 ++++++ 7 files changed, 49 insertions(+), 24 deletions(-) delete mode 100644 Packages/lesiontracker/lib/setTimepointActiveTool.js create mode 100644 Packages/lesiontracker/lib/timepointAutoCheck.js diff --git a/LesionTracker/client/components/viewer.js b/LesionTracker/client/components/viewer.js index ca930afda..1d694fdd7 100644 --- a/LesionTracker/client/components/viewer.js +++ b/LesionTracker/client/components/viewer.js @@ -121,6 +121,9 @@ Template.viewer.onCreated(function() { if (subscriptionsReady) { + // Set buttons as enabled/disabled when Timepoints collection is ready + timepointAutoCheck(dataContext); + TrialResponseCriteria.validateAllDelayed(); ViewerStudies.find().observe({ @@ -261,15 +264,6 @@ Template.viewer.onCreated(function() { TrialResponseCriteria.validateAll(); } }); - - // Set active tool for timepoint - if (dataContext && dataContext.timepointIds) { - dataContext.timepointIds.forEach(function(timepointId) { - var timepoint = Timepoints.findOne({timepointId: timepointId}); - setTimepointActiveTool(timepoint); - }); - } - } }); }); diff --git a/Packages/lesiontracker/lib/setTimepointActiveTool.js b/Packages/lesiontracker/lib/setTimepointActiveTool.js deleted file mode 100644 index 43cd7a8ee..000000000 --- a/Packages/lesiontracker/lib/setTimepointActiveTool.js +++ /dev/null @@ -1,10 +0,0 @@ -// If timepoint is baseline, sets lesion tool as active tool -// Else sets default tool -setTimepointActiveTool = function(timepoint) { - if ((timepoint.timepointType).toLowerCase() === "baseline") { - // Set active tool as lesion tool - toolManager.setActiveTool('lesion'); - } else { - toolManager.setActiveTool(toolManager.getDefaultTool()); - } -}; \ No newline at end of file diff --git a/Packages/lesiontracker/lib/timepointAutoCheck.js b/Packages/lesiontracker/lib/timepointAutoCheck.js new file mode 100644 index 000000000..0a12dde6d --- /dev/null +++ b/Packages/lesiontracker/lib/timepointAutoCheck.js @@ -0,0 +1,23 @@ +// If timepoint is baseline, sets lesion tool as active tool +setTimepointTools = function(timepoint) { + + // Enabled tools for only follow-up tools + var fuTools = ["button#crunexTools"]; + if ((timepoint.timepointType).toLowerCase() === "baseline") { + // Set active tool as lesion tool + toolManager.setActiveTool('lesion'); + toolManager.addDisabledTool({tools: fuTools, status: true}); + } else { + toolManager.setActiveTool(toolManager.getDefaultTool()); + toolManager.addDisabledTool({tools: fuTools, status: false}); + } +}; + +timepointAutoCheck = function(templateData) { + if (templateData && templateData.timepointIds) { + templateData.timepointIds.forEach(function(timepointId) { + var timepoint = Timepoints.findOne({timepointId: timepointId}); + setTimepointTools(timepoint); + }); + } +}; \ No newline at end of file diff --git a/Packages/lesiontracker/lib/worklist/worklistModification.js b/Packages/lesiontracker/lib/worklist/worklistModification.js index aad8fd258..487a73eef 100644 --- a/Packages/lesiontracker/lib/worklist/worklistModification.js +++ b/Packages/lesiontracker/lib/worklist/worklistModification.js @@ -33,9 +33,6 @@ function dblClickOnStudy(data) { return; } - // Set active tool for timepoint - setTimepointActiveTool(timepoint); - // Add the Timepoint name to the Patient name to create the tab title title += ' ' + getTimepointName(timepoint); diff --git a/Packages/lesiontracker/package.js b/Packages/lesiontracker/package.js index eb086732e..67598efb4 100644 --- a/Packages/lesiontracker/package.js +++ b/Packages/lesiontracker/package.js @@ -169,7 +169,7 @@ Package.onUse(function(api) { api.addFiles('lib/clearTools.js', 'client'); api.addFiles('lib/calculateTotalLesionBurden.js', 'client'); api.addFiles('lib/convertToNonTarget.js', 'client'); - api.addFiles('lib/setTimepointActiveTool.js', 'client'); + api.addFiles('lib/timepointAutoCheck.js', 'client'); api.addFiles('lib/syncMeasurementAndToolData.js', 'client'); api.addFiles('lib/syncImageMeasurementAndToolData.js', 'client'); @@ -201,7 +201,7 @@ Package.onUse(function(api) { api.export('getTrialCriteriaConstraints', 'client'); api.export('calculateTotalLesionBurden', 'client'); api.export('convertToNonTarget', 'client'); - api.export('setTimepointActiveTool', 'client'); + api.export('timepointAutoCheck', 'client'); // Export global objects diff --git a/Packages/viewerbase/client/components/viewer/toolbar/toolbar.js b/Packages/viewerbase/client/components/viewer/toolbar/toolbar.js index 17f6c1fb2..468e0c347 100644 --- a/Packages/viewerbase/client/components/viewer/toolbar/toolbar.js +++ b/Packages/viewerbase/client/components/viewer/toolbar/toolbar.js @@ -108,6 +108,17 @@ function getDefaultButtonData() { return buttonData; } +function setButtonsDisability() { + var disabledTools = toolManager.getDisabledTool(); + disabledTools.forEach(function(toolData) { + var tools = toolData.tools; + var status = toolData.status; + tools.forEach(function(element) { + $(element).prop("disabled", status); + }); + }); +} + Template.toolbar.events({ 'click .imageViewerTool': function(e) { $(e.currentTarget).tooltip('hide'); @@ -146,6 +157,9 @@ Template.toolbar.onRendered(function() { // Enable tooltips for the layout button var extraTooltipButtons = $('[rel="tooltip"]'); extraTooltipButtons.tooltip(OHIF.viewer.tooltipConfig); + + // Set disabled/enabled tool buttons + setButtonsDisability(); }); Template.toolbar.helpers({ diff --git a/Packages/viewerbase/lib/toolManager.js b/Packages/viewerbase/lib/toolManager.js index c3e24d513..aaea2bf8a 100644 --- a/Packages/viewerbase/lib/toolManager.js +++ b/Packages/viewerbase/lib/toolManager.js @@ -1,5 +1,6 @@ var activeTool = "wwwc"; var defaultTool = "wwwc"; +var disabledTools = []; var tools = {}; @@ -218,5 +219,11 @@ toolManager = { }, getDefaultTool: function() { return defaultTool; + }, + addDisabledTool: function(toolData) { + disabledTools.push(toolData); + }, + getDisabledTool: function() { + return disabledTools; } };