Encounter Page User Manual

Complete guide to voice-powered clinical documentation, VISPE safety engine, Clinic Flow Mode, AI-guided questioning, and compliant sign-off in Helpon Notes.

Version 2.0 — March 2026

Contents

  1. System Overview
  2. Voice Modes — Manual vs Passive
  3. Wake-Word Voice Commands
  4. Clinic Flow Mode — Hands-Free Patient Navigation
  5. Cliniko Integration — Patient History Sync
  6. VISPE — Intervention Safety Engine
  7. How AI Extracts Clinical Data
  8. Natural Conversation Intelligence
  9. Observation Model — Domain / Key / Value
  10. Confidence Scoring
  11. High-Risk Observation Confirmation
  12. Red Flag Alerts
  13. AI-Guided Next Questions
  14. TTS Read-Back & Summarisation
  15. Pre-Lock Summary & Compliance Gates
  16. Post-Lock Addenda
  17. Speaker Role Detection
  18. Undo & Mid-Sentence Corrections
  19. Clinical Sections & Domains
  20. Voice Test Harness
  21. Complete Workflow — Start to Finish
  22. Troubleshooting

📋 System Overview

The Encounter Page is where clinicians document a patient consultation in real-time. Instead of typing notes manually, the system listens to the doctor-patient conversation and automatically extracts structured clinical observations using AI.

How It Works (High Level)

🎤 Clinician speaks 🔊 Browser captures audio 📝 Speech → Text 🤖 AI extracts observations 🛡️ VISPE safety check ✅ Fields auto-populate

Key Capabilities

🎙️ Voice-to-Documentation

Speak naturally during the consultation — even messy, unstructured dialogue. The system converts speech to text and extracts clinical data from natural conversation.

🛡️ VISPE Safety Engine

4-layer safety protocol: passive capture → active interrogation → decision engine → medico-legal output. Blocks unsafe interventions in real-time.

🔄 Clinic Flow Mode

Fully voice-controlled patient-to-patient workflow. Say the patient's name → system finds them → auto-creates encounter → starts recording. Zero clicks.

❓ Guided Questioning

The system tells you which clinical areas still have missing data and suggests what to ask the patient next.

🧠 Natural Conversation AI

Handles real-world messy dialogue — patients rambling, doctors chatting, topics mixing. Extracts clinical data from casual, unstructured speech.

🔒 Compliant Sign-Off

Before locking an encounter, compliance gates check for required fields, risk levels, VISPE safety tier, and low-confidence observations.

🎤 Voice Modes — Manual vs Passive

The encounter page offers two voice input modes, selectable via the toggle pill at the top of the voice panel.

🔴 Manual Mode (Default)

Press to record, press to stop, then press Send.

You control exactly when to start and stop recording. The transcript appears in a preview area. You review it, then click "Send" to trigger AI extraction.

Best for: Structured consultations, dictating specific notes, precise control.

🟢 Passive Mode

Always listening. Auto-sends after 3 seconds of silence.

Once activated, the mic stays open. When you stop talking for 3 seconds, the transcript is automatically sent for AI extraction. The mic then resumes listening.

Best for: Free-flowing conversations, hands-free operation, natural dialogue.

How Passive Mode Works

1
Toggle to "Passive" — The mic starts listening. A wave animation appears.
2
Speak naturally — Talk to the patient as you normally would. The system captures everything.
3
Pause for 3 seconds — The system detects silence and automatically sends the captured speech for AI extraction.
4
Auto-restart — The mic resumes listening for the next segment of conversation.
ℹ️
Recording Consent: The first time you press record in any encounter, a consent modal appears. You must confirm that the patient has given verbal consent to voice recording. This consent is saved as an observation.

🗣️ Wake-Word Voice Commands

While recording, you can speak commands using the wake-word "Assistant". The system detects these commands and executes them instead of treating them as clinical data.

