A structured reference compilation of the DICOM standard XRF modules.
This document is a compilation of information from the DICOM standard. All information refers to the XRF module.
The document contains one or more structured code data sets in JSON format for each topic. This structure allows for database integration without major modifications.
Structure of all 7 IE Modules with Reference to the detailed Chapter.
DICOM Standard: A.16.3 X-Ray Radiofluoroscopic Image IOD Module Table
{
"DICOM_Structure": {
"Patient": [ { "Module": "Patient", "Reference": "C.7.1.1" } ],
"Study": [
{ "Module": "General Study", "Reference": "C.7.2.1" },
{ "Module": "Patient Study", "Reference": "C.7.2.2" }
],
"Series": [ { "Module": "General Series", "Reference": "C.7.3.1" } ],
"Frame of Reference": [ { "Module": "Synchronization", "Reference": "C.7.4.2" } ],
"Equipment": [ { "Module": "General Equipment", "Reference": "C.7.5.1" } ],
"Acquisition": [ { "Module": "General Acquisition", "Reference": "C.7.10.1" } ],
"Image": [
{ "Module": "General Image", "Reference": "C.7.6.1" },
{ "Module": "General Reference", "Reference": "C.12.4" },
{ "Module": "Image Pixel", "Reference": "C.7.6.3" },
{ "Module": "Contrast/Bolus", "Reference": "C.7.6.4" },
{ "Module": "Cine", "Reference": "C.7.6.5" },
{ "Module": "Multi-frame", "Reference": "C.7.6.6" },
{ "Module": "Frame Pointers", "Reference": "C.7.6.9" },
{ "Module": "Mask", "Reference": "C.7.6.10" },
{ "Module": "Display Shutter", "Reference": "C.7.6.11" },
{ "Module": "Device", "Reference": "C.7.6.12" },
{ "Module": "Intervention", "Reference": "C.7.6.13" },
{ "Module": "Specimen", "Reference": "C.7.6.22" },
{ "Module": "X-Ray Image", "Reference": "C.8.7.1" },
{ "Module": "X-Ray Acquisition", "Reference": "C.8.7.2" },
{ "Module": "X-Ray Collimator", "Reference": "C.8.7.3" },
{ "Module": "X-Ray Table", "Reference": "C.8.7.4" },
{ "Module": "XRF Positioner", "Reference": "C.8.7.6" },
{ "Module": "X-Ray Tomography Acquisition", "Reference": "C.8.7.7" },
{ "Module": "DX Detector", "Reference": "C.8.11.4" },
{ "Module": "Overlay Plane", "Reference": "C.9.2" },
{ "Module": "Multi-frame Overlay", "Reference": "C.9.3" },
{ "Module": "Modality LUT", "Reference": "C.11.1" },
{ "Module": "VOI LUT", "Reference": "C.11.2" },
{ "Module": "SOP Common", "Reference": "C.12.1" },
{ "Module": "Common Instance Reference", "Reference": "C.12.2" },
{ "Module": "Frame Extraction", "Reference": "C.12.3" }
]
}
}
The JSON code contains the essential modules of the XRF Image IOD. Starting with the basics such as Patient/Study/Series, it also includes modules critical for fluoroscopy, such as Cine, Multi-frame (for video sequences), and XRF Positioner.
The X-Ray Acquisition Module also contains attributes such as AreaDoseProduct (DAP value) and RadiationMode, which are essential for documenting radiation dose in fluoroscopy.
All tags are in the GGGG,EEEE (Group, Element) format, which is standard and can be used for database integration.
{
"DICOM_XRF_Database": {
"Patient_IE": {
"Patient_Module_C.7.1.1": [
{"Tag": "0010,0010", "Name": "PatientName"},
{"Tag": "0010,0020", "Name": "PatientID"},
{"Tag": "0010,0030", "Name": "PatientBirthDate"},
{"Tag": "0010,0040", "Name": "PatientSex"}
]
},
"Study_IE": {
"General_Study_Module_C.7.2.1": [
{"Tag": "0020,000D", "Name": "StudyInstanceUID"},
{"Tag": "0008,0020", "Name": "StudyDate"},
{"Tag": "0008,0050", "Name": "AccessionNumber"},
{"Tag": "0008,1030", "Name": "StudyDescription"}
]
}
}
}
The RDSR is a special DICOM SOP Class for the structured recording of radiation dose data.
The RDSR document has a tree-like structure. The root node is the Radiation Dose container (TID 10001), which contains several Accumulated X-Ray Dose Data entries (TID 10003). Each entry contains one or more Irradiation Events (also TID 10003), which in turn have a specific geometry (TID 10020) and dose data.
{
"RDSR_Family_Tree": {
"Root": {
"TID": "10001",
"Name": "Radiation Dose",
"Children": [
{
"TID": "10003",
"Name": "Accumulated X-Ray Dose Data"
}
]
}
}
}
Every single X-ray shot or fluoroscopy run is stored as an individual Irradiation Event. The event has a unique UID and contains all technical parameters such as kVp, mAs, DAP and the geometry of the device at the time of exposure.
{
"Irradiation_Event": {
"Acquisition_Parameters": [
{"Concept": "113721, DCM", "Name": "IrradiationEventUID", "Unit": "UID"},
{"Concept": "113722, DCM", "Name": "IrradiationEventType", "Unit": "Code", "Description": "Fluoroscopy or Acquisition"},
{"Concept": "113723, DCM", "Name": "DateTime", "Unit": "DateTime"},
{"Concept": "113733, DCM", "Name": "KVP", "Unit": "kV"},
{"Concept": "113734, DCM", "Name": "XRayTubeCurrent", "Unit": "mA"},
{"Concept": "113736, DCM", "Name": "ExposureTime", "Unit": "ms"},
{"Concept": "113737, DCM", "Name": "FluoroMode", "Unit": "Code"},
{"Concept": "113738, DCM", "Name": "DoseAreaProduct", "Unit": "Gy.m2"}
],
"Geometry_Positioner": [
{"Concept": "112011, DCM", "Name": "PositionerPrimaryAngle", "Unit": "deg", "Description": "LAO/RAO"},
{"Concept": "112012, DCM", "Name": "PositionerSecondaryAngle", "Unit": "deg", "Description": "CRA/CAU"},
{"Concept": "113780, DCM", "Name": "DistanceSourceToIsocenter", "Unit": "mm"},
{"Concept": "113782, DCM", "Name": "DistanceSourceToDetector", "Unit": "mm"}
],
"Table_Position": [
{"Concept": "113740, DCM", "Name": "TableTopVerticalPosition", "Unit": "mm", "Description": "Table Height"},
{"Concept": "113741, DCM", "Name": "TableTopLongitudinalPosition", "Unit": "mm", "Description": "Table Top Longitudinal Position"},
{"Concept": "113742, DCM", "Name": "TableTopLateralPosition", "Unit": "mm", "Description": "Table Top Lateral Position"},
{"Concept": "113759, DCM", "Name": "TableHeadTiltAngle", "Unit": "deg", "Description": "Table Head Tilt Angle (Trendelenburg)"},
{"Concept": "113760, DCM", "Name": "TableCradleTiltAngle", "Unit": "deg", "Description": "Table Tilt Angle"}
],
"Collimation_Field": [
{"Concept": "113773, DCM", "Name": "CollimatedFieldShape", "Unit": "Code"},
{"Concept": "113774, DCM", "Name": "CollimatedFieldHeight", "Unit": "mm"},
{"Concept": "113775, DCM", "Name": "CollimatedFieldWidth", "Unit": "mm"}
]
}
}
The designations TID 10001, TID 10002, TID 10003, and TID 10004 are DICOM Template Identifiers.
TID codes define structural templates for the Radiation Dose Structured Report (RDSR) and are used for the standardized recording and exchange of radiation dose information.
TID 10001 (Projection X-Ray Radiation Dose): Defines the structure for individual X-ray images, including information on radiation dose and relevant equipment data (source, detector, mechanics), often as a container for each individual projection or plane.
TID 10002 (Observer Context): Describes the context of the recording observer (e.g., the system or person logging the dose) to clarify the origin of the data.
TID 10003 (Accumulated X-Ray Dose Data): (Implicit) Often used together with other TIDs to store accumulated dose values for an entire examination.
TID 10004 (Fluoroscopy Guided Projection Radiography Dose): Specifically refers to dose information from projection radiography systems guided by fluoroscopy.
Linking a specific image to the radiation dose responsible for it is the "holy grail" of clinical dose monitoring. In DICOM, this is achieved using UIDs (Unique Identifiers).
Here's the logic for establishing this connection in your database:
Each X-ray image has a globally unique SOP Instance UID (0008,0018). The RDSR file lists, in each Irradiation Event (TID 10003), which images were generated during that specific event.
You need a mapping table in your database because a dose event can generate multiple images (e.g., a film series) and an RDSR contains many events.
{
"RDSR_Image_Mapping": {
"Irradiation_Event_Entry": {
"Event_ID": "1",
"Irradiation_Event_UID": "1.2.840.113619.2.134...",
"Referenced_Images": [
{
"Referenced_SOP_Class_UID": "1.2.840.10008.5.1.4.1.1.12.2",
"Referenced_SOP_Instance_UID": "1.2.3.4.5.6.7.8.9.101112",
"PurposeOfReference": "Source Image for Dose"
}
]
}
}
}
To implement this efficiently, I recommend three tables:
Table Images: Stores metadata for the XRF image.
Primary Key: sop_instance_uidTable Dose_Events: Stores every irradiation event from the RDSR.
Primary Key: event_uid (or a combination of RDSR UID and event number)kvp, mas, dose_area_product, etc.Table Link_Event_Image: The linking table.
Foreign Key 1: event_uidForeign Key 2: sop_instance_uidDose per image: You can say exactly: "This image (instance 45) caused 15 mGy."
Troubleshooting: If an image is overexposed, you will immediately find in the RDSR the technical parameters (, , ) that were set on the device at that time.
Fluoroscopy vs. Acquisition: In the Link_Event_Image table, you will notice that many fluoroscopy events have no linked images because the physician only "looked" but did not "save" them. The dose is still present in the RDSR.
Some older X-ray machines do not correctly write the image references to the RDSR. In this case, a timestamp comparison is used:
Image: Acquisition Time (0008,0032)
RDSR: DateTime of Irradiation Events
If these are within ±1 second of each other, they belong together.