Barti routes inbound faxes to the right patient chart with zero wrong-patient matches with Claude

With Claude, Barti
  • Files roughly three of every four identity-bearing documents straight to the correct patient chart, unattended
  • Recorded zero wrong-patient matches across thousands of auto-filed decisions, including against a patient index deliberately poisoned with look-alike records
  • Replaced a four-stage extraction chain with a single model call, removing the step where one patient name in four was being lost
  • Extracts date of birth with 100% accuracy and patient name with 99.4% exact accuracy across a hand-labelled corpus
  • Holds identity accuracy flat across clean, light, medium and heavily degraded fax scans
  • Owns the full pipeline inside its own Google Cloud project, with no third-party licensing dependency
The Challenge

A fax arrives. Someone has to work out who it belongs to.

For the optometry practices that run on Barti's platform, clinical operations still run on inbound fax. A typical practice takes in thousands of inbound clinical documents a year and across US healthcare, roughly three-quarters of inter-practice communication still moves by fax. Referrals, consult letters, benefit plans and optometric encounter records arrive as PDFs, often several unrelated documents for several different patients bundled into a single transmission, at whatever scan quality the sending office happens to produce.

Every one of those documents has to land in the right patient's chart, and today someone at the practice puts it there by hand. They open the fax, read enough to figure out what it is, jump into another screen to hunt down the patient, make sure it's the right record, and file the pages. It's a few minutes on a good one and closer to fifteen on a messy multi-page referral and every jump between screens is a fresh chance to lose your place. Do it a few hundred times a week and it's not just slow; it's the kind of grind where, late in the day, a document quietly ends up on the wrong John Smith's chart.

The failure mode that matters in healthcare is not slowness. It is filing a document to the wrong person. Any automation had to be able to decline to hand a document back to a human rather than guess.

Barti engaged Searce, an Anthropic partner, to build it.

The Solution

One model call instead of four steps

Searce's first design broke the problem into stages: clean up the scan, match the layout against a stored template, split the transmission into separate documents, detect the patient's name, then look the patient up.

Measurement killed it. The name-detection step was picking out the patient's name 73.9% of the time and the text was being read off the page correctly. The loss was happening at the step meant to recognise a string as a name. Roughly one fax in four went to manual review for that reason alone. Template matching had its own problem: many document types are structurally near-identical, so layout matching produced overlapping results.

The rebuilt pipeline does the splitting, junk-page removal and identity extraction in a single Claude Haiku 4.5 call on Vertex AI.

Around that call sits deterministic code:

  • Upload guardrails. 20 MB, 25 pages, real PDF. Anything else is rejected before a model runs.
  • OCR and deskew produce one text block per page.
  • The Haiku call returns page ranges, document class, patient name and date of birth for every document in the fax.
  • Output validation forces dates to ISO-8601 or drops them. A date is never guessed.
  • Patient resolution scores the extracted identity against Barti's canonical index and returns a continuous confidence score: zero whenever no match is asserted, so a deferral cannot slip through a permissive threshold.
  • The autonomy gate compares that confidence against a single configurable number. Above it, the document files itself. Below it, a person sees it.

Two further model calls exist and both are conditional. If the model grades its own document-class pick a loose fit, a second Haiku call adjudicates. If an identity fails to resolve in a way a better read could fix, Claude Sonnet re-reads the PDF pages directly, capped at three per fax. A clean fax of well-classified documents costs exactly one call, however many documents it contains.

Building the gate on evidence

The autonomy gate is the whole safety argument, so Searce measured where it should sit rather than picking a number that felt cautious.

A corpus of documents files was hand-labelled with expected document type, patient name, date of birth and page range, spanning four scan-quality tiers from clean to heavy degradation. The scoring unit was the document, not the file, a five-page fax carrying three documents for three patients cannot be scored per-file.

Coverage was then swept across every gate setting under two index conditions: a clean index, and one poisoned with injected look-alike records plus identical-identity clones.

Four outcomes, no dropped faxes

Every document lands in one of four terminal states: AUTO_FILE, NEEDS_CONFIRMATION, NOT_OUR_PATIENT, or UNMATCHED. Documents that cannot be confidently resolved go to a visible exception queue rather than disappearing, and the decision payload carries class, patient, confidence, warnings and token cost for every document — an audit trail per filing decision.

The Outcome

3 in 4 Fax documents bypass manual review

Barti has processed hundreds of inbound faxes through the pipeline. 74.6% files unattended. Each document that files unattended is a manual loop a staff member no longer runs a login, a download, a patient search and an upload that industry estimates place at several minutes to a quarter-hour of work apiece.