OHIF Medical Imaging Viewer

The 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.

Read The Docs
Live Demo | Component Library
📰 Join OHIF Newsletter 📰

[![NPM version][npm-version-image]][npm-url] [![NPM downloads][npm-downloads-image]][npm-url] [![Pulls][docker-pulls-img]][docker-image-url] [![MIT License][license-image]][license-url] [![This project is using Percy.io for visual regression testing.][percy-image]](percy-url) ## About The OHIF Medical Imaging Viewer is for viewing medical images. It can retrieve and load images from most sources and formats; render sets in 2D, 3D, and reconstructed representations; allows for the manipulation, annotation, and serialization of observations; supports internationalization, OpenID Connect, offline use, hotkeys, and many more features. Almost everything offers some degree of customization and configuration. If it doesn't support something you need, we accept pull requests and have an ever improving Extension System. ## Why Choose Us ### Community & Experience The OHIF Viewer is a collaborative effort that has served as the basis for many active, production, and FDA Cleared medical imaging viewers. It benefits from our extensive community's collective experience, and from the sponsored contributions of individuals, research groups, and commercial organizations. ### Built to Adapt After more than 8-years of integrating with many companies and organizations, The OHIF Viewer has been rebuilt from the ground up to better address the varying workflow and configuration needs of its many users. All of the Viewer's core features are built using it's own extension system. The same extensibility that allows us to offer: - 2D and 3D medical image viewing - Multiplanar Reconstruction (MPR) - Maximum Intensity Project (MIP) - Whole slide microscopy viewing - PDF and Dicom Structured Report rendering - Segmentation rendering as labelmaps and contours - User Access Control (UAC) - Context specific toolbar and side panel content - and many others Can be leveraged by you to customize the viewer for your workflow, and to add any new functionality you may need (and wish to maintain privately without forking). ### Support We offer support through [GitHub Issues](https://github.com/OHIF/Viewers/issues/new/choose). You can: - [Report a Bug 🐛](https://github.com/OHIF/Viewers/issues/new?assignees=&labels=Community%3A+Report+%3Abug%3A%2CAwaiting+Reproduction&projects=&template=bug-report.yml&title=%5BBug%5D+) - [Request a Feature 🚀](https://github.com/OHIF/Viewers/issues/new?assignees=&labels=Community%3A+Request+%3Ahand%3A&projects=&template=feature-request.yml&title=%5BFeature+Request%5D+) - [Ask a Question 🤗](community.ohif.org) - [Slack Channel](https://join.slack.com/t/cornerstonejs/shared_invite/zt-1r8xb2zau-dOxlD6jit3TN0Uwf928w9Q) For commercial support, academic collaborations, and answers to common questions; please read our [documented FAQ](https://docs.ohif.org/faq/index.html#does-ohif-offer-commercial-support). ## Developing ### Requirements - [Yarn 1.17.3+](https://yarnpkg.com/en/docs/install) - [Node 16+](https://nodejs.org/en/) - Yarn Workspaces should be enabled on your machine: - `yarn config set workspaces-experimental true` ### Getting Started 1. [Fork this repository][how-to-fork] 2. [Clone your forked repository][how-to-clone] - `git clone https://github.com/YOUR-USERNAME/Viewers.git` 3. Navigate to the cloned project's directory 4. Add this repo as a `remote` named `upstream` - `git remote add upstream https://github.com/OHIF/Viewers.git` 5. `yarn install` to restore dependencies and link projects #### To Develop _From this repository's root directory:_ ```bash # Enable Yarn Workspaces yarn config set workspaces-experimental true # Restore dependencies yarn install ``` ## Commands These commands are available from the root directory. Each project directory also supports a number of commands that can be found in their respective `README.md` and `project.json` files. | Yarn Commands | Description | | ---------------------------- | ------------------------------------------------------------- | | **Develop** | | | `dev` or `start` | Default development experience for Viewer | | `test:unit` | Jest multi-project test runner; overall coverage | | **Deploy** | | | `build`\* | Builds production output for our PWA Viewer | | \* - For more information on our different builds, check out our [Deploy Docs][deployment-docs] ## Project The OHIF Medical Image Viewing Platform is maintained as a [`monorepo`][monorepo]. This means that this repository, instead of containing a single project, contains many projects. If you explore our project structure, you'll see the following: ```bash . ├── extensions # │ ├── _example # Skeleton of example extension │ ├── default # basic set of useful functionalities (datasources, panels, etc) │ ├── cornerstone # image rendering and tools w/ Cornerstone3D │ ├── cornerstone-dicom-sr # DICOM Structured Report rendering and export │ ├── cornerstone-dicom-sr # DICOM Structured Report rendering and export │ ├── cornerstone-dicom-seg # DICOM Segmentation rendering and export │ ├── cornerstone-dicom-rt # DICOM RTSTRUCT rendering │ ├── cornerstone-microscopy # Whole Slide Microscopy rendering │ ├── dicom-pdf # PDF rendering │ ├── dicom-video # DICOM RESTful Services │ ├── measurement-tracking # Longitudinal measurement tracking │ ├── tmtv # Total Metabolic Tumor Volume (TMTV) calculation | │ ├── modes # │ ├── _example # Skeleton of example mode │ ├── basic-dev-mode # Basic development mode │ ├── longitudinal # Longitudinal mode (measurement tracking) │ ├── tmtv # Total Metabolic Tumor Volume (TMTV) calculation mode │ └── microscopy # Whole Slide Microscopy mode │ ├── platform # │ ├── core # Business Logic │ ├── i18n # Internationalization Support │ ├── ui # React component library │ ├── docs # Documentation │ └── viewer # Connects platform and extension projects │ ├── ... # misc. shared configuration ├── lerna.json # MonoRepo (Lerna) settings ├── package.json # Shared devDependencies and commands └── README.md # This file ``` Want to better understand why and how we've structured this repository? Read more about it in our [Architecture Documentation][ohif-architecture]. | Name | Description | Links | | ---------------------------------------------------- | ----------------------------------------------------- | ---------------------- | | [@ohif/extension-cornerstone][extension-cornerstone] | 2D image viewing, annotation, and segementation tools | [NPM][cornerstone-npm] | ## Acknowledgments To acknowledge the OHIF Viewer in an academic publication, please cite > _Open Health Imaging Foundation Viewer: An Extensible Open-Source Framework > for Building Web-Based Imaging Applications to Support Cancer Research_ > > Erik Ziegler, Trinity Urban, Danny Brown, James Petts, Steve D. Pieper, Rob > Lewis, Chris Hafey, and Gordon J. Harris > > _JCO Clinical Cancer Informatics_, no. 4 (2020), 336-345, DOI: > [10.1200/CCI.19.00131](https://www.doi.org/10.1200/CCI.19.00131) > > Open-Access on Pubmed Central: > https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7259879/ or, for v1, please cite: > _LesionTracker: Extensible Open-Source Zero-Footprint Web Viewer for Cancer > Imaging Research and Clinical Trials_ > > Trinity Urban, Erik Ziegler, Rob Lewis, Chris Hafey, Cheryl Sadow, Annick D. > Van den Abbeele and Gordon J. Harris > > _Cancer Research_, November 1 2017 (77) (21) e119-e122 DOI: > [10.1158/0008-5472.CAN-17-0334](https://www.doi.org/10.1158/0008-5472.CAN-17-0334) **Note:** If you use or find this repository helpful, please take the time to star this repository on Github. This is an easy way for us to assess adoption and it can help us obtain future funding for the project. This work is supported primarily by the National Institutes of Health, National Cancer Institute, Informatics Technology for Cancer Research (ITCR) program, under a [grant to Dr. Gordon Harris at Massachusetts General Hospital (U24 CA199460)](https://projectreporter.nih.gov/project_info_description.cfm?aid=8971104). This project is tested with BrowserStack. Thank you for supporting open source ## License MIT © [OHIF](https://github.com/OHIF) [lerna-image]: https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg [lerna-url]: https://lerna.js.org/ [netlify-image]: https://api.netlify.com/api/v1/badges/32708787-c9b0-4634-b50f-7ca41952da77/deploy-status [netlify-url]: https://app.netlify.com/sites/ohif-dev/deploys [all-contributors-image]: https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square [circleci-image]: https://circleci.com/gh/OHIF/Viewers.svg?style=svg [circleci-url]: https://circleci.com/gh/OHIF/Viewers [codecov-image]: https://codecov.io/gh/OHIF/Viewers/branch/master/graph/badge.svg [codecov-url]: https://codecov.io/gh/OHIF/Viewers/branch/master [prettier-image]: https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square [prettier-url]: https://github.com/prettier/prettier [semantic-image]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg [semantic-url]: https://github.com/semantic-release/semantic-release [npm-url]: https://npmjs.org/package/@ohif/app [npm-downloads-image]: https://img.shields.io/npm/dm/@ohif/app.svg?style=flat-square [npm-version-image]: https://img.shields.io/npm/v/@ohif/app.svg?style=flat-square [docker-pulls-img]: https://img.shields.io/docker/pulls/ohif/viewer.svg?style=flat-square [docker-image-url]: https://hub.docker.com/r/ohif/viewer [license-image]: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square [license-url]: LICENSE [percy-image]: https://percy.io/static/images/percy-badge.svg [percy-url]: https://percy.io/Open-Health-Imaging-Foundation/OHIF-Viewer [monorepo]: https://en.wikipedia.org/wiki/Monorepo [how-to-fork]: https://help.github.com/en/articles/fork-a-repo [how-to-clone]: https://help.github.com/en/articles/fork-a-repo#step-2-create-a-local-clone-of-your-fork [ohif-architecture]: https://docs.ohif.org/architecture/index.html [ohif-extensions]: https://docs.ohif.org/architecture/index.html [deployment-docs]: https://docs.ohif.org/deployment/ [react-url]: https://reactjs.org/ [pwa-url]: https://developers.google.com/web/progressive-web-apps/ [ohif-viewer-url]: https://www.npmjs.com/package/@ohif/app [configuration-url]: https://docs.ohif.org/configuring/ [extensions-url]: https://docs.ohif.org/extensions/ [platform-core]: platform/core/README.md [core-npm]: https://www.npmjs.com/package/@ohif/core [platform-i18n]: platform/i18n/README.md [i18n-npm]: https://www.npmjs.com/package/@ohif/i18n [platform-ui]: platform/ui/README.md [ui-npm]: https://www.npmjs.com/package/@ohif/ui [platform-viewer]: platform/app/README.md [viewer-npm]: https://www.npmjs.com/package/@ohif/app [extension-cornerstone]: extensions/cornerstone/README.md [cornerstone-npm]: https://www.npmjs.com/package/@ohif/extension-cornerstone [extension-dicom-html]: extensions/dicom-html/README.md [html-npm]: https://www.npmjs.com/package/@ohif/extension-dicom-html [extension-dicom-microscopy]: extensions/dicom-microscopy/README.md [microscopy-npm]: https://www.npmjs.com/package/@ohif/extension-dicom-microscopy [extension-dicom-pdf]: extensions/dicom-pdf/README.md [pdf-npm]: https://www.npmjs.com/package/@ohif/extension-dicom-pdf [extension-vtk]: extensions/vtk/README.md [vtk-npm]: https://www.npmjs.com/package/@ohif/extension-vtk [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FOHIF%2FViewers.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FOHIF%2FViewers?ref=badge_large)