ohif-viewer/Packages/ohif-lesiontracker/client/lib/toggleLesionTrackerTools.js

80 lines
2.6 KiB
JavaScript

import { OHIF } from 'meteor/ohif:core';
/**
* Show / hide lesion tracker tools
*/
let previousStates;
let previousActiveTool;
let toolsShown = true;
OHIF.lesiontracker.toggleLesionTrackerTools = () => {
if (toolsShown === true) {
// Save the current settings for later
previousStates = toolManager.getToolDefaultStates();
previousActiveTool = toolManager.getActiveTool();
// Hide the tools (set them all to disabled)
const toolDefaultStates = {
activate: [ 'deleteLesionKeyboardTool' ],
deactivate: [],
enable: [],
disable: [ 'bidirectional', 'nonTarget', 'length', 'crTool', 'unTool', 'exTool' ]
};
toolManager.setToolDefaultStates(toolDefaultStates);
// Using setActiveTool with no arguments activates the
// default tool on all available viewports
toolManager.setActiveTool();
toolsShown = false;
} else {
// Show the tools (reload previous states)
toolManager.setToolDefaultStates(previousStates);
// Using setActiveTool with no elements specified activates
// the specified tool on all available viewports
toolManager.setActiveTool(previousActiveTool);
toolsShown = true;
}
};
OHIF.lesiontracker.toggleLesionTrackerToolsButtons = (isEnabled) => {
const toolStates = previousStates || toolManager.getToolDefaultStates();
if (isEnabled) {
toolStates.disabledToolButtons = [];
OHIF.lesiontracker.toggleLesionTrackerToolsHotKeys(true);
} else {
toolStates.disabledToolButtons = [ 'bidirectional', 'nonTarget', 'crTool', 'unTool', 'exTool',
'toggleHUD', 'toggleTrial', 'toolbarSectionEntry', 'toggleMeasurements' ];
OHIF.lesiontracker.toggleLesionTrackerToolsHotKeys(false);
}
// Reload the updated previous or default states
toolManager.setToolDefaultStates(toolStates);
// Reset the active tool if disabled
if (!isEnabled) {
toolManager.setActiveTool();
}
};
OHIF.lesiontracker.toggleLesionTrackerToolsHotKeys = (isEnabled) => {
// The hotkey can also be an array (e.g. ["NUMPAD0", "0"])
OHIF.viewer.defaultHotkeys = OHIF.viewer.defaultHotkeys || {};
if (isEnabled) {
OHIF.viewer.defaultHotkeys.toggleLesionTrackerTools = 'O';
OHIF.viewer.defaultHotkeys.bidirectional = 'T'; // Target
OHIF.viewer.defaultHotkeys.nonTarget = 'N'; // Non-target
} else {
OHIF.viewer.defaultHotkeys.toggleLesionTrackerTools = null;
OHIF.viewer.defaultHotkeys.bidirectional = null; // Target
OHIF.viewer.defaultHotkeys.nonTarget = null; // Non-target
}
};