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).
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# 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
[
{
"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 itemsGet This Design
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)
@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
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
CrossRE: Cross-Domain Relation Extraction
Cross-domain relation extraction across 6 domains (news, politics, science, music, literature, AI). Annotators identify entities and label 17 relation types between entity pairs, enabling study of domain transfer in relation extraction.
Event Coreference and Relations (MAVEN-ERE)
Unified event relation extraction covering coreference, temporal, causal, and subevent relations. Annotators identify event mentions and link them with typed relations (coreference, temporal_before/after/overlap, causal, subevent). Based on the MAVEN-ERE dataset which provides large-scale, unified annotations for four types of event relations.
Legal Event Coreference (LegalCore)
Event coreference resolution in legal documents including court opinions, contracts, and statutes. Annotators identify legal event mentions such as actions, states, obligations, and violations, then link coreferent events that refer to the same real-world event. Based on the LegalCore dataset for domain-specific event coreference in the legal domain.