What is DICOM?#
DICOM (Digital Imaging and Communications in Medicine) is a wide-ranging collection of standards relating to the storage, presentation and communication of medical images and information.
A fundamental part of the DICOM Standard is the Data Set, which is used as a container for medical and other information. DICOM has standardized definitions for many different types of Data Set; a Data Set may contain anything from images acquired during an ultrasound, to a request sent to a DICOM application for transfer of those images, to the radiologist’s report describing them. Despite their differences, because each type of Data Set is made from the same standard building blocks, all conformant Data Sets can be easily shared and understood.
How does this relate to pydicom?#
pydicom can be used to create, read, modify and write DICOM Data Sets and File-sets (collections
of stored Data Sets). It can also be used to convert the imaging and other bulk data commonly
found in Data Sets to a NumPy ndarray
, making it a very useful part
of an image processing pipeline for medical data.
pydicom implements the following parts of the DICOM Standard:
Part 5: Data Structures and Encoding, which covers the encoding of Data Sets and Data Elements.
Part 6: Data Dictionary, which lists the standard Data Elements and UIDs.
Part 10: Media Storage and File Format for Media Exchange, which defines the DICOM File Format and File-set.
Part 16: Content Mapping Resource, which contains the concept definitions used by code groups and structured reports.
Furthermore, when used with pynetdicom, the following parts are also implemented, allowing you to easily create code to transfer Data Sets between DICOM applications:
Part 4: Service Class Specifications, which defines the services DICOM applications may implement.
Part 7: Message Exchange, which defines DIMSE messaging.
Part 8: Network Communication Support for Message Exchange, which defines how two DICOM applications can communicate by exchanging DIMSE messages.