Voice Command Action
"Assistant, record" Starts voice recording
"Assistant, stop" Stops voice recording / cancels TTS playback
"Assistant, send" Sends the current transcript for AI extraction
"Assistant, summarise" Generates an AI summary and reads it aloud via TTS
"Assistant, summarise vascular" Summarises a specific section (e.g., vascular, neurological)
"Assistant, what should I ask next" Reads out the highest-priority missing clinical questions
"Assistant, confirm" Confirms all pending high-risk findings (accepts them into the record)
"Assistant, reject" Dismisses all pending high-risk findings (discards them)
"Assistant, undo" Reverts the last AI-extracted observation (removes from record and clears form field)
"Assistant, review vascular" Reads back all recorded observations for a specific section via TTS
"Assistant, lock encounter" Opens the pre-lock summary if all compliance gates pass
"Assistant, safety status" Reads current VISPE safety tier, active blocks, and missing MSCD fields aloud
"Assistant, next patient [name]" Searches for patient by name, creates encounter, and starts passive recording (Clinic Flow)
"Assistant, seeing [name] now" Alternative to "next patient" — same behaviour
"Assistant, finish patient" Stops recording, reads compliance status, suggests next steps
"Assistant, done" Alternative to "finish patient" — same behaviour
⚠️
Tip: The wake-word is case-insensitive. "assistant, summarise" works the same as "Assistant, summarise". Commands are detected by pattern matching on the transcript text.

Interruption Handling

If the system is speaking (TTS read-back or alerts) and you start talking, it automatically stops the playback so your speech takes priority. You can also say "Assistant, stop" to cancel any active TTS output.

🔄 Clinic Flow Mode — Hands-Free Patient Navigation

Clinic Flow Mode transforms the system into a fully voice-controlled assistant. The doctor's hands stay on the patient — the system operates entirely by voice.

Starting Clinic Flow

1
Click "Clinic Flow" on the Dashboard — A full-screen mic overlay appears with a pulsing animation and the system greets you via TTS.
2
Say the patient's name — e.g., "Barry Gahan". The system searches your patient database using fuzzy matching (handles first/last name reversal).
3
Auto-match or disambiguate — If one match is found, the encounter starts immediately. If multiple matches exist, the system uses today's Cliniko appointments to auto-pick the right patient.
4
Encounter auto-created — The system creates a new encounter (or resumes an in-progress one from today) and redirects with passive voice mode already active.
5
Just talk — The encounter is recording. Speak naturally with the patient. When done, say "Assistant, finish patient" or "Assistant, done".

Smart Duplicate Name Handling

When multiple patients share the same name, the system uses a 3-layer disambiguation approach:

1️⃣ Exact Match

If only one patient matches the spoken name, they are selected immediately. No further disambiguation needed.

2️⃣ Appointment-Based Auto-Pick

If multiple patients match, the system checks today's Cliniko appointments and auto-selects the patient whose appointment is within 30 minutes of now.

3️⃣ Voice Disambiguation

If no appointment match is found, the system reads the options aloud (e.g., "I found 3 patients named Barry Gahan — born 1954, 1978, and 1992") and buttons appear for selection.

Finishing a Patient

Say "Assistant, finish patient" or "Assistant, done". The system will:

Zero-click workflow: From the moment you click Clinic Flow, you never need to touch the keyboard or mouse again. Patient search, encounter creation, recording, and finishing are all voice-controlled.

🏥 Cliniko Integration — Patient History Sync

Helpon Notes connects directly to your Cliniko practice management system to import patient records, treatment history, appointments, and medical alerts — so doctors always have full context before treating.

What Gets Imported

👤 Patient Records

Name, date of birth, contact details, and Cliniko patient ID. Supports bulk import or single patient sync.

📋 Treatment Notes

Full treatment note history from Cliniko — previous consultation records, diagnoses, and interventions performed.

📅 Appointment History

Last 6 months of appointments with status (attended, DNA, cancelled, upcoming). Used for smart patient disambiguation in Clinic Flow.

