ZKELETON//HL7 → FHIR Open converter

HL7 DG1 → FHIR Condition

The DG1 (diagnosis) segment becomes a FHIR R4 Condition. DG1-3 carries the coded diagnosis (usually ICD-10-CM); where the engine knows the crosswalk, it adds the equivalent SNOMED CT coding so downstream systems get both.

The short answer

An HL7 DG1 segment maps to a FHIR Condition: DG1-3code (ICD-10-CM, plus a SNOMED crosswalk where known), with clinicalStatus active, verificationStatus confirmed, and category encounter-diagnosis.

Field-by-field

HL7 fieldFHIR pathNotes
DG1-3Condition.codeCoded diagnosis (ICD-10-CM) → code.coding; a known ICD→SNOMED crosswalk adds a second SNOMED coding.
(derived)Condition.clinicalStatusSet to active.
(derived)Condition.verificationStatusSet to confirmed.
(derived)Condition.categoryencounter-diagnosis.
DG1-5, 6, 16— surfacedDiagnosis date/time, diagnosis type (e.g. admitting/working/final), present-on-admission are surfaced for review.

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
DG1|1||E11.9^Type 2 diabetes mellitus without complications^I10|||F||||||||||A
FHIR R4 out
{
  "resourceType": "Condition",
  "id": "condition-1",
  "clinicalStatus": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/condition-clinical",
        "code": "active",
        "display": "Active"
      }
    ]
  },
  "verificationStatus": {
    "coding": [
      {
        "system": "http://terminology.hl7.org/CodeSystem/condition-ver-status",
        "code": "confirmed",
        "display": "Confirmed"
      }
    ]
  },
  "category": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/condition-category",
          "code": "encounter-diagnosis",
          "display": "Encounter Diagnosis"
        }
      ]
    }
  ],
  "code": {
    "coding": [
      {
        "system": "http://hl7.org/fhir/sid/icd-10-cm",
        "code": "E11.9",
        "display": "Type 2 diabetes mellitus without complications"
      },
      {
        "system": "http://snomed.info/sct",
        "code": "44054006",
        "display": "Type 2 diabetes mellitus"
      }
    ],
    "text": "Type 2 diabetes mellitus"
  },
  "subject": {
    "reference": "urn:uuid:00000000-0000-4000-8000-000000000001"
  }
}

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.

  • DG1-6 (Diagnosis type) present but not yet mapped to FHIR; value preserved for review: F
  • DG1-16 (Present on admission) present but not yet mapped to FHIR; value preserved for review: A

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.