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'); +};