* fix pagination size
* clean up, start a very basic route configuration
* quick navigation between routes
* configure webpack to read .env variables
* export studylist filter
* split studylist filter into a component
* minor fix in studylist pagination
* update studylistfilter imports
* create studylist container with study list content
* moving file
* study list filter doc page
* catch change in ui-v2
* fix: 1px gap that shows text underneath
* Shift to routes folder
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* feat: StudyListTable Refactor
* feat: StudyListTable + Props Refactor
* fix expanded rows handler
* update and fix study list doc page
* fix date format
* use moment to format date
* expose new components
* fix study list expanded row
* Export and Create doc page for Pagination
* API Definition, Export and Doc page for StudyListTable
* StudyListTableRow
* use real example to mount study list
* move files
* temporary change study list (viewer) structure
* fix studyList
* remove unused files
* remove file
* remove unused package
* PR fixes
* Remove console.dir
Co-authored-by: Gustavo Lelis <galelis@gmail.com>
* feat: Data mocking for studies
* feat: Data Mocking for Study List
* fix empty study position
* rename variables for numOfStudies
* fix studies query
* remove alert :|
* minor refactor
* split utils and refactoring
* refactoring -- format, clean up icons, mdx mock
When we have multiple SEGs/RTSTRUCTs we intend to load the most recent
by default.
BREAKING CHANGE: 🧨 However we start to load once the first set of metadata arrives. We need
to wait until all series metadata is fetched.
✅Closes: #1715
Co-authored-by: James Petts <jamesapetts@gmail.com>
* Feat #1130 Adding support for downloading and zipping files
@ This is a combination of 12 commits.
- Feat #1130 Initial Commit
- Feat #1130 Adding support for hierachical lists
- Feat #1130 [WIP] Adding support for downloading and zipping files
- Feat #1130 Adding support for hierarchical folder structure study, series, instances on generated zip file
- Feat #1130 Adding unit tests and addressing code review feedbacks
- Feat #1130 POC (adding module to support on progress handling)
- Feat #1130 Improving logic from progress tracking utils
- Feat #1130 Renaming module with progress tracking utils
- Feat #1130 Beta version of Progress Tracking utils
- Feat #1130 Adding unit tests for Progress Tracking Utils
- Feat #1130 Documenting public methods from progress tracking utils module
- Feat #1130 Adding support for download and zip progress reporting
* Feat #1130 Addressing code review feedback
* Feat #1130 Preventing multiple downloads from executing at once
* Feat #1130 Improving error message for concurrent downloads
* Remove downloadAndZipSeriesOnViewports
Co-authored-by: James Petts <jamesapetts@gmail.com>
* Filter segs and fetch correct metadata.
* Initiate seg loading logic on series load into viewport. Need to write.
* Automatic consumption of SEG functional.
* Pull in master.
* Fix issues after pulling in master.
* Clean up old segmentation handlers.
* WIP
* WIP
* Poppulate viewport with metadata.
* Show hide/segmentation in react-vtkjs-viewport.
* feat: 🎸 View segmentations in vtkjs viewport
* Filter segs and fetch correct metadata.
* Initiate seg loading logic on series load into viewport. Need to write.
* Automatic consumption of SEG functional.
* Pull in master.
* Fix issues after pulling in master.
* Clean up old segmentation handlers.
* WIP
* WIP
* Poppulate viewport with metadata.
* Show hide/segmentation in react-vtkjs-viewport.
* feat: 🎸 View segmentations in vtkjs viewport
* Rebase on master.
* format format format
* add basic extension parts
* Updated yarn lock
* Fetch derived/referenced displaysets in sidepanel
* Add buttons, expose seriesDescription, write notes for Danny.
* Add growcut tool extention. -> Move to a seperate repo.
* Change some text fields.
* expose dialog provider
* hide draggable area
* No pointer events for now; need to revisit
* Don't filter seg from the outset for now
* fiddling about
* fix path to series data
* fix logic to determine next available labelmapindex
* Ability to swtich between labelmaps
* Return a promise so we can make sure our labelmap is loaded before pulling metadata
* Better UI to toggle labelmaps
* Fix accidental untoggle of active labelmap for ui
* Remove brush tool from cornerstone extension
* Add cstools in preInit for seg extension
* Add buttons for seg magic
* Hide the measurements panel for now
* Slightly better seg/scissor icons
* Add eraser
* ability to switch segments
* seg color / switcher
* Fix vtk labelmap cache.
* sidepanel should scroll if there's overflow
* Use a fancier range slider
* Slightly prettier buttons
* Push in progress
* A bit more reactive; handle no-meta
* Update to vtk.js 11.14.0 and react-vtkjs-viewport 0.6.0
* chore: kickstart preview
* Fix conflict issues
* Refactor panel
* Isolate increment functions
* Wip segment table
* Hide selector and add scroll to segmentation
* Increase width of segment description
* Hide not used items
* Add new select for segmentations
* Align ui
* Fix default segmentation
* Fix broken import test
* Get measurements panel back and add spacing to grouped buttons
* Hide brush and selector and refresh when switching segmentations
* Add pointer events back and fix broken tests for measurement table
* Update segment list when switching humbnails
* CR Update: Minor UI adjustments
* CR Update: Set active segment
* Move components to components folder
* Add new settings ui
* Integrate configuration
* Improve styles
* Float numbers
* Improve css
* Refresh settings menu if side panel changed
* Fix settings rendering logic and remove comments
* Extract components
* Remove not used tools
* Remove non used extension
* Use style variables and remove comments
* Remove non used dep from lock
* Remove tools
* Remove segmentation from toolbar
* Add todo and brushradius from config
* Fix packagejson growcut import
* Remove webpack config already defined in parent
* Update package json description
* Change component name to british english to us
* Improve prop types
* Rename cornerstone label map event
* Scope css
* Extract and add doc to helper
* Update jsdocs for getDerivedDatasets
* Add proptypes and cr updates
* Update tablistitem proptypes
* config is readonly, rollback destructuring
* Remove event for side panel
* Add jsdocs for util
* Extract getimageid to studymetada
* Use ohif log instead of console
* Remove specific style from side panel
* Fix default props for brush radius
* Descructure configuration props from settings component to avoid invalid props
* Update proptypes to be required (settings)
* Update readme
* Remove commandsmodule
* Get configuration module inside the component
* Set selected segment
* Rename extension and use modality to filter
* Fix for failing tests (#1423)
* hello world
* Finish rebase for Igor.
* Re-fix cornerstoneTools version that got messed up in merge.
* Fix reactivity of isDisabled, write implementation for the SEG panel.
* Nuke yarn.lock to stack CST to 4.12.0
* Remove debugger statements.
* WIP consume RTSTRUCT
* Doc API and add endpoints.
* Rebase on SEG PR.
* Update DICOM Keyword variables.
* Fix metadata vars format
* Add basic RT panel along with configuration
* Wire up configuration with settings component
* Mock structure set tables
* Improve design of settings
* Integrate list of contours
* Extract panel section
* Filter by seriesuid
* Fix slow settings
* Add jump to image
* Fix expandable items
* Improvements and CR update
* CR Update: Remove google config
* CR Update: Remove erase tool test
* CR Update: Remove instance
* CR Update: Fix issue with undefined prop
* CR Update: Update yarn lock
* Hide actions of structure item
Co-authored-by: James A. Petts <jamesapetts@gmail.com>
Co-authored-by: dannyrb <danny.ri.brown@gmail.com>
Co-authored-by: igoroctaviano] <igoroctaviano@users.noreply.github.com>
Co-authored-by: Mirna Silva <mirna.silva@radicalimaging.com>
* Show series in Study Browser before their metadata is retrieved
* Switch to decreasing for loop after code review (thanks @ckedar!)
* feat: Limit concurrent series metadata requests (#1581)
* Limit concurrent series metadata requests
* Switch to decreasing for loop after code review (thanks @ckedar!)
* Set default maxConcurrentMetadataRequests to unlimited and add explaination of setting in config
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
Co-authored-by: Erik Ziegler <erik.sweed@gmail.com>
* Address comments from code review
* Comment out misbehaving test
Co-authored-by: Kedar <ckedar@gmail.com>
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
* async load cornerstoneWADOImageLoader chunk
* Lazy initializing of CornerstoneWADIImageLoader - delayed till Viewer creation
* Async loading of react-vtkjs-viewport
* withCornerstone HOC to wrap routes requiring CornerstoneWADOImageLoader initiazation
* removed dead code in comments
* initWeWorkers is no more. Remove al its references.
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* Avoid un-necessary redux state update for frequent actions
* Avoid un-necessary re-render when no change in props
Co-authored-by: kedar.netelixir <kedar.choudhary@netelixir.com>
* Filter segs and fetch correct metadata.
* Initiate seg loading logic on series load into viewport. Need to write.
* Automatic consumption of SEG functional.
* Pull in master.
* Fix issues after pulling in master.
* Clean up old segmentation handlers.
* WIP
* WIP
* Poppulate viewport with metadata.
* Show hide/segmentation in react-vtkjs-viewport.
* feat: 🎸 View segmentations in vtkjs viewport
* Filter segs and fetch correct metadata.
* Initiate seg loading logic on series load into viewport. Need to write.
* Automatic consumption of SEG functional.
* Pull in master.
* Fix issues after pulling in master.
* Clean up old segmentation handlers.
* WIP
* WIP
* Poppulate viewport with metadata.
* Show hide/segmentation in react-vtkjs-viewport.
* feat: 🎸 View segmentations in vtkjs viewport
* Rebase on master.
* format format format
* add basic extension parts
* Updated yarn lock
* Fetch derived/referenced displaysets in sidepanel
* Add buttons, expose seriesDescription, write notes for Danny.
* Add growcut tool extention. -> Move to a seperate repo.
* Change some text fields.
* expose dialog provider
* hide draggable area
* No pointer events for now; need to revisit
* Don't filter seg from the outset for now
* fiddling about
* fix path to series data
* fix logic to determine next available labelmapindex
* Ability to swtich between labelmaps
* Return a promise so we can make sure our labelmap is loaded before pulling metadata
* Better UI to toggle labelmaps
* Fix accidental untoggle of active labelmap for ui
* Remove brush tool from cornerstone extension
* Add cstools in preInit for seg extension
* Add buttons for seg magic
* Hide the measurements panel for now
* Slightly better seg/scissor icons
* Add eraser
* ability to switch segments
* seg color / switcher
* Fix vtk labelmap cache.
* sidepanel should scroll if there's overflow
* Use a fancier range slider
* Slightly prettier buttons
* Push in progress
* A bit more reactive; handle no-meta
* Update to vtk.js 11.14.0 and react-vtkjs-viewport 0.6.0
* chore: kickstart preview
* Fix conflict issues
* Refactor panel
* Isolate increment functions
* Wip segment table
* Hide selector and add scroll to segmentation
* Increase width of segment description
* Hide not used items
* Add new select for segmentations
* Align ui
* Fix default segmentation
* Fix broken import test
* Get measurements panel back and add spacing to grouped buttons
* Hide brush and selector and refresh when switching segmentations
* Add pointer events back and fix broken tests for measurement table
* Update segment list when switching humbnails
* CR Update: Minor UI adjustments
* CR Update: Set active segment
* Move components to components folder
* Add new settings ui
* Integrate configuration
* Improve styles
* Float numbers
* Improve css
* Refresh settings menu if side panel changed
* Fix settings rendering logic and remove comments
* Extract components
* Remove not used tools
* Remove non used extension
* Use style variables and remove comments
* Remove non used dep from lock
* Remove tools
* Remove segmentation from toolbar
* Add todo and brushradius from config
* Fix packagejson growcut import
* Remove webpack config already defined in parent
* Update package json description
* Change component name to british english to us
* Improve prop types
* Rename cornerstone label map event
* Scope css
* Extract and add doc to helper
* Update jsdocs for getDerivedDatasets
* Add proptypes and cr updates
* Update tablistitem proptypes
* config is readonly, rollback destructuring
* Remove event for side panel
* Add jsdocs for util
* Extract getimageid to studymetada
* Use ohif log instead of console
* Remove specific style from side panel
* Fix default props for brush radius
* Descructure configuration props from settings component to avoid invalid props
* Update proptypes to be required (settings)
* Update readme
* Remove commandsmodule
* Get configuration module inside the component
* Set selected segment
* Rename extension and use modality to filter
* Fix for failing tests (#1423)
* hello world
* Finish rebase for Igor.
* Re-fix cornerstoneTools version that got messed up in merge.
* Fix reactivity of isDisabled, write implementation for the SEG panel.
* Nuke yarn.lock to stack CST to 4.12.0
* Remove debugger statements.
* fix: bump cornerstone-tools version to address toFixed issue
* test: force tests for MISTER^MR to navigate to study directly
* test: remove eraser tool test
* test: count is off by one
* test: don't save SR state for the time being
* test: disable more tests
Co-authored-by: James A. Petts <jamesapetts@gmail.com>
Co-authored-by: dannyrb <danny.ri.brown@gmail.com>
Co-authored-by: igoroctaviano] <igoroctaviano@users.noreply.github.com>
Co-authored-by: Mirna Silva <mirna.silva@radicalimaging.com>
* Instance metadata plus metadata provider overhaul.
Fix consumption of wado-uri urls
fallbacks + datatype agnosticism.
WIP DICOMify things.
fix various issues with naturalized variable naming migration.
Remove metadata provider.
Fix consumption of multiframe images and addition of CWIL metadata.
Fix strange build issues.
Fix CWIL style windowWidth to array from naturalized DICOM.
Fix PT, CT, CR and DX issues for cornerstone + DX issues for vtkjs.
Move color palette fetching down to the natuaralized JSON level.
Remove unused StudyMetadataSummary
Remove redundant dicom metadata dictionary.
Working local + json routes.
Fix SR read.
Finished first round of testing + cleaned up debugging etc.
* data => metadata for instance naturalizedJSON
* Update dcmjs version
* Correct github isssues.
* Fix erroneously replaced files.
* Danny's recommended changes.
* Instance metadata plus metadata provider overhaul.
Fix consumption of wado-uri urls
fallbacks + datatype agnosticism.
WIP DICOMify things.
fix various issues with naturalized variable naming migration.
Remove metadata provider.
Fix consumption of multiframe images and addition of CWIL metadata.
Fix strange build issues.
Fix CWIL style windowWidth to array from naturalized DICOM.
Fix PT, CT, CR and DX issues for cornerstone + DX issues for vtkjs.
Move color palette fetching down to the natuaralized JSON level.
Remove unused StudyMetadataSummary
Remove redundant dicom metadata dictionary.
Working local + json routes.
Fix SR read.
Finished first round of testing + cleaned up debugging etc.
* data => metadata for instance naturalizedJSON
* Update dcmjs version
* Correct github isssues.
* Fix erroneously replaced files.
* Danny's recommended changes.
* Update JSON CI
* Update casing of import.
* Fix jump for SR.
* Fix unit tests for measurements service
* Fix json CI test.
* fix: update yarn lock
* Fix local non-encapsulated pdf view
* CI updated to new sucess message.
Co-authored-by: Danny <danny.ri.brown@gmail.com>
* Replace class with className
* Start implementing UIDialogService
* Including UIModalService on dicomStorePicker
* Cleanup
* Remove unecessary divs
* Remove props not used
Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
* 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>
* chore: init lesion-tracker extension
* chore: dev build for lesion-tracker extension
* fix: a more appropriate library name
* chore: fix script naming
* 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
* Add ability to configure Google Cloud Healthcare API endpoint.
* Fixed bug in script.
* Fixed PR remark.
* Set Healthcare API endpoint in proper place.
* 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>
* 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.
* 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
* refactor: Shift ConnectedViewportDownloadForm to extension-cornerstone (#1224)
* refactor: 💡 Shift ConnectedViewportDownloadForm to its own proj
Shift ConnectedViewportDownloadForm to its own project and use local
state to get enabledElement
Closes: #1206
* Refactor connected component to cornerstone component
* Remove builtin behaviour from toolbarrow
* 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)
* 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
* 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
* 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
* feat: 🎸 Filter by url query param for seriesInstnaceUID
* fix: Set SR viewport as active by interaction (#1118)
* fix: Set SR viewport as active by interaction
* quick fix
* (eslint) add "before" as global variables
* add data-cy
* add data-cy
* create E2E test
* (E2E) create custom command to set layout size
* remove .only e2e
* remove throttle for onScroll
* feat: 🎸 Code review in progress
Code review. Move retrieveMEtadata load to separate folders. Some minor
code clean up
* feat: 🎸 Code review. Missing changes from previous commit
* feat: 🎸 Code review missing changes from previous commit
When sorting, Criteria for instance must use instanceNumber and not
instancesNumber
* feat: 🎸 Code review. Add more jsdoc info
* feat: 🎸 Code review. Prettify changed code
* feat: 🎸 Instead of filtering do promote. WIP
* feat: 🎸 Fix minor issue. Allow promote or filter
* feat: 🎸 Changing component to functional component
* Merge from master Part1/2
Conflicts solved:
both added: core/src/studies/services/wado/retrieveMetadataLoader.js
both added: core/src/studies/services/wado/retrieveMetadataLoaderAsync.js
both added: core/src/studies/services/wado/retrieveMetadataLoaderSync.js
both modified: viewer/src/connectedComponents/ViewerRetrieveStudyData.js
both modified: viewer/src/routes/ViewerRouting.js
* Merge process from master Part 1/2
Missing files from previous commit
* feat: 🎸 Add cancelable promises to cut async methods
* feat: 🎸 Missing changes from previous merge process
* feat: 🎸 Missing changes from previous merge process
* playing around
* Change extension init and preRegistration signature
* Clear test code
* Update core index test
* Fix test
* Tricking the bug
* Renaming file back to trick some weird bug
* feat: 🎸 Update hotkeys and user preferences modal
This feature fix incompatibility with existent hotkeys component and
adds user preferences modal back
Closes: #923
* Update preferences structure in store
* Hide window level section of user preferences
* Update modal to reflect current hotkey value
* Clone object with hotkeys before passing to manager
* CR Update: Extract hotkeys manager format code to manager
* Fix broken cypress test
* Use new modal provider
* Rename hotkeyDefinitions in hotkeyspreferences and use array as representation
* Update study test and remove unused styles
* feat: 🎸 New modal provider
A new modal provider/context component to unify modal related code and
simplify modal use
Closes: #1086
* refactor(ModalContext): Keep current modal lib
* Update modal provider version according to PR #1116
* Update modal provider props to use inner props
* Add custom class prop
* CR Update: Refactor provider to extract specific modal
* Fix modal import
* CR Update: Move from spread to object assign
* CR Update: Add proptypes, use classnames dependency over interpolation and rename modal
* fix: 🎸 Update AboutModal to use new modal provider (#1116)
* feat: 🎸 Update AboutModal to use new modal provider
This feature updates the AboutModal component and Header to use the new
modal context (modal provider)
* feat(ModalProvider): Add title prop to provider
* fix(ModalContext): Add defaults on hide
* CR Updates: Refactor modal provider and fix import
* CR Update: Expose props and flat modal optons
* Use customclassname instead of static
* Add cypress tag
* test: set right viewport when layout is decreased (#1146)
* chore(release): publish [skip ci]
- @ohif/viewer@2.3.6
* fix: 🐛 Minor issues measurement panel related to description (#1142)
* chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.28
- @ohif/ui@0.58.5
- @ohif/viewer@2.3.7
* fix: 🐛 Upgrade react-vtkjs-viewport to fix volume orientation (#1143)
* chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.29
- @ohif/viewer@2.3.8
* CR Update: Extract and rename AboutModal to AboutContent
* feat: 🎸 New modal provider (#1110)
* feat: 🎸 New modal provider
A new modal provider/context component to unify modal related code and
simplify modal use
Closes: #1086
* refactor(ModalContext): Keep current modal lib
* Update modal provider version according to PR #1116
* Update modal provider props to use inner props
* Add custom class prop
* CR Update: Refactor provider to extract specific modal
* Fix modal import
* CR Update: Move from spread to object assign
* CR Update: Add proptypes, use classnames dependency over interpolation and rename modal
* chore(release): publish [skip ci]
- @ohif/extension-vtk@0.52.30
- @ohif/ui@0.59.0
- @ohif/viewer@2.4.0
* CR Update: Keep translation name
* CR Update: Reposition cy tag of about modal in the correct level
* feat: 🎸 Update DownloadModal to use new modal provider (#1119)
* feat: 🎸 Update AboutModal to use new modal provider
This feature updates the AboutModal component and Header to use the new
modal context (modal provider)
* feat(ModalProvider): Add title prop to provider
* feat(DownloadModal): Refactor to use new modal provider
* Update modal provider props
* Use translation for DownloadDialog
* CR Update: Use useTranslation hook
* CR Update: Extract downloadDialog and rename to downloadContent
* CR Update: Fix typo
* CR Update: Rename download content to viewport download form
* feat: 🎸 Filter by url query param for seriesInstnaceUID
* fix: Set SR viewport as active by interaction (#1118)
* fix: Set SR viewport as active by interaction
* quick fix
* (eslint) add "before" as global variables
* add data-cy
* add data-cy
* create E2E test
* (E2E) create custom command to set layout size
* remove .only e2e
* remove throttle for onScroll
* feat: 🎸 Code review in progress
Code review. Move retrieveMEtadata load to separate folders. Some minor
code clean up
* feat: 🎸 Code review. Missing changes from previous commit
* feat: 🎸 Code review missing changes from previous commit
When sorting, Criteria for instance must use instanceNumber and not
instancesNumber
* feat: 🎸 Code review. Add more jsdoc info
* feat: 🎸 Code review. Prettify changed code
* feat: 🎸 Code review
Changed case for seriesInstanceUID. Use qido to filter (async). Fallback
to no params and same api method(async)
* fix: #1075 Returning to the Study List before all series have finished loading throws multiple errors in console
* fix: 🐛 Addressing review feedback from issue #1075
Adding support for cancelable pattern
Closes: #1075
* fix: 🐛 update unit test for exports
Closes: #1075
* feat: 🎸 New modal provider
A new modal provider/context component to unify modal related code and
simplify modal use
Closes: #1086
* refactor(ModalContext): Keep current modal lib
* Update modal provider version according to PR #1116
* Update modal provider props to use inner props
* Add custom class prop
* CR Update: Refactor provider to extract specific modal
* Fix modal import
* CR Update: Move from spread to object assign
* CR Update: Add proptypes, use classnames dependency over interpolation and rename modal
* fix: get adapter store picker to show
* fix: error caused by DICOMWeb "empty object" for patientName
* formatting
* refactor: kill the pills
* Indicate modalities is missing if not provided
* Consistent modality display
* Make sure modalities styles are applied
* revert config
* fix: 🐛 Fix ghost shadow on thumb
Updated react-dnd package for the lates. Refactored thumbnail component
Closes: 1087
* feat: 🎸 Code review
Set flex instead of float. Add cypress tag to thumb container
* feat: 🎸 Code review. Revised style when no description
* init
* use workbox-window
* Try to accomodate SW hosted at non root url
* v5 updated namespaces
* Test w/ no prompt
* add icons to manifest
* remove scope for now
* add icon tile information to entrypoint
* See if we can skirt by without a duplicate install
* shift client claims to skip waiting message
* Remove prepended slash
* comment out cache handler for now
* Simplify service-worker to skip waiting and install when a new worker is detected
* Use generated icons
* Update rollbar config
* feat: 🎸 Load spinner when selecting gcloud store. Add key on td
* feat: 🎸 Code review. Translate loading study status
* feat: 🎸 Code review. Minor code refactoring
* fix: add missing study and index declerations
* Newer version of react-dates (calendar input component)
* Add useMedia hook
* Add useDebounce hook
* Export hooks for consumption
* Pull search filter into own component
* StudyListWithData to StudyListRoute
* Rename pagination component
* Rename Toolbar
* CustomeDateRangePicker to plain ol' css
* Remove unused styles
* Misc
* Magic to make our "OR" filters work
* Play w/ Mobile styles
* Fix pagination pushing out max width for viewport
* Tidy up small and medium templates
* Remove unecessary nesting
* Better mobile header and logo styles
* Fix studyList font size
* Remove unused code
* hookup on click
* Fix table search selectors
* Cypress uses medium width
* Remove irrelevant test
* Fix primary sort
* Fix sort for our smaller displays
* fix study list sometimes longer than specified rowsPerPage
* Simplify date picker styles
* restore study date filters
* Fix about table styling
* fix take value for search
* Fix header sizing for viewer and list route
* Remove dead code
* Restore isLoading
* Update platform/ui/src/components/studyList/StudyList.styl
Co-Authored-By: Rodrigo Antinarelli <rodrigoantinarelli@gmail.com>
* Attempt first usage of translations w/ hooks
* Pull from react-i18n library
* Fit presets on to a single line
* add no results message
* Show error message in studyList table
* Update input selectors for e2e tests
* Make sure messages span all columns
* fix test selector for table results
* Skip hover for result rows
* fix imports
* Date filtering w/ config
* Default export
* Pushed to PageComponent
* Remove DropZone
This previously only worked for null/undefined studies. I'm unable to trigger the state by testing the data. This "might" have happened when using a fresh/empty PACS; but even an empty array of studies would not show
* Try workaround for percy snapshot
* Return our modified document
* test: some dark magic to make it possible to take screenshots of WebGL canvases
* Apply transformation directly to test DOM
* investigate: window:before:load
* Register flag in correct place; add experimental-webgl check
* Remaining canvas fixes
* Remove comment
* E2E tests: Stack Scroll, Right-click to zoom, Middle-click to Pan
* About modal tests and added some cypress selectors
* Checking app version number
* Removed accidental import
* Review fixes
* feat: 🎸 Load spinner when selecting gcloud store. Add key on td
* feat: 🎸 Code review. Translate loading study status
* feat: 🎸 Code review. Minor code refactoring
* fix: add missing study and index declerations
* test: Improviment on VTK beforeEach hook (#1057)
* feat: 🎸 Some improvements on table cell and react lifecycle
* feat: 🎸 Prevent component update on a not searchData changing
* feat: 🎸 Some cypress improv to pass ci
* feat: 🎸 Code reviewe and also fixing list for gcloud
* feat: 🎸 Code review. Add spinner on first load of store
* feat: 🎸 Code review. Centering loading list spinner icon