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 2026The 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.
Speak naturally during the consultation — even messy, unstructured dialogue. The system converts speech to text and extracts clinical data from natural conversation.
4-layer safety protocol: passive capture → active interrogation → decision engine → medico-legal output. Blocks unsafe interventions in real-time.
Fully voice-controlled patient-to-patient workflow. Say the patient's name → system finds them → auto-creates encounter → starts recording. Zero clicks.
The system tells you which clinical areas still have missing data and suggests what to ask the patient next.
Handles real-world messy dialogue — patients rambling, doctors chatting, topics mixing. Extracts clinical data from casual, unstructured speech.
Before locking an encounter, compliance gates check for required fields, risk levels, VISPE safety tier, and low-confidence observations.
The encounter page offers two voice input modes, selectable via the toggle pill at the top of the voice panel.
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.
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.
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 |
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 transforms the system into a fully voice-controlled assistant. The doctor's hands stay on the patient — the system operates entirely by voice.
When multiple patients share the same name, the system uses a 3-layer disambiguation approach:
If only one patient matches the spoken name, they are selected immediately. No further disambiguation needed.
If multiple patients match, the system checks today's Cliniko appointments and auto-selects the patient whose appointment is within 30 minutes of now.
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.
Say "Assistant, finish patient" or "Assistant, done". The system will:
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.
Name, date of birth, contact details, and Cliniko patient ID. Supports bulk import or single patient sync.
Full treatment note history from Cliniko — previous consultation records, diagnoses, and interventions performed.
Last 6 months of appointments with status (attended, DNA, cancelled, upcoming). Used for smart patient disambiguation in Clinic Flow.
Cliniko medical alerts are automatically parsed and mapped to patient risk flags that feed into VISPE safety checks and the risk engine.
When medical alerts are imported, the system automatically detects and flags:
| Risk Flag | How It's Detected | Impact 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 |
Imported patient data is used throughout the encounter workflow:
VISPE is the 4-layer safety engine that prevents unsafe clinical interventions. It evaluates every encounter in real-time and assigns a safety tier.
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.
These 5 rules cannot be bypassed. They block the encounter sign-off with a RED tier:
| Rule | Trigger Condition | Block 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 fields must be documented before sign-off. Missing MSCD items produce AMBER warnings:
Dorsalis pedis status, posterior tibial status, capillary refill time, skin temperature
Instruments sterilised, PPE used, sharps disposed properly
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.
Because the doctor's hands are on the patient during treatment, all safety interactions are voice-controlled:
When a transcript is sent (manually or auto-sent in passive mode), here's what happens behind the scenes:
/clinic/encounters/{id}/voice-chunk.The AI parses natural conversation into structured clinical data. For example:
Real consultations are not structured dictation — patients ramble, doctors chat, topics mix. The AI is designed to handle this reality.
Extracts clinical data from conversations that include pleasantries, small talk, and social chat. Non-clinical chatter is automatically filtered out.
Handles conversations where multiple clinical domains are discussed in a single utterance — vascular findings mixed with medication history and skin observations.
Extracts relevant clinical information from long patient stories that mix symptoms, social history, and irrelevant detail.
Understands Irish and UK colloquialisms — "me foot is at me", "the pain is desperate", "it's grand" — and maps them to clinical terms.
Detects clinical information embedded in casual observations — "yeah that looks quite red" becomes a dermatological finding of erythema.
Automatically corrects 17+ common speech recognition errors — "door solace pedis" → dorsalis pedis, "post cereal" → posterior tibial, "more no filament" → monofilament.
Notice: the wedding story, the daughter reference, and the temporal details are all filtered out. Only clinically relevant information is extracted.
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 |
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
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
| 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) |
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.
Certain clinical findings are too critical to auto-save. The system holds them in a confirmation queue and requires explicit clinician approval.
An observation is classified as high-risk if:
red_flags, OR| High-Risk Key | Clinical Significance |
|---|---|
suspected_charcot | Charcot neuroarthropathy — urgent orthopaedic referral |
suspected_dvt | Deep vein thrombosis — emergency vascular |
suspected_malignancy | Possible cancer — urgent dermatology/oncology |
acute_ischaemia | Acute limb ischaemia — emergency vascular |
spreading_cellulitis | Spreading infection — urgent antibiotics/admission |
suspected_sepsis | Systemic infection — emergency admission |
osteomyelitis | Bone infection — urgent imaging/antibiotics |
needs_confirmation queue"Assistant, confirm" to accept all pending high-risk findings, or "Assistant, reject" to discard them — no need to touch the screen.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.
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.
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).
Each alert automatically dismisses after 15 seconds. Multiple alerts stack vertically with an 80px offset so all remain visible.
Click the "×" button on any alert to dismiss it immediately.
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.
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
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.
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.
"Assistant, what should I ask next" and the system will read out the highest-priority suggested question via TTS.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.
"Assistant, summarise"You can summarise a specific clinical section by adding the section name:
"Assistant, summarise vascular" — Summarises only vascular findings"Assistant, summarise neurological" — Summarises only neurological findings"Assistant, summarise" (no section) — Summarises everythingAvailable sections: presenting_complaint, vascular, neurological, dermatological, biomechanical, red_flags, diagnosis, treatment, consent, infection_control, follow_up
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.
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.
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.
Shows the calculated risk level for each clinical domain, colour-coded:
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.
After an encounter is locked, corrections or additions are made through the addenda system — not by editing the original record.
Each addendum records:
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.
The AI uses linguistic cues to determine the speaker:
| Speaker | Cues Detected | Example |
|---|---|---|
| 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" |
Auto-filled form fields show a small speaker badge in the top-right corner:
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.
If you misspeak during recording, you can correct yourself naturally. The system recognises correction patterns and extracts only the corrected value:
| What You Say | What 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 |
The system supports 12 clinical domains covering the full podiatric assessment:
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.
Diabetes Status & Type, Medications, Allergies, Previous Ulcer, Immunosuppression, Anticoagulant Use, Smoking Status, Notes
"Patient is a type 2 diabetic on metformin and warfarin. No allergies. Non-smoker. History of previous ulceration on the left heel."
The Presenting Complaint section includes additional fields for a complete HPC:
| Field | What to Record | Voice Example |
|---|---|---|
| Onset | How the problem started | "It started gradually after increasing running distance" |
| Progression | Getting worse, stable, or improving | "The pain has been progressively worsening" |
| Aggravating Factors | What makes it worse | "Walking and standing for long periods makes it worse" |
| Relieving Factors | What helps ease symptoms | "Rest and ice seem to help" |
Documents infection prevention compliance — part of the MSCD (Minimum Safe Clinical Dataset):
A free-text section at the bottom of the encounter for anything that doesn't fit other categories:
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.
Navigate to any encounter, then change the URL from /encounters/2 to /encounters/2/voice-test.
consent.recording_consent = yes observation.
"Assistant, summarise" to hear a spoken summary. Verify it matches what was discussed.
| 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. |