ZKELETON//HL7 → FHIR Open converter

HL7 NK1 → FHIR RelatedPerson

The NK1 (next of kin / associated parties) segment becomes a FHIR R4 RelatedPerson linked to the patient. Only patient is required, so a relationship-only NK1 still produces a valid resource.

The short answer

An HL7 NK1 segment maps to a FHIR RelatedPerson: NK1-2name, NK1-3relationship, NK1-4address, NK1-5telecom, all referencing the patient.

Field-by-field

HL7 fieldFHIR pathNotes
NK1-2RelatedPerson.nameXPN name → family / given / suffix.
NK1-3RelatedPerson.relationshipRelationship to patient (e.g. SPO → Spouse).
NK1-4RelatedPerson.addressXAD address → line / city / state / postalCode.
NK1-5RelatedPerson.telecomPhone number(s) → telecom[system=phone].
(patient)RelatedPerson.patientReference to the PID patient. Required 1..1.
NK1-7, 13, 16, 33— surfacedContact role, organization name, date of birth, identifiers 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
NK1|1|DOE^JOHN^Q|SPO^Spouse^HL70063|456 OAK ST^^BOSTON^MA^02101|(617)555-9999||EC^Emergency Contact^HL70131
FHIR R4 out
{
  "resourceType": "RelatedPerson",
  "id": "relatedperson-1",
  "patient": {
    "reference": "urn:uuid:00000000-0000-4000-8000-000000000001"
  },
  "relationship": [
    {
      "text": "Spouse"
    }
  ],
  "name": [
    {
      "family": "Doe",
      "given": [
        "John",
        "Q"
      ],
      "text": "John Q Doe"
    }
  ],
  "telecom": [
    {
      "system": "phone",
      "value": "(617)555-9999"
    }
  ],
  "address": [
    {
      "line": [
        "456 OAK ST"
      ],
      "city": "BOSTON",
      "state": "MA",
      "postalCode": "02101",
      "text": "456 OAK ST, BOSTON, MA 02101"
    }
  ]
}

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.

  • NK1-7 (Contact role) present but not yet mapped to FHIR; value preserved for review: EC^Emergency Contact^HL70131

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.