HL7 PV1 → FHIR Encounter
The PV1 (patient visit) segment becomes a FHIR R4 Encounter. PV1-2 (patient class) drives both the encounter class and a sensible status, and the provider fields become participants with the right participation type.
An HL7 PV1 segment maps to a FHIR Encounter: PV1-2→class (I→inpatient, O→ambulatory, E→emergency) and status, PV1-3→location, PV1-7/8/9/17→participant (attender/referrer/consultant/admitter), PV1-10→serviceType, PV1-44/45→period.
Field-by-field
| HL7 field | FHIR path | Notes |
|---|---|---|
| PV1-2 | Encounter.class + status | Patient class → v3-ActCode (I→IMP, O→AMB, E→EMER…). Status: a discharge date → finished, P → planned, else in-progress. |
| PV1-3 | Encounter.location | Assigned patient location (PL) → point of care / room / bed. |
| PV1-7 / 8 / 9 / 17 | Encounter.participant | Attending / referring / consulting / admitting provider (XCN), with the matching participation type. |
| PV1-10 | Encounter.serviceType | Hospital service (e.g. MED, SUR). |
| PV1-14 / PV1-36 | Encounter.hospitalization | Admit source / discharge disposition. |
| PV1-19 | Encounter.identifier | Visit number. |
| PV1-44 / PV1-45 | Encounter.period | Admit date/time → start, discharge date/time → end. |
| PV1-4 | — surfaced | Admission type is 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.
MSH|^~\&|ADT|HOSP|ZK|MERIDIAN|20240101103000||ADT^A01|MSG1|P|2.5.1 PID|1||MRN123^^^HOSP^MR||DOE^JANE||19850312|F PV1|1|I|3West^301^A^HOSP||||1234^SMITH^JOHN^^^DR|||MED|||||||||V100|||||||||||||||||||||||||20240101103000
{
"resourceType": "Encounter",
"id": "encounter-1",
"status": "in-progress",
"class": {
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"code": "IMP",
"display": "inpatient encounter"
},
"identifier": [
{
"value": "V100",
"type": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
"code": "VN",
"display": "Visit number"
}
],
"text": "VN"
}
}
],
"subject": {
"reference": "urn:uuid:00000000-0000-4000-8000-000000000001"
},
"period": {
"start": "2024-01-01"
},
"participant": [
{
"type": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
"code": "ATND",
"display": "attender"
}
]
}
],
"individual": {
"display": "DR JOHN SMITH",
"identifier": {
"value": "1234"
}
}
}
],
"serviceType": {
"text": "MED"
},
"location": [
{
"location": {
"display": "3West, 301, A, HOSP"
}
}
]
}Nothing needed review for this message
Every populated field above was mapped. When a field can’t be mapped, it appears here instead of being dropped — that’s the guarantee.
Related mappings
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.