13 Case Studies 4 min read 856 words

Case Study: Voice AI Assistant for Healthcare

Nurses dictating into an EHR, which forces on-premise Whisper for HIPAA, speaker diarization to separate nurse from patient, and FHIR write-back after review.

case-studymultimodalcomplianceapplied
01problem

The Problem

A hospital network wants a voice-based AI assistant that helps nurses document patient encounters. The nurse speaks naturally; the AI produces structured clinical notes in real-time.

Constraints given in the interview:

  • HIPAA compliance (PHI handling)
  • Works in noisy hospital environments
  • Real-time transcription (under 500ms latency)
  • Must use medical terminology correctly
  • Integration with existing EHR (Epic/Cerner)
02question

The Interview Question

03architecture

Solution Architecture

04design decisions

Key Design Decisions

4.1

1. On-Premise ASR for HIPAA

Answer: PHI cannot leave the hospital network without encryption and BAA. We deploy Whisper Large v3 on local GPU servers rather than using cloud APIs:

OptionLatencyHIPAACost
Cloud ASR (OpenAI)200msRequires BAA, data leaves network$0.006/min
On-prem Whisper150msFull control, no data egress$0.002/min (amortized GPU)

On-prem wins on both latency and compliance.

4.2

2. Speaker Diarization: Who Said What

Answer: The note must distinguish "Patient reports headache" from "Nurse observes patient grimacing." We use:

Pythonpython · 7 lines
1234567
# Pyannote for speaker diarization
diarization = pipeline("audio.wav")
# Output: [(0.0, 1.5, "SPEAKER_0"), (1.5, 4.2, "SPEAKER_1"), ...]

# Map speakers based on voice profile
roles = identify_roles(diarization, known_nurse_voiceprint)
# Output: {"SPEAKER_0": "nurse", "SPEAKER_1": "patient"}

The nurse's device captures their voiceprint at setup for role identification.

4.3

3. Medical NER for Structured Extraction

Answer: We need structured data, not just prose. Medical NER extracts:

We use a fine-tuned BioBERT model for NER, not the LLM, because NER needs to be fast and deterministic.

05noisy environments

Handling Noisy Environments

Hospitals are loud. We use multiple strategies:

  1. Directional microphones on nurse devices focus on nearby speech
  2. Noise-robust ASR models (Whisper was trained on noisy data)
  3. Confidence thresholds: if ASR confidence is <0.7, we flag for nurse review rather than guessing
  4. Keyword spotting: medical terms have custom pronunciation models
06note format

The Structured Note Format

The LLM produces SOAP-format notes:

Pythonpython · 17 lines
1234567891011121314151617
note_prompt = f"""
Generate a clinical SOAP note from this encounter transcript.

Transcript:
{transcript_with_speakers}

Extracted entities:
- Symptoms: {symptoms}
- Medications: {medications}
- Vitals: {vitals}

Output format:
S (Subjective): Patient's reported symptoms
O (Objective): Nurse's observations and measurements
A (Assessment): Clinical impression
P (Plan): Next steps, orders
"""
07integration fhir

EHR Integration (FHIR)

The output must be machine-readable for the EHR:

JSONjson · 18 lines
123456789101112131415161718
{
  "resourceType": "DocumentReference",
  "status": "current",
  "type": {
    "coding": [{"system": "http://loinc.org", "code": "34117-2", "display": "History and physical note"}]
  },
  "subject": {"reference": "Patient/12345"},
  "author": [{"reference": "Practitioner/nurse789"}],
  "content": [{
    "attachment": {
      "contentType": "text/plain",
      "data": "base64-encoded-soap-note"
    }
  }],
  "context": {
    "encounter": {"reference": "Encounter/visit456"}
  }
}
08budget

Latency Budget

StageTargetActual
Audio capture to VAD50ms30ms
ASR transcription200ms150ms
Diarization100ms80ms
NER extraction50ms40ms
LLM structuring500ms450ms
Total (end-to-end)900ms750ms

For real-time feel, we stream partial transcripts while NER and LLM run on completed sentences.

09follow-up questions

Interview Follow-Up Questions

Q: How do you handle medical abbreviations and jargon?

A: We maintain a custom vocabulary list that maps abbreviations (PRN, BID, SOB) to full terms. This is injected into both the ASR model (for better recognition) and the LLM prompt (for correct expansion in notes).

Q: What if the nurse makes a correction mid-sentence?

A: We detect correction patterns ("actually, I mean...", "no wait, it's...") and use only the corrected version. The LLM is instructed to prefer later statements when conflicts exist.

Q: How do you ensure the AI does not miss critical information?

A: We have a "completeness check" that verifies the note includes all extracted entities. If NER found "chest pain" but the SOAP note does not mention it, we flag for nurse review. We also run a "safety critical" detector that escalates mentions of suicidal ideation, abuse, or other mandatory reporting triggers.

10takeaways interviews

Key Takeaways for Interviews

  1. On-prem for healthcare: HIPAA often requires local processing
  2. Diarization is essential: who said what matters clinically
  3. Hybrid extraction: fast NER for structure, LLM for prose generation
  4. Always have human review: especially for clinical documentation

Related chapters: Multimodal Models, Reliability Patterns