HL7Guard

What it does

Validate a whole capture

Check hundreds of messages against a JSON profile: required segments and fields, plus allowed code lists such as LOINC codes in OBX-3. Exit code 1 when any message has errors.

De-identify consistently

Replace identifiers with seeded fakes. The same patient maps to the same fake patient in every message, so an admit to result to discharge flow still tests correctly after de-identification.

Diff two captures

Field-by-field comparison, matched by MSH-10 control ID. Get a short report of what changed, where, old value versus new value. Exit code 1 when differences are found.

Generate edge cases

Labelled test messages from a known-good one: drop a required segment, empty a required field, swap in a bad code, break a datatype. Test a receiver's error handling without hand-editing messages.

Census and verify

Census documents what a capture actually contains: counts by type, segment inventory, field fill rates. Verify then scans the de-identified output for anything that still looks like a real identifier, before the capture is shared.

Test live over MLLP

Send messages to a real receiver and read the ACK code per message, or run a capturing listener that stores what arrives and answers AA. Files prove structure; live traffic proves the interface.

Prefer clicking to typing? hl7guard gui opens the same operations in a desktop window, with the same license gates. Validate and diff can also write self-contained HTML reports with --html.

Runnable examples

These commands run against the synthetic samples in the source repo:

pip install -e .
hl7guard validate samples/ --builtin oru_r01
hl7guard anonymize samples/ --seed my-project --out deidentified/
hl7guard diff before.hl7 after.hl7
hl7guard generate samples/synthetic_oru_r01.hl7 --builtin oru_r01 --out edge/
hl7guard census samples/
hl7guard gui

Exit codes: 0 means clean, 1 means findings or differences were found, 2 means a file or usage error. That contract is the product: a pipeline can fail the build on a silent vendor change.

The folder and batch examples above are Solo features and need a license key. The free tier covers single-message validate and anonymize.

Safety and limits, plainly

Pricing

Free

$0

Single-message validate and anonymize in the open CLI. Source is public on GitHub (VariantResearch/hl7guard), no key needed.

Get it on GitHub

Solo

$79 one-time

Batch and folder mode, capture diff, profiles, edge-case generator, JSON and HTML reports, capture census, residual-identifier verify, and MLLP send/listen. Version 1.x updates included.

Buy Solo

Team

$499 one-time

10 seats, shared profiles, priority fixes.

Buy Team

Checkout is through Stripe. Your license key and the full-edition download are delivered by email from the support inbox after payment. License keys are cryptographically signed (the tool verifies them offline and cannot mint them); the check is still not DRM, and Team seats are counted on trust. Refunds: 14-day no-questions refunds by email to support (the address is printed on your Stripe receipt and in the repo README, and kept off this page so it stays off spam lists). Nothing on this page is a sales claim beyond that: there are no customers, testimonials, or usage numbers to report yet, and this page will not invent any.

Status