⚠️ Medical Alerts → Risk Flags

Cliniko medical alerts are automatically parsed and mapped to patient risk flags that feed into VISPE safety checks and the risk engine.

Auto-Detected Risk Flags from Cliniko

When medical alerts are imported, the system automatically detects and flags:

Risk FlagHow It's DetectedImpact on Encounter
has_diabetes Alert contains "diabetes", "diabetic", "type 1", "type 2" Higher ulcer risk score, prioritised vascular questions, VISPE considers in safety tier
on_anticoagulant Alert contains "warfarin", "rivaroxaban", "anticoagulant", "blood thinner" Higher bleeding risk, treatment warnings for sharp debridement
immunosuppressed Alert contains "immunosuppressed", "steroids", "transplant", "chemotherapy" Higher infection risk, stricter infection control requirements
previous_ulcer Alert contains "ulcer", "ulceration", "previous wound" Elevated ulcer recurrence risk, additional skin assessment prompts
allergies Alert contains "allergy", "allergic", specific drug names Flagged in encounter context, AI avoids suggesting contraindicated treatments

How to View Patient History

1
Open the patient profile — Navigate to the patient's page in Helpon Notes.
2
Click the "Cliniko History" tab — This loads treatment notes, appointment history, and medical alerts from Cliniko.
3
Review treatment notes — Expandable cards show previous consultation details. Appointment history shows attendance patterns.
4
Import medical alerts — Click "Import Alerts" to pull and map Cliniko medical alerts to local risk flags. These flags are then used by VISPE and the risk engine during encounters.

How It Feeds Into Encounters

Imported patient data is used throughout the encounter workflow:

Automatic context: When you start an encounter, the patient's imported risk flags are automatically loaded. The doctor doesn't need to re-enter medical history — it's already there from Cliniko.

🛡️ VISPE — Vascular & Infection Safety Protocol Engine

VISPE is the 4-layer safety engine that prevents unsafe clinical interventions. It evaluates every encounter in real-time and assigns a safety tier.

Safety Tiers

GREEN — SAFE
AMBER — CAUTION
RED — BLOCKED

The safety tier badge appears in the bottom sign bar and updates in real-time as observations are recorded. Click the badge to open the full VISPE Safety Panel.

Hard Intervention Rules (Non-Overridable)

These 5 rules cannot be bypassed. They block the encounter sign-off with a RED tier:

RuleTrigger ConditionBlock Message
NO_TREATMENT_ABSENT_PULSES Treatment recorded but pedal pulses absent Treatment cannot proceed without palpable pedal pulses
VASCULAR_NOT_ASSESSED Treatment recorded but no vascular assessment done Vascular status must be documented before any intervention
NO_SHARP_IN_ISCHAEMIA Sharp debridement planned in ischaemic limb Sharp debridement is contraindicated in ischaemic tissue
ISCHAEMIC_SIGNS_PRESENT Treatment planned with ischaemic indicators (cold, absent pulses, slow refill) Multiple ischaemic signs detected — intervention unsafe
SUSPECTED_DVT DVT red flag present + treatment planned Suspected DVT — immediate vascular referral required

MSCD — Minimum Safe Clinical Dataset

MSCD fields must be documented before sign-off. Missing MSCD items produce AMBER warnings:

🩸 Vascular MSCD

Dorsalis pedis status, posterior tibial status, capillary refill time, skin temperature

🧫 Infection Control MSCD

Instruments sterilised, PPE used, sharps disposed properly

Clinical Safety Summary

VISPE auto-generates a medico-legal defensible clinical safety summary documenting vascular status, infection control compliance, risk factors assessed, and intervention justification. This summary is included in the pre-lock modal.

Voice-Controlled Safety

Because the doctor's hands are on the patient during treatment, all safety interactions are voice-controlled:

🚨
RED tier blocks sign-off entirely. The encounter cannot be locked until all hard intervention rules are resolved. The "Confirm & Sign" button is disabled and the reason is displayed.

