Skip to content
Back to skills

Soap Note Generation Eval

ASecurity

Evaluates the ability of audio and text models to generate clinically accurate, well-structured SOAP notes from long-form doctor-patient conversations. Probes long-context audio reasoning, fact-grounding, and clinical documentation quality. Use when the user wants to benchmark on Doctor-Patient SOAP Conversations, or asks about evaluating this task. Reports Faithfulness.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
researchpythondocumentation

Works with

  • cli

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add qhjqhj00/research-skills-pool --skill soap-note-generation-eval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Soap Note Generation Eval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Soap Note Generation Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qhjqhj00-soap-note-generation-eval/badge)](https://www.skillsdirectory.com/skills/qhjqhj00-soap-note-generation-eval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: soap-note-generation-eval
description: Evaluates the ability of audio and text models to generate clinically accurate, well-structured SOAP notes from long-form doctor-patient conversations. Probes long-context audio reasoning, fact-grounding, and clinical documentation quality. Use when the user wants to benchmark on Doctor-Patient SOAP Conversations, or asks about evaluating this task. Reports Faithfulness.
metadata:
  skill_kind: dataset_eval
  source_arxiv: 2604.06138
  bibtex_key: [REDACTED]
  confidence: high
---

# soap-note-generation-eval

> Generating Synthetic Doctor-Patient Conversations for Long-form Audio Summarization — Labrak et al. (2026) (arXiv:2604.06138, 2026)

## What this evaluates

Evaluates the ability of audio and text models to generate clinically accurate, well-structured SOAP notes from long-form doctor-patient conversations. Probes long-context audio reasoning, fact-grounding, and clinical documentation quality.

## Datasets

- **Doctor-Patient SOAP Conversations** — total 8800; splits: dev (-1), test (-1)

## Metrics

- `Faithfulness` **(primary)** — range: other
  - LLM-as-a-judge scores claim support and contradictions on a 1–5 scale.
- `Coverage` — range: other
  - LLM-as-a-judge scores completeness of documentation relative to transcript evidence on a 1–5 scale.
- `ROUGE-2 F1` — range: percent
  - Standard ROUGE-2 F1 score computed between generated and reference SOAP notes.
- `ROUGE-3 F1` — range: percent
  - Standard ROUGE-3 F1 score computed between generated and reference SOAP notes.
- `ROUGE-L F1` — range: percent
  - Standard ROUGE-L F1 score computed between generated and reference SOAP notes.
- `Open Medical Concept F1` — range: percent
  - F1 score over overlap of medical concepts extracted via MeSH keyword matching and NER (en_core_sci_md) from reference and hypothesis notes.
- `Unsupported claim rate` — range: [0, 1]
  - Proportion of atomic claims in the generated note that lack grounding in the transcript.
- `Contradiction rate` — range: [0, 1]
  - Proportion of atomic claims in the generated note that contradict the transcript.

## Input / output format

**Input**: Multi-speaker doctor-patient audio conversation (for end-to-end models) or speaker-attributed transcript (for cascaded models).

**Output**: SOAP note text containing History of Present Illness (HPI), Review of Systems (ROS), Assessment, and Plan sections.

## Scoring recipe

```python
def evaluate(generated_note, reference_note, transcript):
    claims = extract_atomic_claims(generated_note)
    faithfulness = 0
    for claim in claims:
        evidence = transcript.search(claim)
        if evidence.supports: faithfulness += 1
        elif evidence.contradicts: faithfulness -= 1
    faithfulness = scale_1_to_5(faithfulness / len(claims))
    rouge2 = compute_rouge_n(generated_note, reference_note, n=2)
    rouge3 = compute_rouge_n(generated_note, reference_note, n=3)
    rouge_l = compute_rouge_l(generated_note, reference_note)
    med_f1 = compute_f1(
        extract_medical_concepts(generated_note, method="MeSH+scispaCy"),
        extract_medical_concepts(reference_note, method="MeSH+scispaCy")
    )
    unsupported_rate = count_unsupported_claims(claims, transcript) / len(claims)
    contradiction_rate = count_contradicting_claims(claims, transcript) / len(claims)
    return faithfulness, rouge2, rouge3, rouge_l, med_f1, unsupported_rate, contradiction_rate
```

## Common pitfalls

- Reference notes are LLM-generated rather than physician-authored, which may introduce systematic biases in both content and evaluation signals.
- Acoustic simulation uses low-WER synthetic audio (<3% for Whisper), so results may not generalize to real clinical recordings with high background noise or overlapping speech.
- End-to-end models are evaluated on raw audio while cascaded models use transcripts, making direct comparison sensitive to ASR error propagation and modality gaps.

## Evidence (verbatim from paper)

> We score SOAP notes along 12 dimensions. Four dimensions are scored on a 1–5 scale (5 = best): Faithfulness (claim support and contradictions), Structure (SOAP formatting and section placement), Coverage (completeness of documentation relative to transcript evidence), and Conciseness (redundancy and low-value content). We additionally evaluate two rates: unsupported claim rate and contradiction rate. In addition to the reference-free LLM judge, we evaluate generated notes against the reference using standard ROUGE F1 metrics (R-2, R-3, R-L) and an Open Medical Concept metric, which extracts medical concepts from both reference and hypothesis notes and computes F1 over their overlap.

## Citation

```bibtex
@misc{labrak2026generatingsynthetic,
  title={Generating Synthetic Doctor-Patient Conversations for Long-form Audio Summarization},
  author={Labrak et al. (2026)},
  year={2026},
  note={arXiv:2604.06138}
}
```

- arXiv: 2604.06138

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.