Skip to content

Add patient-friendly plain-language report mode #56

Description

@Liohtml

Part of #51. Positioning: patient-education track (see epic) — an understand-and-prepare-questions layer, not a diagnostic output.

Summary

Add an optional patient-facing report mode that renders the report in plain
language at a controlled reading level, with a jargon glossary and explicit
"talk to your doctor" routing. This is additive: the existing professional
report stays unchanged and remains the default for the research/developer track.

Why (research-backed)

Patient comprehension — not access — is the single best-evidenced pain point
in radiology:

  • Only 4.2% of radiology reports (study of 97,052 reports) are written at the
    average adult reading level; ~96% exceed patient comprehension.
  • Interview studies: 85% of patients are confused by medical terms/acronyms,
    ~40% feel anxious.
  • LLM plain-language simplification raised lay comprehension dramatically
    (e.g. 46% → 95% in an RCT; Lancet Digital Health 2025 meta-analysis rated
    LLM-rewritten reports ~87% more understandable).
  • Patients overwhelmingly prefer to ask their doctor over self-research, so
    the tool should contextualize and route to clinicians, not replace them.

⚠️ Safety constraints (load-bearing — research-confirmed)

LLM report simplification carries a documented 0–10% harmful-error rate
(fabricated/dropped findings, inverted qualifiers). The mode MUST:

Proposed implementation

  • New report option --report patient (or an --audience patient modifier) and a
    report_audience field on PipelineContext (default professional).
  • New renderer in src/medcheck/pipeline/report.py:
    generate_patient_report(ctx) producing HTML/PDF tuned for laypeople.
  • Readability target FKGL grade 6–8 (AMA/NIH recommend ≤6th grade for patient
    materials). Compute and display the Flesch-Kincaid grade (+ optionally SMOG)
    on the report so quality is visible; add textstat (MIT) or a tiny in-repo FK
    implementation as a light dependency.
  • Glossary mapping jargon → plain language: prefer PORTER-style lay
    definitions
    (readable at ~grade 4) and link out to RadiologyInfo.org
    (ACR/RSNA patient resource). Use RadLex only as an internal term-normalization
    backbone
    — it is NOT patient-readable (median grade 12.6, only 8% of terms
    defined), so never display RadLex text to patients.
  • Reinforced patient-facing disclaimer + a "questions to ask your doctor" section
    generated from the findings.

Acceptance criteria

  • Optional patient mode; professional report unchanged and still default.
  • Output measured at FKGL ~6–8; grade shown on the report.
  • Glossary/lay-definitions applied; RadLex used only internally, never displayed.
  • Findings are neither added nor dropped vs. source; qualifiers preserved
    (unit test with a hedged finding).
  • No "looks normal/concerning" style statements; "talk to your doctor" +
    serious-finding escalation present.
  • Tests: readability threshold met on sample reports; glossary substitution;
    qualifier-preservation; disclaimer present.

Effort

~1 day. Light dependency (textstat or inline Flesch-Kincaid).

References (session research, not committed)

97k-report readability study (PMID 30639521); Lancet Digital Health 2025 LLM
simplification meta-analysis; PORTER vs RadLex readability (PMID 29310924);
AMA/NIH 6th-grade guidance; RadiologyInfo.org.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions