Born on OpenEMR. Built to stay.
EMRFlow is the documentation layer for practices that run OpenEMR. Speak a session on a phone and every detail lands in the right field of a structured note. The visit posts back to OpenEMR billing as a draft with codes. OpenEMR stays the system of record.
In production today in therapy practices and agencies that run OpenEMR. Connected over HL7 FHIR R4 and SMART on FHIR. Other FHIR R4 EHRs get the documentation and the sync; posting back is available for OpenEMR today.
What connects, exactly
Pulled from OpenEMR
Patients, practitioners, locations and encounters, read through OpenEMR's FHIR API by a standard SMART on FHIR backend-services client. Read only.
Posted back to OpenEMR
Each approved visit becomes a draft billing encounter: date and place of service, facility, diagnosis and procedure codes, stamped Imported from EMRFlow, for your billing team to finish.
Filed, not charted
The finished note is filed as a PDF to your connected document storage. It does not go into the OpenEMR chart. Nobody re-keys a visit.
What your OpenEMR administrator does
Register EMRFlow as a SMART on FHIR backend-services client, create the system user, and enable the FHIR API. EMRFlow adds no tables to your database, installs no custom modules, and touches no core files; a cPanel host may need one Apache exclusion, and the checklist covers it. Here is the environment we need, so you can check it before we talk.
- OpenEMR 7.0.2 Patch 3The version EMRFlow is built and tested against. Other versions may run but are untested; we would rather confirm with you than have you find out on a clinic day.
- PHP 8.0 or newerParts of the integration assume a modern PHP runtime.
- HTTPS with a valid certificateNot self-signed. Sign-in runs in the therapist's browser, so the certificate has to be one their device already trusts.
- The FHIR REST API switched onAdministration, then Globals, then the Connectors tab. Confirm it is serving by opening
your-site-address/apis/default/fhir/metadatain a browser: you should get a JSON document back, not an error page. - Administrator access to OpenEMR and its databaseFor the one small fix stock OpenEMR ships without (so the API can issue tokens) and the system client registration. We walk through both with you during onboarding; the client credentials go in your password manager, never in email or a ticket.
- After any install or update, no stray backup files in the web rootA file copied next to itself, like
Claim.php.bak, is served as plain text.find public_html -name '*.bak*' -o -name '*.orig' -o -name '*~'should return nothing.
Before you upgrade to OpenEMR 8.x, talk to us first. EMRFlow's connection is built against 7.0.2 Patch 3 and we are working through 8.x compatibility. Tell us before you schedule the upgrade and we will coordinate, rather than have your practice discover a gap afterward.
Tools we give back to OpenEMR
- Self-service password reset for OpenEMR 7.x (opens in new tab)A GPL-3.0 drop-in. Three files, nothing in the core touched, white-label ready.
- The package on the OpenEMR community forum (opens in new tab)Where we answer questions about it.
- Why OpenEMR has no self-service reset, and what we releasedThe write-up, from Insights.
- When opening a patient takes forever: audit-log maintenanceThe measured root cause and a zero-downtime trim.
Questions administrators ask
Does the clinical note go into the OpenEMR chart?
No. The note lives in EMRFlow and files as a PDF to your connected document storage. What posts back to OpenEMR is the approved visit as a draft billing encounter, with the date and place of service, facility, and diagnosis and procedure codes, stamped Imported from EMRFlow, for your billing team to finish.
Which OpenEMR version does EMRFlow support?
EMRFlow is built and tested against OpenEMR 7.0.2 Patch 3 on PHP 8.0 or newer, served over HTTPS with a valid certificate. Other versions may run but are untested. Talk to us before an upgrade to 8.x.
Does EMRFlow change our OpenEMR database?
EMRFlow adds no tables, installs no custom modules and touches no core files. During onboarding we apply one small fix that stock OpenEMR ships without, so the API can issue tokens, and register the system client. A cPanel host may need one Apache exclusion.
How is a practice billed?
A one-time setup fee, a monthly hosting and maintenance fee, and a monthly fee per practitioner seat, with support staff free, plus claim credits for each visit posted back to OpenEMR. The amounts are quoted on a short call, and a billing company that runs EMRFlow for its practices sets its own terms. You can pilot at no cost while we connect you. Details are on the pricing page.
Who supports it once it is live?
We do. Your administrators and therapists get a help desk with a searchable knowledge base, and the integration is monitored on our side.
Talk to us about OpenEMR
Tell us which OpenEMR version you run and how many therapists document. We reply within one business day and can show the connection on our sample EHR in twenty minutes.
EMRFlow is an independent product, not affiliated with or endorsed by the OpenEMR project. OpenEMR is a trademark of its owner. The screen shown is our sample EHR, not a practice's data.