All dispatches
Field Notes · 6 min read

A letter between computers

What HL7, ADT, and FHIR actually are — explained without jargon, with one patient's trip through a hospital as the running example.

Dr. Hemanshu Patel·June 17, 2026
Bottom line

Hospitals don't share patient information by passing folders. They send millions of tiny, structured messages between computers every day. The format is HL7; the modern web-based version is FHIR; the most common message — ADT — fires every time someone is admitted, transferred, or discharged.

The bottom line

Hospitals and clinics don't share patient information by passing folders. They send tiny, structured messages between computers — millions of them, every day. The format of those messages is called HL7. The newer, web-based version is called FHIR (pronounced "fire"). The single most common message is an ADT — and you've been the subject of one every time you've been admitted, transferred, or discharged from a hospital.

This piece explains what those words mean, with one running example: a patient named Maria gets admitted to the ER, transferred to a med-surg floor, and discharged home. We'll watch what the computers say to each other along the way.

Why messages, not folders?

A hospital is not one computer. It's hundreds of systems — the ER's chart, the lab, radiology, pharmacy, billing, the floor nurses' station, the admitting clerk's desk. Each system was built by a different vendor, in a different decade, for a different purpose.

When Maria arrives in the ER, dozens of these systems need to know at almost the same instant:

  • The lab needs to know she exists, so her blood draw has somewhere to file.
  • The pharmacy needs to know she's been admitted, so her home meds can be reconciled.
  • Billing needs to know an encounter has started, so a claim can be built.
  • The medical floor needs to know a bed is being requested.
  • Her PCP needs to know (eventually) that she was in the ER at all.

The way these systems talk to each other is by sending small structured text messages that follow agreed-upon rules. The rule book is HL7 — short for Health Level 7. (HL7.org)

That's it. HL7 is not a software product. It's a standard for how the messages should look, so that any system reading one knows where to find the patient's name, date of birth, where they're being admitted to, and so on.

Diagram 1 — The hospital as a switchboard

                       ┌──────────────┐
                       │  ER System   │
                       └──────┬───────┘
                              │
              ┌───────────────┼───────────────┐
              ▼               ▼               ▼
        ┌──────────┐   ┌─────────────┐   ┌─────────┐
        │   Lab    │   │  Pharmacy   │   │ Billing │
        └──────────┘   └─────────────┘   └─────────┘
                              │
                              ▼
                       ┌──────────────┐
                       │ Med-Surg Flr │
                       └──────────────┘

  Each line is an HL7 message. Tiny. Structured. Constant.

When Maria is registered in the ER, the ER system sends one message — an ADT — and every system on the list above receives a copy. Each system reads the parts it cares about and ignores the rest.

ADT — the most common message in healthcare

ADT stands for Admission, Discharge, Transfer. It's the single most common HL7 message type in any hospital. Every admission, every move between units, every discharge, every name correction fires another ADT.

The specific event is named with a code:

CodeWhat just happened
ADT^A01Patient was admitted
ADT^A02Patient was transferred to another unit
ADT^A03Patient was discharged
ADT^A04Patient registered as outpatient
ADT^A08Patient information was updated
ADT^A11Admission was cancelled

Source: ADT message types — HL7 v2 and FHIR

Diagram 2 — Maria's day, as messages

  6:42 AM  ER admits Maria         ──►  ADT^A01
  7:15 AM  Lab order placed        ──►  ORM^O01  (order)
  7:31 AM  Blood drawn, result in  ──►  ORU^R01  (result)
  9:08 AM  Bed available, transfer ──►  ADT^A02
 11:50 AM  Home meds reconciled    ──►  RDE^O11  (pharmacy)
  2:14 PM  Stable, discharged home ──►  ADT^A03
  2:15 PM  Discharge summary out   ──►  MDM^T02  (document)

By 2:15 PM, more than a dozen computer systems have agreed on what happened to Maria, in what order, without a single human having to pick up a phone. That's the goal of HL7.

What an actual HL7 message looks like

This is HL7 v2 — the version still running in most US hospitals. It looks ugly, because it was designed in 1989 and optimized for narrow phone-line bandwidth, not human readability:

MSH|^~\&|ADT_ER|HOSPITAL|ADT_LAB|HOSPITAL|202610181815||ADT^A01|MSG001|P|2.5
PID|||44521^^^HOSPITAL^MR||GARCIA^MARIA||19720314|F
PV1||I|MED-SURG^301^A|||||||||||||A

