Live demo · 100% synthetic data

An EMR for the 21st century (finally).

Built by a physician, for the clinicians who have to use it — a full workstation for the whole clinic day, with AI that helps when you want it and never sends patient data off-site.

One click · no sign-up · synthetic patients · about five minutes

FHIR R4–aligned · PHIPA-conscious · on-prem AI — for Ontario family physicians and their teams.

Jump straight in

Pick your seat in the clinic.

The best way to judge an EMR is to use one. Pick a role and you'll land in the running system as that person. Every screen is live and all the data is synthetic, so there's no sign-up and nothing to set up.

Physician

The full workstation: schedule, triaged inbox, chart + CPP, AI scribe, immutable signing, eRx, billing, panel management.

Enter as Physician →

Nurse

Vitals, immunizations, recalls and reminders, encounter prep — the clinical support view of the same charts.

Enter as Nurse →

Staff

The staff inbox, document handling, messaging, and referral chasing — the day-to-day engine of the clinic.

Enter as Staff →

Secretary

Scheduling and booking, patient requests, front-desk workflow — what arrives before the physician ever sees it.

Enter as Secretary →

Admin

Practice settings, user and role management, AI posture, security policy, billing defaults — governance made visible.

Enter as Admin →

Patient (portal)

Book, self-triage, submit intake, grant or decline AI consent — and watch it land pre-sorted in the physician's inbox.

Enter the portal →
Live demo · 100% synthetic data · resets periodically

Your first five minutes

You'll start on today's dashboard, which shows the schedule, the inbox and anything overdue. From there, try these:

  1. Open an inbox item and follow the link to the patient's chart.
  2. Find the AI consent setting at the top of the chart. It turns every AI feature on or off for that patient.
  3. Start a visit on the Encounters tab. Dictate or paste a few lines, and the AI scribe drafts the note for you to review and sign.
  4. End and bill the visit to see the suggested OHIP code and the reason for it. The choice is yours.
  5. Write a prescription and watch the allergy and interaction checks.

Not sure where to go next? Click Guided tour at the top right of the EMR for a short walkthrough. When you're done, tell Ani what you think.

Why it's different

What makes it different.

These aren't really features. They're the decisions the whole system is built on, and you can see each one in the demo.

Designed by a family doctor

The workflows, the order of the modules, and the compliance requirements all come from how a family doctor actually runs a clinic day, not from a billing system with a chart screen bolted on. It was designed by someone who has to use it, not just consulted about it.

The core idea

The AI is optional, always

One switch on each patient's chart turns off every AI feature for that patient, and the EMR still does everything by hand. If consent is declined or hasn't been set, the AI stays off. Every AI feature has a manual path behind it. It answers the thing doctors and regulators worry about most with AI in medicine: staying in control.

The AI runs in the clinic

The ambient scribe and the clinical assistant both run on a machine inside the clinic. No audio and no chart text ever leave the building. Most AI-EMR products can't say that.

Nothing invented into the chart

When the AI suggests a change to the chart, it has to quote the exact words from the signed note it's drawing on. If it can't point to the source, the suggestion never appears. The AI proposes, the clinician accepts, and every action is logged.

Built on FHIR from the start

The data is stored in FHIR shapes, the status codes match FHIR, and the standard terminologies (LOINC, SNOMED, RxNorm, CVX) are carried inline. Sharing data is a matter of exporting it, not rebuilding the system — which is where certification and the provincial strategy are headed.

Feature tour

A full clinic day, end to end.

It's a full workstation, not a chart viewer. The tour below follows a clinic day rather than a feature list.

AI-triaged inbox

Results and correspondence arrive already sorted by urgency and category. The manual inbox is always one click away.

The chart workstation

A tabbed chart with a persistent clinical banner: Summary/CPP, notes, Rx, labs, vitals, imaging, forms, billing — one surface for everything about the patient.

AI scribe — on-prem Whisper

Dictate; a structured SOAP note appears. The audio never leaves the machine it was recorded on.

Immutable note signing

Signed notes are snapshotted and locked — corrections are amendments, not edits. Medico-legally correct by construction.

SKIPPY billing suggestions

End the encounter and the local assistant proposes the OHIP code with a rationale. It suggests; the clinician decides.

Referral tracking with chase UX

The full referral lifecycle, with a directory and a built-in "chase" step, so nothing gets sent and then forgotten.

Recalls & reminders

One unified worklist: preventive recalls, free-form tasks, recurrence, per-provider ownership, "mine only" view.

Panel management + cohort builder

Practice-wide and per-provider stats, care gaps, high-risk lists — and a cohort builder that finds patients by disease, lab, or keyword.

Patient portal — booking & intake

Patients book, self-triage, and submit intake (including electronic AI consent) — and it lands in the physician's inbox pre-sorted.