🤖 How AI Extracts Clinical Data

When a transcript is sent (manually or auto-sent in passive mode), here's what happens behind the scenes:

1
Transcript is sent to the server — The raw speech text is POSTed to /clinic/encounters/{id}/voice-chunk.
2
Context is gathered — The system loads the patient's risk flags (diabetes, anticoagulant use, immunosuppression, previous ulcers) and any existing observations already recorded in this encounter.
3
AI processes the transcript — A specialised prompt instructs the AI to extract structured clinical observations as domain.key.side = value with a confidence score.
4
Observations are categorised — Each extracted observation is classified as either Auto-Save (safe to record immediately) or Needs Confirmation (high-risk, requires clinician approval).
5
VISPE safety refreshes — The safety engine re-evaluates the encounter's safety tier with the new observations. Tier changes trigger TTS announcements.
6
Form fields update — Auto-saved observations appear immediately in their corresponding form sections. High-risk items trigger a confirmation modal.
7
Next Questions refresh — The system recalculates which clinical fields are still missing and updates the suggestions panel.

What the AI Extracts

The AI parses natural conversation into structured clinical data. For example:

// Doctor says:
"come in sit down Mary... terrible weather isn't it...
so what's going on... me foot has been killing me for weeks...
right let me have a look... good pulse there on both sides"

// AI extracts (ignoring pleasantries):
{ domain: "presenting_complaint", key: "chief_complaint", value: "foot pain", speaker: "patient" }
{ domain: "presenting_complaint", key: "duration", value: "weeks", speaker: "patient" }
{ domain: "vascular", key: "pedal_pulses", side: "bilateral", value: "present", speaker: "clinician" }

🧠 Natural Conversation Intelligence

Real consultations are not structured dictation — patients ramble, doctors chat, topics mix. The AI is designed to handle this reality.

What the AI Handles

💬 Casual Mixed Speech

Extracts clinical data from conversations that include pleasantries, small talk, and social chat. Non-clinical chatter is automatically filtered out.

🔀 Topic Jumping

Handles conversations where multiple clinical domains are discussed in a single utterance — vascular findings mixed with medication history and skin observations.

🗣️ Patient Rambling

Extracts relevant clinical information from long patient stories that mix symptoms, social history, and irrelevant detail.

🇮🇪 Regional Speech

Understands Irish and UK colloquialisms — "me foot is at me", "the pain is desperate", "it's grand" — and maps them to clinical terms.

🩺 Implicit Findings

Detects clinical information embedded in casual observations — "yeah that looks quite red" becomes a dermatological finding of erythema.

🔧 Speech Error Correction

Automatically corrects 17+ common speech recognition errors — "door solace pedis" → dorsalis pedis, "post cereal" → posterior tibial, "more no filament" → monofilament.

Example: Messy Real-World Conversation

// Patient says:
"well you see doctor I was at me daughter's wedding last Saturday
and I was on me feet all day and the right foot swelled up
something awful and me daughter said it looked very red and
I had an ulcer there before years ago you know and I gave
up the cigarettes ten years ago but I'm still on the steroids"

// AI extracts from the rambling:
{ presenting_complaint.chief_complaint: "right foot swelling" }
{ dermatological.skin_colour.right: "erythematous" }
{ medical_risk_profile.previous_ulcer: "yes" }
{ medical_risk_profile.smoking_status: "former smoker — quit 10 years" }
{ medical_risk_profile.immunosuppression: "yes — steroid use" }

Notice: the wedding story, the daughter reference, and the temporal details are all filtered out. Only clinically relevant information is extracted.

📊 Observation Model — Domain / Key / Value

Every piece of clinical data is stored as a structured observation with four components:

Component Description Example
Domain The clinical section or category vascular, neurological, dermatological
Key The specific clinical field within the domain pedal_pulses, sensation, skin_condition
Value The recorded finding or measurement palpable, diminished, callus present
Side Laterality (optional) left, right, bilateral, null

