* 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> |
||
|---|---|---|
| .. | ||
| .recipes | ||
| .webpack | ||
| assets | ||
| cypress | ||
| public | ||
| src | ||
| .all-contributorsrc | ||
| .browserslistrc | ||
| .dockerignore | ||
| .env | ||
| .env.example | ||
| .eslintignore | ||
| babel.config.js | ||
| CHANGELOG.md | ||
| cypress.json | ||
| jest.config.js | ||
| jestBabelTransform.js | ||
| LICENSE | ||
| package.json | ||
| postcss.config.js | ||
| README.md | ||
@ohif/viewer
@ohif/viewer is a zero-footprint medical image viewer provided by the Open Health Imaging Foundation (OHIF). It is a configurable and extensible progressive web application with out-of-the-box support for image archives which support DICOMweb.
ATTENTION: If you are looking for Version 1 (the Meteor Version) of this repository, it lives on the
v1.xbranch
Why?
Building a web based medical imaging viewer from scratch is time intensive, hard to get right, and expensive. Instead of re-inventing the wheel, you can use the OHIF Viewer as a rock solid platform to build on top of. The Viewer is a React Progressive Web Application that can be embedded in existing applications via it's packaged source (ohif-viewer) or hosted stand-alone. The Viewer exposes configuration and extensions to support workflow customization and advanced functionality at common integration points.
If you're interested in using the OHIF Viewer, but you're not sure it supports your use case check out our docs. Still not sure, or you would like to propose new features? Don't hesitate to create an issue or open a pull request.
Getting Started
This readme is specific to testing and developing locally. If you're more interested in production deployment strategies, you can check out our documentation on publishing.
Want to play around before you dig in? Check out our LIVE Demo
Setup
Requirements:
Steps:
- Fork this repository
- Clone your forked repository (your
origin)
git clone git@github.com:YOUR_GITHUB_USERNAME/Viewers.git
- Add
OHIF/Viewersas aremoterepository (theupstream)
git remote add upstream git@github.com:OHIF/Viewers.git
Developing Locally
In your cloned repository's root folder, run:
// Restore dependencies
yarn install
// Stands up local server to host Viewer.
// Viewer connects to our public cloud PACS by default
yarn start
For more advanced local development scenarios, like using your own locally hosted PACS and test data, check out our Essential: Getting Started guide.
E2E Tests
Using Cypress to create End-to-End tests and check whether the application flow is performing correctly, ensuring that the integrated components are working as expected.
Why Cypress?
Cypress is a next generation front end testing tool built for the modern web. With Cypress is easy to set up, write, run and debug tests
It allow us to write different types of tests:
- End-to-End tests
- Integration tests
- Unit tets
All tests must be in ./cypress/integration folder.
Commands to run the tests:
// Open Cypress Dashboard that provides insight into what happened when your tests ran
yarn run cy
// Run all tests using Electron browser headless
yarn run cy:run
// Run all tests in CI mode
yarn run cy:run:ci
Contributing
Large portions of the Viewer's functionality are maintained in other repositories. To get a better understanding of the Viewer's architecture and "where things live", read our docs on the Viewer's architecture
It is notoriously difficult to setup multiple dependent repositories for end-to-end testing and development. That's why we recommend writing and running unit tests when adding and modifying features. This allows us to program in isolation without a complex setup, and has the added benefit of producing well-tested business logic.
- Clone this repository
- Navigate to the project directory, and
yarn install - To begin making changes,
yarn run dev - To commit changes, run
yarn run cm
When creating tests, place the test file "next to" the file you're testing. For example:
// File
index.js;
// Test for file
index.test.js;
As you add and modify code, jest will watch for uncommitted changes and run
your tests, reporting the results to your terminal. Make a pull request with
your changes to master, and a core team member will review your work. If you
have any questions, please don't hesitate to reach out via a GitHub issue.
Contributors
Thanks goes to these wonderful people (emoji key):
Erik Ziegler 💻 🚇 | Evren Ozkan 💻 | Gustavo André Lelis 💻 | Danny Brown 💻 🚇 | allcontributors[bot] 📖 | Esref Durna 💬 | diego0020 💻 |
David Wire 💻 | João Felipe de Medeiros Moreira ⚠️ |
This project follows the all-contributors specification. Contributions of any kind welcome!
License
MIT © OHIF