Case study · Healthcare AI

Getting an ambient AI scribe through security review and into the EHR

Clinicians were finishing notes in the evening, and every AI scribe pilot had stalled in security review. The goal was a private ambient documentation pipeline that drafted notes for clinician sign-off, ran on infrastructure the organisation controlled, and could prove what happened to every recording.

Case studyHealthcare · Provider groupSumanta Mukhopadhyay8 min read
#healthcare#ai#llm#fhir#security
CASE STUDY · CASE STUDY · HEALTHCARE AI28 Oct 2026 · 01:10 GST
At a glance
SectorHealthcare · Provider group
My roleAI architect
EngagementArchitecture, pilot build and hand-off
ScopeConsent, speech recognition, note drafting, EHR integration, audit
What changed
  • A security design the review board could approve, instead of another stalled pilot
  • Draft notes written into the EHR only after clinician approval
  • Every recording, draft and edit traceable through one audit trail
  • An evaluation set that gated model and prompt changes before release
SMART on FHIRFHIR R4 DocumentReferenceWhisper-class ASRvLLMPrivate GPU nodesKubernetesAuditEvent logEvaluation harness

Anonymised composite. Client names, identifying details and confidential figures are withheld; public facts are cited in the references.

The situation

A multi-specialty provider group had a documentation problem everyone could describe: clinicians finishing notes after clinic, and patients getting less eye contact than they deserved. Ambient AI scribes looked like the answer, and several vendor pilots had been started. Each one stalled in the same place: security and privacy review. Reviewers could not get clear answers about where audio went, who could see transcripts, how long anything was kept, or how a wrong sentence in a note would be caught.

The ask was not "pick a better vendor". It was to design a pipeline the organisation could own end to end, so those questions had answers before the first recording.

What had to be true

  • Consent first: no recording without a recorded patient consent, and an easy way to stop.
  • Data stays inside the boundary: audio, transcripts and drafts processed on infrastructure the organisation controls.
  • A human signs every note: the model drafts, the clinician decides.
  • Least privilege into the EHR: the app sees the current patient and encounter, nothing more.
  • Provable history: who recorded, what was generated, what was changed, what was filed.

Architecture

The design split the problem into capture, private inference, review and filing, with audit running across all of them.

Capture
Clinic device appconsent checkEncrypted uploadshort-lived tokensSession contextpatient, encounter
Private inference
Speech recognitionWhisper-class, private GPUsDiarisationclinician vs patientNote draftingLLM on vLLM
Review
Draft with sourcessentence to transcript linksClinician editoraccept, edit, reject
EHR
SMART on FHIR launchscoped accessDocumentReferencesigned note only
Assure
Audit trailAuditEvent per actionEvaluation harnessrelease gateRetention jobsaudio deleted on schedule
Layered architecture: inference stays private, the clinician sits between the model and the record, and audit spans every tier.

Speech recognition used a Whisper-class model, a family trained on large-scale weakly supervised audio and released with open weights1, which made private hosting practical. Note drafting ran on vLLM, whose PagedAttention memory management is designed for high-throughput serving on limited GPU memory2. Serving patterns are in LLM inference serving with vLLM and private LLMs on-premises.

The data flow, end to end

  1. ConsentApp checks recorded consent for this encounter before the microphone is enabled
  2. CaptureAudio encrypted on device and uploaded against the encounter context
  3. TranscribePrivate ASR with speaker separation; transcript stored with the session
  4. DraftLLM drafts the note in the specialty template, each sentence linked to transcript spans
  5. SignClinician reviews, edits and signs; unsupported sentences are flagged for attention
  6. FileSigned note written to the EHR; audio deleted on the agreed retention schedule
The model never writes to the record. Only a signed note crosses into the EHR.

The app launched inside the EHR using SMART on FHIR, requesting only the patient and encounter context and the narrow scopes it needed3. The signed note was filed as a FHIR DocumentReference4. More on scope design in SMART on FHIR authorisation for AI apps.

The hard part: trust in the draft, not the transcript

Transcription quality was rarely the argument. The concern was a fluent note that said something the patient never said. Three choices addressed it:

  • Grounded drafting: every sentence in the draft carries a link to the transcript span it came from, and sentences without one are highlighted.
  • Clinician-scored evaluation: a curated set of consented encounters, scored by clinicians for omissions and unsupported statements, gated every model and prompt change. See evaluation sets that predict production.
  • Edit capture: what clinicians changed was recorded, so recurring corrections fed back into templates and the evaluation set.

An AI scribe is approved on the strength of its failure handling. Reviewers need to see how a wrong sentence is caught, not how rarely it appears in a demo.

How it ran

Clinician
  1. Confirms consent
  2. Reviews linked draft
  3. Signs note
Pipeline
  1. Transcribes privately
  2. Drafts with sources
  3. Files signed note
Governance
  1. Audit every action
  2. Gate releases on evaluation
  3. Enforce retention
Who does what in a single encounter.

Audit records followed the shape of the FHIR AuditEvent resource (who, what, when, outcome), so the trail could be queried alongside other EHR audit data5.

Phase 1Review first
  • Threat model with security
  • Consent and retention policy
  • Data flow sign-off
Phase 2Private pipeline
  • ASR and LLM on private GPUs
  • SMART launch and scopes
  • Audit trail
Phase 3Clinical pilot
  • Small clinician cohort
  • Evaluation set from consented visits
  • Template tuning
Phase 4Expand and hand off
  • More specialties
  • Release gate runbook
  • Internal ownership
Security review was the first deliverable, not the last hurdle.

Key decisions and trade-offs

DecisionAlternativeWhy
Private inferenceHosted scribe APIAnswers data residency and access questions directly; costs GPU operations effort
Clinician signs every noteAuto-file low-risk notesKeeps accountability with the clinician and the model out of the record
Sentence-level source linksFree-text summaryMakes unsupported statements visible during review
Narrow SMART scopesBroad backend accessLeast privilege that reviewers can verify
Evaluation as release gateAd hoc spot checksModel and prompt changes cannot silently regress

What I'd do again, and differently

Again: take the design to the security board before building anything, and treat evaluation as infrastructure. Differently: involve clinicians in template design earlier. Most edits were about structure and specialty conventions, not model accuracy, and that work is cheaper before the pilot than during it. The broader architecture patterns are in ambient AI scribe architecture.

If you have an AI pilot stuck in review, the AI architect page describes how I approach these engagements, or analyse your challenge and bring the result to a call.

References
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
    AuditEvent (FHIR R4)HL7 International
FAQ

Common questions

Why run an ambient scribe on private infrastructure?

It keeps audio and transcripts inside a boundary the organisation already governs, which shortens security and privacy review and avoids sending identifiable conversations to a third party by default.

Does the AI write directly into the medical record?

No. The model drafts a note with links back to the transcript, and a clinician reviews, edits and signs it. Only the approved note is written to the EHR.

How do you know the drafts are good enough?

A curated evaluation set of consented encounters, scored by clinicians, is run before every model or prompt change. Changes that regress on omissions or unsupported statements do not ship.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. Time zones from the Americas and Europe to the Middle East and Asia-Pacific.