Developer docs Security & compliance Live demo
Try the demo

Essentials

25 modules for the work around the record.

Booking, reminders, notes, orders, claims, denials, integration engines. Each is a module that switches on by itself, with its own screens and permissions — and each works alongside ONEemr, beside unmodified OpenEMR, or in front of another EMR through the Bridge.

The Essentials Today page for Lakeside Clinic: a Needs attention list led by urgent items — referrals to triage, patients in the video waiting room, a flagged intake form — beside today’s appointments with their status.
Every module’s worklist and today’s appointments on one page, urgent items first. Shown with sample data.

Four ways to run it

The module does not know what is behind it

No module contains an EMR vendor’s name. What sits behind it is the Bridge’s business, which is why the same module works in all four places.

Beside ONEemr

ONEemr writes the OpenEMR database, so modules reach the same patients through the Bridge, whichever screen your staff use.

Beside OpenEMR

Your certified install stays exactly as shipped. Modules reach it over its own API, which is what keeps it certified.

Against another EMR

One adaptor per system behind the Bridge, one model in front of it. The differences between EMRs stop there.

On its own

Referrals, denials, webhooks and reports need no EMR at all; reminders can run from a spreadsheet, an SFTP drop or an HL7 feed.

Honesty about limits

We ask the EMR what it can do, and then say so

Every EMR’s API can do less than its brochure. OpenEMR, for instance, can create and cancel an appointment but not change one, accepts prescriptions but not laboratory orders, and has no billing API at all.

The Bridge declares what works, per resource and per operation, and a module asks before it offers a feature. Something the EMR cannot take is answered in plain words and queued for a person — never reported as done.

Why this matters more than it sounds

A product that pretends a write succeeded is worse than one that refuses. The refusal is annoying for a minute; the pretence is discovered weeks later, by a patient.

And each gap closes by itself. When the EMR gains a capability, a flag flips in its adaptor and the feature appears, with no module changing.

Running it

The same guarantees under every module

One database per clinic

Not a tenant column: a separate database and a separate encryption key, so a query with a missing filter cannot cross a boundary.

An audit log that refuses edits

Hash-chained and enforced by database triggers, and searchable by patient: who opened whose record, and when.

Everything has an endpoint

Signed webhooks out, signed machine endpoints in, and a module contract you can write against.

Start with one module.

Most clinics start with reminders, because it is the one with a number attached. Nothing about the EMR you run has to change.