|FHIR R4 · HL7 v2.5.1 · 100% synthetic
Generate production-realistic HL7v2 sequences and FHIR R4 bundles from a clinical scenario. Deterministic, believably messy, and never real PHI.
|The problem
Epic's sandbox ships about 18 pristine test patients. Cerner's has around 30. Public HAPI servers are a junk drawer with no auth. And Synthea will hand you a random small town when what you actually need is one 62-year-old with heart failure and stage-3 CKD who came in through the ED on a Tuesday night.
So integration teams do what they've always done: burn a third of their engineering time on test-data workarounds, and meet the real bugs at go-live. That's the part we're deleting.
|How it works
A sentence, not a config file. Age, conditions, route of admission, labs, length of stay — whatever the test case calls for.
Scribe, our clinical-language engine, turns the sentence into a structured spec. It never writes a segment or a resource itself, so there are no hallucinated codes in your test data.
Template-driven builders turn the spec into coherent v2 sequences and FHIR bundles — golden-file tested, validated against base R4, round-tripped through NHapi.
|Why it feels real
Four noise profiles inject the quirks you'll meet in production: duplicate MRNs, local codes beside standard ones, dropped fields, timezone-less timestamps, names in the wrong case.
A CKD patient's creatinine comes back high and flagged — not random-normal. Conditions skew exactly the values your interface logic branches on.
The same clinical story renders as an HL7v2 feed and a FHIR R4 transaction bundle. Same name, same MRN, same lab values — test the mapping, not two strangers.
Every generator is deterministic. Pin a seed in CI and diff byte-identical output forever. Test data that changes under you isn't test data.
Seed generated bundles into a hosted HAPI FHIR sandbox and query them straight back over plain REST. Sandbox sign-in ships with early access — waitlist members get it first.
MIT-licensed. Pipe presets, spec files, or plain-English scenarios into your interface engine from a one-line command.
|Compliance
SynthHL7 never ingests, stores, or processes real patient data — there is no upload path for it to exist. Every name comes from a fixed synthetic corpus; every MRN, address, and lab value from a seeded generator. Nothing to de-identify, no BAA to sign, nothing to breach. And none of it is for clinical use.
|Early access
We're onboarding design partners now. Leave an email and you'll get a free-tier API key — 100 generations a month — at launch, plus a say in which scenario presets we build first.
No spam — launch note and design-partner invites only.