Clinical Domains

🩺 Core Assessment

presenting_complaint — Chief complaint, onset, duration, severity, progression, aggravating & relieving factors
medical_risk_profile — Diabetes, medications, allergies, smoking, immunosuppression, anticoagulants
vascular — Pedal pulses (DP/PT), capillary refill, temperature, skin colour
neurological — Sensation, reflexes, monofilament, vibration
dermatological — Skin condition, nail health, lesions, calluses

📋 Clinical Decisions

biomechanical — Gait, joint range, foot posture
diagnosis — Working diagnosis, differentials
treatment — Interventions, medications, debridement
red_flags — Critical safety findings
infection_control — Sterilisation, PPE, sharps disposal
supplementary_notes — Additional clinical notes, patient education

Additional Metadata

Field Description
confidence AI confidence score (0.0 to 1.0) — how certain the AI is about the extraction
source voice (extracted from speech) or manual (typed by clinician)
recorded_by The clinician's user ID
speaker clinician (objective exam finding) or patient (subjective complaint/history reported by the patient)

📈 Confidence Scoring

Every AI-extracted observation includes a confidence score from 0.0 to 1.0. This score reflects how certain the AI is that it correctly understood and extracted the clinical finding from the spoken conversation.

Confidence Levels

High Confidence (≥ 0.85) — Green border. The AI is very confident. The observation is auto-saved without review. Example: a clearly stated pulse finding.
Medium Confidence (0.60 – 0.84) — Amber border. The AI understood the statement but may have some ambiguity. Saved but flagged for optional review.
Low Confidence (< 0.60) — Red border. The AI is uncertain — possibly unclear speech, ambiguous phrasing, or background noise. These observations are highlighted in the pre-lock review modal.
⚠️
Low-confidence observations do not block sign-off, but they are prominently displayed in the Pre-Lock Summary modal so you can review them before finalising.

⚠️ High-Risk Observation Confirmation

Certain clinical findings are too critical to auto-save. The system holds them in a confirmation queue and requires explicit clinician approval.

What Triggers High-Risk?

An observation is classified as high-risk if:

High-Risk Key Clinical Significance
suspected_charcotCharcot neuroarthropathy — urgent orthopaedic referral
suspected_dvtDeep vein thrombosis — emergency vascular
suspected_malignancyPossible cancer — urgent dermatology/oncology
acute_ischaemiaAcute limb ischaemia — emergency vascular
spreading_cellulitisSpreading infection — urgent antibiotics/admission
suspected_sepsisSystemic infection — emergency admission
osteomyelitisBone infection — urgent imaging/antibiotics

The Confirmation Flow

1
AI detects a high-risk finding — e.g., "I suspect this could be a DVT"
2
Observation is NOT auto-saved — It goes into the needs_confirmation queue
3
Confirmation modal appears — Shows each pending high-risk observation with a checkbox, the domain/key, confidence %, and extracted value
4
Clinician reviews and checks items — Only ticked items are confirmed. Unticked items are discarded.
5
Confirmed items are saved with confidence 1.0 — The explicit confirmation overrides the AI's original confidence score.
🗣️
Voice confirmation: Say "Assistant, confirm" to accept all pending high-risk findings, or "Assistant, reject" to discard them — no need to touch the screen.
🚨
Why this matters: Accidentally recording a false-positive "suspected DVT" could trigger unnecessary emergency referrals, patient anxiety, and medicolegal liability. The confirmation gate ensures a human clinician validates every critical finding.

🚩 Red Flag Alerts

When the AI extracts an observation in the red_flags domain with a non-empty value, the system triggers an immediate visual and audio alert.

What Happens

🔊 Audio Alert

Two short 880Hz beeps play via the Web Audio API. This is designed to catch the clinician's attention even if they're looking away from the screen.

🟥 Visual Banner

