Referral intake and EMR entry, without the typing
OpenAdapt learns an EMR task from a demonstration, then types each new referral as a program: the same steps every time. By default each entry waits for approval. Where your EMR allows, it reads the saved record back. It takes the details from an eReferral or web form, or reads them from a referral PDF, fax image or email.
Book a 30-minute callSee the processes
Updated 2026-10-18
Who it's for
- Clinics and specialty practices whose staff key referrals and new patients into an EMR.
- Revenue-cycle teams that look up eligibility and claim status in payer portals.
- Healthcare AI teams whose product reads referrals but can't write into the clinic's EMR: see For AI agent teams.
- Dental front desks: see Dental front desk.
Referrals that arrive as a PDF, a fax image or an email: OpenAdapt can read the document and fill in the entry's details. It holds back any field that is missing, unclear or found twice with different values, and a person confirms it. A scanned PDF with no text layer has to be saved as an image first.
What it takes over: in a published time study, a faxed referral took about 12 minutes (719 seconds). About 4 minutes of that is typing: finding the patient, demographics, insurance, creating the referral and logging it. Reviewing the referral and calling the patient stay with your staff. We recorded the new-patient part: 12 fields.
Processes
- Tested
Referral intake, new patient
8 synthetic eReferrals on OpenEMR in one worklist run: 7 saved with 12 of 12 fields read back by our test setup; 1 stopped at the duplicate check. Also timed against an AI agent.
Referral intake - Tested
Reading the referral document
Fills the entry's details from a referral PDF, fax image or email, and holds back unclear fields for a person. On synthetic documents.
- Tested
Booking the referred patient
Our scheduling app over a real remote-desktop connection: 3 of 3 bookings confirmed, 3 of 3 wrong-patient runs stopped.
Booking - Process
Filing reports to the right chart
Stops on look-alike patients: 5 of 5 in our look-alike test.
Document filing - Tested
Patient note entry
On the public OpenEMR demo: 19 of 20 notes saved, judged by a screen check.
Patient notes - Tested
Eligibility look-ups
On openIMIS, with synthetic members: 3 of 3 active policies confirmed, 3 of 3 expired stopped.
Eligibility - Process
Billing audit
A monthly billing or coding audit reads notes and bills in the EMR and lists what doesn't match. It saves nothing.
Dental eligibility has its own page. The referral batch ran as a worklist: one program, once per referral. Checked exports are on their own page.
The same referral by hand, by an AI agent and by OpenAdapt
We also ran OpenAdapt against an AI agent, Claude Sonnet 5.5 (claude-sonnet-5-5), on the same referral task. Timed on 63 new-patient referrals each (OpenEMR test copy, 14 to 15 Oct 2026), both saved 62. OpenAdapt ran the same path every time, sent no screens to a model and cost $0; the agent cost about $0.08 a run. Medians: 29.7 s for OpenAdapt, 36.5 s for the agent.
OpenAdapt found each field by the page's structure. Without page-structure identity the same task took 38.6 s, slower than the agent. The comparison in full.
Can it check the record in your setup?
OpenAdapt calls an entry "Done and checked" only after it reads the saved record back another way. Re-reading the screen it typed on doesn't count.
| Your EMR offers | Result OpenAdapt can give |
|---|---|
| Read-only API access or a reporting database | Done and checked, at the time of the run |
| A report you can export on demand | Done and checked, once the report is read |
| No second way to read the record | It stops, or ends "Finished, not checked". We don't run saves this way. |
Your IT team creates a read-only login, so OpenAdapt can look each saved record up and check it. How the record check works.
Questions
Which EMRs does it work with?
It works through the screen, the way your staff do: in a browser, an installed program or over remote desktop. Our measured runs are on OpenEMR 8.0.0.3 test copies with synthetic records; OpenEMR is the open-source EHR whose 7.0 release is ONC-certified. We qualify each workflow on your own EMR before it touches a real record.
Does patient data go to an AI model?
In OpenAdapt's runs on this site, the program made 0 AI model calls. It runs on a computer you control, and it reads referral documents with text recognition on that computer. See Security.
Do we still need staff?
Yes. Saves wait for approval (each one by default, or only the problems once a workflow qualifies), on the computer or a paired phone. Staff answer the stops and confirm any detail the document reading holds back.
Should we use our EMR's API instead?
If your EMR offers an approved API for the task, use it. See How do you get data into an EMR without a usable API?.
What does it cost?
Free to run locally. Team $499 a month. Healthcare and enterprise qualification sprints from $15k. Pricing.
Ready for your system, and what it's been tested on
Built for production: signed admissions, qualification against your normal and fault cases, a record check on every save, local or in your VPC, and a BAA on Enterprise. We qualify it on your system before it touches a real record.
Tested on OpenEMR (open source) with synthetic patients.
Sources
- OpenAdapt on OpenEMR 8.0.0.3 (open-source EMR), local test copy, 11 Oct 2026. One program ran over 8 synthetic eReferrals in one batch, with 0 AI model calls. 7 new patients were saved; our test setup read each chart back through the OpenEMR API and database, and 12 of 12 fields matched the referral. The 8th (Rosa Delgado, same name as an existing chart, different birth date) stopped at the EMR's duplicate check; afterwards no new chart existed. The engine labels the saved runs "Finished, not checked" (practice profile) and the stop "Check the record".
- Referral timing run, local OpenEMR 8.0.0.3 test copy, 14 to 15 Oct 2026 (run data): 8 synthetic referrals, OpenAdapt (a program compiled to find each field by the page's structure, 0 model calls) against Claude Sonnet 5.5 (claude-sonnet-5-5) as a computer-use agent in a capped harness, warm starts, interleaved blocks, each chart read back from the database. Blocks 2 to 10, normal referrals saved correctly: 62 runs each; median 29.7 s (OpenAdapt) and 36.5 s (agent); agent median $0.083 a run at list price. Both 62 of 63 normal referrals correct; on the possible duplicate, no new chart in 9 of 9 for both. Block 1 left out (CPU shared with another process); with it (blocks 1 to 10), 69 of 70 correct for both, 29.7 s and 37.6 s (n=69 each). The same task from the 10 Oct recording without the page's structure: 62 of 63, 38.6 s median, slower than the agent.
- UCSF Pediatric Access Center time-and-motion study, JAMIA Open 2020;3(3):405: 719 seconds per faxed referral (mean, 7 staff). The typing steps: find the patient 16 s, demographics 77 s, insurance 65 s, create the referral 59 s, log it 14 s; 231 s in all (our sum of the study's step times). Calling the patient or the referring office takes 175 s.
- OpenAdapt remote-desktop test, 30 Jul 2026: a fictional clinic scheduling app over a real remote-desktop connection (FreeRDP, not Citrix), synthetic patients. 3 of 3 bookings confirmed by a read-only database query; 3 of 3 wrong-patient runs stopped with 0 rows written; 3 of 3 runs on a changed screen stopped. 0 AI model calls.
- OpenAdapt look-alike test set (synthetic rows), 2026: 5 of 5 look-alike patients stopped; of the 2 control cases, the right patient was let through and a plainly different patient was stopped. On pixel-only screens the check stops whenever the right patient's own record number has look-alike characters (O and 0, l and 1); on our test corpora that was 47 to 61 in 100 correct-patient checks, re-measured 17 Oct 2026 (IDENTITY_EVIDENCE.md). With a confirmed list of the system's record numbers (openadapt-flow 2.2.0), those stops on a rendered record list fell from 176 to 3 in 280 clicks whose neighboring row wasn't a look-alike twin (KNOWN_IDS.md).
- OpenAdapt engine benchmarks, OpenEMR public demo, 8 Jul 2026 (docs/BENCHMARKS.md): an 18-step add-a-note task on the public demo (synthetic patients, resets daily). The compiled program passed 19 of 20 runs at 39.2 s median with 0 model calls; in the 20th the note stayed in the unsaved form. A computer-use agent, Claude Sonnet 5 (claude-sonnet-5), passed 10 of 10 at 70.4 s median, about $0.55 a run at list price. Both judged by the same screen check of the saved note, not a database read. Engine version 0.1.0.
- OpenAdapt on openIMIS 25.10 (open-source insurance system, not a US payer portal), July 2026, synthetic members: 3 of 3 active policies confirmed, 3 of 3 expired policies stopped, 0 active policies stopped by mistake. Checked by a read-only database query of the policy, product and dates.
See it on your process
Bring one task your team types every day. We'll tell you whether it fits, and what a test on your own system would cover.