Skip to content
advancedtext

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.

Try 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 browser

Get This Design

View on GitHub(opens in a new tab)

Clone or download from the repository

Quick start:

bash
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/text/dialogue/meditod-medical-dialogue
potato start config.yaml

Configuration File

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

yaml
# MediTOD Medical Dialogue Annotation
# Based on Saley et al., EMNLP 2024
# Paper: https://aclanthology.org/2024.emnlp-main.936/
# Dataset: https://github.com/dair-iitd/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 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 items

Dataset & paper

Saley et al., EMNLP 2024

Citation (BibTeX)

bibtex
@inproceedings{saley-etal-2024-meditod,
    title = "{M}edi{TOD}: An {E}nglish Dialogue Dataset for Medical History Taking with Comprehensive Annotations",
    author = "Saley, Vishal Vivek  and Saha, Goonjan  and Das, Rocktim Jyoti  and Raghu, Dinesh  and Mausam",
    editor = "Al-Onaizan, Yaser  and Bansal, Mohit  and Chen, Yun-Nung",
    booktitle = "Proceedings of the 2024 Conference on Empirical Methods in Natural Language Processing",
    month = nov,
    year = "2024",
    address = "Miami, Florida, USA",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2024.emnlp-main.936/",
    doi = "10.18653/v1/2024.emnlp-main.936",
    pages = "16843--16877"
}

Details

Annotation Types

radiospantextmultiselect

Domain

NLPMedicalDialogue Systems

Use Cases

Medical Dialogue AnalysisClinical NERDialogue Act Classification

Tags

medicaldialoguehistory-takingclinical-nlpentitiesdialogue-acts

Found an issue or want to improve this design?

Open an Issue(opens in a new tab)