{ brain-pain:de } XRF Module Info

A structured reference compilation of the DICOM standard XRF modules.

XRF v1.04

Extended XRF Image Module Information

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.

X-Ray Radiofluoroscopic Image IOD Modules

Structure of all 7 IE Modules with Reference to the detailed Chapter.

DICOM Standard: A.16.3 X-Ray Radiofluoroscopic Image IOD Module Table

{ JSON Code }

The InformationEntity (IE) is used as the group title, followed by the associated Module and the Reference with the chapter heading.

{
  "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" }
    ]
  }
}

XRF Structure with TAG's

Completeness

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.

XRF Specifics

The X-Ray Acquisition Module also contains attributes such as AreaDoseProduct (DAP value) and RadiationMode, which are essential for documenting radiation dose in fluoroscopy.

Technical Tags

All tags are in the GGGG,EEEE (Group, Element) format, which is standard and can be used for database integration.

{ JSON Code }

{
  "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"}
      ]
    }
  }
}

RDSR - Radiation Dose Structured Report

The RDSR is a special DICOM SOP Class for the structured recording of radiation dose data.

RDSR Family Tree

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"
        }
      ]
    }
  }
}

RDSR Events & Geometry

Irradiation Event 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.

{ JSON Code }

{
  "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"}
    ]
  }
}

TID - Template Identifier

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.

Bonus

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:

1. The "Glue": The SOP Instance UID

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.

2. Data Structure for Linking (JSON)

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.

{ JSON Code }

{
  "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"
        }
      ]
    }
  }
}

3. Database Schema (SQL Logic)

To implement this efficiently, I recommend three tables:

  1. Table Images: Stores metadata for the XRF image.

    • Primary Key: sop_instance_uid
  2. Table Dose_Events: Stores every irradiation event from the RDSR.

    • Primary Key: event_uid (or a combination of RDSR UID and event number)
    • Enthält: kvp, mas, dose_area_product, etc.
  3. Table Link_Event_Image: The linking table.

    • Foreign Key 1: event_uid
    • Foreign Key 2: sop_instance_uid

Why is this important?

A small pitfall

Some older X-ray machines do not correctly write the image references to the RDSR. In this case, a timestamp comparison is used: