* 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.
108 lines
3.9 KiB
Markdown
108 lines
3.9 KiB
Markdown
# @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.
|
|
|
|
<!-- TODO: Simple image or GIF? -->
|
|
|
|
#### Index
|
|
|
|
Extension Id: `cornerstone`
|
|
|
|
- [Commands Module](#commands-module)
|
|
- [Toolbar Module](#toolbar-module)
|
|
- [Viewport Module](#viewport-module)
|
|
|
|
## 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`][docs-commands], [`Hotkeys`][docs-hotkeys],
|
|
and the [`UserPreferences` Modal][docs-userprefs] 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:
|
|
|
|
- `StackScroll`
|
|
- `Zoom`
|
|
- `Wwwc`
|
|
- `Pan`
|
|
- `Length`
|
|
- `Angle`
|
|
- `Reset`
|
|
- `Cine`
|
|
|
|
All use the `ACTIVE_VIEWPORT::CORNERSTONE` context.
|
|
|
|
## Viewport Module
|
|
|
|
Our Viewport wraps [cornerstonejs/react-cornerstone-viewport][react-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:
|
|
|
|
```js
|
|
...
|
|
cornerstoneExtensionConfig: {
|
|
tools: {
|
|
ArrowAnnotate: {
|
|
configuration: {
|
|
getTextCallback: (callback, eventDetails) => callback(prompt('Enter your custom annotation')),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
...
|
|
```
|
|
|
|
## Resources
|
|
|
|
### Repositories
|
|
|
|
- [cornerstonejs/react-cornerstone-viewport][react-viewport]
|
|
- [cornerstonejs/cornerstoneTools][cornerstone-tools]
|
|
- [cornerstonejs/cornerstone][cornerstone]
|
|
|
|
<!--
|
|
Links
|
|
-->
|
|
|
|
<!-- prettier-ignore-start -->
|
|
[docs-commands]: https://www.com
|
|
[docs-hotkeys]: https://www.com
|
|
[docs-userprefs]: htt
|
|
[react-viewport]: https://github.com/cornerstonejs/react-cornerstone-viewport
|
|
[cornerstone-tools]: https://github.com/cornerstonejs/cornerstoneTools
|
|
[cornerstone]: https://github.com/cornerstonejs/cornerstone
|
|
<!-- prettier-ignore-end -->
|