web infrastructure for the cross-compiled dcmtk in javascript (uses emscripten)

Download as .zip Download as .tar.gz View on GitHub

Welcome to dcmjs

dcmjs is a javascript cross-compilation of dcmtk (dcmtk.org) for use in a javascript environment. Uses emscripten.


See License.txt for information on using and contributing.



DICOM is a wonderful but tricky standard to support. Particularly when working with real-world DICOM implementations it is very common to run into non-standard data file, or even standard files that use valid but unusual aspects of the standard. Lucky people can ignore these problem DICOM files. Unlucky people need to find workarounds and deal the files. Fortunately for the unlucky people, a community of software developers had worked around many of the issues and dcmtk is a robust toolkit that embeds hard-earned knowledge in a C++ library.

But the dcmtk C++ library needs to be compiled to be useful. And it needs to be installed on a computer in order to operate. Traditionally, C++ compilers, linkers, and packaging tools are used for this task. It's a task to build a package and it's sometimes a burden to have users install packages on their computers. Not to mention there are support issues with native software installations.

Instead, for some applications we'd like to have a website that understands dicom and is able to process it locally. A very common use case for this is running dicom deidentification code, where the patient confidential data cannot leave the host institution without being deidentified. In these situations a server-based application can't work. This is the case that led us to try building dcmjs.


The dcmtk code is compiles with cmake in the normal way, but using the emsdk. More details on how to replicate this will be added as the system gets refined. For now you can use the .js files as-is.

Authors and Contributors

dcmjs is a product of CTK and was initiated at the May 2014 CTK Hackfest, hosted at Washington University, St. Louis. See the events page at commontk.org for more info. DCMTK is from Offis (dicom.offis.de).

Support or Contact

Not yet supported so don't expect this to work perfectly any time soon.