A red alert banner slides in at the top of the screen with a pulse animation. It shows "RED FLAG DETECTED" with the specific finding (e.g., red_flags.suspected_dvt = yes).

⏱️ Auto-Dismiss

Each alert automatically dismisses after 15 seconds. Multiple alerts stack vertically with an 80px offset so all remain visible.

❌ Manual Dismiss

Click the "×" button on any alert to dismiss it immediately.

ℹ️
Note: Red flag alerts are purely informational — they draw your attention to the finding. The actual observation still goes through the high-risk confirmation flow described above before being saved.

AI-Guided Next Questions

This is the system's answer to: "What should I ask the patient next?"

The Next Questions panel appears on the encounter page and dynamically updates as data is captured. It shows which clinical sections have missing fields and suggests specific questions to ask.

Two Modes

⚡ Static Mode (Instant)

Uses a built-in bank of 50+ predefined clinical questions, grouped by domain. No AI call needed — results are instant. Questions are filtered to only show domains with missing fields.

Priority order: Presenting Complaint → Vascular → Neurological → Red Flags → Dermatological → Biomechanical

🤖 AI Mode (Patient-Specific)

Calls the AI with the patient's existing observations, risk flags, and missing fields. The AI generates tailored questions considering the specific clinical context.

For example, if a diabetic patient has no vascular data recorded, the AI will prioritise vascular questions with diabetes-specific language.

Auto-Refresh

The Next Questions panel automatically refreshes after every voice chunk is processed. As fields get filled, sections disappear from the list. When all required fields are captured, the panel shows a success message.

Voice command: Say "Assistant, what should I ask next" and the system will read out the highest-priority suggested question via TTS.

🔊 TTS Read-Back & Summarisation

The summarisation feature generates a concise spoken summary of the clinical data captured so far, and reads it aloud using the browser's text-to-speech engine.

How It Works

1
Click the Summarise button (teal button in the voice panel) or say "Assistant, summarise"
2
Server loads all observations for the current encounter, groups them by domain
3
AI generates a 1–3 sentence summary — Written in a style suitable for being spoken aloud (no abbreviations, clear clinical language)
4
Browser speaks the summary via the Web Speech Synthesis API. The speaking indicator appears while audio plays.

Section-Specific Summaries

You can summarise a specific clinical section by adding the section name:

Available sections: presenting_complaint, vascular, neurological, dermatological, biomechanical, red_flags, diagnosis, treatment, consent, infection_control, follow_up

🔒 Pre-Lock Summary & Compliance Gates

When you click "Sign & Lock" to finalise an encounter, the system does NOT simply lock it. Instead, a Pre-Lock Summary modal appears with four review sections.

The Four Review Sections

1. Compliance Gates

A checklist of required conditions that must be met before sign-off. Each gate shows a green check (passed) or red cross (failed) with a description.

Examples of gates: "Patient consent recorded", "Presenting complaint documented", "Treatment plan specified", "Follow-up arranged".

If any gate fails, the "Confirm & Sign" button is disabled. You must go back and fill in the missing data first.

2. VISPE Safety Assessment

Shows the current safety tier (GREEN/AMBER/RED), any active intervention blocks, missing MSCD fields, and the auto-generated clinical safety summary.

If the tier is RED, sign-off is blocked. Active blocks must be resolved first.

3. Risk Assessment

Shows the calculated risk level for each clinical domain, colour-coded:

  • ● Low — Score 0–3/10
  • ● Moderate — Score 4–6/10
  • ● High — Score 7–8/10
  • ● Critical — Score 9–10/10

4. Low-Confidence Warnings

Lists any observations with confidence below 0.60. These are displayed with an amber warning background showing the domain, key, extracted value, and confidence percentage.

This gives you a final chance to review or correct uncertain extractions before the record is locked.

🔐
Once signed and locked, the encounter cannot be edited. Only addenda (corrections) can be added after lock. This creates an immutable clinical record for medicolegal compliance.

📝 Post-Lock Addenda

