FHIR Encounter Resource (R5)

Encounter is an interaction between a patient and a provider: an office visit, an inpatient stay, a telehealth call. Element table, search parameters, example JSON and FHIRPath for FHIR R5.

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

Overview

Encounter is an interaction between a patient and a provider: an office visit, an inpatient stay, a telehealth call. It carries the class, status, participants, period and where the care happened. Many resources (Observation, Procedure, Condition) reference an Encounter to say when and in what context they were recorded. Its shape changed noticeably between R4 and R5.

Elements

ElementTypeCardinalityDescription
Encounter.identifierIdentifier0..*Identifier(s) by which this encounter is known
Encounter.statuscode1..1planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown
Encounter.classCodeableConcept0..*Classification of patient encounter context - e.g. Inpatient, outpatient
Encounter.priorityCodeableConcept0..1Indicates the urgency of the encounter
Encounter.typeCodeableConcept0..*Specific type of encounter (e.g. e-mail consultation, surgical day-care, ...)
Encounter.serviceTypeCodeableReference0..*Specific type of service
Encounter.subjectReference0..1The patient or group related to this encounter
Encounter.subjectStatusCodeableConcept0..1The current status of the subject in relation to the Encounter
Encounter.episodeOfCareReference0..*Episode(s) of care that this encounter should be recorded against
Encounter.basedOnReference0..*The request that initiated this encounter
Encounter.careTeamReference0..*The group(s) that are allocated to participate in this encounter
Encounter.partOfReference0..1Another Encounter this encounter is part of
Encounter.serviceProviderReference0..1The organization (facility) responsible for this encounter
Encounter.participantBackboneElement0..*List of participants involved in the encounter
Encounter.participant.idString0..1Unique id for inter-element referencing
Encounter.participant.extensionExtension0..*Additional content defined by implementations
Encounter.participant.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
Encounter.participant.typeCodeableConcept0..*Role of participant in encounter
Encounter.participant.periodPeriod0..1Period of time during the encounter that the participant participated
Encounter.participant.actorReference0..1The individual, device, or service participating in the encounter
Encounter.appointmentReference0..*The appointment that scheduled this encounter
Encounter.virtualServiceVirtualServiceDetail0..*Connection details of a virtual service (e.g. conference call)
Encounter.actualPeriodPeriod0..1The actual start and end time of the encounter
Encounter.plannedStartDatedateTime0..1The planned start date/time (or admission date) of the encounter
Encounter.plannedEndDatedateTime0..1The planned end date/time (or discharge date) of the encounter
Encounter.lengthDuration0..1Actual quantity of time the encounter lasted (less time absent)
Encounter.reasonBackboneElement0..*The list of medical reasons that are expected to be addressed during the episode of care
Encounter.reason.idString0..1Unique id for inter-element referencing
Encounter.reason.extensionExtension0..*Additional content defined by implementations
Encounter.reason.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
Encounter.reason.useCodeableConcept0..*What the reason value should be used for/as
Encounter.reason.valueCodeableReference0..*Reason the encounter takes place (core or reference)
Encounter.diagnosisBackboneElement0..*The list of diagnosis relevant to this encounter
Encounter.diagnosis.idString0..1Unique id for inter-element referencing
Encounter.diagnosis.extensionExtension0..*Additional content defined by implementations
Encounter.diagnosis.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
Encounter.diagnosis.conditionCodeableReference0..*The diagnosis relevant to the encounter
Encounter.diagnosis.useCodeableConcept0..*Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …)
Encounter.accountReference0..*The set of accounts that may be used for billing for this Encounter
Encounter.dietPreferenceCodeableConcept0..*Diet preferences reported by the patient
Encounter.specialArrangementCodeableConcept0..*Wheelchair, translator, stretcher, etc
Encounter.specialCourtesyCodeableConcept0..*Special courtesies (VIP, board member)
Encounter.admissionBackboneElement0..1Details about the admission to a healthcare service
Encounter.admission.idString0..1Unique id for inter-element referencing
Encounter.admission.extensionExtension0..*Additional content defined by implementations
Encounter.admission.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
Encounter.admission.preAdmissionIdentifierIdentifier0..1Pre-admission identifier
Encounter.admission.originReference0..1The location/organization from which the patient came before admission
Encounter.admission.admitSourceCodeableConcept0..1From where patient was admitted (physician referral, transfer)
Encounter.admission.reAdmissionCodeableConcept0..1Indicates that the patient is being re-admitted
Encounter.admission.destinationReference0..1Location/organization to which the patient is discharged
Encounter.admission.dischargeDispositionCodeableConcept0..1Category or kind of location after discharge
Encounter.locationBackboneElement0..*List of locations where the patient has been
Encounter.location.idString0..1Unique id for inter-element referencing
Encounter.location.extensionExtension0..*Additional content defined by implementations
Encounter.location.modifierExtensionExtension0..*Extensions that cannot be ignored even if unrecognized
Encounter.location.locationReference1..1Location the encounter takes place
Encounter.location.statuscode0..1planned | active | reserved | completed
Encounter.location.formCodeableConcept0..1The physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.)
Encounter.location.periodPeriod0..1Time period during which the patient was present at the location

Example JSON (R5)

{
  "resourceType": "Encounter",
  "id": "example",
  "status": "completed",
  "class": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
          "code": "AMB",
          "display": "ambulatory"
        }
      ]
    }
  ],
  "type": [
    {
      "coding": [
        {
          "system": "http://snomed.info/sct",
          "code": "185349003",
          "display": "Encounter for check up"
        }
      ]
    }
  ],
  "subject": {
    "reference": "Patient/example"
  },
  "actualPeriod": {
    "start": "2024-05-01T09:00:00Z",
    "end": "2024-05-01T09:45:00Z"
  }
}

FHIRPath

  • Encounter.status — Encounter status
  • Encounter.subject.reference — Reference to the patient
  • Encounter.type.coding.display — Human-readable visit type

Common validation errors

  • Using R4 shapes against R5: class is a single Coding in R4 but an array of CodeableConcept in R5, and period became actualPeriod.
  • Using an R4 status value against R5. R4 uses finished; R5 renamed it to completed (and added others).
  • Sending class as a plain string such as "AMB". It needs the coded structure with system and code.
  • Leaving subject out. Without it the encounter isn't attached to any patient.

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.