From f486724643e9a257f3e81257bbfeb32f333ae648 Mon Sep 17 00:00:00 2001 From: Bruno Alves de Faria Date: Mon, 2 Oct 2017 16:24:56 -0300 Subject: [PATCH] Adding util function to navigate over lesions --- .../ohif-measurements/client/lib/index.js | 1 + .../client/lib/navigateOverLesions.js | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 Packages/ohif-measurements/client/lib/navigateOverLesions.js diff --git a/Packages/ohif-measurements/client/lib/index.js b/Packages/ohif-measurements/client/lib/index.js index 877ba2ffb..0ee1ed051 100644 --- a/Packages/ohif-measurements/client/lib/index.js +++ b/Packages/ohif-measurements/client/lib/index.js @@ -9,5 +9,6 @@ import './getTimepointName'; import './hangingProtocolCustomizations'; import './MeasurementHandlers'; import './MeasurementManager'; +import './navigateOverLesions'; import './syncMeasurementAndToolData'; import './toggleLabelButton'; diff --git a/Packages/ohif-measurements/client/lib/navigateOverLesions.js b/Packages/ohif-measurements/client/lib/navigateOverLesions.js new file mode 100644 index 000000000..f41863ec5 --- /dev/null +++ b/Packages/ohif-measurements/client/lib/navigateOverLesions.js @@ -0,0 +1,30 @@ +import { OHIF } from 'meteor/ohif:core'; + +/** + * Method to go select the next or previous lesion on measurements table + * + * @param {Boolean} isNextLesion Determine if it will navigate to the next or previous lesion + */ +OHIF.measurements.navigateOverLesions = isNextLesion => { + const $table = $('#measurementTableContainer'); + if (!$table.length) return; + + const $lesions = $table.find('.measurementTableRow'); + if (!$lesions.length) return; + + const $activeLesion = $lesions.filter('.active'); + const activeIndex = $lesions.index($activeLesion); + + const step = isNextLesion ? 1 : -1; + let newIndex = 0; + if (activeIndex !== -1) { + newIndex = activeIndex + step; + if (newIndex >= $lesions.length) { + newIndex = 0; + } else if (newIndex < 0) { + newIndex = $lesions.length - 1; + } + } + + $lesions.eq(newIndex).find('.measurementRowSidebar').trigger('click'); +};