Case Study

AI Patient Triage for a General Practice

HealthcareGermany2025

A four-doctor Bavarian general practice was drowning in non-urgent phone traffic. We built a triage assistant that handles routine calls about prescriptions, appointments and sick notes, categorises each one, and routes it to the right staff member. The system runs on-premise on a small NUC behind the practice firewall, in line with Bavarian medical-privacy expectations.

Background

Background

The practice serves roughly 6,000 active patients across four GPs and two medical assistants. Between 7:30 and 9:00 every morning the phone is essentially unusable: dozens of patients call simultaneously, the medical assistants can answer maybe one in three before the caller gives up, and a meaningful share of those calls are repeat-prescriptions or sick-note renewals that do not need a doctor at all. The senior partner had read enough about AI to be sceptical of the cloud — patient data leaving the practice was a non-starter for him, both because of GDPR and because the Bavarian medical association takes a strict view of professional secrecy. He wanted a system that would absorb the routine call volume, categorise calls correctly, and only escalate to a human assistant when the patient actually needed one. Off-the-shelf medical chatbots either required cloud processing of audio or were tied to a specific PMS the practice did not use.

Solution

Solution

We built a small voice agent that picks up incoming calls on a secondary line and asks the caller, in German, what their reason for calling is. Routine categories — repeat prescription, sick note renewal, appointment rescheduling, vaccination question — are handled end-to-end: the agent confirms the patient's identity against the practice database, captures the request, and writes a queue entry that one of the medical assistants reviews and confirms before any document is issued. Anything that smells acute — chest pain, breathing difficulty, sudden onset symptoms, mention of children, anything emotional — is routed immediately to a live assistant with a one-line context summary. The deployment is fully on-premise: a NUC behind the practice firewall runs the local model, the Langflow orchestrator, and a hardened PostgreSQL instance, with no outbound traffic carrying patient data. We documented the data flow for the practice's data-protection officer and for the local medical association's compliance review.

Outcome

Outcome

During the morning peak, the agent now handles a meaningful share of inbound calls — internally the practice reports roughly twelve to fifteen routine cases per day routed to the right assistant without a phone conversation. The two medical assistants describe the change in plain terms: they can finally hear the urgent calls because the routine ones no longer crowd the line. Acute escalations are correctly routed in all cases reviewed during the first eight weeks of operation. Patient feedback was initially mixed — some older patients did not like talking to a machine — but settled after the team scripted a short, warm opening line and added an immediate "press 0 for a human" option.

Lessons Learned

Lessons Learned

Three takeaways. First: in a medical setting, the design objective is not maximising automation — it is making the escalation layer flawless. We deliberately tuned the agent to err toward escalation, and we will keep tuning that direction. False positives cost us a few seconds of a medical assistant's time; a single false negative would cost trust we cannot rebuy. Second: the first version we shipped was too polished in tone, and elderly patients found it unnerving — it sounded almost human. We rewrote the opening line to be explicitly identified as a practice assistant system, with a slightly slower cadence, and complaints dropped. Third: on-premise deployment is not the hard part; the hard part is operating it. We built remote monitoring (without any patient data leaving the network) and a clear runbook so the practice does not panic when something needs a restart. That operational side was underestimated at kickoff and is now a standard part of how we scope on-prem projects.

A similar problem?

Drop us a short note and we will reply within one business day.

Request a project