From 5cbf08ea4f90f9500766f0ac81c089b32a1abf63 Mon Sep 17 00:00:00 2001 From: Evren Ozkan Date: Thu, 3 Nov 2016 14:20:11 -0400 Subject: [PATCH] LT-290 Disable Lesion Tracker tool buttons if the opened study is not associated - Fix the bug with temp lesion when the study is not associated --- .../toolbarSection/toolbarSection.html | 2 +- .../toolbarSection/toolbarSection.js | 23 ++++++++++++++++--- .../client/components/viewer/viewer.js | 8 +++++++ .../client/lib/toggleLesionTrackerTools.js | 18 +++++++++++++++ .../client/lib/MeasurementHandlers.js | 12 ++++++---- 5 files changed, 54 insertions(+), 9 deletions(-) diff --git a/LesionTracker/client/components/toolbarSection/toolbarSection.html b/LesionTracker/client/components/toolbarSection/toolbarSection.html index 9f403c79c..bbb6dcf37 100644 --- a/LesionTracker/client/components/toolbarSection/toolbarSection.html +++ b/LesionTracker/client/components/toolbarSection/toolbarSection.html @@ -28,7 +28,7 @@
HUD
-
+
diff --git a/LesionTracker/client/components/toolbarSection/toolbarSection.js b/LesionTracker/client/components/toolbarSection/toolbarSection.js index c17793046..7f04e9acc 100644 --- a/LesionTracker/client/components/toolbarSection/toolbarSection.js +++ b/LesionTracker/client/components/toolbarSection/toolbarSection.js @@ -145,8 +145,25 @@ Template.toolbarSection.helpers({ Template.toolbarSection.events({ 'click #toggleHUD'() { + const $this = $(event.currentTarget).find('#toggleHUD'); + + // Stop here if the tool is disabled + if ($this.hasClass('disabled')) { + return; + } + const state = Session.get('measurementTableHudOpen'); Session.set('measurementTableHudOpen', !state); + }, + 'click #toggleTrial'() { + const $this = $(event.currentTarget).find('#toggleHUD'); + + // Stop here if the tool is disabled + if ($this.hasClass('disabled')) { + return; + } + + $('#optionsModal').modal(); } }); @@ -154,15 +171,15 @@ Template.toolbarSection.onRendered(function() { // Set disabled/enabled tool buttons that are set in toolManager const states = toolManager.getToolDefaultStates(); const disabledToolButtons = states.disabledToolButtons; - const allToolbarButtons = $('#toolbar').find('button'); + const allToolbarButtons = $('.toolbarSection').find('.toolbarSectionButton'); if (disabledToolButtons && disabledToolButtons.length > 0) { for (var i = 0; i < allToolbarButtons.length; i++) { const toolbarButton = allToolbarButtons[i]; - $(toolbarButton).prop('disabled', false); + $(toolbarButton).removeClass('disabled'); const index = disabledToolButtons.indexOf($(toolbarButton).attr('id')); if (index !== -1) { - $(toolbarButton).prop('disabled', true); + $(toolbarButton).addClass('disabled'); } } } diff --git a/LesionTracker/client/components/viewer/viewer.js b/LesionTracker/client/components/viewer/viewer.js index 41c2f5d69..66ec97118 100644 --- a/LesionTracker/client/components/viewer/viewer.js +++ b/LesionTracker/client/components/viewer/viewer.js @@ -81,6 +81,14 @@ Template.viewer.onCreated(() => { if (prior) { instance.data.measurementApi.priorTimepointId = prior.timepointId; } + + if (instance.data.currentTimepointId) { + // Enable Lesion Tracker Tools if the opened study is associated + OHIF.lesiontracker.toggleLesionTrackerToolsButtons(true); + } else { + // Disable Lesion Tracker Tools if the opened study is not associated + OHIF.lesiontracker.toggleLesionTrackerToolsButtons(false); + } }); Template.viewer.helpers({ diff --git a/Packages/ohif-lesiontracker/client/lib/toggleLesionTrackerTools.js b/Packages/ohif-lesiontracker/client/lib/toggleLesionTrackerTools.js index b311bc995..7be0649cb 100644 --- a/Packages/ohif-lesiontracker/client/lib/toggleLesionTrackerTools.js +++ b/Packages/ohif-lesiontracker/client/lib/toggleLesionTrackerTools.js @@ -41,3 +41,21 @@ OHIF.lesiontracker.toggleLesionTrackerTools = () => { toolsShown = true; } }; + +OHIF.lesiontracker.toggleLesionTrackerToolsButtons = (isEnabled) => { + const toolStates = previousStates || toolManager.getToolDefaultStates(); + + if (isEnabled) { + toolStates.disabledToolButtons = []; + } else { + toolStates.disabledToolButtons = [ 'bidirectional', 'nonTarget', 'crTool', 'unTool', 'exTool', 'toggleHUD', 'toggleTrial', 'toolbarSectionEntry' ]; + } + + // Reload the updated previous or default states + toolManager.setToolDefaultStates(toolStates); + + // Reset the active tool if disabled + if (!isEnabled) { + toolManager.setActiveTool(); + } +}; \ No newline at end of file diff --git a/Packages/ohif-measurements/client/lib/MeasurementHandlers.js b/Packages/ohif-measurements/client/lib/MeasurementHandlers.js index 1afc76bf9..fa0c17834 100644 --- a/Packages/ohif-measurements/client/lib/MeasurementHandlers.js +++ b/Packages/ohif-measurements/client/lib/MeasurementHandlers.js @@ -53,12 +53,14 @@ class MeasurementHandlers { const timepointApi = instance.data.timepointApi; if (timepointApi) { const timepoint = timepointApi.study(studyInstanceUid)[0]; - const timepointId = timepoint.timepointId; - measurement.timepointId = timepointId; - measurement.measurementNumber = OHIF.measurements.MeasurementManager.getNewMeasurementNumber(timepointId, Collection, timepointApi); + if (timepoint) { + const timepointId = timepoint.timepointId; + measurement.timepointId = timepointId; + measurement.measurementNumber = OHIF.measurements.MeasurementManager.getNewMeasurementNumber(timepointId, Collection, timepointApi); - // TODO: Fix this - measurement.measurementNumberAbsolute = measurement.measurementNumber; + // TODO: Fix this + measurement.measurementNumberAbsolute = measurement.measurementNumber; + } } else { const numCurrentMeasurementsInStudy = Collection.find({ studyInstanceUid: study.studyInstanceUid