FHIR

FHIR Patient resource explained: identifiers, names, demographics and links, with a valid example

Patient is the FHIR resource every other clinical resource points to. What its identifiers, names, gender, birth date, addresses, contacts, languages and links mean, how national profiles such as US Core and the IPS constrain it, a valid R4 example, and the mistakes that make two systems disagree about who a person is.

by Published 6 min read

Short answer: Patient is the FHIR resource that describes a person receiving care: who they are administratively, not what is wrong with them. It carries identifiers (medical record numbers, national IDs), names, telecom contacts, administrative gender, birthDate, address, maritalStatus, communication (languages), a generalPractitioner, a managingOrganization and links to other Patient records for the same person. Every Observation, Condition, Encounter or MedicationStatement references it through subject or patient. Clinical facts never live in Patient; they live in the resources that point to it.

A valid FHIR R4 example

A valid FHIR R4 Patient resource needs only resourceType, but in practice carries at least one identifier with a system and a value, a name with family and given parts, an administrative gender and a birth date. The example below also claims the IPS Patient profile in meta.profile and adds telecom, address, preferred language, general practitioner and managing organisation.

{
  "resourceType": "Patient",
  "id": "example",
  "meta": {"profile": ["http://hl7.org/fhir/uv/ips/StructureDefinition/Patient-uv-ips"]},
  "identifier": [{
    "use": "usual",
    "type": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "MR"}]},
    "system": "https://hospital.example.org/mrn",
    "value": "MRN-00012345"
  }],
  "active": true,
  "name": [{"use": "official", "family": "Doe", "given": ["Jane", "Marie"], "prefix": ["Ms"]}],
  "telecom": [{"system": "email", "value": "[email protected]", "use": "home"}],
  "gender": "female",
  "birthDate": "1980-05-23",
  "address": [{"use": "home", "line": ["12 High Street"], "city": "Leeds", "postalCode": "LS1 4AB", "country": "GB"}],
  "communication": [{"language": {"coding": [{"system": "urn:ietf:bcp:47", "code": "en-GB"}]}, "preferred": true}],
  "generalPractitioner": [{"reference": "Practitioner/gp-42"}],
  "managingOrganization": {"reference": "Organization/hospital"}
}

The elements that matter

The Patient elements that matter most for interoperability are identifier (with system, value and type), name (with use, family and given), administrative gender, birthDate, deceased, active, contact and link. Identifiers and names drive matching between systems, gender and birthDate are administrative facts, and link records how a master patient index connected duplicate records of one person.

  • identifier is a list, each with a system (who issued it) and a value. The type says what kind: MR medical record number, NI national identifier, PPN passport, SS social security number, from HL7 table 0203. A patient usually has several; a hospital's MRN and a national ID are both valid, and systems match on them.
  • name is also a list with a use: official, usual, nickname, maiden, old. family is one string; given is a list. Scripts, transliterations and name order are left to the implementation guide of the country.
  • gender is administrative gender with four values: male, female, other, unknown. It is what the record says, used for matching and forms. Clinical sex, gender identity and pronouns go in extensions or Observations, which FHIR R5 and the Gender Harmony project formalised.
  • birthDate is a date, optionally year-only or year-month when the exact date is unknown. A patient-birthTime extension adds the time for newborns.
  • deceased[x] is a boolean or a date-time. active false marks a record that should no longer be used (duplicate, moved), without deleting it.
  • contact lists people to contact (next of kin, guardian), with a relationship code; they are not Patient resources themselves. A parent who is also a patient is a RelatedPerson pointing to both.
  • link connects Patient records that are the same person: replaced-by and replaces after a merge, refer to the authoritative record, seealso for a record in another system. This is how a master patient index expresses its decisions in FHIR; see Patient matching.

What national profiles add

National and international FHIR profiles turn the loosely defined base Patient resource into something usable by making elements mandatory and adding country-specific extensions. US Core requires identifier, name and gender and adds race, ethnicity and birth sex extensions; the IPS Patient profile requires name, gender and birthDate; national profiles define identifier systems and address formats.

The base resource makes almost everything optional. Profiles make it usable:

Profile Requires Adds
US Core Patient (6.x) identifier, name, gender Extensions for race, ethnicity, birth sex, gender identity; must-support on birthDate, address, telecom, communication
IPS Patient (uv-ips) name, gender, birthDate Flags what a cross-border summary must carry; identifier recommended
National profiles (DE Basisprofil, FR, NL nl-core, UK Core…) national identifier systems, address formats Country-specific extensions: insurance numbers, name parts, legal residence

A record that will cross a border must satisfy the profile on each side, which in practice means carrying both the national identifier and an MRN, a full official name and a complete birth date. See FHIR implementation guides.

Operations you will use

The FHIR operations most used with Patient are search by identifier or by demographics (GET /Patient with identifier, family or birthdate parameters), the $everything operation, which returns the patient and every resource that references them, and $match, which asks the server's matching algorithm for probable duplicates. A $merge operation is being standardised in FHIR R5.

  • GET /Patient?identifier=https://hospital.example.org/mrn|MRN-00012345 finds a patient by identifier; ?family=doe&birthdate=1980-05-23 by demographics.
  • GET /Patient/{id}/$everything returns the patient and every resource that references them, paged, which is how a whole record is exported.
  • $match (where supported) asks the server's matching algorithm for probable duplicates; $merge is being standardised in R5.

Mistakes that break patient records

The mistakes that most often break FHIR Patient records are storing a national ID in the resource id instead of identifier, omitting identifier.system so values from different hospitals collide, putting the whole name in text without family and given parts, using administrative gender for clinical sex, and editing a merged record in place instead of linking and deactivating it.

  • Putting the national ID in id. The resource id belongs to the server and may change on import; identifiers belong in identifier.
  • One name with everything in text and no family/given, so searches by family name fail.
  • gender used for clinical sex, or set to unknown because the form had no field.
  • Missing identifier.system, so two hospitals' MRN-1 values collide.
  • Editing a Patient in place when a merge happened, instead of linking and deactivating.

In Anpheros

Anpheros represents every person, the account holder and each family profile, as a FHIR Patient resource on Anpheros Platform, and every record a clinic adds through the API references that Patient. Clinic identifiers are kept as additional identifiers with the clinic's own system, and the demographics a person enters remain administrative data from which nothing clinical is inferred.

When a clinic sends its own identifier, it is stored as an additional identifier with the clinic's system, so the same person can be found from either side. Demographics the person entered in the app are the usual name and administrative data; the record never infers anything clinical from them.

Sources

Frequently asked questions

Is Patient the same as Person in FHIR?

No. Person is an administrative resource that links the same human across roles (a Patient here, a Practitioner there, a RelatedPerson elsewhere). Clinical resources reference Patient, never Person.

Where do allergies and conditions go?

In AllergyIntolerance and Condition resources that reference the Patient. Patient itself holds only administrative data.

How do I record a newborn without a name?

With a name whose use is temporary or empty, a birthDate with the patient-birthTime extension, and a link to the mother's record through RelatedPerson or the patient-mothersMaidenName extension, as national profiles specify.

Can one Patient resource be shared by two hospitals?

Each system keeps its own Patient resource with its own id; they share identifiers (a national ID) and may link the records. Matching across systems is the job of a master patient index, not of the resource.

Anpheros Platform

Try it free in the sandbox

Your first FHIR call in 5 minutes. An HL7 FHIR R4 API with the patient's consent built in: try it in the sandbox, then connect your own app or clinic system.

Free · 30 synthetic patients · no card

This guide is for information and does not replace medical advice. For decisions about your health, talk to your doctor. In an emergency, call your local emergency number (112 in Europe).
Written by
The Anpheros team

Anpheros builds a medical record that the patient controls and can share with any clinic, on an HL7 FHIR R4 platform, based in the EU. These guides help you understand and organise your health; they do not replace your doctor.

About Anpheros →
Anpheros

The more you log, the clearer your record

Your health history in one place, under your control.

Symptom diaryPatterns show over time
Emergency cardQR in your phone's Wallet
All your resultsLabs and reports together
You decideWho sees what, and for how long
Create your free account

Free · Works in your browser · No card