Referral intake: new patients into the EMR, without the typing

OpenAdapt registers each referred patient in your EMR as a program learned from a demonstration. By default each save waits for approval. On OpenEMR, an open-source EMR, it saved 7 of 8 synthetic referrals, with 12 of 12 fields read back by our test setup, and stopped on the one whose name matched an existing chart.

Updated 2026-10-18

Real recordings, sped up. Synthetic patients; read-back by the test setup.

Today

In the UCSF time study, staff took 719 seconds per faxed referral on average. The typing steps:

StepSeconds
Find the patient16
Demographics77
Insurance65
Create the referral59
Log it14
Typing in all231 (about 4 minutes)

Calling the patient or the referring office (175 seconds) and reading the referral stay with your staff. An NHS trust reported about 10 minutes per referral by hand.

With OpenAdapt

Real recordings, sped up: by hand, an AI agent and OpenAdapt. Synthetic patient.

The same synthetic referral entered three ways: by a test script typing at a person's pace, by an AI agent (Claude Sonnet 5.5, claude-sonnet-5-5) and by OpenAdapt. All three saved the chart correctly.

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. In an earlier test on 11 Oct 2026, the test script typing at a person's pace took 83.8 seconds to the Confirm click. The comparison in full.

  • OpenAdapt finds the patient and fills the 12 new-patient fields.
  • A person approves the save, on the computer or a paired phone.
  • If the EMR's duplicate check lists a possible match, it stops before confirming and flags "Check the record".

What's been tested

RunResultHow it was checked
63 new-patient referrals each, OpenAdapt and an AI agent, 14 to 15 Oct 2026Both saved 62 of 63 correctlyOur test setup read each chart back from the database, the same way for both.
8 synthetic eReferrals in one worklist run, 11 Oct 20267 saved; 1 stopped at the duplicate check (Check the record)Our test setup read each chart back through the OpenEMR API and database: 12 of 12 fields matched. After the stop, no new chart existed. The engine labels saved runs "Finished, not checked" (practice profile).
3 runs, July 20263 of 3 Done and checked, 56.9 to 63.9 s eachThe program's own record check, through the OpenEMR API and a database read.

Scope

The measured program registers the patient. The referral entry, the scheduler task and the attachment are further steps in the same workflow.

Is it a fit?

  • Referrals reach you as data (an eReferral or a web form) or as a PDF, fax image or email. OpenAdapt can read the document and holds back any unclear field for a person.
  • Your EMR offers a second way to read a saved chart: read-only API access, a reporting database or a report export.
  • Enough referrals a week that typing them is a real share of someone's day.

Questions

Why did the Rosa Delgado referral stop?

The EMR already had a Rosa Delgado with a different birth date. OpenAdapt had typed the form, so it stopped before confirming and asked a person to check. No new chart was created.

What does it cost?

Free to run locally. Team $499 a month. Healthcare and enterprise qualification sprints from $15k. Pricing.

Related: booking the referred patient · filing reports · EMR entry without an API · Your agent alone, or with OpenAdapt

Sources

  1. 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.
  2. Calderdale and Huddersfield NHS Foundation Trust, HFMA case study, 2024: about 10 minutes per referral by hand; after an RPA rollout about 5% were left for staff.
  3. 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.
  4. 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".
  5. Same test copy, 11 Oct 2026: a test script typed the first referral at a person's pace: 83.8 s from start to the Confirm click; OpenAdapt took 87.0 s for the same entry. A test script, not a person.
  6. OpenAdapt on OpenEMR 8.0.0.3, July 2026: new-patient registration, 3 of 3 runs "Done and checked" through the OpenEMR API and a database read, 56.9 to 63.9 s each, synthetic patients.

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.