Edit this page

NA-MIC Project Weeks

Back to Projects List

Adding 4D data support in OHIF Viewer v3

Key Investigators

Presenter location: Online

Project Description

OHIF Viewer v3 provides a very flexible and extensible DICOM viewer with zero-footprint running in your browser. It is based on Cornerstone including multiplanar reformatting support, segmentations, etc. However, OHIF viewer does not support 4D DICOM data natively. This especially affects dynamic or function CT/MR data, such as diffusion- weighted imaging (DWI) and dynamic contrast enhanced (DCE) CT/MR.

Objective

  1. Get a feel for how OHIF creates display sets for displaying data using cornerstone.
  2. Create functionality to split a given display set into multiple subsets based on the value in a provide DICOM tag (e.g. TemporalPositionIdentifier (0020, 0100) or DiffusionBValue (0018, 9087)).
  3. Optional Create functionality to detect if a display set is “4D”, and provide a list of valid tags that can be used to split the display set.

Approach and Plan

  1. Create a local instance of OHIF viewer
  2. Create a toy dataset containing 3D, valid 4D and “invalid” 4D data (e.g. DICOM volume consisting of differently angled subvolumes) to test/view functionality.
  3. Create OHIF viewer extension to test/develop functionality, create mode to allow interaction with the extension.
  4. Create functionality for splitting dataset (first on single or few known tags, no checking)
  5. Improve functionality from previous point (custom tags, checking validity prior to splitting, etc.)
  6. If time remains, check as to the feasibility/difficulty of supporting rendering 4D data directly.

Progress and Next Steps

  1. OHIF viewer installed locally and ready for testing/customization.
  2. Created local DCM4CHEE instance with toy data from Amsterdam and IDC
  3. 4D viewport created for OHIF/cornerstone3D (in OHIF PR #3664, cornerstone3D commit 42054522).
  4. Expand cornerstone functionality for splitting datasets into different frames Cornerstone3D PR #1055.
  5. Fix bug in OHIF viewer breaking the scrollbar in SidePanel da595489.
  6. Created python scripts for comparing DICOM metadata and exhaustive search of potential 4D splitting tags.

Next Steps/ToDo:

  1. During testing, a new use case emerged: Singe SeriesInstanceUID, but 2 valid 4D stacks, identifiable by ImageType. To correctly handle this use case, data needs to be first split by ImageType, then by frame identifier (in this case TemporalPositionIndex).
  2. Additional ToDo’s as specified in OHIF PR #3664, concerning updates of the 4D datapanel GUI, and only displaying it when a valid 4D dataset is active.
  3. Check the functionality of retrieving 4D tag values using cornerstone3D metadata providers.

Illustrations

Support for 4D multistack - DWI split by GE private tag:

Support for 4D multistack - DCE split by Temporal Position Identifier

Background and References