Healthcare integration engine
Interbox
Own your integrations like the rest of your stack — reviewed in PRs, tested in CI, versioned in your own repo.
Every message is traceable end to end, and when one fails the AI assistant drafts the mapping, so the fix ships as a diff you review.
Be confident in your pipelines
One screen for ingestion, mapping and delivery — live throughput, queue depth at every stage, and the health of Postgres, Aidbox and the engine. Nothing is dropped; every message is accounted for.
- Real-time throughput and error rate
- Queue depth for received, processed, sent, error and deferred
- Postgres, Aidbox and engine health at a glance
| unmapped_code | 127 |
| validation_error | 48 |
| mapping_error | 31 |
| prerequisite_missing | 19 |
| aidbox_5xx | 6 |
Find any message in seconds
Facet by status, source and format, then drill into any failure to see where it stopped and why. A message flagged error keeps its cause attached; one that's deferred is parked to revisit — you retry on your own schedule.
- Faceted search across status, source, format and error kind
- Query bar for ad-hoc filters
- Open the raw payload and inspect its FHIR output
| message | status | received | format | source | patient |
|---|---|---|---|---|---|
| 0038 | error | 9s | ADT^A08 | ED system | Walker, Tom |
| 0033 | error | 22s | Claim 837 | Clinic EHR | Nakamura, Yui |
| 0026 | error | 44s | ORU^R01 | Reference lab | Brown, Sara |
| 0021 | error | 1m | C-CDA | Hospital EHR | Müller, Hans |
| 0018 | error | 1m | ADT^A03 | ED system | Patel, Aisha |
| 0012 | error | 2m | Bundle | Registry | Lee, Chen |
| 0007 | error | 3m | ADT^A08 | Hospital EHR | Okafor, Noah |
Build and expand your local code dictionary
Unmapped local codes are caught and queued instead of dropped. Pick a target — LOINC, SNOMED, a FHIR value set — approve it, and reprocess the parked messages. The built-in AI assistant reads the failing message and proposes the fix for you.
- Concept maps translate local codes to standard terminologies
- Approve a target and reprocess deferred messages in place
- AI assistant diagnoses failures and suggests the mapping
Your mappings are code you own
Every converter is versioned TypeScript in your own Git repo — reviewed in PRs, tested in CI, hot-reloaded the moment you push. No proprietary DSL, no black-box visual mapper, and you can always write your own source or sender.
- Push to your branch, pull from the console, hot-reload
- Unit tests next to your mappers, run in CI
- AI assistance and format specs embedded in the console
src/ ├── index.ts ├── pipelines/ │ ├── index.ts │ └── intake-to-aidbox.ts └── mappers/to-fhir/ ├── index.ts ├── patient.ts ├── encounter.ts ├── observation.ts ├── coverage.ts ├── condition.ts ├── datatypes/ │ ├── humanname.ts │ ├── identifier.ts │ └── address.ts └── support/ └── datetime.ts test/ └── mappers.test.ts package.json
// PID → FHIR Patient import { PID } from "@healthsamurai/interbox/hl7v2"; import { toIdentifier } from "../datatypes/cx-identifier"; import { toHumanName } from "../datatypes/xpn-humanname"; export function toPatient(pid: PID): Patient { const patient: Patient = { resourceType: "Patient" }; patient.identifier = pid.$3_identifierList ?.map(toIdentifier).filter(Boolean); patient.name = pid.$5_patientName ?.map(toHumanName).filter(Boolean); if (pid.$7_dateOfBirth) patient.birthDate = toDate(pid.$7_dateOfBirth); if (pid.$8_administrativeSex) patient.gender = GENDER[pid.$8_administrativeSex]; return patient; }
Connect any source
MLLP, HTTP and SFTP connectors bring in HL7v2, X12, C-CDA and FHIR — each written to a durable queue and handled the same way. Simulate a raw message to test a connector before it goes live.
- MLLP, HTTP and SFTP connectors
- HL7v2, X12, C-CDA and FHIR out of the box
- Per-facility throughput and connection status
The specs, built in
Browse HL7v2 segments, fields and tables right inside the console — the same reference your mappers lean on and the AI assistant reads when it writes a converter.
- Segments, data types and tables
- Field cardinality, length and usage
- The spec the AI assistant reads, one tool-call away
Where Interbox sits
Interbox sits between the systems that send data and your FHIR server. A built-in source and sender bracket the mapper you own — and any message that can't proceed drops to the dead-letter queue below instead of being lost.
Your apps, analytics and exchange then read standard FHIR.
Every error and deferred message collects here, off the main flow — searchable, with its cause attached.
A status on every message
The happy path is three steps. A message that can't proceed is flagged error — and you can defer any error to decide on it later. Nothing is dropped.
Accepted and written to the durable queue.
Converted to FHIR, ready to deliver.
Delivered to the FHIR server.
Bad data the message can't recover from. Tagged with a kind — unmapped_code, validation_error, mapping_error — plus its cause, so you can classify and triage it.
→ fix and reprocess, or defer it
You move an error aside by hand, without resolving it — postponing the decision when the fix isn't obvious, like an upstream problem.
→ revisit whenever you're ready
Simple, predictable licensing
Build for free in development. Go to production standalone, or at a lower rate alongside an Aidbox license.
The full engine and SDK for building and testing — no PHI.
- All built-in stages and your own mappers
- Operations UI, AI assistant, hot-reload
- Synthetic / non-PHI data only
The same Interbox at a lower price when you buy it together with an Aidbox license.
- Production use with PHI
- Any FHIR server, native to Aidbox
- Lower rate with an Aidbox license
Run Interbox in production against any FHIR server.
- Everything in Developer
- Production use with PHI
- Any FHIR transaction-bundle server
Our engineers work alongside yours — converters for your message types, EHR wiring, operations handoff. You ship faster; your team owns it after.
Questions, answered
- Address
- Health Samurai Inc. 1891 N Gaffey St Ste O, San Pedro, CA 90731
- Telephone
- +1 (818) 731-1279