Automate patient note entry in OpenEMR
A historical 18-step add-patient-note comparison on the shared OpenEMR public demo. The field result was judged from retained final frames by saved-row OCR, not by an independent read of the stored record.
This page reports a historical field comparison on the named application. Its date, oracle, sample size, and evidence limits appear below.
Published results
- Trials
- 20
- Saved-row OCR passes / halted run
- 19 / 1
- Silent incorrect successes
- Not measured in this historical result
- Over-halts
- Not measured in this historical result
- Model API calls per run
- 0
Source: Historical field run on the OpenEMR public demo, measured 2026-07-08. Measured on openadapt-flow 0.1.0 (a pre-v0.2.0 source build), 2026-07-08; not re-measured since.
The same saved-row OCR oracle passed 10/10 computer-use agent trials. Compiled replay was faster. The retained result rows contain model API-call and estimated model API-charge fields. Compiled run 20 halted at step_017 on region_stable and text_present checks. Later final-frame review found no saved-message row. The field comparison did not read the stored OpenEMR record. Silent incorrect success and over-halt counts were not published for this historical comparison.
This historical result predates the current workflow qualification evidence standard. Current qualification requires explicit silent-incorrect-success and over-halt counts.
Runs on
The third-party OpenEMR public demo with fake patients. A separate local synthetic OpenEMR fixture exercises system-of-record effect checks in CI; those checks were not part of the 19/20 field comparison.
Demonstrated steps
- 1Log in as the demo admin
- 2Search for the demo patient
- 3Open the patient’s chart
- 4Scroll the dense Medical Record Dashboard to the Messages card
- 5Open Patient Messages
- 6Enter a distinct parameterized note value for the run
- 7Save and confirm
Parameters: note — the message text written to the patient record — recorded values are the defaults; every replay can override them.
How the outcome is verified
For the historical field comparison, corrected saved-row OCR judged the retained final frame. It did not query the OpenEMR record. Separately, the local CI fixture exercises record_written and field_equals effect contracts, catches a dropped write behind a “Saved” screen, and tests the governed teach-and-promote loop.
- saved-row OCR for the historical field comparison
- separate local-fixture effect-contract tests
- governed teach-and-promote test
Evidence and scope
Historical field run on the real third-party OpenEMR public demo, measured 2026-07-08 on Flow 0.1.0 (a pre-v0.2.0 source build) and not re-measured since: saved-row OCR counted compiled replay at 19/20 and the computer-use agent at 10/10. Compiled replay was faster. The retained result rows contain its model-call and estimated-charge fields. The field oracle inspected retained final frames, not the stored record. The public demo is shared and resets daily, so this is not CI-reproducible or current-release evidence.
Questions about this template
Was this measured in CI or in the field?
In the field, against the real third-party OpenEMR public demo. It is not CI-reproducible: the demo is shared and resets daily, and the agent sample is small. The verifier and task-prompt units do run in CI.
Source: OpenEMR benchmark method
How was the 19/20 field result judged?
Corrected saved-row OCR inspected each retained final frame. It did not read the stored OpenEMR record. A separate local synthetic fixture exercises system-of-record effect contracts, but those results are not the 19/20 field comparison.
Source: Historical field benchmark method · Separate local effect-contract fixture
Try it from the command line
The compiler and runtime are open source and MIT licensed. The default healthy path runs locally and makes no generative-model API calls.
pip install openadaptInstall the OpenAdapt launcher, compiler, and included browser capability.
openadapt flow record --url https://your.app --out recRecord one browser tab and same-origin route set; Ctrl-C to finish. A task that crosses an origin, tab, application, or backend needs separately qualified bundles and external orchestration.
openadapt flow compile rec --out bundle --name my-taskCompile the recording into a deterministic bundle with auto-classified risk per step.
openadapt flow lint bundle --strictReport coverage gaps. Complete the required identity, effect, idempotency, and postcondition contracts before governed use.
openadapt flow replay bundle --url https://your.appRehearse locally. This command does not certify the bundle. Governed certification and execution also require a deployment configuration with the declared policy, identity, effect, and runtime bindings.
Qualify this workflow
Bring your version of this workflow and the record that proves its outcome. We'll map the deployment, verification, shadow run, and supervised rollout.