Skip to content
advancedtext

RadGraph-XL: Radiology Entity and Relation Extraction

Entity and relation extraction from radiology reports. Annotators identify clinical entities (Anatomy and Observation, each marked definitely present, uncertain, or definitely absent) and label relations between them (located_at, suggestive_of, modify).

PERORGLOCPERORGLOCDATESelect text to annotate

Configuration Fileconfig.yaml

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# RadGraph-XL: Radiology Entity and Relation Extraction
# Based on Delbrouck et al., Findings ACL 2024
# Paper: https://aclanthology.org/2024.findings-acl.765/
# Dataset: https://physionet.org/content/radgraph-xl/
#
# RadGraph-XL provides expert annotations of radiology reports with clinical
# entities and relations. This enables automated extraction of structured
# information from free-text radiology reports.
#
# Entity Types (each entity is Anatomy or Observation, with a certainty level):
# - Anatomy: Body parts, organs, anatomical structures
#   (e.g., lungs, heart, mediastinum, pleural space)
# - Observation: Clinical findings, conditions, abnormalities
#   (e.g., opacity, effusion, consolidation, pneumothorax)
# Certainty levels: Definitely Present, Uncertain, Definitely Absent
#   (e.g., "no pericardial effusion" is an Observation: Definitely Absent)
#
# Relation Types:
# - located_at: an Observation is located at an Anatomy
# - suggestive_of: an Observation suggests another Observation/condition
# - modify: one entity modifies another of the same type
#
# Annotation Guidelines:
# 1. Read the radiology report sentence in context
# 2. Identify all Anatomy and Observation entities
# 3. Assign each entity a certainty level (present / uncertain / absent)
# 4. For each entity pair, determine the relation type
# 5. Observation-anatomy pairs typically use located_at
# 6. Consider negation and hedging when assigning certainty

annotation_task_name: "RadGraph-XL: Radiology Relation Extraction"
task_dir: "."

data_files:
  - sample-data.json
item_properties:
  id_key: "id"
  text_key: "text"

output_annotation_dir: "annotation_output/"
output_annotation_format: "json"

annotation_schemes:
  # Step 1: Identify clinical entities (Anatomy / Observation) with certainty
  - annotation_type: span
    name: clinical_entities
    description: "Highlight all Anatomy and Observation entities, marking each with a certainty level"
    labels:
      - "Observation: Definitely Present"
      - "Observation: Uncertain"
      - "Observation: Definitely Absent"
      - "Anatomy: Definitely Present"
      - "Anatomy: Uncertain"
      - "Anatomy: Definitely Absent"
    label_colors:
      "Observation: Definitely Present": "#ef4444"
      "Observation: Uncertain": "#f59e0b"
      "Observation: Definitely Absent": "#9ca3af"
      "Anatomy: Definitely Present": "#3b82f6"
      "Anatomy: Uncertain": "#38bdf8"
      "Anatomy: Definitely Absent": "#a5b4fc"
    keyboard_shortcuts:
      "Observation: Definitely Present": "1"
      "Observation: Uncertain": "2"
      "Observation: Definitely Absent": "3"
      "Anatomy: Definitely Present": "4"
      "Anatomy: Uncertain": "5"
      "Anatomy: Definitely Absent": "6"
    tooltips:
      "Observation: Definitely Present": "A finding stated to be present (e.g., opacity, effusion, consolidation, pneumothorax)"
      "Observation: Uncertain": "A finding stated with hedging or uncertainty (e.g., 'concerning for', 'possible', 'may represent')"
      "Observation: Definitely Absent": "A finding explicitly negated (e.g., 'no pericardial effusion', 'lungs are clear')"
      "Anatomy: Definitely Present": "A body part or anatomical structure referenced as present (e.g., lungs, heart, mediastinum)"
      "Anatomy: Uncertain": "An anatomical structure referenced with uncertainty"
      "Anatomy: Definitely Absent": "An anatomical structure referenced as absent (e.g., surgically removed)"
    allow_overlapping: false

  # Step 2: Link entities with clinical relation types
  - annotation_type: span_link
    name: clinical_relations
    description: "Draw relations between clinical entities"
    labels:
      - "located_at"
      - "suggestive_of"
      - "modify"
    tooltips:
      "located_at": "An Observation is located at an anatomical structure (e.g., opacity located_at right lung)"
      "suggestive_of": "An Observation suggests or indicates another Observation/condition (e.g., air-fluid level suggestive_of abscess)"
      "modify": "One entity modifies another of the same type (e.g., 'small' modify effusion; 'lower' modify lobe)"

html_layout: |
  <div style="margin-bottom: 10px; padding: 8px; background: #f0f4f8; border-radius: 4px;">
    <strong>Report Section:</strong> {{report_section}}
  </div>
  <div style="font-size: 16px; line-height: 1.6; font-family: 'Courier New', monospace;">
    {{text}}
  </div>

allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false

Sample Datasample-data.json

json
[
  {
    "id": "radgraph_001",
    "text": "There is a small bilateral pleural effusion, greater on the right than the left, with associated compressive atelectasis at the lung bases.",
    "report_section": "Findings"
  },
  {
    "id": "radgraph_002",
    "text": "The endotracheal tube is in satisfactory position with the tip approximately 4 cm above the carina. A right internal jugular central venous catheter terminates in the superior vena cava.",
    "report_section": "Findings"
  }
]

// ... and 8 more items

Get This Design

View on GitHub

Clone or download from the repository

Quick start:

git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/text/relation-extraction/radgraph-radiology-relations
potato start config.yaml

Dataset & paper

Delbrouck et al., Findings ACL 2024

Citation (BibTeX)

bibtex
@inproceedings{delbrouck-etal-2024-radgraph,
    title = "{RadGraph-XL}: A Large-Scale Expert-Annotated Dataset for Entity and Relation Extraction from Radiology Reports",
    author = "Delbrouck, Jean-Benoit  and Chambon, Pierre  and Chen, Zhihong  and Varma, Maya  and Johnston, Andrew  and Blankemeier, Louis  and Van Veen, Dave  and Bui, Tan  and Truong, Steven  and Langlotz, Curtis",
    booktitle = "Findings of the Association for Computational Linguistics: ACL 2024",
    month = aug,
    year = "2024",
    address = "Bangkok, Thailand",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2024.findings-acl.765",
    doi = "10.18653/v1/2024.findings-acl.765"
}

Details

Annotation Types

spanspan_link

Domain

NLPMedical/ClinicalRadiology

Use Cases

Relation ExtractionClinical NLPRadiology Report Understanding

Tags

radiologyrelation-extractionclinicalmedicalradgraphacl2024healthcare

Found an issue or want to improve this design?

Open an Issue