AI hub

AI center

The assistant is wired straight into your practice database — it reads and writes

Patients in reach

8

read + edit

Appointments

13

create + update

Inventory items

15

receive / use / count

Vaccine records

8

schedule + administer

What can it do?

Appointments

Books, reschedules, confirms and cancels appointments.

Patient records

Creates patients and updates weight, allergies and chronic issues.

Clients

Creates client accounts and edits contact info and balances.

Vaccine schedule

Schedules vaccines, marks them given, sets the next due date.

Prescriptions & exams

Writes SOAP exam notes and multi-line prescriptions.

Lab

Records results and flags values outside the reference range.

Inventory

Adds items, records receipts and usage, warns on low stock.

Practice summary

Pulls together the day's appointments, patients and alerts.

Safety rules

The assistant has to follow these

  • Looks up before it writesIt can't invent a record id; anything malformed is rejected before it reaches the database.
  • Asks when unsureIf two patients share a name, it asks which one by client and chart number.
  • Confirms before deletingDelete tools don't run without explicit approval; for appointments it offers to cancel instead.
  • Stays inside your practiceIt can't choose which practice to work in — that's pinned server-side.
  • Makes no medical decisionsAsked for a dose or a diagnosis, it says a veterinarian has to sign off and only records the entry.

Transparency

Every action shows up in the chat

Every time the assistant touches the database, a line appears above the message. Reads are gray, writes are blue, errors are red — so what happened is always auditable.

readListed appointments — 7 found
writeAppointment created — 08/07/2026 8:15 AM
errorThat time slot is already booked

Open pages refresh on their own after a write.

Runtime

Local model — free and unmetered for testing

The assistant currently runs on a local model through Ollama on this machine — no token cost and no quota, so test as much as you like. For production, the model and provider can be swapped for a hosted one (Gemini, for example) in lib/ai/agent.ts.