Integration engineers meet medical office accounting at the worst possible interface — a midnight CSV of FT1 segments someone mapped to QuickBooks classes. The durable model is simpler: encounters emit charge events; HL7 and FHIR are transport; ASTM is the lab edge; the monolith owns identity and idempotency.
Protocol map for practice revenue
HL7 v2 ORU/DFT still carries results and charges in many UK interfaces. Treat FT1 as an edge payload — translate to internal ChargeItemCreated events, never as a second writer to clinical rows.
ASTM E1394 from analysers should follow the same pipeline: parse, validate against order + accession, publish result events, let billing project charges onto the active Encounter.
FHIR R4 gives Invoice, Claim, ChargeItem and ChargeItemDefinition — use Invoice for patient bills, Claim for payer adjudication, per HL7 Invoice and Claim definitions. Do not merge them in one serializer.
ChargeItemDefinition as tariff engine
Order Catalog IGs bind laboratory PlanDefinitions to billing codes via ChargeItemDefinition profiles — price components, effective dates, jurisdictional rules. Your tariff engine should version maps the same way: new encounters pick current rates; historical invoices stay frozen.
Internal APIs should answer: “list ChargeItems for encounter X” without joining finance_shadow_db.
Identity before interoperability
FHIR Patient identifiers are explicit; your tenancy model should mirror that discipline. Billing events referencing only NHS numbers or only accession numbers will fork when merges happen. One UUID per human per tenant — mapped to external identifiers at the edge.
Promed HIS implements encounter-native billing clinically — architecture readers: accounting practice management software; module hub: practice management software.
Due diligence questions for vendors
Ask your vendor whether ASTM ACK loops can create duplicate ChargeItems — show idempotency keys in code, not slides.
Ask Competitor A whether FHIR Claim endpoints are read-only replicas — or alternate writers that update clinical tables on adjudication.
Implementation checklist
- Encounter closure handler emits charges from completed procedures + consumables.
- Lab validation handler appends panel charges with order linkage.
- Invoice builder aggregates ChargeItems — no manual line insert UI for finance.
- HL7/FHIR gateways publish outward; they do not own truth.
- Contract tests for FT1, ORU and ASTM fixtures checked into CI.
Medical office accounting software for integrators is a protocol-savvy revenue layer — FHIR Invoice in, ASTM out, one encounter spine between them.