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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions