Package Exports
- dcmjs
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (dcmjs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
dcmjs
JavaScript implementation of DICOM manipulation. This code is an outgrowth of several efforts to implement web applications for medical imaging.
Note: this code is a work-in-progress and should not be used for production or clinical purposes
Goals
Overall the code should:
- Support reading and writing of correct DICOM objects
- Provide a programmer-friendly JavaScript environment for using and manipulating DICOM objects
- Include a set of useful demos to encourage correct usage of dcmjs and modern DICOM objects
- Encourage correct referencing of instances and composite context when creating derived objects
- Current target is modern web browsers, but a set of node-based utilities also makes sense someday.
Architectural goals include:
- Use modern JavaScript programming methods (currently ES6) but avoid heavy frameworks
- Leverage modern DICOM standards but avoid legacy parts
- Support straightforward integration with multiple JavaScript deployment targets (browser, node, etc) and frameworks.
Parts of DICOM that dcmjs will focus on:
- Enhanced Multiframe Images
- Segmentation Objects
- Parametric Maps
- Structured Reports
Parts of DICOM that dcmjs will not focus on:
- DIMSE (legacy networking like C-FIND, C-MOVE, etc)
- Physical Media (optical disks)
Status
Currently dcmjs is an early-stage development experiment.
// To install latest _stable_ release
npm install --save dcmjs
// To install latest code merged to master
npm install --save dcmjs@devImplemented
- Bidirectional conversion to and from part 10 binary DICOM and DICOM standard JSON encoding (as in DICOMweb)
- Bidirectional convertion to and from DICOM standard JSON and a programmer-friendly high level version.
In development
- Creation of (correct) enhanced multiframe DICOM objects from legacy image objects
- Creation of (correct) derived DICOM objects such as Segmentations and Structured Reports
TODO
- Create a test suite of input and output DICOM objects
- Test interoperability with other DICOM implementations
- Add documentation
History
- 2014
- DCMTK cross compiled to javascript at CTK Hackfest. While this was useful and powerful, it was heavyweight for typical web usage.
- 2016
- A Medical Imaging Web Appliction meeting at Stanford and follow-on hackfest in Boston helped elaborate the needs for manipulating DICOM in pure Javascript.
- Based on DICOM Part 10 read/write code initiated by Weiwei Wu of OHIF, Steve Pieper developed further features and examples of creating multiframe and segmentation objects discussed with the community at RSNA
- 2017
- At NA-MIC Project Week 25 Erik Ziegler and Steve Pieper worked with the community to define some example use cases to mix the pure JavaScript DICOM code with Cornerstone and CornerstoneTools.
- 2018
- Work continues to develop SR and SEG support to OHIFViewer allow interoperability with DICOM4QI
Support
The developers gratefully acknowledge their reseach support:
- Open Health Imaging Foundation (OHIF)
- Quantitative Image Informatics for Cancer Research (QIICR)
- Radiomics
- The Neuroimage Analysis Center
- The National Center for Image Guided Therapy