Back to Projects List
- 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)
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
- 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
- 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
- Synced interactive painting of segmentation data (labelmap) between
- We have 3D visualisation of the the SEG leveraging
vtkjs, rendering the shared
Cornerstone seg buffer.
- 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.
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