DentaNote: dental clinical notes with local Gemma, no audio leaves the operatory
Description and use
DentaNote cuts dental note creation time to under a minute by locally transcribing audio and extracting structured data, keeping all patient data on the device and allowing clinician review.
Problem
Clinicians lose time building structured dental notes after dictating audio, and existing solutions risk patient data leaving the machine.
Outcome
DentaNote reduces note creation time from ~10 min to under 1 min per appointment, keeps all data local, and allows model swapping and validation to mitigate hallucinations.
Workflow
- Record patient visit audio
- Run
dentanote run visit.wavto transcribe with Whisper and extract structured data with Gemma via Ollama - Validate JSON with Pydantic
- Render note with deterministic template
- Review
uncertain_itemsflagged for clinician verification - Export or edit note in Streamlit UI
Evidence
audio in, structured clinical note out, running 100% locally, with not a single byte leaving my machine.
The full pipeline — transcription with Whisper, extraction with Gemma via Ollama, schema validation, and rendering — took 11.2 seconds to turn a 30-second audio clip into a complete note (transcription: 7.7 s; extraction: 2.1 s; rendering is a deterministic template and doesn't register in the timing).
Both produced valid JSON on 100% of first attempts. Both failed on the same case (urgencia_dor predicted tooth 37 instead of 47 — the model "picked" a neighbor on the arch).
The small Whisper model on CPU transcribes ~3.8× faster than real time. So a 3-minute dictation becomes text in about 45 s, plus ~2 s of extraction — under a minute for a note I would have dictated entirely.
- Record date: 2026-10-21T00:41:07.143Z