Skip to content
Showcase/MediTOD Medical Dialogue Annotation
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.

Q1: Rate your experience12345Q2: Primary use case?ResearchIndustryEducationQ3: Additional feedback

Configuration Fileconfig.yaml

# 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 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/dialogue/meditod-medical-dialogue
potato start config.yaml

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