06.03

Perio

Executive summary

Perio charts a full periodontal exam by voice: the clinician calls out probing depths, recession, bleeding and mobility while the assistant keeps their hands free. Charting involves no language model — speech becomes chart values through a deterministic grammar and live clinical validation. Staging and grading follow the published 2017 AAP/EFP classification implemented in code, and every AI-written summary is a reviewable draft.

Overview

  • ProductionCapture · Perio
    Make a six-site periodontal chart fast and hands-free, with every value traceable to an utterance and no value written by a model.

Pipeline

  1. The perio WebSocket streams audio to recognition tuned for probing grammar (Croatian and English).
  2. A deterministic grammar parses each utterance into site-level commands: depths, recession, bleeding, suppuration, mobility, furcation, missing teeth and implants.
  3. Live clinical validation checks each command; safe commands may apply on an interim transcript, while destructive, ambiguous or cross-tooth commands wait for the final one.
  4. On completion the exam fans out to the timeline, patient memory, the digital twin, risk propagation and clinical facts.
  5. Staging, grading, reports and patient explanations run on demand and land as review-required artifacts.

Data owned

  • Perio exams, teeth and sites
    Holds
    The chart: per-site measurements and per-tooth status
  • Voice learning profiles
    Holds
    Per-clinician recognition adaptation
  • Perio artifacts
    Holds
    Staging, reports and explanations as governed drafts

Models and engines

  • Charting
    Model or engine
    Deterministic grammar and validator — no model
    Notes
    Commands are parsed and validated in shared/services/perio
  • Staging and grading
    Model or engine
    Deterministic AAP/EFP 2017 implementation — no model
    Notes
    Computed from measured indices
  • Summary, report, comparison, explanation
    Model or engine
    Gemini 3 Flash (pro tier)
    Notes
    Review-required drafts

Guardrails

  • A voice result updates the chart only after deterministic parsing and live validation (PERIO-01).
  • Destructive, ambiguous and cross-tooth commands are never fast-applied on an interim transcript (PERIO-02).
  • A negated finding never satisfies a positive rule; missing confidence is never treated as zero (PERIO-06/07).
  • Held commands make no write until the clinician confirms (PERIO-08); completion is always an explicit clinician action (PERIO-10).
  • Stopping capture keeps the final utterance; post-stop results face every live gate (PERIO-11/12).

Rollout and status

  • ProductionVoice charting and completion
    Production engine with a recognition cut-over benchmark in CI
  • ShadowChart-write validation enforcement
    Validator runs in shadow before blocking
  • ProductionPerio fact writer
    Emits periodontal findings as facts
  • PlannedLive-assistant perio findings
    Implemented behind a flag that defaults off

Interfaces

  • Consumes
    What
    Voice OS streaming recognition
  • Consumes
    What
    Encounter binding
  • Emits
    What
    Completed exams to timeline, memory, digital twin and facts
  • Emits
    What
    Staging and report artifacts
  • Emits
    What
    Perio sources for Clinical Documents

Invariants

  • PERIO-01… — deterministic parsing, interim/final safety, confirmation, explicit completion
  • ADR 0002 — perio index semantics
SOURCE OF TRUTH
  • shared/services/perio/
  • server/services/perio/
  • src/components/perio/
  • docs/clinical-invariants/perio.md
  • docs/perio-voice-engine-benchmark.md
Every figure in this specification is generated from the repository and checked in CI.