From b01a2ccceeb22c4bc345730837404154de5cc410 Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Tue, 9 Feb 2016 15:08:26 +0100 Subject: [PATCH] Fixes for LT-29, disable target measurements when pixel spacing is not available --- LesionTracker/client/components/viewer.js | 10 ++++++---- .../client/compatibility/lesionTool.js | 15 +++++++++++++++ .../lesiontracker/lib/pixelSpacingAutorunCheck.js | 7 ++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/LesionTracker/client/components/viewer.js b/LesionTracker/client/components/viewer.js index 5980eb6c4..a02ac0127 100644 --- a/LesionTracker/client/components/viewer.js +++ b/LesionTracker/client/components/viewer.js @@ -1,3 +1,5 @@ +Session.setDefault('activeViewport', false); + Template.viewer.onCreated(function() { // Attach the Window resize listener $(window).on('resize', handleResize); @@ -92,7 +94,10 @@ Template.viewer.onCreated(function() { Session.set('ViewerData', ViewerData); } - Session.set('activeViewport', ViewerData[contentId].activeViewport || 0); + Session.set('activeViewport', ViewerData[contentId].activeViewport || false); + + // Set lesion tool buttons as disabled if pixel spacing is not available for active element + this.autorun(pixelSpacingAutorunCheck); // Update the ViewerStudies collection with the loaded studies ViewerStudies = new Meteor.Collection(null); @@ -218,9 +223,6 @@ Template.viewer.onCreated(function() { Template.viewer.onRendered(function() { // Enable hotkeys enableHotkeys(); - - // Set lesion tool buttons as disabled if pixel spacing is not available for active element - this.autorun(pixelSpacingAutorunCheck); }); Template.viewer.onDestroyed(function() { diff --git a/Packages/lesiontracker/client/compatibility/lesionTool.js b/Packages/lesiontracker/client/compatibility/lesionTool.js index d2846cf4f..e5783b660 100644 --- a/Packages/lesiontracker/client/compatibility/lesionTool.js +++ b/Packages/lesiontracker/client/compatibility/lesionTool.js @@ -37,6 +37,11 @@ function addNewMeasurement(mouseEventData) { var element = mouseEventData.element; + // LT-29 Disable Target Measurements when pixel spacing is not available + if (!mouseEventData.image.rowPixelSpacing || !mouseEventData.image.columnPixelSpacing) { + return; + } + function doneCallback(lesionNumber) { measurementData.lesionNumber = lesionNumber; measurementData.active = false; @@ -108,6 +113,11 @@ function addNewMeasurementTouch(touchEventData) { var element = touchEventData.element; + // LT-29 Disable Target Measurements when pixel spacing is not available + if (!touchEventData.image.rowPixelSpacing || !touchEventData.image.columnPixelSpacing) { + return; + } + function doneCallback(lesionNumber) { measurementData.lesionNumber = lesionNumber; measurementData.active = false; @@ -949,6 +959,11 @@ return; } + // LT-29 Disable Target Measurements when pixel spacing is not available + if (!eventData.image.rowPixelSpacing || !eventData.image.columnPixelSpacing) { + return; + } + // we have tool data for this element - iterate over each one and draw it var context = eventData.canvasContext.canvas.getContext('2d'); context.setTransform(1, 0, 0, 1, 0, 0); diff --git a/Packages/lesiontracker/lib/pixelSpacingAutorunCheck.js b/Packages/lesiontracker/lib/pixelSpacingAutorunCheck.js index 30249e630..b301fb515 100644 --- a/Packages/lesiontracker/lib/pixelSpacingAutorunCheck.js +++ b/Packages/lesiontracker/lib/pixelSpacingAutorunCheck.js @@ -1,8 +1,5 @@ pixelSpacingAutorunCheck = function() { log.info('lesionTool button change autorun'); - /*if (!Session.get('ViewerData')) { - return; - }*/ // Get oncology tools var oncologyTools = $('button#lesion, button#nonTarget'); @@ -14,6 +11,10 @@ pixelSpacingAutorunCheck = function() { } var element = $('.imageViewerViewport').get(activeViewportIndex); + if (!element) { + return; + } + var enabledElement = cornerstone.getEnabledElement(element); // Check value of rowPixelSpacing & columnPixelSpacing to define as unavailable