@ohif/app
@ohif/app 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.x
branch
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/Viewers
as a remote
repository (the upstream
)
git remote add upstream git@github.com:OHIF/Viewers.git
Developing Locally
In your cloned repository's root folder, run:
yarn install
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:
yarn run cy
yarn run cy:run
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:
index.js;
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):
This project follows the
all-contributors
specification. Contributions of any kind welcome!
License
MIT © OHIF