ZKELETON//HL7 → FHIR Open converter

HL7 IN1 → FHIR Coverage

The IN1 (insurance) segment becomes a FHIR R4 Coverage. The payor, policy/subscriber number, group and plan period map directly; the several IN1 fields that don’t yet have a clean Coverage home are surfaced for review rather than dropped — see the panel below.

The short answer

An HL7 IN1 segment maps to a FHIR Coverage: IN1-3payor.identifier, IN1-4payor.display, IN1-36subscriberId, IN1-8class (group), IN1-12/13period, IN1-17relationship, with beneficiary referencing the patient.

Field-by-field

HL7 fieldFHIR pathNotes
IN1-3Coverage.payor.identifierInsurance company ID.
IN1-4Coverage.payor.displayInsurance company name (XON).
IN1-8Coverage.class (group)Group number → class[type=group].
IN1-12 / IN1-13Coverage.periodPlan effective / expiration date.
IN1-17Coverage.relationshipRelationship of the patient to the subscriber.
IN1-36Coverage.subscriberIdPolicy / member number.
(derived)Coverage.beneficiary + statusBeneficiary references the PID patient; status set to active.
IN1-2, 16, 18, 19— surfacedHealth plan ID, and the name / DOB / address of the insured are surfaced for review (not yet mapped).

Live example

This is produced by the actual converter — paste your own message and it runs the same way, entirely in your browser.

Live example — run by the actual engine Try this in the converter
HL7 v2 in
MSH|^~\&|ADT|HOSP|ZK|MERIDIAN|20240101103000||ADT^A01|MSG1|P|2.5.1
PID|1||MRN123^^^HOSP^MR||DOE^JANE||19850312|F
IN1|1|PLAN123^PPO|AETNA001|AETNA INSURANCE||||GRP500||||20240101|20241231|||DOE^JANE|SEL^Self^HL70063|19850312|456 OAK ST^^BOSTON^MA^02101|||||||||||||||||MEMBER789
FHIR R4 out
{
  "resourceType": "Coverage",
  "id": "coverage-1",
  "status": "active",
  "beneficiary": {
    "reference": "urn:uuid:00000000-0000-4000-8000-000000000001"
  },
  "payor": [
    {
      "display": "AETNA INSURANCE",
      "identifier": {
        "value": "AETNA001"
      }
    }
  ],
  "subscriberId": "MEMBER789",
  "relationship": {
    "text": "Self"
  },
  "class": [
    {
      "type": {
        "coding": [
          {
            "system": "http://terminology.hl7.org/CodeSystem/coverage-class",
            "code": "group"
          }
        ]
      },
      "value": "GRP500"
    }
  ],
  "period": {
    "start": "2024-01-01",
    "end": "2024-12-31"
  }
}

What didn’t map (surfaced, never dropped)

The engine flags every field it can’t place in FHIR so a human can decide — nothing is silently lost.

  • IN1-2 (Health plan ID) present but not yet mapped to FHIR; value preserved for review: PLAN123^PPO
  • IN1-16 (Name of insured) present but not yet mapped to FHIR; value preserved for review: DOE^JANE
  • IN1-18 (Insured’s date of birth) present but not yet mapped to FHIR; value preserved for review: 19850312
  • IN1-19 (Insured’s address) present but not yet mapped to FHIR; value preserved for review: 456 OAK ST^^BOSTON^MA^02101

Related mappings

Built by Zkeleton

Zkeleton builds conversion and data infrastructure for healthcare. This converter is free, runs entirely in your browser, and never sends a message anywhere — we keep it open because clean data plumbing should be a commodity, not a toll.