CR Updates

This commit is contained in:
igoroctaviano 2020-06-29 13:58:36 -03:00
parent c8052e0e0a
commit f96c1f6648
4 changed files with 44 additions and 56 deletions

View File

@ -1,5 +1,8 @@
/*
* Supported Keys: https://craig.is/killing/mice
*/
export default [
// ~ Global
/** Global */
{
commandName: 'incrementActiveViewport',
label: 'Next Viewport',
@ -10,8 +13,7 @@ export default [
label: 'Previous Viewport',
keys: ['left'],
},
// Supported Keys: https://craig.is/killing/mice
// ~ Cornerstone Extension
/** Viewport */
{ commandName: 'rotateViewportCW', label: 'Rotate Right', keys: ['r'] },
{ commandName: 'rotateViewportCCW', label: 'Rotate Left', keys: ['l'] },
{ commandName: 'invertViewport', label: 'Invert', keys: ['i'] },
@ -29,11 +31,8 @@ export default [
{ commandName: 'scaleDownViewport', label: 'Zoom Out', keys: ['-'] },
{ commandName: 'fitViewportToWindow', label: 'Zoom to Fit', keys: ['='] },
{ commandName: 'resetViewport', label: 'Reset', keys: ['space'] },
// clearAnnotations
{ commandName: 'nextImage', label: 'Next Image', keys: ['down'] },
{ commandName: 'previousImage', label: 'Previous Image', keys: ['up'] },
// firstImage
// lastImage
{
commandName: 'previousViewportDisplaySet',
label: 'Previous Series',
@ -44,51 +43,58 @@ export default [
label: 'Next Series',
keys: ['pageup'],
},
// ~ Cornerstone Tools
{ commandName: 'setZoomTool', label: 'Zoom', keys: ['z'] },
// ~ Window level presets
/** Window level presets */
{
commandName: 'windowLevelPreset1',
commandName: 'setWindowLevelPreset',
commandOptions: { preset: 1 },
label: 'W/L Preset 1',
keys: ['1'],
},
{
commandName: 'windowLevelPreset2',
commandName: 'setWindowLevelPreset',
commandOptions: { preset: 2 },
label: 'W/L Preset 2',
keys: ['2'],
},
{
commandName: 'windowLevelPreset3',
commandName: 'setWindowLevelPreset',
commandOptions: { preset: 3 },
label: 'W/L Preset 3',
keys: ['3'],
},
{
commandName: 'windowLevelPreset4',
commandName: 'setWindowLevelPreset',
commandOptions: { preset: 4 },
label: 'W/L Preset 4',
keys: ['4'],
},
{
commandName: 'windowLevelPreset5',
commandName: 'setWindowLevelPreset',
commandOptions: { preset: 5 },
label: 'W/L Preset 5',
keys: ['5'],
},
{
commandName: 'windowLevelPreset6',
commandName: 'setWindowLevelPreset',
commandOptions: { preset: 6 },
label: 'W/L Preset 6',
keys: ['6'],
},
{
commandName: 'windowLevelPreset7',
commandName: 'setWindowLevelPreset',
commandOptions: { preset: 7 },
label: 'W/L Preset 7',
keys: ['7'],
},
{
commandName: 'windowLevelPreset8',
commandName: 'setWindowLevelPreset',
commandOptions: { preset: 8 },
label: 'W/L Preset 8',
keys: ['8'],
},
{
commandName: 'windowLevelPreset9',
commandName: 'setWindowLevelPreset',
commandOptions: { preset: 9 },
label: 'W/L Preset 9',
keys: ['9'],
},

View File

@ -1,5 +1,4 @@
import useDebounce from './useDebounce.js';
import useQuery from './useQuery.js';
import useHotkeys from './useHotkeys.js';
export { useDebounce, useQuery, useHotkeys };
export { useDebounce, useQuery };

View File

@ -1,31 +0,0 @@
import { useEffect, useState } from 'react';
/**
* @param {Object} manager HotkeysManager instance
* @param {Object} hotkeys hotkey bindings
* @param {Object} defaultHotkeys default hotkey bindings
*/
const useHotkeys = (manager, hotkeys, defaultHotkeys) => {
const [isLoaded, setIsLoaded] = useState(false);
useEffect(() => {
if (!hotkeys) {
console.warn('[hotkeys] No bindings defined for hotkeys hook!');
return;
}
console.debug('[hotkeys] Setting up hotkeys...');
manager.setDefaultHotKeys(defaultHotkeys || hotkeys);
manager.setHotkeys(hotkeys);
setIsLoaded(true);
return () => {
console.debug('[hotkeys] Removing hotkeys...');
manager.destroy();
};
}, [manager, hotkeys, defaultHotkeys]);
return isLoaded;
}
export default useHotkeys;

View File

@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
import { DicomMetadataStore } from '@ohif/core';
import { DragAndDropProvider, ImageViewerProvider } from '@ohif/ui';
//
import { useQuery, useHotkeys } from '@hooks';
import { useQuery } from '@hooks';
import ViewportGrid from '@components/ViewportGrid';
import Compose from './Compose';
@ -17,7 +17,6 @@ export default function ModeRoute({
servicesManager,
hotkeysManager
}) {
const isHotkeysLoaded = useHotkeys(hotkeysManager, mode.hotkeys);
// Parse route params/querystring
const query = useQuery();
const queryStudyInstanceUIDs = query.get('StudyInstanceUIDs');
@ -28,7 +27,7 @@ export default function ModeRoute({
? StudyInstanceUIDs
: [StudyInstanceUIDs];
const { extensions, sopClassHandlers } = mode;
const { extensions, sopClassHandlers, hotkeys } = mode;
if (dataSourceName === undefined) {
dataSourceName = extensionManager.defaultDataSourceName;
@ -76,6 +75,22 @@ export default function ModeRoute({
return ViewportGrid({ ...props, dataSource });
}
useEffect(() => {
if (!hotkeys) {
console.warn('[hotkeys] No bindings defined for hotkeys hook!');
return;
}
console.debug('[hotkeys] Setting up hotkeys...');
hotkeysManager.setDefaultHotKeys(hotkeys);
hotkeysManager.setHotkeys(hotkeys);
return () => {
console.debug('[hotkeys] Removing hotkeys...');
hotkeysManager.destroy();
};
}, []);
useEffect(() => {
route.init({ servicesManager, extensionManager });
}, [
@ -85,8 +100,7 @@ export default function ModeRoute({
route,
servicesManager,
extensionManager,
hotkeysManager,
isHotkeysLoaded
hotkeysManager
]);
// This queries for series, but... What does it do with them?