Three lines. Pipe characters separate fields. Each line is a segment:

  • MSH — message header (who sent it, when, what type).
  • PID — patient identification (name, DOB, sex, MRN).
  • PV1 — patient visit (unit, room, bed).

That's it. The entire admission of a human being into a hospital, compressed into about 200 bytes. Multiply by 5,000 admissions a day at a large health system. (HL7 v2-to-FHIR mapping reference)

FHIR — the newer cousin

FHIR (Fast Healthcare Interoperability Resources, pronounced "fire") is HL7's modern, web-based replacement. Instead of pipe-delimited segments, FHIR uses JSON — the same format powering most modern web apps. (HL7 FHIR overview)

The same admission, in FHIR, looks like this:

{
  "resourceType": "Encounter",
  "status": "in-progress",
  "class": { "code": "IMP", "display": "inpatient" },
  "subject": { "reference": "Patient/44521" },
  "period": { "start": "2026-10-18T18:15:00-07:00" },
  "location": [{ "location": { "display": "MED-SURG 301-A" } }]
}

Same information. Vastly more legible. Easier for a modern web service to read.

The catch: most US hospitals still run HL7 v2 internally. FHIR is mostly used at the edges — when a hospital exposes patient data to a third-party app, a patient portal, or an outside specialist. Inside the hospital walls, v2 still rules. That's why, in 2026, the same admission can produce both an HL7 v2 ADT^A01 (for the lab and pharmacy) and a FHIR Encounter resource (for the patient-facing app). They mean the same thing. They look completely different.

So what's a "handoff" then?

A handoff is the human version of an ADT.

When Maria is transferred from the ER to the med-surg floor at 9:08 AM, the computers send an ADT^A02. But the ER doctor and the floor doctor also have to actually talk to each other about who she is, what's happening, and what needs to happen next. That conversation is the handoff. And it's where most errors happen. The Joint Commission has reported for years that communication failures during handoffs are a leading root cause of sentinel events. (Joint Commission sentinel event data)

The evidence base for fixing this is narrow but real. A 2025 meta-analysis reviewed the structured handoff tools that have been studied and found only two with enough evidence to recommend:

  • SBAR — Situation, Background, Assessment, Recommendation.
  • I-PASS — Illness severity, Patient summary, Action list, Situation awareness, Synthesis by receiver.

I-PASS has the stronger evidence base; SBAR is the more widely adopted. (BMJ Quality & Safety, 2025)

Diagram 3 — How the computers see it vs. how the humans say it

  COMPUTERS                  HUMANS (I-PASS)
  ─────────                  ───────────────
  ADT^A02 sent       →   I — Illness severity
  PV1.3 = MED-SURG   →       "Stable, on monitors"
  PV1.6 = ER         →   P — Patient summary
                             "62F, chest pain, neg trop x2"
                         A — Action list
                             "Repeat trop at 1500, cards consult"
                         S — Situation awareness
                             "Husband is anxious; nurse is new"
                         S — Synthesis by receiver
                             Floor doc repeats it back

The computers know where Maria is. The humans have to know why she's there and what to watch for. The handoff is the bridge between the two.

Why this matters for the trainee

You don't need to memorize HL7 segment names. You need to know that:

  • A real message fires every time you do something on the chart. Order a med, an HL7 message goes to pharmacy. Admit a patient, an ADT goes everywhere.
  • Two hospitals' systems usually can't read each other's messages directly. That's why outside records still arrive by fax — the systems literally cannot speak the same dialect.
  • A handoff is not a vibe. It's a structured transfer of information and accountability. If you can't say what's happening in 30 seconds with a clear next action, the handoff isn't ready. (WHO patient-safety solutions: communication during hand-overs)

Try this

Next clinical day, watch one transfer of a patient between units. Ask the nurse or the resident: which I-PASS slot is the one most likely to drop here? If they don't know, that's not a failure — that's the gap this exists to close.


General educational content. Not medical advice. Patient names and scenarios are composite. Filed under Field Notes — Data Flow.

#data-flow#interoperability#education

© 2026 TRENCHWORK · Dr. Hemanshu Patel · caremd.ai · Educational use only

Keep reading