Patient — Demographic record of a person in healthcare
One of FHIR's ten foundational resources. Every clinical record — Observation, Encounter, MedicationRequest, DiagnosticReport — points to a Patient.
Purpose of the resource
The Patient resource represents a person who receives or might receive healthcare services. It carries the demographic and administrative identity — name, gender, date of birth, addresses, contacts — together with the identifiers by which this person is known across systems (local MRN, INS-NIR, SSN, NHS Number, Swiss AHV number, etc.).
Patient is not the right place for sensitive clinical data (allergies,
diagnoses, medications): each of these belongs to a dedicated resource
(AllergyIntolerance, Condition, MedicationStatement…) that points back to the
Patient via a Reference. This strict separation is what gives FHIR its
modular modelling capability.
Key fields
The StructureDefinition published by HL7 lists 22 top-level elements. The most prominent:
| Field | Type | Cardinality | Role |
|---|---|---|---|
identifier | Identifier[] | 0..* | External identifiers by which the patient is known (MRN, NHS Number, INS-NIR…). |
active | boolean | 0..1 | Indicates whether the patient record is active. false = merged, archived, soft-deleted patient. |
name | HumanName[] | 0..* | Patient names (official, usual, marital, old…). |
telecom | ContactPoint[] | 0..* | Phones, emails, other contact channels. |
gender | code | 0..1 | Administrative gender (male, female, other, unknown). NOT for clinical gender (see extensions). |
birthDate | date | 0..1 | Date of birth (CCYY-MM-DD, variable precision). |
deceased[x] | boolean | dateTime | 0..1 | Deceased status. deceasedBoolean for the binary flag, deceasedDateTime for the exact date. |
address | Address[] | 0..* | Known addresses (postal, physical, old…). |
maritalStatus | CodeableConcept | 0..1 | Marital status. v3 MaritalStatus ValueSet. |
multipleBirth[x] | boolean | integer | 0..1 | Multiple birth (twin, triplet…). Boolean or birth order. |
photo | Attachment[] | 0..* | Photo of the patient. |
contact | BackboneElement[] | 0..* | Persons to contact (NK1 in HL7 v2). Embedded block with name, telecom, relationship. |
communication | BackboneElement[] | 0..* | Languages spoken by the patient + preferred flag. |
generalPractitioner | Reference(Organization | Practitioner | PractitionerRole)[] | 0..* | Primary care provider, pivot team. |
managingOrganization | Reference(Organization) | 0..1 | Organisation responsible for the patient record (the facility holding the master copy). |
link | BackboneElement[] | 0..* | Links to other Patient or RelatedPerson resources (merge, duplicate, alias). |
JSON example
The canonical example published by HL7 on the patient-example.json reference page:
{
"resourceType": "Patient",
"id": "example",
"meta": {
"profile": [
"http://hl7.org/fhir/StructureDefinition/Patient"
]
},
"identifier": [{
"use": "usual",
"type": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
"code": "MR"
}]
},
"system": "urn:oid:1.2.36.146.595.217.0.1",
"value": "12345",
"period": { "start": "2001-05-06" },
"assigner": { "display": "Acme Healthcare" }
}],
"active": true,
"name": [{
"use": "official",
"family": "Chalmers",
"given": ["Peter", "James"]
}, {
"use": "usual",
"given": ["Jim"]
}],
"telecom": [{
"use": "home"
}, {
"system": "phone",
"value": "(03) 5555 6473",
"use": "work",
"rank": 1
}],
"gender": "male",
"birthDate": "1974-12-25",
"_birthDate": {
"extension": [{
"url": "http://hl7.org/fhir/StructureDefinition/patient-birthTime",
"valueDateTime": "1974-12-25T14:35:45-05:00"
}]
},
"deceasedBoolean": false,
"address": [{
"use": "home",
"type": "both",
"text": "534 Erewhon St PeasantVille, Rainbow, Vic 3999",
"line": ["534 Erewhon St"],
"city": "PleasantVille",
"district": "Rainbow",
"state": "Vic",
"postalCode": "3999",
"period": { "start": "1974-12-25" }
}],
"contact": [{
"relationship": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v2-0131",
"code": "N"
}]
}],
"name": {
"family": "du Marché",
"_family": {
"extension": [{
"url": "http://hl7.org/fhir/StructureDefinition/humanname-own-prefix",
"valueString": "VV"
}]
},
"given": ["Bénédicte"]
},
"telecom": [{
"system": "phone",
"value": "+33 (237) 998327"
}]
}],
"managingOrganization": {
"reference": "Organization/1"
}
} Worth pointing out in this example:
- The main identifier is typed
MR(Medical Record Number, table v2-0203 reused by FHIR for consistency with PID-3.5). - The patient has two
nameentries: usageofficial(Chalmers, Peter James) and usageusual("Jim"). - The
patient-birthTimeextension records the precise time of birth with timezone: FHIR separates standard data from local data via URL-typed extensions. - The
contact[]block embeds the next of kin (NK1 equivalent in v2). managingOrganizationpoints to an Organization resource via a relativeReference(Organization/1).
REST API
Typical requests against a FHIR server exposing Patient:
GET /Patient/example— fetch the Patient with idexample.POST /Patientwith a conformant JSON body — create a new Patient. The server allocates theid.PUT /Patient/example— update the existing Patient.DELETE /Patient/example— soft-delete or archive (server-dependent, RFC 5023).GET /Patient?family=Chalmers&given=Peter— search by family name and given name.GET /Patient?identifier=urn:oid:1.2.36.146.595.217.0.1|12345— search by business identifier (prefixed by its system).GET /Patient/example/$everything— composite operation that returns the entire patient record (Observation, Encounter, Condition…).GET /Patient?_revinclude=Observation:patient— search Patients and include their Observations in reverse.
In 2026, US EHRs are required to expose /Patient through their ONC-certified
FHIR endpoint, accessible to authorised third-party apps through the
SMART on FHIR flow (OAuth 2 + OpenID Connect).
National profiles
| Profile | Regulator | Restrictions |
|---|---|---|
| US Core Patient | HL7 US Realm — ONC EHR mandatory | Must carry at least one identifier, one name, a gender, and US Core Race / Ethnicity / Birth Sex extensions. |
| IPS Patient (UV) | HL7 + CEN/TC 251 | European / worldwide cross-border profile. Must carry identifier, name, gender, birthDate. |
| FR Core Patient | ANS (Agence du Numérique en Santé) | Must carry at least one INS-NIR or INS-A typed identifier. Slicing on INS, matricule, NSS. |
| NL Core Patient | Nictiz (Netherlands) | Must carry the BSN (Burgerservicenummer) inside identifier. |
| UK Core Patient | NHS Digital | Must carry the NHS Number inside identifier. |
| HL7 IPS-AU Patient | HL7 Australia | Must carry the IHI (Individual Healthcare Identifier). |
Common pitfalls
gender≠ gender identity:Patient.genderis the administrative identifier only (M/F/O/U). For gender identity, use thepatient-genderIdentityextension or anObservation.- Identifier without
system: an identifier with onlyvalueand nosystemis not deduplicable. Always qualify (urn:oid:<OID>or canonical URL). - Address with
textonly: anAddressbearing onlytextwithoutlineorcityis not indexable. Always decompose. - Several
nameentries withuse="official": ambiguous for the receiver. Only one official at a time; others go toold,maiden,usual. - Circular reference:
Patient.linkmay point to another Patient or a RelatedPerson, but beware of infinite loops in merge chains. - Confusion between
activeanddeceased:active=falsemeans an administratively closed record;deceased=truemeans the patient has died. Both are independent.
Related resources
- RelatedPerson — relative of the patient, contact, caregiver.
- Person — cross-domain generalisation of a human (can reference several Patient + Practitioner if the EHR runs a federated MPI).
- Practitioner — healthcare professional.
- Encounter — visit or stay associated with the patient (v2 PV1 equivalent).
- Observation, Condition, MedicationRequest — clinical data resources all reference the Patient via
subjectorpatient.
See also: Bundle — the FHIR transaction and search container, and ADT^A01 — the legacy v2 layer that carries the same demographic data in pipe-delimited form.