See it for yourself.

One click takes you into a working clinic as the physician. There's nothing to install and no account to create.

Before you click

Common questions.

How long does it take?

About five minutes. That's enough to open a chart, write and sign a note, and bill the visit. You don't need to sign up, so you can start right away.

Do I need to install anything?

No. The demo runs in your web browser. It works on a phone, but you'll see more on a computer.

Are these real patients?

No. Every patient in the demo is synthetic. Other visitors use the same demo, so please don't enter real patient information.

Does it cost anything?

No. You don't need an account, a credit card or an email address.

Whose name will I see?

You're signed in as a demo clinician at a synthetic clinic, so the screens greet you by that clinician's name. To see the nurse, front-desk, admin or patient view, choose a different role above.

Can I break anything?

Not really. Click around, start visits and write notes. Nothing you do touches real patients, and the demo resets from time to time.

What if the demo doesn't load?

The demo runs on a server Ani hosts himself, and it's occasionally offline. When it is, a notice appears above the role buttons. Please try again later, or get in touch.

Who reads my feedback?

Dr. Ani Garg does. He's the family physician who designs EMR21, and what clinicians tell him shapes what he builds next. Send him your thoughts.

The build

Built by one physician.

One practising family physician designed and directed the whole thing, using AI coding tools under close supervision, and logged every architectural decision along the way.

~69,200
lines of application code
30
backend services
97
database migrations
1,910
git commits
228
logged architectural decisions
Building clinical software used to take a funded team and years. With today's AI tools, one motivated clinician can put together a working version in months. That changes how the province might specify and evaluate EMRs — and EMR21 is a concrete example of it.

Pilot it in your practice

Thinking about switching?

If the demo has you picturing your own clinic day in EMR21, let's talk. Ani sets up each pilot with the clinic, on a computer in the practice.

How a pilot works

  1. It starts with a conversation. You and Ani talk about your practice, your team and what you need from an EMR.
  2. EMR21 is installed in your clinic. It runs on a computer in your practice, so your patients' records stay with you. The AI runs in your clinic too.
  3. You get it ready together. Before any real patient information goes in, you and Ani set up security, turn on backups and remove the demo accounts.

Moving from your current EMR

  • Bring your charts across. EMR21 imports the patient charts your current EMR exports. You see what will come over, including possible duplicates, before anything is saved.
  • Test it first. A trial import from your own system shows you what to expect before you decide.
  • Keep your current EMR running. You can use EMR21 alongside it during the pilot and decide about switching later.

What you'd bring

  • A computer in your clinic to run it on. Ani will go over what it needs.
  • An export from your current EMR for the trial import.
  • A few clinic days of real use, and your honest feedback.

You remain the health information custodian for your patients' records. EMR21 is set up with your clinic, not run on its behalf.

Talk to Ani about a pilot This opens an email. Please don't include patient information.

Collaborate on the build

Help build it.

EMR21 gets better with every clinician and developer who pitches in. Both are welcome.

Clinicians

Try the demo in your own role. Then tell Ani what's missing, what's wrong and what's slow. Ideas from people who run a clinic day are the most useful input there is. Send your feedback.

Developers

The code lives in emr-21-collab, a private GitHub repository for invited collaborators. To join, email your GitHub username to ani.garg.md@gmail.com and say what you'd like to work on.

How it works

  • Read the README and contributing guide first. They explain setup and how changes are reviewed.
  • Choose a task from the roadmap or suggest your own idea. Ani agrees on the work with you before you start.
  • Send your changes as pull requests, and Ani reviews them.
  • Use synthetic patient data only.

Run it locally

Run it on your own computer.

With access to emr-21-collab, you can run the full EMR on your own computer with a set of synthetic patients. The AI features are optional, and everything else works without them.

What you need

  • Git, Docker Desktop, Python 3.12 and Node.js
  • Access to emr-21-collab

Getting started

  1. Copy the repository to your computer and create your settings file. The README explains how.
  2. Start the database and server, then load the synthetic patients.
  3. Start the app and open it in your browser. The README lists the demo logins.
cd docker && docker compose --env-file ../.env up -d postgres backend
# apply the database migrations in order (see the README)
python scripts/seed_synthetic.py
cd frontend && npm install && npm run dev   # then open http://localhost:5173

Want to use EMR21 in your clinic? For now, clinic installations are set up through a pilot, and a simpler installer is on the way. Once EMR21 is running, the user manual explains how to use it.

Contact

Get in touch.

Your email goes straight to Dr. Ani Garg. Choose a topic, and your email app will open with a short message ready to fill in. Please don't include any patient information.

Or email Ani directly at ani.garg.md@gmail.com.

See for yourself

Have a look yourself.

A few minutes in the live system will tell you more than any write-up. Pick a role and run through a clinic day.