pediatric-ai-scribe-v3/docs/logic/clinical-notes.md
2026-05-09 00:40:45 +02:00

3.4 KiB

Clinical Note Workflows

Clinical note workflows share the same broad lifecycle:

  1. User enters text or records audio.
  2. Audio, when used, is transcribed by the configured server-side STT provider.
  3. The frontend gathers demographics, structured form data, and optional user template context.
  4. The route wraps user-derived text with wrapUserText and appends INJECTION_GUARD before calling callAI.
  5. The generated note is inserted as safe text/sanitized output.
  6. Post-note helpers can offer refine/shorten/clarify, billing suggestions, don't-miss review, and parent-facing patient handouts.
  7. Users can save/load encounter drafts through the shared encounter system.

Main Workflows

Workflow Frontend Route Notes
Live Encounter HPI public/js/liveEncounter.js POST /api/generate-hpi-encounter Recording/transcript to HPI.
Dictation public/js/voiceDictation.js POST /api/generate-hpi-dictation or POST /api/generate-soap Dictated summary to HPI or SOAP.
SOAP public/js/soap.js POST /api/generate-soap Transcript/dictation to SOAP.
Sick Visit public/js/sickVisit.js POST /api/sick-visit/note Chief complaint, transcript/dictation, ROS/PE, diagnosis context.
Well Visit public/js/wellVisit.js, public/js/shadess.js POST /api/well-visit/note, POST /api/well-visit/shadess Schedule data, ROS/PE, SSHADESS, milestones, vaccines/screenings.
Hospital Course public/js/hospitalCourse.js POST /api/generate-hospital-course Pasted notes/labs to course summary.
Chart Review public/js/chartReview.js POST /api/generate-chart-review Pasted chart content to outpatient review.
ED Encounter public/js/ed-encounters.js src/routes/edEncounters.js Multi-stage ED workflow; see ed-encounters.md.
Milestones public/js/milestones.js POST /api/generate-milestone-narrative, POST /api/generate-milestone-summary Developmental milestone narratives.

User Templates

Settings saves templates/preferences in user_memories. The frontend calls getUserMemoryContext() before generation and passes the result as physicianMemories. Server routes wrap that context as low-priority style/template guidance. custom memories and legacy correction_* rows are not injected into prompts.

Encounter Persistence

Shared save/load behavior lives in public/js/encounters.js and src/routes/encounters.js.

  • Encounters are scoped by user_id.
  • Rows expire by site.auto_delete_days.
  • idempotency_key prevents duplicate creates.
  • version supports optimistic locking when clients send expected_version.
  • Text fields are encrypted at rest for new writes.

Patient Education

attachPatientEducation adds a Handout panel beside supported note outputs. POST /api/patient-education generates a parent-facing plain-text draft from the edited clinician note plus optional diagnosis, medication, age, language, and reading-level context. The clinician remains responsible for review before sharing.

Safety Rules

  • Do not insert generated clinical output with raw innerHTML unless it is intentionally sanitized.
  • Do not add browser-native prompt, alert, or confirm workflows.
  • Do not add inline DOM event handlers.
  • Do not reintroduce browser Whisper/browser-local model downloads.
  • Do not cache clinical answer text in Redis.
  • Keep source transcript/context available for refine actions where relevant.