* WindowLevel preset code changes
* Remove localStorage code as its already being saved and some small refactor on reducer/action
* Creating unit tests for preferences reducer
* Fix cypress after class naming change
* Make hidden false as default for tab components
* Remove addUserPreferences
* Small refactor to use commandsManager from getCommandsModule instead of getting it from App.js
* fix: Combined Hotkeys for special characters
* add record method to hotkey manager
* fix record plugin
* remove unused component
* add record to modal props
* rename record method
* replace handlers to use hotkeyRecord
* fix combined keys
* change expected result count from 18 to 17
* autoformat
* Remove duplicate test, that was testing the wrong things; fix label; update configs
* Revert "Remove duplicate test, that was testing the wrong things; fix label; update configs"
This reverts commit 4292f4fe67351962d61cae623b920dcbd87dd71d.
* Fix the record plugin's registration
* fix exposed record method usage
* adding logging for info level items
* Hotkey definitions don't need to be globally reactive; use localstorage/appconfig as sources of truth; not redux
* Tidy up test
* Remove unused code from UserPreferencesForm
* Log info when we run a command
* fix hotkey preference restore
* use application configured hotkeys if there are no user preferred
* Avoid logging circular ref
* Fix callouts
* Fix small issue with array
* Fix langua issue after refactor and merge
* Refactor on recordCurrentCombo as Rodrigo did before
* Separating components in 2 files
* WIP Refactor to simplify the user preferences and move into each form the save and controll functionalities
* Remove context
* Remove unused import
* Initial work on Field treatment
* Refactor General preferences
* Small refactor removing type from HotkeyField
* small update on style
* Refactor and layout fixed
* Make hotkeys preferences working with old hotkeys row
* Move error handling out of hotkey row/input component
* WIP custom form
* Moving validation function to component
* Exposing hotkeyRecord as it does not depend on HotkeyManager Class
* Making hotkeyField as much detached possible from parent component
* Small refactors
* Refactor on user preferences
* Clean up into the changes
* Small fix to let save working
* Style finish
* move about docs into about folder
* Fix double tap on single keys
* Style refactor
* Remove log
* Fix log issues on unit tests
* Fix unit test breaking on ohif/core index
* Fixing hotkeys unpause unit test issue
* Rename file to adopt lowercase
* Rename file to adopt lowercase
* Fixing callouts
* Big refactor miving some of the components into viewer and creating small components into ohif/ui
* Typo on folder name
* Updating ohif ui docs
* Remove comments
* Fix binding of combo keys
* Fix some cypress tests failures
* Fixing onCancel button
* Fixing e2e tests
* Small style update
* Fixing unit tests failing after fix issue
* Remove some not used code
* Remove left over after debug
* Adding prevent default on hotkeys events
* Fixinf existing hotkeys validator with 3 keys pressed
* Exposing hotkeys as root level on ohif-core
* Clean up
* Exposing all availableLanguages with labels and fixing an issue on language switcher
* Fixing e2e cypress tests
* Preveinting some simple errors
* Treating error once we try to set hotkey definitions
* Adding ui notification on setHotkeys errors
* Implementing a service queue request to hold until functions are implemented
* Making sure toFixed is only called on Numbers
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
Co-authored-by: Gustavo André Lelis <galelis@gmail.com>
* feat: 🎸 MeasurementService
Work in progress...
* Remove cornerstone tools import
* Second iteration
* CR Update: Add update / added events example
* Add new props to measurements
* Update event log
* Add new measurementid to annotation
* Add context support
* Add value types
* Add area
* Add todo
* Wip measurement to annotation map
* Change points representation
* Add props to annotation mapping
* Add tests
* Extract formatter from init and add tests
* Sketch matchers
* Fix events and valuetypes imports
* Remove context support
* Rename formatter to mappings
* Sketching source and source definitions
* Adjust matching criteria in addOrUpdate
* CR Updates: Extract private functions and rename variables
* Fix broken tests
* Add more measurement service tests
* Update broken mapping tests
* Update test description
* Update getAnnotation to get mapping based on def and source
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* Remove tash data from redux storage after updates
* Imprelemnted more unit tests
* Remove missing comment
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* fix: Set VTK viewport as active by interaction
* feat: listen for vtkscrollevent in wrapper component
* fix: definitions can skip empty storeContexts key
* hoc to set/pass in commandsManager
* Bump minimum react-vtkjs-viewport version to leverage new event
* Simplify to use onScroll event instead of passing down commandsManager to base component
* fix: make sure we include @JamesAPetts bug fix
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* refactor: 💡 Clean up JSON launch with DICOMWeb server
Clean up JSON launch with DICOMWeb server
✅Closes: #1387
* Remove test file
* parse seriesinstanceuids in query
* Add default studies
* Remove test file
* Cleanup retrievedata changes
* Set active server
* fix: 🐛 Make Plugin switch part of ToolbarModule
Closes: #1241
* Move setCornerstoneViewport command into cornerstone extension
* Exposing extensionManager into extension's get modules functions
* Remove Plugin switch
* Updating set cornerstonelayout to work on VIEWER context
* Creating a customComponent for 2D MPR button
* Use extensionManager to show or not buttons
Adding isHidden option into toolbarModules
* Make buttons hidden depending on extension registration
* Fix unit test after changes on extensionManager
* Remove workaround for extensionManager
* Use studyMeatadataManager and remove TODO's
* Remove storeContext not needed
* Moving Exit 2D MPR into cornerstone extension with VTK context
* Remove PluginSwitch files
* Fix E2E tests
* Adding cypress screenshots into gitignore
* Remove extensionManager from getModuleFn functions and moving CustomComponent for VTK button to VTK extension
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* feat: 🎸 Configuration so viewer tools can nix handles
Adds a key to cornerstone configuration that allows to toggle on/off
handle rendering
Closes: #1223
* Update extension docs
* Update doc
* docs: include hideHandles configuration in our configuration docs
* chore: default to hiding handles for annotations
* chore: switch to drawHandlesOnHover to mimic legacy viewer functionality
* Flip logic for drawHandlesOnHover; reverse of hideHandles
* Don't hide the handles of ellipse or rectangle roi
* invert check
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* Move DICOMSR to @ohif/core
* refactor: 💡 Move DICOMSR code to @ohif/core project
We've just merged support for DICOM Structured Reports. Today, support
for this feature lives in the @ohif/viewer project in it's lib folder.
Ideally, it should be moved to @ohif/core and given a clear public API
and unit tests.
Closes: #1282
* Update imports
* CR Update: Update imports
* feat: 🎸 Expose extension config to modules
Currently, only the preRegistration hook receives the extension's
configuration as a parameter. Providing getModuleFn's with the
extension's configuration, and all lifecycle/modules with the
application's configuration as rootConfig should open the doors to more
configurable extensions.
Closes: #1268
* CR Update: Pass extension and service config through extension manager preinit/getmodule
* CR Update: Remove appConfig from servicesManager
* CR Update: Remove appconfig variable
* feat: 🎸 DICOM SR STOW on MeasurementAPI
Closes: #758
* feat: 🎸 Adding the dataExchance from DICOM SR
* feat: 🎸 Fix some issues and get the retrieve measurements working
* feat: 🎸 Preventing measurement tool helpers to broke because the data is not Number (it comes as string from dcmjs)
* feat: 🎸 Adding a button to start testing SATE functionality
* feat: 🎸Small fixes into the code
* feat: 🎸 MAke sure we get latest SR in the study, even on lazyLoad mode
* Revert "feat: 🎸 Preventing measurement tool helpers to broke because the data is not Number (it comes as string from dcmjs)"
This reverts commit 4b3a1efb5810487d2319826fd59c03d779882b5e.
* feat: 🎸 Make sure after sync we update the viewports and also that annotation tools are set to passive, so it can be drawn in the viewports
* feat: 🎸 Remove console logs and start using OHIF.log
* feat: 🎸 Refactor measurement table to use Snackbar service of messages and make sure we only show save button if server type is dicomWeb
* feat: 🎸 Refactor to remove mocked wadoRoot and use server
* Fix to expose error once we can't save the SR
* Update DCMJS into latest dev version
* Update dcmjs with latest fixes
* Fix PR callouts
* Logging error on MeasurementReport creation
* Preventing from breaking on non supported tools and also warning that some toolType is not sopported
* Small error message update
* Expose better the errors and when we have unsopported tools into the measurements
* Renaming variable
* Expose dcmjs tool support check
* Change the way we warn the unsupportedTools
* Adding style to the button
* Small change on button style
* Fix git conflicts
* Fix after merge with latest master
* Fix after merge with master, btn was not clickable
* Fixing callouts
* Adding util functions into files and refactor with JSDocs
* Refactoring code, adding some basic JSDocs
* Bump dcmjs with latest version and fixes
* JSDocs and small refactors
* yarn lock file after dcmjs update
* Remove unused parameters
* Registering a plain copy of server into measurementAPI
* Small refactor
* Start changing from toolType to toolName
* Rename a function to get instanceMetadata
* Adding error if server is not DICOMWeb on retrieve
* Move snackbar outside of UI component and use UINotificationService
* Refactor and JSDocs
* Small fixes on JSDocs (style)
* Remove unused import
* Improve JSDocs on MeasurementApi
* Remove refactor leftover
* Improve JSDocs and propTypes
* JSDocs and small refactors
* 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.
* docs: process docs to include UX Stories requirement
* docs: include note regarding different environments
* Services init
* Remove unused canny logos
* docs: add ModalService diagram
* docs: GIF of notification
* docs: add ui-services page
* docs: simplify ui services call out in the general services docs
* docs: tips and tricks for UI services
* docs: moar pages
* docs: dialog gif
* docs: services in summary/sidebar
* docs: gif examples at top of dialog and notification pages
* docs: add UIModal gif
* docs: details for Dialog Service
* docs: include usage information for ui modal service
* docs: detailed information about our UI Notification Service
* docs: services diagram
* docs: remove unused links
* docs: services example and image
* docs: stubbing extension pages
* docs: UX Stories --> User Cases
* chore: eslint fix
* docs: extensions overview + diagram
* docs: update extensions in sidebar
* docs: extension skeleton and registration info
* docs: copy of maintained extensions table partial in the extensions folder
* docs: swap out old extensions structure for new
* Organize viewports reducers
* Organize viewports actions
* Add local state to store dom node and remove hack
* Comment usage of dom in vtk
* Fix set of enabledElements
* Fix warning in html viewport
* Update docs for state
* Add commandsmanager to commandsmodule
* fix: study list translations
* Don't render until translations are ready
* Try to wait for translations to load
* Use null to render "nothing"
* Try toggling useSuspense off up a layer
* logging
* Remove useSuspense false flags
* DO NOT OPEN A PR WITH IT.
Experimental changes only.
Try to solve issues with useTranslation hooks
#Please enter the commit message for your changes. Lines starting
* Remove unecessary changes
* feat: 🎸 useMedia hook to not use one more prop for upd state vl
* docs: Add license scan report and status (#1161)
Signed-off-by: fossabot <badges@fossa.io>
* fix: 🐛 Fix for JS breaking on header (#1164)
* feat: 🎸 Code review and refact
Revised code based on PRs(variable alias,...). Changed hook for
useMedia. Now, it provides two hooks: one to get displayMediaSize and
other to get Entity(component, objects...) based on displayMediaSize.
Implemented a similar solution for state manager to store
mediaQueryList(s) and displaySize for app.
* feat: 🎸 Fine tunning on mediaQuery value, fixed issue about it
* fix: 🐛 Fixed issue and refactoring
Fixed js exception and also refactoring userPreferences components to
functional component
* fix: 🐛 Code review. Localstorage fix minor bugs
* fix: 🐛 Ensure hotkey lower case always
* fix: translation switcher
* chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.6
- @ohif/ui@0.62.1
- @ohif/viewer@2.8.2
* Add new modal service
* Change serviceManager prop to servicesManager
* CR Update: fix casing and add required proptypes to providers
* CR Update: Improve ohifmodal proptypes
* CR Update: Fix typo in extensionmanager
* CR Update: add default props to service and check service in provider
* Refactor modal provider to better use its own state
* ci: don't build our master branch (#1177)
* ci: don't build our master branch
* Add netlify-cli as a dev dependency
* ci: trying a sheltered merge flow for promotions
* Use modal instead of modal context
* Ci/promotable builds (#1179)
* ci: don't build our master branch
* Add netlify-cli as a dev dependency
* ci: trying a sheltered merge flow for promotions
* ci: try building with QUICK_BUILD flag
* Change modal children order
* Ci/promotable builds (#1180)
* ci: don't build our master branch
* Add netlify-cli as a dev dependency
* ci: trying a sheltered merge flow for promotions
* ci: try building with QUICK_BUILD flag
* Try using ~/repo prefix in command
* Ci/promotable builds (#1181)
* ci: don't build our master branch
* Add netlify-cli as a dev dependency
* ci: trying a sheltered merge flow for promotions
* ci: try building with QUICK_BUILD flag
* Try using ~/repo prefix in command
* ci: make sure netlify command is available
* Ci/promotable builds (#1182)
* ci: don't build our master branch
* Add netlify-cli as a dev dependency
* ci: trying a sheltered merge flow for promotions
* ci: try building with QUICK_BUILD flag
* Try using ~/repo prefix in command
* ci: make sure netlify command is available
* ci: use sudo for global command
* Fix OHIFModal proptypes
* Ci/promotable builds (#1183)
* ci: don't build our master branch
* Add netlify-cli as a dev dependency
* ci: trying a sheltered merge flow for promotions
* ci: try building with QUICK_BUILD flag
* Try using ~/repo prefix in command
* ci: make sure netlify command is available
* ci: use sudo for global command
* Inline personal access token w/ env var
* Ci/promotable builds (#1184)
* ci: don't build our master branch
* Add netlify-cli as a dev dependency
* ci: trying a sheltered merge flow for promotions
* ci: try building with QUICK_BUILD flag
* Try using ~/repo prefix in command
* ci: make sure netlify command is available
* ci: use sudo for global command
* Inline personal access token w/ env var
* ci: workaround for sudo limitations
* ci: restore release workflow (#1185)
* ci: don't build our master branch
* Add netlify-cli as a dev dependency
* ci: trying a sheltered merge flow for promotions
* ci: try building with QUICK_BUILD flag
* Try using ~/repo prefix in command
* ci: make sure netlify command is available
* ci: use sudo for global command
* Inline personal access token w/ env var
* ci: workaround for sudo limitations
* ci: restore release workflow
* Pass services to each module, improve tests
* Add servicesManager test and registerServices method
* Fix key warning of snackbar elements
* Remove netlify-cli; we';ll install this on CI server
* Update staging and prod netlify site IDs
* Clean up NPM_PUBLISH step
* Clean up DOCS_PUBLISH step
* Clean up Deploy workflow
* Custom executor to override cypress config
* Spacing
* Use an existing docker hub image
* Switch to npx instead of digging into npm bin location
* Remove e2e test before prod deploy
* Add workflow images
* docs: continous integrationn
* Add default props to modal
* chore(release): publish [skip ci]
- @ohif/extension-cornerstone@1.5.1
- @ohif/extension-vtk@0.53.7
- @ohif/core@1.9.1
- @ohif/ui@0.62.2
- @ohif/viewer@2.8.3
* chore(release): publish [skip ci]
- @ohif/extension-vtk@0.53.8
- @ohif/core@1.10.0
- @ohif/ui@0.62.3
- @ohif/viewer@2.8.4
* ci: Redirect site traffic to index.html if file is not resolved
* ci: fix typo
* fix: 🐛 Code review. Remove 'global state' for displaySize
* fix: 🐛 Code review. Ref back to useMedia and pass value down
Code review. Ref back to useMedia and pass value down (components)
instead of creating a specialized hook to tied any component on it
* fix: translation switcher
* fix
* cleanup
* add missed translation
* fix: 🐛 Code review
* fix: 🐛 Fix unit tests
* fix: 🐛 Fix unit test
* fix: 🐛 Code merge solve conflicts. Missing files changes
* Merge from master. Missing files changes
* feat: 🎸 Code review. Fix issues with DatePicker
Fixed at least the minimum issue with datePicker and update some content
on every translation changed
* fix: 🐛 Code review. Style fix on modal
* fixes in general preferences after merge
* fix
* export default i18n language
* translation fixes
* increase snackbar zindex
* initialize language
* WIP propagate props<>state fixes
* fix state propagation
* remove hotkey error when reset default
* fix datePicker
* i18n updates
* fix i18n strings
* fix reset default -- set right input value
* fix default language
* fix e2e for user preferences
* small fix datePicker props
* remove i18n from window -- debugging purposes only
* lint fixes
* Testing dialog
* Refactor modal and add dialog component to simple dialog
* Use existent dialog
* Expect event from getText callback (annotation)
* Bump cornerstone-tools version
* Use simple dialog
* bump cornersotne version
* CR Update: Update dialgo method names and default values
* CR Update: Bump overlay and show only if theres at least one overlay prop set to true
* CR Update: Use percentage over view height in draggable area
* Fix broken test vtk checks WWWC tool
* Comment test (non-deterministic)