Back to Projects List
Key Investigators
- James A. Petts (ICR)
- Erik Ziegler (Radical Imaging)
- Steve Pieper (Isomics)
- Mete Akdogan (Stanford)
- Emel Alkim (Stanford)
- Tobias Stein (DKFZ)
- Jasmin Metzger (DKFZ)
- Forrest Li (Kitware)
- Markus Herrmann (MGH & BWH CCDS)
Project Description
This project aims to work on interoperability of DICOM SEG within the cornerstonejs and vtkjs frameworks,
utilizing dcmjs for IO. This project is the logical continuation of a previous Project Week project
Objective
- Visualization of DICOM SEG segmentation data in both cornerstonejs and vtkjs frameworks. This will also facilitate cornerstone integration with ePAD.
- Provide easy interoperability between segmentations visualized using both libraries.
- Provide an example implementation as plugins to the OHIF viewer, utilizing both cornerstonejs and vtkjs.
Approach and Plan
- Build an easy to use, fast interface for loading DICOM SEG into native cornerstone brush annotation format.
- Build a bridge between the cornerstoneTools canvas, and vtkjs methods of rendering.
- Implement an example in a fully fledged web viewer (OHIF Viewer), such that annotations in a vtkjs-enabled window automagically display the relevant cornerstoneTools data related to that series in an appropriate fashion.
- Bonus goal: use vtkjs to show real-time 3D visualization of the SEG
Progress
- Added adapters to
dcmjs
that wrap the Segmentation
class for easy IO in Cornerstone
. These adapters switch between cornerstoneTools
formatted data and DICOM SEG, without adding Cornerstone
as a dependency for dcmjs
. Only binary SEGs for now.
- Built a bridge in a simple example viewer that shares a common buffer for segmentation data between
Cornerstone
and vtkjs
viewports.
- Synced interactive painting of segmentation data (labelmap) between
Cornerstone
and vtkjs
.
- We have 3D visualisation of the the SEG leveraging
vtkjs
, rendering the shared vtkjs
/Cornerstone
seg buffer.
Next Steps
- Make sure the SEG adapters can handle edge cases, including common, but interpretable abuse and/or violation of the standard e.g.:
- abuse: “fractional” SEGs which only have min and max value, 0 and 255, effectively being binary SEGs wasting 8x the storage.
- violation: “binary” SEGs which contain fractional data.
- Finish the
vtkjs
SEG adapters.
- Further develop the OHIF plugin framework and incorporate the progress we made on syncronisation.
Illustrations
Background and References
- DICOM SEG display in vtkjs: https://dcmjs-org.github.io/dcmjs/examples/vtkDisplay/index.html
- DICOM SEG display in cornerstone: https://dcmjs-org.github.io/dcmjs/examples/displaySegmentation/index.html