After an encounter is locked, corrections or additions are made through the addenda system — not by editing the original record.

How Addenda Work

1
Navigate to the locked encounter's notes view
2
Click "Add Addendum" to expand the addendum form
3
Select a reason — Choose from: Correction, Addition, Clarification, Late result, Other
4
Write the addendum content — Describe the correction or addition
5
Submit — The addendum is saved with a SHA-256 hash for tamper detection, linked to the encounter, and a new NoteVersion snapshot is created

Audit Trail

Each addendum records:

👥 Speaker Role Detection

The AI automatically detects whether speech comes from the clinician or the patient, and tags each observation accordingly. This helps distinguish objective findings from subjective complaints.

How It Works

The AI uses linguistic cues to determine the speaker:

SpeakerCues DetectedExample
Clinician Third-person references, examination findings, clinical terminology "On examination, dorsalis pedis is present on the left"
Patient First-person complaints, symptom descriptions, history giving "I have been having this pain for two weeks"
Clinician quoting patient "Patient reports...", "She says...", "He describes..." "Patient reports the pain started after she twisted her ankle"

Visual Indicators

Auto-filled form fields show a small speaker badge in the top-right corner:

🩺 CLINICIAN — Objective examination finding
👤 PATIENT — Subjective patient-reported data

↩️ Undo & Mid-Sentence Corrections

Voice Undo

Made a mistake? Say "Assistant, undo" to revert the last AI-extracted observation. This:

You can also click the ↩️ Undo button in the voice controls bar. The system keeps a stack of the last 20 observations for undoing.

Mid-Sentence Corrections

If you misspeak during recording, you can correct yourself naturally. The system recognises correction patterns and extracts only the corrected value:

What You SayWhat Gets Extracted
"Dorsalis pedis absent, no wait, I mean reduced" dorsalis_pedis = reduced
"Pain score 8, actually it's more like 6" pain_score = 6
"Skin cold, scratch that, it's cool" skin_temperature = cool
"Normal on both, sorry I meant reduced on the right" monofilament.right = reduced
💡
How it works: The system pre-processes the transcript before sending to AI, stripping text before correction cues. The AI prompt also includes correction rules as a safety net — so corrections are handled at both the frontend and AI levels.

📋 Clinical Sections & Domains

The system supports 12 clinical domains covering the full podiatric assessment:

Medical Risk Profile

Captures patient risk factors during the encounter — independent of the static patient record. This creates a point-in-time snapshot of the patient's risk status.

Fields

Diabetes Status & Type, Medications, Allergies, Previous Ulcer, Immunosuppression, Anticoagulant Use, Smoking Status, Notes

Voice Example

"Patient is a type 2 diabetic on metformin and warfarin. No allergies. Non-smoker. History of previous ulceration on the left heel."

History of Presenting Condition (HPC) Expansion

The Presenting Complaint section includes additional fields for a complete HPC:

FieldWhat to RecordVoice Example
OnsetHow the problem started"It started gradually after increasing running distance"
ProgressionGetting worse, stable, or improving"The pain has been progressively worsening"
Aggravating FactorsWhat makes it worse"Walking and standing for long periods makes it worse"
Relieving FactorsWhat helps ease symptoms"Rest and ice seem to help"

Infection Control

Documents infection prevention compliance — part of the MSCD (Minimum Safe Clinical Dataset):

Supplementary Notes

A free-text section at the bottom of the encounter for anything that doesn't fit other categories:

🧪 Voice Test Harness

A built-in testing tool at /clinic/encounters/{id}/voice-test that lets you test the AI extraction system with pre-built clinical scenarios without speaking.

How to Access

Navigate to any encounter, then change the URL from /encounters/2 to /encounters/2/voice-test.

Features

💡
Note: The test harness sends real transcripts through the AI extraction pipeline, so it creates real observations on the encounter. Use a test encounter for testing.

🔄 Complete Workflow — Start to Finish

Option A: Traditional Flow (Click-Based)

