* Fix ExtensionManager bug and add test to bandaid * Add tools configuration to extension manager preinit * Fix reducing of configs * Merge internal with external configs * Merge internal with external configs * Remove dialog from init in measurementstable * Testing injected configuration * New way to set config * Add new prop to dialog provider to allow disabling last position * Remove code from preinit in cornerstone * Add new prop to dialog provider to allow disabling last position * Add centralize to dialogs * Reorder dialogs when adding them * Fix draggable styles (cursor) * Remove repositioning methods from labelling flow and remove overlay from labelling manager * Fix empty array being set in bringToFront * Add new command to update table and pass commands manager to modules/preinit hook * Ad UIContextMenu service / factory * Use new contextmenu service in measurementspanel extension * Use dialogs for arrow annotate in default * Remove positioning funcionality from tool context menu * Add context menu service * Pass commandsModule to extension * Update edit description dialog and simple dialog to position relative * Remove style code from labelling flow and manager * Remove eventdata from labelling * Remove labelling code from measurement init * Add commandsmanager to provider * Update contextmenu provider and service * Add touchstart and mouseclick to hide contextmenu * Hide labelling if click/touch * Remove labelling and context menu dead code * Fix undefined bug if ViewerMain grid has no children * Fix broken prop on context menu * Update commandsmodule based on master * Fix broken configuration * Update script tag config * Remove cornerstone from toolcontextmenu * Remove cornerstone from toolcontextmenu * Split labelling and context menu providers * Split labelling and context menu providers * Update test * Destructure extensions into new array * CR Update: Move default arrow config to cornerstone instead of default * CR Update: Fix app configuration props structure * CR Update: Fix app configuration prop in script tag and extract commands manager from providers * CR Update: Create custom providers to use commandsManager * CR Update: Use services directly in measurementspanel * CR Update: Pass components to providers * CR Update: Remove position from dialog * CR Update: fix dialog prop check * CR Update: Fix comments * CR Update: Update documentation * CR Update: Add test default configuration * CR Update: Add default empy array to extensions * CR Update: Update i18n configuration all ot match current function configuration * CR Update: Add defaults to injected dependencies in configuration and extension configuration * CR Update: Add defaults to configuration with no args * Update documentation * CR Update: Add default for tools * CR Update: Update config object to i18n * CR Update: spread defaults * CR Update: Add tool configuration example to cornerstone extension * CR Update: Add tool configuration to netlify (testing) * CR Update: Remove netlify config for tools * CR Update: Rollback changes to i18n to be fixed later * CR Update: Update documentation and pass whole cornerstone config object instead of tools key SEE: https://www.conventionalcommits.org/en/v1.0.0/#commit-message-with-both-and-breaking-change-footer BREAKING CHANGE: modifies the exposed react <App /> components props. The contract for providing configuration for the app has changed. Please reference updated documentation for guidance.
3.9 KiB
@ohif/extension-cornerstone
This extension adds support for viewing and manipulating 2D medical images via a
viewport. The underlying implementation wraps the
cornerstonejs/react-cornerstone-viewport, and provides basic commands and
toolbar buttons for common actions.
Index
Extension Id: cornerstone
Commands Module
This extensions includes the following Commands and Command Definitions.
These can be registered with @ohif/core's CommandManager. After registering
the commands, they can be bound to hotkeys using the HotkeysManager and
listed in the UserPreferences modal.
You can read more about Commands, Hotkeys,
and the UserPreferences Modal in their respective locations
in the OHIF Viewer's documentation.
| Command Name | Description | Store Contexts |
|---|---|---|
rotateViewportCW |
viewports | |
rotateViewportCCW |
viewports | |
invertViewport |
viewports | |
flipViewportVertical |
viewports | |
flipViewportHorizontal |
viewports | |
scaleUpViewport |
viewports | |
scaleDownViewport |
viewports | |
fitViewportToWindow |
viewports | |
resetViewport |
viewports | |
| clearAnnotations | TODO | |
| next/previous Image | TODO | |
| first/last Image | TODO | |
nextViewportDisplaySet |
||
previousViewportDisplaySet |
||
setToolActive |
Activates tool for primary button/touch |
Toolbar Module
Our toolbar module contains definitions for:
StackScrollZoomWwwcPanLengthAngleResetCine
All use the ACTIVE_VIEWPORT::CORNERSTONE context.
Viewport Module
Our Viewport wraps cornerstonejs/react-cornerstone-viewport and is connected the redux store. This module is the most prone to change as we hammer out our Viewport interface.
Tool Configuration
Tools can be configured through extension configuration using the tools key:
...
cornerstoneExtensionConfig: {
tools: {
ArrowAnnotate: {
configuration: {
getTextCallback: (callback, eventDetails) => callback(prompt('Enter your custom annotation')),
},
},
},
},
...