Data model

DICOM defines its own model to map relevant entities from the real world. That model, as defined in Part 3 of the standard, is shown in the figure below.

The DICOM data model is implicit, and is not defined in a machine-readable structured form by the standard!

DICOM model of the real world

DICOM data model entities do not always map to DICOM objects! In fact, every DICOM object you will ever encounter in IDC will contain attributes describing various properties of the entries at different levels of the real world data model. Such objects are called Composite Information Objects. The information model of the Composite Information Object Definitions is shown below, and covers all of the composite objects defined by the standard.

DICOM Composite Instance IOD Information Model

As can be observed from this diagram, "each Composite Instance IOD [Entity-Relationship] Model requires that all Composite Instances that are part of a specific Study shall share the same context. That is, all Composite Instances within a specific Patient Study share the same Patient and Study information; all Composite Instances within the same Series share the same Series information; etc." (ref).

Each of the boxes in the diagram above corresponds to Information Entities (IEs), which in turn are composed from Information Modules. Information Modules group attributes that are related. As an example, Patient IE included in the MR object will include Patient Information Module, which in turn will include such attributes as PatientID, PatientName, and PatientSex.

To recap, individual files in IDC buckets are instances of DICOM composite objects. The specific type of object is defined by theSOPClassUID.Metadata included in a given object is captured by the Information Object Definition as a list of Information Entities. Object definition also contains the list of specific Information Modules for the individual IEs. Note that modules included in a given IE are object-specific, while list of attributes included in a given Information Module is fixed!

Edit on GitHub