From 8c6a72cc0fb93220ae3a6a1c18903d48767f4c90 Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Wed, 13 Sep 2017 09:34:47 -0300 Subject: [PATCH] PWV-138: Deselecting arm when advancing to another lesion --- .../client/compatibility/bidirectionalTool.js | 24 ++++++++++--------- .../client/lib/activateMeasurements.js | 7 ++++-- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/Packages/ohif-lesiontracker/client/compatibility/bidirectionalTool.js b/Packages/ohif-lesiontracker/client/compatibility/bidirectionalTool.js index 7620f14c6..083d5cd79 100644 --- a/Packages/ohif-lesiontracker/client/compatibility/bidirectionalTool.js +++ b/Packages/ohif-lesiontracker/client/compatibility/bidirectionalTool.js @@ -677,9 +677,6 @@ function clearBidirectionalSelection(event) { const toolData = cornerstoneTools.getToolState(event.currentTarget, 'bidirectional'); if (!toolData) return; toolData.data.forEach(data => { - data.selected = false; - imageNeedsUpdate = data.active || imageNeedsUpdate; - data.active = false; const unselectResult = unselectAllHandles(data.handles); imageNeedsUpdate = imageNeedsUpdate || unselectResult; }); @@ -824,8 +821,13 @@ function mouseMoveCallback(e, eventData) { // mouseDowCallback is used to restrict behaviour of perpendicular-line function mouseDownCallback(e, eventData) { - var data; - var element = eventData.element; + let data; + const element = eventData.element; + const $element = $(element); + + // Add an event listener to clear the selected state when a measurement is activated + const activateEventKey = 'ViewerMeasurementsActivated'; + $element.off(activateEventKey).on(activateEventKey, () => clearBidirectionalSelection(e)); // Clear selection on left mouse button click let imageNeedsUpdate = false; @@ -838,7 +840,7 @@ function mouseDownCallback(e, eventData) { function handleDoneMove(handle) { // Set the cursor back to its default - $(element).css('cursor', ''); + $element.css('cursor', ''); data.invalidated = true; if (cornerstoneTools.anyHandlesOutsideImage(eventData, data.handles)) { @@ -853,7 +855,7 @@ function mouseDownCallback(e, eventData) { } cornerstone.updateImage(element); - $(element).on('CornerstoneToolsMouseMove', eventData, mouseMoveCallback); + $element.on('CornerstoneToolsMouseMove', eventData, mouseMoveCallback); } if (cornerstoneTools.isMouseButtonEnabled(eventData.which, e.data.mouseButtonMask)) { @@ -870,9 +872,9 @@ function mouseDownCallback(e, eventData) { var handle = cornerstoneTools.getHandleNearImagePoint(element, data.handles, coords, distance); if (handle) { // Hide the cursor to improve precision while resizing the line or set to move if dragging text box - $(element).css('cursor', handle.hasBoundingBox ? 'move' : 'none'); + $element.css('cursor', handle.hasBoundingBox ? 'move' : 'none'); - $(element).off('CornerstoneToolsMouseMove', mouseMoveCallback); + $element.off('CornerstoneToolsMouseMove', mouseMoveCallback); data.active = true; unselectAllHandles(data.handles); @@ -896,9 +898,9 @@ function mouseDownCallback(e, eventData) { data = toolData.data[i]; if (pointNearTool(element, data, coords)) { // Set the cursor to move - $(element).css('cursor', 'move'); + $element.css('cursor', 'move'); - $(element).off('CornerstoneToolsMouseMove', mouseMoveCallback); + $element.off('CornerstoneToolsMouseMove', mouseMoveCallback); data.active = true; unselectAllHandles(data.handles); diff --git a/Packages/ohif-measurements/client/lib/activateMeasurements.js b/Packages/ohif-measurements/client/lib/activateMeasurements.js index fbd77dcda..e5e0a6624 100644 --- a/Packages/ohif-measurements/client/lib/activateMeasurements.js +++ b/Packages/ohif-measurements/client/lib/activateMeasurements.js @@ -1,3 +1,4 @@ +import { $ } from 'meteor/jquery'; import { OHIF } from 'meteor/ohif:core'; /** @@ -33,7 +34,7 @@ function activateTool(measurementData) { * Deactivate all other measurements on the switched image (color to be white) */ OHIF.measurements.activateMeasurements = (element, measurementData) => { - console.log('activateMeasurements'); + OHIF.log.info('activateMeasurements'); // If Cornerstone Viewport information was stored while the measurement was created, // we should re-apply this data when activating the measurement. @@ -81,7 +82,8 @@ OHIF.measurements.activateMeasurements = (element, measurementData) => { // updated and the highlight is removed from inactive tools in all visible viewports const $viewports = $('.imageViewerViewport'); $viewports.each((index, element) => { - if (!$(element).find('canvas')) { + const $element = $(element); + if (!$element.find('canvas')) { return; } @@ -99,6 +101,7 @@ OHIF.measurements.activateMeasurements = (element, measurementData) => { return; } + $element.trigger('ViewerMeasurementsActivated'); cornerstone.updateImage(element); }); };