← back to projects

Healthcare EDI & HL7 Integrations

2022

Dynamic 835/837 EDI and HL7 parsers that turn messy, multi-vendor healthcare interchange into reliable structured data.

Results

What it did

835/837EDI Formats Parsed
DynamicSchema-Driven
HL7Clinical Interchange
Multi-vendorIguana / Fax / Internal

The problem

Why it needed building

Clinical and billing systems exchange data as dense X12 EDI (835 remittance, 837 claims) and HL7 messages that vary by vendor and break rigid parsers. The work was making interchange dependable across Iguana, fax, and internal systems without hand-coding every format variant.

The approach

How it works

Built schema-driven parsers that tokenize the X12 stream, resolve segment definitions dynamically, validate loops and control numbers, and normalize everything into internal claim and remittance models — then route the results through Iguana, a fax gateway, or internal services.

  1. Segment Tokenization
  2. Schema Resolution
  3. Validation
  4. Transformation
  5. Routing
  1. 01
    Segment TokenizationSplit the X12 stream into segments and elements
  2. 02
    Schema ResolutionMap segment IDs to 835/837 definitions dynamically
  3. 03
    ValidationCheck loops, required elements, and control numbers
  4. 04
    TransformationNormalize into internal claim and remittance models
  5. 05
    RoutingDeliver via Iguana, fax gateway, or internal systems

The trade-off

What it cost

A schema-driven parser is slower and harder to debug than a hand-written one per vendor, and it adds a schema registry to maintain. What it buys is not shipping a release every time a vendor changes a segment.

Live demo

Try it yourself

X12 EDI 835 — edit or paste your own
Parsed · 13 segments · 1 claim
ISAInterchange Control Header00 · 00 · ZZ · PAYER · ZZ · PROVIDER · 240605 · 1200 · ^ · 00501 · 000000001 · 0 · P · :
GSFunctional Group HeaderHP · PAYER · PROVIDER · 20240605 · 1200 · 1 · X · 005010X221A1
STTransaction Set Header — 835 Remittance835 · 0001
BPRFinancial Information — payment amount & methodI · 1250.00 · C · ACH · CCP · 01 · 999999999 · DA · 123456 · 1512345678 · 20240605
TRNReassociation Trace Number1 · 0012524845 · 1512345678
N1Party IdentificationPR · EXAMPLE HEALTH PLAN
CLPClaim Payment InformationPATIENT001 · 1 · 500.00 · 400.00 · 100.00 · MC · 9406051234500 · 11
NM1Individual or Organizational NameQC · 1 · DOE · JANE · MI · MEMBER998
SVCService Payment InformationHC:99213 · 150.00 · 120.00 · 1
CASClaim / Service AdjustmentPR · 1 · 30.00
SETransaction Set Trailer10 · 0001
GEFunctional Group Trailer1 · 1
IEAInterchange Control Trailer1 · 000000001

A real X12 parser running in your browser — edit the segments and it re-parses live. Illustrative of the production 835/837 parsers.

Tech stack

Built with

C#/.NETHL7EDI 835/837X12IguanaSQL Server

Working on something like this?