MediTOD Medical Dialogue Annotation
Medical history-taking dialogue annotation based on the MediTOD dataset. Annotators label dialogue acts, identify medical entities (symptoms, conditions, medications, tests), and assess doctor-patient communication quality across multi-turn clinical conversations.
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# MediTOD Medical Dialogue Annotation
# Based on Kazi et al., EMNLP 2024
# Paper: https://aclanthology.org/2024.emnlp-main.786/
# Dataset: https://github.com/HealthNLPLab/MediTOD
#
# Task: Annotate medical history-taking dialogues with dialogue acts,
# medical entities, and communication quality assessments.
#
# Guidelines:
# - Label dialogue acts based on the speaker's communicative intent
# - Mark medical entity spans precisely (symptoms, conditions, medications, tests)
# - Assess communication quality dimensions for doctor-patient interaction
# - Use the dialogue context to disambiguate entity types
annotation_task_name: "MediTOD Medical Dialogue Annotation"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "text"
context_key: dialogue_context
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
annotation_schemes:
# Medical entity spans
- annotation_type: span
name: medical_entities
description: "Highlight all medical entities in the dialogue turn"
labels:
- "Symptom"
- "Condition"
- "Medication"
- "Test"
label_colors:
"Symptom": "#f97316"
"Condition": "#ef4444"
"Medication": "#3b82f6"
"Test": "#8b5cf6"
tooltips:
"Symptom": "Signs and symptoms reported by patient (e.g., 'chest pain', 'nausea', 'shortness of breath')"
"Condition": "Diagnosed conditions or diseases (e.g., 'diabetes', 'hypertension', 'asthma')"
"Medication": "Medications, drugs, or treatments mentioned (e.g., 'metformin', 'ibuprofen', 'insulin')"
"Test": "Medical tests, procedures, or examinations (e.g., 'blood test', 'X-ray', 'MRI')"
allow_overlapping: false
# Dialogue act classification
- annotation_type: radio
name: dialogue_act
description: "Select the primary dialogue act for this turn"
labels:
- "Inform-Symptom"
- "Inform-Medical-History"
- "Inform-Medication"
- "Inform-Lifestyle"
- "Request-Information"
- "Request-Clarification"
- "Confirm"
- "Deny"
- "Greet"
- "Farewell"
- "Other"
keyboard_shortcuts:
"Inform-Symptom": "s"
"Inform-Medical-History": "h"
"Inform-Medication": "m"
"Request-Information": "r"
"Request-Clarification": "c"
"Confirm": "y"
"Deny": "n"
tooltips:
"Inform-Symptom": "Speaker describes a symptom, pain, or physical complaint"
"Inform-Medical-History": "Speaker provides past medical history or family history"
"Inform-Medication": "Speaker mentions current or past medications"
"Inform-Lifestyle": "Speaker describes lifestyle factors (diet, exercise, smoking, alcohol)"
"Request-Information": "Speaker asks for medical information or asks about symptoms"
"Request-Clarification": "Speaker asks to clarify a previous statement"
"Confirm": "Speaker confirms or agrees with a previous statement"
"Deny": "Speaker denies or disagrees with a previous statement"
"Greet": "Opening greeting or introduction"
"Farewell": "Closing or farewell statement"
"Other": "Other dialogue acts not covered above"
# Communication quality dimensions
- annotation_type: multiselect
name: communication_quality
description: "Select all communication quality dimensions demonstrated in this turn (if any)"
labels:
- "Empathy"
- "Active Listening"
- "Clear Explanation"
- "Open-ended Questioning"
- "Summarization"
- "Patient Education"
- "Shared Decision Making"
- "None Notable"
tooltips:
"Empathy": "Speaker shows understanding of the other party's feelings or concerns"
"Active Listening": "Speaker reflects back or acknowledges what was said"
"Clear Explanation": "Speaker explains medical concepts in understandable terms"
"Open-ended Questioning": "Doctor uses open-ended questions to elicit information"
"Summarization": "Speaker summarizes key points from the conversation"
"Patient Education": "Doctor provides educational information about condition or treatment"
"Shared Decision Making": "Doctor involves patient in treatment decisions"
"None Notable": "No notable communication quality dimensions in this turn"
# Free-text notes
- annotation_type: text
name: notes
description: "Optional notes about this annotation (e.g., ambiguous entities, context-dependent interpretation)"
allow_all_users: true
instances_per_annotator: 100
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "meditod_001",
"text": "Good morning. What brings you in today?",
"speaker": "Doctor",
"dialogue_context": "[Start of consultation]"
},
{
"id": "meditod_002",
"text": "I've been having this persistent headache for the past two weeks, and it's been getting worse. I also feel nauseous in the mornings.",
"speaker": "Patient",
"dialogue_context": "Doctor: Good morning. What brings you in today?"
}
]
// ... and 8 more itemsTry it live — no install
Boot the real Potato server in your browser (WebAssembly) and annotate with this exact config. Nothing leaves your machine.
▶ Run live in your browserGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/text/dialogue/meditod-medical-dialogue potato start config.yaml
Dataset & paper
Kazi et al., EMNLP 2024
Citation (BibTeX)
@inproceedings{kazi2024meditod,
title = "{M}edi{TOD}: An {E}nglish Dialogue Dataset for Medical History Taking with Comprehensive Annotations",
author = "Kazi, Rhea Sunil and Ning, Yilin and Duong, Hanh and Peng, Yifan and Xia, Fei",
booktitle = "Proceedings of the 2024 Conference on Empirical Methods in Natural Language Processing",
year = "2024",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2024.emnlp-main.936/"
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
Check-COVID: Fact-Checking COVID-19 News Claims
Fact-checking COVID-19 news claims. Annotators verify claims against evidence, identify supporting/refuting spans, and provide verdicts with explanations. Based on the Check-COVID dataset targeting misinformation during the pandemic.
Clickbait Spoiling
Classification and extraction of spoilers for clickbait posts, including spoiler type identification and span-level spoiler detection. Based on SemEval-2023 Task 5 (Hagen et al.).
FEVEROUS Structured Fact Verification Annotation
FEVEROUS is a fact-checking dataset of 87,026 Wikipedia claims with evidence drawn from both sentences and table cells. This Potato config reproduces the verdict, evidence, and justification task.