My DICOM Tutorials


This is a series of articles on the DICOM® standard which plays a crucial role in nearly all diagnostic medicine-related workflows such as modality imaging, image transfer, image storage, procedures, printing, and interpretation. I hope this series of articles is useful to programmers and other information technology personnel who are new to this field by providing a quick and yet broad understanding necessary of the fundamentals before they attempt to build DICOM applications or participate in any DICOM-related initiatives. Also, a quick disclaimer that I do not serve on the DICOM standards committee. So, you should to refer to the standard itself and its latest recommendations before starting any project involving this standard.

Although the world is full of suffering, it is also full of the overcoming of it. ~ Helen Keller

Overview Tutorials on DICOM (and related topics)
DICOM Programming Tutorials using Java
DICOM Programming Tutorials using .NET
Challenges (new)
Take an Interactive Quiz

Additonal Considerations

For the Java tutorials in the DICOM programming series, I use the freely available and easy to use PixelMed Java DICOM Library. For the .NET tutorials in the DICOM programming series, I use another freely available and open source toolkit called Fellow Oak (fo-dicom) DICOM Library. Although I like these implementations, you should be aware that there are a number of other toolkits (such as dcm4che, DicomObjects and DCMTK which are as good if not better in some respects) on the market. You should be able to follow along easily with any other toolkit (open source or otherwise) if you wish to do so as many of the DICOM-related concepts I explain in my tutorials are implemented by all these toolkits in some form or the other.

Links to Resources

I want to mention that that my use of these toolkits in this tutorial series does not in anyway imply my official endorsement of them for implementing DICOM-related functionality in your production applications. Every situation is unique, and only you are in the best position to decide what is best for you and your end users. Another thing to keep in mind is that my series of articles on DICOM programming is also not meant to be a tutorial on the PixelMed toolkit or the Fellow Oak (fo-dicom) DICOM toolkit. My sole focus is simply to build a basic understanding of DICOM concepts for programmers using small and focused code examples. So, if your goal is to learn how to use these particular toolkits in depth, then I would recommend that you contact the authors of these toolkits or any online help pages of these toolkits for more information. Here are some useful sites (no means exhaustive):

DICOM Toolkits
DICOM Viewers and Applications
Other DICOM Related Links

I want to make a disclaimer about these articles. I do not serve on the DICOM standards committee. Therefore, I must caution you to take the information provided here with a grain of salt, and ultimately refer to the standard itself and its latest recommendations before starting any project involving the standard. For more information about the standard, you can visit its main site here.

If you have any questions or comments regarding these articles/tutorials, please feel free to send me an email. Please note that I may not get back to you right away due to work and other commitments.

DICOM® is the registered trademark of the National Electrical Manufacturers Association for its standards publications relating to digital communications of medical information. HL7, Health Level Seven, and FHIR are registered trademarks of Health Level Seven International.