FHIR Patient Resource (R4)

Patient holds demographic and administrative information about an individual receiving care. Element table, search parameters, example JSON and FHIRPath for FHIR R4.

  • FHIR Patient Resource (R4) — part of the free FHIR Toolbox library.
  • Runs entirely in your browser: your FHIR data is never uploaded to a server.

Overview

Patient holds demographic and administrative information about an individual receiving care. It is the anchor of most clinical data: Observation, Condition, Encounter and nearly every other clinical resource point back to a Patient through a subject or patient reference. Keep clinical facts in those resources rather than in Patient itself.

Elements

ElementTypeCardinalityDescription
Patient.identifierIdentifier0..*An identifier for this patient
Patient.activeboolean0..1Whether this patient's record is in active use
Patient.nameHumanName0..*A name associated with the patient
Patient.telecomContactPoint0..*A contact detail for the individual
Patient.gendercode0..1male | female | other | unknown
Patient.birthDatedate0..1The date of birth for the individual
Patient.deceased[x]boolean | dateTime0..1Indicates if the individual is deceased or not
Patient.addressAddress0..*An address for the individual
Patient.maritalStatusCodeableConcept0..1Marital (civil) status of a patient
Patient.multipleBirth[x]boolean | integer0..1Whether patient is part of a multiple birth
Patient.photoAttachment0..*Image of the patient
Patient.contactBackboneElement0..*A contact party (e.g. guardian, partner, friend) for the patient
Patient.contact.idString0..1Unique id for inter-element referencing
Patient.contact.extensionExtension0..*Additional content defined by implementations
Patient.contact.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
Patient.contact.relationshipCodeableConcept0..*The kind of relationship
Patient.contact.nameHumanName0..1A name associated with the contact person
Patient.contact.telecomContactPoint0..*A contact detail for the person
Patient.contact.addressAddress0..1Address for the contact person
Patient.contact.gendercode0..1male | female | other | unknown
Patient.contact.organizationReference0..1Organization that is associated with the contact
Patient.contact.periodPeriod0..1The period during which this contact person or organization is valid to be contacted relating to this patient
Patient.communicationBackboneElement0..*A language which may be used to communicate with the patient about his or her health
Patient.communication.idString0..1Unique id for inter-element referencing
Patient.communication.extensionExtension0..*Additional content defined by implementations
Patient.communication.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
Patient.communication.languageCodeableConcept1..1The language which can be used to communicate with the patient about his or her health
Patient.communication.preferredboolean0..1Language preference indicator
Patient.generalPractitionerReference0..*Patient's nominated primary care provider
Patient.managingOrganizationReference0..1Organization that is the custodian of the patient record
Patient.linkBackboneElement0..*Link to another patient resource that concerns the same actual person
Patient.link.idString0..1Unique id for inter-element referencing
Patient.link.extensionExtension0..*Additional content defined by implementations
Patient.link.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
Patient.link.otherReference1..1The other patient or related person resource that the link refers to
Patient.link.typecode1..1replaced-by | replaces | refer | seealso

Example JSON (R4)

{
  "resourceType": "Patient",
  "id": "example",
  "identifier": [
    {
      "system": "http://hospital.example.org/mrn",
      "value": "12345"
    }
  ],
  "active": true,
  "name": [
    {
      "use": "official",
      "family": "Smith",
      "given": [
        "John",
        "Michael"
      ]
    }
  ],
  "telecom": [
    {
      "system": "phone",
      "value": "555-0100",
      "use": "home"
    }
  ],
  "gender": "male",
  "birthDate": "1985-03-12",
  "address": [
    {
      "use": "home",
      "line": [
        "123 Main St"
      ],
      "city": "Anytown",
      "state": "CA",
      "postalCode": "90210"
    }
  ]
}

FHIRPath

  • Patient.name.where(use='official').family — Official family name
  • Patient.telecom.where(system='phone').value — All phone numbers
  • Patient.identifier.where(system='http://hospital.example.org/mrn').value — Medical record number for one assigning system
  • Patient.birthDate — Date of birth (a partial date such as 1985 is valid)

Common validation errors

  • Writing name as an object instead of an array. Patient.name is 0..*, so it must be [ { … } ].
  • Putting the full name in family. Use family for the surname and given (an array) for first and middle names.
  • Sending birthDate as 03/12/1985. FHIR dates are ISO 8601: YYYY, YYYY-MM or YYYY-MM-DD.
  • Using a free-text gender such as "Male". gender is a code from administrative-gender: male | female | other | unknown (lower-case).
  • Omitting identifier.system, which makes the value ambiguous across organizations.

FHIR Toolbox is a free, privacy-first collection of HL7 FHIR utilities by Omindra Labs. Every tool performs zero-server processing — your health data never leaves your device.