1
Create Encounter
Select a patient and create a new encounter. Choose encounter type (Routine, Follow Up, Emergency, etc.).
2
Get Recording Consent
Press the record button. Confirm the patient has given verbal consent. This is saved as a consent.recording_consent = yes observation.
3
Choose Voice Mode
Select Manual (press-to-record) or Passive (always-on with 3s auto-send). Passive is recommended for natural consultations.
4
Conduct the Consultation
Speak naturally with the patient. The system captures and extracts data continuously. Check the Next Questions panel for guidance on what to cover.
5
Monitor VISPE Safety
Watch the safety tier badge (GREEN/AMBER/RED). If RED, resolve the blocks before planning any treatment. Say "Assistant, safety status" for a spoken briefing.
6
Confirm High-Risk Findings
If the AI detects critical findings, a confirmation modal appears. Review and tick only the items you agree with. Or say "Assistant, confirm" / "Assistant, reject".
7
Review via TTS
Say "Assistant, summarise" to hear a spoken summary. Verify it matches what was discussed.
8
Sign & Lock
Click "Sign & Lock". The Pre-Lock Summary modal shows compliance gates, VISPE safety assessment, risk scores, and low-confidence warnings. If all pass, click "Confirm & Sign".

Option B: Clinic Flow (Voice-Only)

1
Start Clinic Flow
Click "Clinic Flow" on the Dashboard. This is the only click needed for the entire session.
2
Say the Patient's Name
"Barry Gahan" — system finds the patient, auto-creates encounter, starts passive recording.
3
Conduct the Consultation Naturally
Talk to the patient. The system captures everything and extracts clinical data in real-time. VISPE monitors safety continuously.
4
Finish the Patient
Say "Assistant, done" — system reads compliance status, suggests fixes, returns to listening for the next patient.
5
Say the Next Patient's Name
"Next patient Mary Walsh" — repeat the cycle. Patient after patient, entirely by voice.

🔧 Troubleshooting

Problem Solution
Microphone not working Check browser permissions. Click the lock icon in the address bar and ensure microphone access is "Allow". Chrome/Edge work best — Safari has limited Web Speech API support.
"Recording..." but no text appears Ensure you're speaking clearly within range of the mic. Check that the browser tab is in focus. Some browsers pause recognition when the tab is backgrounded.
Passive mode sends too quickly The auto-send delay is 3 seconds of silence. Avoid long pauses mid-sentence. If this is an issue, switch to Manual mode for more control.
AI extracted wrong data Use the form fields to manually correct any observation. Manual edits override voice-extracted values. You can also say "Assistant, undo" to remove the last extraction.
Can't sign — compliance gate failing Read the gate message to see what's missing. Common issues: no presenting complaint recorded, no treatment plan, no consent observation. Fill in the missing fields and try again.
Can't sign — VISPE RED tier Click the safety tier badge to see active blocks. Resolve them by recording the required vascular data. Say "Assistant, safety status" for a spoken explanation of what's needed.
TTS not speaking Check your device volume. Ensure no other audio is playing. Some browsers require a user interaction before allowing speech synthesis. Try clicking the Summarise button manually.
Wake-word not recognised Say "Assistant" clearly at the start of the command. The word must be the first word in the transcript. Background noise can interfere with detection.
Clinic Flow — patient not found Ensure the patient exists in the system. Try saying the full name slowly. The system supports first/last name reversal, so "Gahan Barry" works the same as "Barry Gahan".
Clinic Flow — wrong patient selected If the appointment-based auto-pick selected the wrong person, navigate back to the Dashboard and use the traditional patient search to find the correct patient.
Next Questions panel is empty All required fields are filled. The panel only shows when clinical domains have missing data. This is a good sign — the consultation is complete.
Speech recognition errors for medical terms The system auto-corrects 17+ common speech errors (e.g., "door solace pedis" → dorsalis pedis). If a term is consistently misrecognised, use Manual mode and correct the transcript before sending.