Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

9/9/2020 DICOM Tutorials - Saravanan Subramanian

Saravanan Subramanian MENU

DICOM Tutorials
CONT E N T S

1 Background
2 Overview Tutorials on DICOM (and related topics)
3 DICOM Programming Tutorials using Java
4 DICOM Programming Tutorials using .NET
5 Other Topics on DICOM
6 Additonal Considerations
7 Links to Resources
a DICOM Toolkits
b DICOM Viewers and PACS Applications
c Other DICOM and Related Links
8 Disclaimer

Background

This is a series of articles on the topic of DICOM® that I have been working on slowly. DICOM is
vast and complex healthcare standard which relates to many diagnostic medicine-related workflows
such as modality imaging, image transfer, image storage, procedures, printing, and interpretation.
The more I read and understand the history and evolution of this standard, I am blown away by
wisdom and the foresight of the committee that designed the original standard and continues to
improve it to this day. The standard provides a specification to enable information connectivity
among a variety of vendors' products from the past, present and the future.

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. I have taken some liberties at simplifying some technical details for the newcomer. This is
especially the case when I explain DICOM encoding as this is a difficult area to explain. Several
DICOM files that I use throughout my examples may be more than eight characters long. The
standard stipulates the file identifiers (names) to be at most 8 characters long (either uppercase
alphabetic characters and numbers only) However, I deviate from this at the beginning of my

https://saravanansubramanian.com/dicomtutorials/#overview-tutorials-on-dicom-and-related-topics 1/5
9/9/2020 DICOM Tutorials - Saravanan Subramanian

tutorials intentionally to keep these details from distracting the learner. I hope you will forgive me for
these small liberties in light of my main intention here which is to explain details regarding the
standard by relating it to things that the readers are already comfortable with. 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.

“Whatever you do will be insignificant, but it is very important that you do it.” ~ Mahatma
Gandhi

Overview Tutorials on DICOM (and related topics)


1 Introduction to the DICOM Standard

2 Overview of IHE (Integrating the Healthcare Enteprise)

3 Basics of FHIR (Fast Healthcare Interoperability Resources)

4 A Very Short Introduction to the HL7 2.x Standard

5 HL7 V3 Standard - A High Level Overview

6 Use of Coded Vocabularies and Nomenclatures in DICOM and HL7

DICOM Programming Tutorials using Java


1 DICOM Basics using Java - Making Sense of the DICOM File

2 DICOM Basics using Java - Creating a DICOM File

3 DICOM Basics using Java - Extracting Image Data

4 DICOM Basics using Java - Viewing DICOM Images

5 DICOM Basics using Java - Understanding DICOM Directory

6 DICOM Basics using Java - Understanding DICOM Verification (C-ECHO)

7 DICOM Basics using Java - Understanding Association/Negotiations

8 DICOM Basics using Java - Handling Transient Errors during Communications

9 DICOM Basics using Java - Orthanc DICOM Server

10 DICOM Basics using Java - Query and Retrieve Operations (C-FIND)

11 DICOM Basics using Java - Query and Retrieve Operations (C-MOVE)

https://saravanansubramanian.com/dicomtutorials/#overview-tutorials-on-dicom-and-related-topics 2/5
9/9/2020 DICOM Tutorials - Saravanan Subramanian

12 DICOM Basics using Java - Query and Retrieve Operations (C-GET)

13 DICOM Basics using Java - Store Service (C-STORE)

14 DICOM Basics using Java - Storage Commitment Service (using N-ACTION and N-EVENT-
REPORT)

15 DICOM Basics using Java - Understanding Worklists and MPPS

16 DICOM Basics using Java - Understanding DICOM Structured Reports

17 DICOM Basics using Java - Understanding Print Operations

18 DICOM Basics using Java - Understanding DICOM for the Web (QIDO-RS,WADO-RS,WADO-
URI,STOW-RS and UPS-RS)

DICOM Programming Tutorials using .NET


1 DICOM Basics using .NET and C# - Making Sense of the DICOM File

2 DICOM Basics using .NET and C# - Creating a DICOM File

3 DICOM Basics using .NET and C# - Extracting Image Data

4 DICOM Basics using .NET and C# - Viewing DICOM Images

5 DICOM Basics using .NET and C# - Reading DICOM Directories

6 DICOM Basics using .NET and C# - Writing DICOM Directories

7 DICOM Basics using .NET and C# - Understanding DICOM Verification (C-ECHO)

8 DICOM Basics using .NET and C# - Understanding Association/Negotiations

9 DICOM Basics using .NET and C# - Handling Transient Errors during Communications

10 DICOM Basics using .NET and C# - Orthanc DICOM Server

11 DICOM Basics using .NET and C# - Query and Retrieve Operations (C-FIND)

12 DICOM Basics using .NET and C# - Query and Retrieve Operations (C-MOVE)

13 DICOM Basics using .NET and C# - Query and Retrieve Operations (C-GET)

14 DICOM Basics using .NET and C# - Store Service (C-STORE)

15 DICOM Basics using .NET and C# - Storage Commitment Service (using N-ACTION and N-
EVENT-REPORT)
https://saravanansubramanian.com/dicomtutorials/#overview-tutorials-on-dicom-and-related-topics 3/5
9/9/2020 DICOM Tutorials - Saravanan Subramanian

16 DICOM Basics using .NET and C# - Understanding Worklists and MPPS

17 DICOM Basics using .NET and C# - Understanding DICOM Structured Reports

18 DICOM Basics using .NET and C# - Understanding Print Operations

19 DICOM Basics using .NET and C# - Understanding DICOM for the Web (QIDO-RS,WADO-
RS,WADO-URI,STOW-RS and UPS-RS)

Other Topics on DICOM


1 DICOM Basics - How do HL7, DICOM and IHE come together

2 DICOM Basics - FHIR and DICOM

3 DICOM Basics - Understanding DICOM Conformance Statements

4 DICOM Basics - General Troubleshooting Tips and Techniques

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):

DICO M TOOLKITS

• PixelMed Open Source DICOM Toolkit


https://saravanansubramanian.com/dicomtutorials/#overview-tutorials-on-dicom-and-related-topics 4/5
9/9/2020 DICOM Tutorials - Saravanan Subramanian

• Fellow Oak (fo-dicom) Open Source DICOM Toolkit


• Dcm4che Open Source DICOM Toolkit
• Dcmtk Open Source DICOM Toolkit
• Cornerstore.js Web-based Image Viewer SDK (includes DICOM Support)

DICO M V IEWERS A ND PACS APPLICAT I O N S

• Orthanc Open Source PACS Viewer and Server


• ClearCanvas Open Source PACS Viewer and Server
• Free Imaging Research tools from RSNA

OTHE R D ICOM AND RELATED LINKS

• DICOM Home Page


• HL7 Main Site
• IHE Home Page
• List of DICOM Tags
• List of DICOM Transfer Syntaxes
• List of DICOM SOP classes

Disclaimer
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.

Copyright © 2004-2020 Saravanan Subramanian

Download code examples shown on this site from my GitHub page.

https://saravanansubramanian.com/dicomtutorials/#overview-tutorials-on-dicom-and-related-topics 5/5

You might also like