Jason Dijols
← All work

Gauntlet AI · 2026

Clinical Copilot

A conversational AI agent for physicians, embedded inside OpenEMR

Demos · 2 clips

Phase 1 — Copilot in the chartThe conversational agent embedded in OpenEMR, answering chart questions in context.
Role
Solo builder: architecture, agents, deployment
Timeline
2 weeks (Gauntlet AI, Weeks 1–2)
Stack
OpenEMRPHPTypeScriptMulti-agent LLM supervisorPostgreSQLLangfuse

The problem

Physicians spend a large share of every visit digging through the EHR instead of talking to the patient. OpenEMR is powerful but dense. Finding a medication history, recent labs, or a prior note means clicking through nested menus. The brief: put a trustworthy conversational agent inside the chart itself.

The approach

I embedded a multi-agent supervisor directly into the OpenEMR clinician UI. The supervisor routes physician questions to specialized agents that read the patient's chart through OpenEMR's data layer, with every model interaction traced in Langfuse for observability. The agent answers in context. The physician never leaves the chart, and every response is grounded in that patient's actual record.

The hard parts

Working inside a 20-year-old PHP codebase

OpenEMR is a sprawling legacy system. Rather than fork it destructively, I integrated the copilot as an embedded surface with a clean HTTPS contract, keeping the upstream system intact and the agent independently deployable.

Patient-data trust boundaries

A clinical agent must only see the chart it is opened against. Session-scoped access and server-side patient context, never client-supplied identifiers, kept cross-patient leakage structurally impossible rather than merely discouraged.

Deploying real infrastructure

This isn't a localhost demo. The full stack (OpenEMR, agent API, Langfuse tracing) runs on a public VPS behind TLS, with synthetic patient data, so anyone can log in and use it.

The live interface

Screenshot of Clinical Copilot
The shipped Clinical Copilot application, live.

Where it landed

A live, publicly accessible deployment with a working conversational agent inside the chart, and the foundation that Week 3's Clinical Adversary platform was later pointed at as a red-team target.