Beside ONEemr
ONEemr writes the OpenEMR database, so modules reach the same patients through the Bridge, whichever screen your staff use.
Essentials
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.

6 modules
Booking, reminders, messages, forms and video — the work that ties up the phone.
6 modules
Notes, orders, documents, referrals and the patients who should be back by now.
6 modules
Claims, eligibility, payments, authorisations and the denials that come back.
4 modules
Your EMR, your interface engines, your own systems, and moving records in or out.
3 modules
The clinician’s phone app, shared phrases and the reports a manager asks for.
Four ways to run 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.
ONEemr writes the OpenEMR database, so modules reach the same patients through the Bridge, whichever screen your staff use.
Your certified install stays exactly as shipped. Modules reach it over its own API, which is what keeps it certified.
One adaptor per system behind the Bridge, one model in front of it. The differences between EMRs stop there.
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
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.
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
Not a tenant column: a separate database and a separate encryption key, so a query with a missing filter cannot cross a boundary.
Hash-chained and enforced by database triggers, and searchable by patient: who opened whose record, and when.
Signed webhooks out, signed machine endpoints in, and a module contract you can write against.
Most clinics start with reminders, because it is the one with a number attached. Nothing about the EMR you run has to change.