Our custom OHIF Viewer.
Go to file
Igor Octaviano 2ed6818171
feat: Add WSI bulk data annotations support (ANN) (#4972)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
2025-08-20 08:13:30 -04:00
.circleci chore: remove manual approve (#5299) 2025-08-05 10:17:00 -04:00
.docker fix: routerBasename setting (#4891) 2025-03-27 16:47:16 -04:00
.github chore: recovery 2 (#5014) merge to 3.11 (#5175) 2025-07-03 14:08:46 -04:00
.netlify chore(prettier): full repo linting and code reformatting once and for all (#3627) 2023-09-01 16:19:39 -04:00
.scripts fix(JSONScript) update name of the script in the comments to follow renaming (#4441) 2024-11-06 11:19:20 -05:00
.vscode fix(segmentation): Added support for unhydrated RTSTRUCT in MPR. Added support for overlaying segmentations over display sets the segmentations do not reference. (#5168) 2025-07-02 08:38:22 -04:00
.webpack feat: Add WSI bulk data annotations support (ANN) (#4972) 2025-08-20 08:13:30 -04:00
addOns feat: Add WSI bulk data annotations support (ANN) (#4972) 2025-08-20 08:13:30 -04:00
extensions feat: Add WSI bulk data annotations support (ANN) (#4972) 2025-08-20 08:13:30 -04:00
modes feat: Add WSI bulk data annotations support (ANN) (#4972) 2025-08-20 08:13:30 -04:00
platform feat: Add WSI bulk data annotations support (ANN) (#4972) 2025-08-20 08:13:30 -04:00
testdata@bd743ed76b fix: build (#4471) 2024-11-06 11:16:43 -05:00
tests feat: add support to scoord3d (#5016) 2025-07-31 00:21:26 -04:00
.browserslistrc fix: measurementsAPI issue caused by production build (#842) 2019-09-04 13:53:13 -04:00
.codespellrc docs(spelling): Add codespell config + github action, run and fix a good number of typos (#3645) 2023-09-12 07:40:38 -04:00
.dockerignore fix: Docker build time was very slow on a tiny change (#4559) 2025-01-02 14:46:53 -05:00
.eslintignore feat(cli): Ohif cli for modes and extensions modification (#2696) 2022-04-06 13:28:42 -04:00
.eslintrc.json feat(customization): new customization service api (#4688) 2025-01-23 14:24:13 -05:00
.gitattributes feat: Add DICOM SEG support and MPR, referenceLines and StackSync and more (#3015) 2022-11-16 14:19:52 -05:00
.gitignore feat: add support to scoord3d (#5016) 2025-07-31 00:21:26 -04:00
.gitmodules fix: Integration test instability (#3597) 2023-08-15 07:20:45 -04:00
.node-version feat(node): move to node 20 (#4594) 2024-12-11 15:26:26 -05:00
.nycrc.json chore: add test coverage (#4960) 2025-04-16 15:56:52 -04:00
.prettierignore feat(cli): Ohif cli for modes and extensions modification (#2696) 2022-04-06 13:28:42 -04:00
.prettierrc chore(prettier): fix end-of-line warnings (#3642) 2023-09-11 10:31:40 -04:00
aliases.config.js Chore/kill yalc with fire (#629) 2019-08-13 15:36:46 -04:00
babel.config.js fix(UnitTests): Fixing "Cannot find module @cornerstonejs/core" error while running unit tests (#5148) 2025-07-11 16:36:49 -04:00
bun.lock feat: Add WSI bulk data annotations support (ANN) (#4972) 2025-08-20 08:13:30 -04:00
CHANGELOG.md chore(version): Update package versions [skip ci] 2025-08-15 18:17:11 +00:00
CODE_OF_CONDUCT.md docs: code of conduct 2019-12-09 22:00:17 -05:00
commit.txt chore(version): version.json [skip ci] 2025-08-15 18:17:04 +00:00
CONTRIBUTING.md docs: contributing guidelines 2019-12-09 22:02:29 -05:00
DATACITATION.md OHIF with Cornerstone3D 2.0 (#4347) 2024-11-06 07:15:27 -05:00
diff.txt feat(viewport): Enhance Orientation Menu with Reformat Option and UI Improvements (#5184) 2025-07-14 09:10:09 -04:00
Dockerfile fix: Update Dockerfile (#5319) 2025-08-11 14:06:07 -04:00
eslintAliasesResolver.js Chore/kill yalc with fire (#629) 2019-08-13 15:36:46 -04:00
jest.config.base.js fix(UnitTests): Fixing "Cannot find module @cornerstonejs/core" error while running unit tests (#5148) 2025-07-11 16:36:49 -04:00
jest.config.js chore(prettier): full repo linting and code reformatting once and for all (#3627) 2023-09-01 16:19:39 -04:00
lerna.json chore(version): Update package versions [skip ci] 2025-08-15 18:17:11 +00:00
LICENSE Chore/kill yalc with fire (#629) 2019-08-13 15:36:46 -04:00
netlify-lerna-cache.sh fix: Use same config for branch deploys as for deploy previews (#1893) 2020-07-22 19:41:10 +02:00
netlify-lerna-restore.sh fix: Use same config for branch deploys as for deploy previews (#1893) 2020-07-22 19:41:10 +02:00
nx.json fix: Allow the mode setup/creation to be async, and provide a few more values to extension/app config/mode setup. (#4016) 2024-06-19 09:32:00 -04:00
package.json feat: add support to scoord3d (#5016) 2025-07-31 00:21:26 -04:00
playwright.config.ts fix(UI): Restored the scroll bar OHIF L&F (#5202) 2025-07-13 22:34:18 -04:00
postcss.config.js chore(prettier): full repo linting and code reformatting once and for all (#3627) 2023-09-01 16:19:39 -04:00
preinstall.js feat: cornerstone3D stack and volume viewports (#2787) 2022-07-27 12:39:04 -04:00
publish-package.mjs fix(cli): various fixes for adding custom modes and extensions (#3683) 2023-09-29 10:35:30 -04:00
publish-version.mjs fix(cli): various fixes for adding custom modes and extensions (#3683) 2023-09-29 10:35:30 -04:00
README.md fix(seg): Enhance segmentation tools and UI, refactor code, and update dependencies (#4915) 2025-04-02 18:10:47 -04:00
rsbuild.config.ts feat: Add WSI bulk data annotations support (ANN) (#4972) 2025-08-20 08:13:30 -04:00
runtime.txt feat: enhanced error handling ui (#3021) 2022-11-16 20:27:24 -05:00
tsconfig.json fix(build): BUILD_PACKAGES_QUICK PR check (#5160) 2025-06-25 18:07:52 -04:00
version.json chore(version): version.json [skip ci] 2025-08-15 18:17:04 +00:00
version.mjs docs: update to next version [BUMP BETA] (#4493) 2024-11-12 16:18:33 -05:00
version.txt chore(version): version.json [skip ci] 2025-08-15 18:17:04 +00:00
yarn.lock feat: add support to scoord3d (#5016) 2025-07-31 00:21:26 -04:00

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.


NPM version MIT License This project is using Percy.io for visual regression testing.

Measurement tracking Measurement Tracking Demo
Segmentations Labelmap Segmentations Demo
Hanging Protocols Fusion and Custom Hanging protocols Demo
Volume Rendering Volume Rendering Demo
PDF PDF Demo
RTSTRUCT RT STRUCT Demo
4D 4D Demo
VIDEO Video Demo
microscopy Slide Microscopy Demo

About

The OHIF Viewer 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

For commercial support, academic collaborations, and answers to common questions; please use Get Support to contact us.

Developing

Branches

master branch - The latest dev (beta) release

  • master - The latest dev release

This is typically where the latest development happens. Code that is in the master branch has passed code reviews and automated tests, but it may not be deemed ready for production. This branch usually contains the most recent changes and features being worked on by the development team. It's often the starting point for creating feature branches (where new features are developed) and hotfix branches (for urgent fixes).

Each package is tagged with beta version numbers, and published to npm such as @ohif/ui@3.6.0-beta.1

release/* branches - The latest stable releases

Once the master branch code reaches a stable, release-ready state, we conduct a comprehensive code review and QA testing. Upon approval, we create a new release branch from master. These branches represent the latest stable version considered ready for production.

For example, release/3.5 is the branch for version 3.5.0, and release/3.6 is for version 3.6.0. After each release, we wait a few days to ensure no critical bugs. If any are found, we fix them in the release branch and create a new release with a minor version bump, e.g., 3.5.1 in the release/3.5 branch.

Each package is tagged with version numbers and published to npm, such as @ohif/ui@3.5.0. Note that master is always ahead of the release branch. We publish docker builds for both beta and stable releases.

Here is a schematic representation of our development workflow:

alt text

Requirements

  • Yarn 1.20.0+
  • Node 18+
  • Yarn Workspaces should be enabled on your machine:
    • yarn config set workspaces-experimental true

Getting Started

  1. Fork this repository
  2. Clone your forked repository
    • 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:

# 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 package.json files.

Yarn Commands Description
Develop
dev Default development experience for Viewer
dev:fast Our experimental fast dev mode that uses rsbuild instead of webpack
test:unit Jest multi-project test runner; overall coverage
Deploy
build* Builds production output for our PWA Viewer

* - For more information on different builds, check out our Deploy Docs

Project

The OHIF Medical Image Viewing Platform is maintained as a 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:

.
├── 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

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

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

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

NCI Imaging Data Commons (IDC) project supported the development of new features and bug fixes marked with "IDC:priority", "IDC:candidate" or "IDC:collaboration". NCI Imaging Data Commons is supported by contract number 19X037Q from Leidos Biomedical Research under Task Order HHSN26100071 from NCI. IDC Viewer is a customized version of the OHIF Viewer.

This project is tested with BrowserStack. Thank you for supporting open-source!

License

MIT © OHIF

FOSSA Status