Edit this page

NA-MIC Project Weeks

Back to Projects List

OHIF-v3 Mode Gallery

Key Investigators

Project Description

OHIF-v3 architecture has been re-designed to enable building applications that are easily extensible to various use cases (Modes) that behind the scene would utilize desired functionalities (Extensions) to reach the goal of the use case. A mode can be thought of as a viewer app configured to perform a specific task, such as tracking measurements over time, 3D segmentation, a guided radiological workflow, etc. Addition of modes enables application with many applications as each mode become a mini app configuration behind the scene.

Currently OHIF developers have to copy paste the source code of a sample Mode/Extension and edit the source code to let OHIF know about the new Mode/Extension they are developing, which has its limitations. The purpose of this project is to overcome this by enabling self-registration of Modes and Extensions and provide a ohif-cli tool to automatically generate templates and link Mode/Extension(s) internally.


Stretch Goals:

Super stretch goal: type all the things

Approach and Plan

Complete all of the primary objectives as fast as possible and then play with the stretch goals.

Progress and Next Steps

Primary Goals



Stretch Goals

Stretch Goals




CLI illustrations

1) create-mode command to create a new template to write modes


It generates the template files for you to write your own mode


2) create-extension command to create a new template to write extensions.


It also generates template for an extension


3) add-mode <mode-name> will install any ohif-mode that has been published on npm registry and make it available on OHIF.

ezgif com-gif-maker (11)

After installation the mode becomes avaiable.

4) remove-mode <mode-name>

ezgif com-gif-maker (12)

5) search will search in all npm packages for those who have ohif-extension or ohif-mode in their keywords and display their information


6) OHIF website update

Using Github GraphQL we showcase a list of modes that are published on the npm registry.


The README file of each mode repository is fetched and shown in its detailed page


Background and References