R5 Final QA

This page is part of the FHIR Specification (v5.0.0-draft-final: Final QA Preview for R5 - see ballot notes). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

8.12 Resource EncounterHistory - Content

Patient Administration icon Work GroupMaturity Level: 0 Trial UseSecurity Category: Patient Compartments: Encounter, Patient

A record of significant events/milestones key data throughout the history of an Encounter, often tracked for specific purposes such as billing.

The EncounterHistory is used to be able to record an ongoing history of significant events/changes that occur during a patient encounter. This information is not always up to date/accurate while entering encounter information and is often back-dated as more detailed information becomes available, or corrections need to be made during the completion of the encounter while it is being processed in coding or billing.

Note to Implementers: In FHIR R4 and earlier this data was in the Encounter statusHistory and classHistory backbone elements, however with longer duration encounters (where a patient encounter might be considered active for years) this would become increasingly inefficient, so was re-factored into this resource.
The design notes for this change are on confluence icon.

The Encounter resource stores the complete set of current/most recent data about an Encounter. The EncounterHistory contains a snapshot of some key aspects (properties) of the encounter to track changes to the encounter over time - specifically those that contribute to significant changes/events/milestones during the encounter - such as moving between departments or locations.

Note that this historical information is different than what is tracked in the versions of the Encounter resource. Past movements of a patient are often updated after the fact to correct what actually happened.
FHIR History (_history) doesn't cater for this need as the information isn't always accurate and can be corrected/back populated too. Another challenge with _history is that it also includes corrections to errors in data entry which could not be differentiated from actual movements/changes.

No clinical resources are expected to ever refer to a specific EncounterHistory event, they are only attributed to the Encounter as a whole. If a resource is desiring to connect to a portion of an encounter (and wanting to use EncounterHistory) this is an indication that you should be using a child Encounter through the partOf property.

No references for this Resource.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. EncounterHistory TUDomainResourceA record of significant events/milestones key data throughout the history of an Encounter

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... encounter 0..1Reference(Encounter)The Encounter associated with this set of historic values
... identifier Σ0..*IdentifierIdentifier(s) by which this encounter is known

... status ?!Σ1..1codeplanned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown
Binding: Encounter Status (Required)
... type Σ0..*CodeableConceptSpecific type of encounter
Binding: Encounter Type (Example)

... serviceType Σ0..*CodeableReference(HealthcareService)Specific type of service
Binding: Service Type (Example)

... subject Σ0..1Reference(Patient | Group)The patient or group related to this encounter
... subjectStatus 0..1CodeableConceptThe current status of the subject in relation to the Encounter
Binding: Encounter Subject Status (Example)
... actualPeriod 0..1PeriodThe actual start and end time associated with this set of values associated with the encounter
... plannedStartDate 0..1dateTimeThe planned start date/time (or admission date) of the encounter
... plannedEndDate 0..1dateTimeThe planned end date/time (or discharge date) of the encounter
... length 0..1DurationActual quantity of time the encounter lasted (less time absent)
... location 0..*BackboneElementLocation of the patient at this point in the encounter

.... location 1..1Reference(Location)Location the encounter takes place
.... form 0..1CodeableConceptThe physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.)
Binding: Location Form (Example)

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

EncounterHistory (DomainResource)The Encounter associated with this set of historic valuesencounter : Reference [0..1] « Encounter »Identifier(s) by which this encounter is knownidentifier : Identifier [0..*]planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)EncounterStatus! »Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variationsclass : CodeableConcept [1..1] « null (Strength=Extensible)ActEncounterCode+ »Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation)type : CodeableConcept [0..*] « null (Strength=Example)EncounterType?? »Broad categorization of the service that is to be provided (e.g. cardiology)serviceType : CodeableReference [0..*] « HealthcareService; null (Strength=Example) ServiceType?? »The patient or group related to this encounter. In some use-cases the patient MAY not be present, such as a case meeting about a patient between several practitioners or a careteamsubject : Reference [0..1] « Patient|Group »The subjectStatus value can be used to track the patient's status within the encounter. It details whether the patient has arrived or departed, has been triaged or is currently in a waiting statussubjectStatus : CodeableConcept [0..1] « null (Strength=Example)EncounterSubjectStatus?? »The start and end time associated with this set of values associated with the encounter, may be different to the planned times for various reasonsactualPeriod : Period [0..1]The planned start date/time (or admission date) of the encounterplannedStartDate : dateTime [0..1]The planned end date/time (or discharge date) of the encounterplannedEndDate : dateTime [0..1]Actual quantity of time the encounter lasted. This excludes the time during leaves of absence. When missing it is the time in between the start and end valueslength : Duration [0..1]LocationThe location where the encounter takes placelocation : Reference [1..1] « Location »This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or queryform : CodeableConcept [0..1] « null (Strength=Example)LocationForm?? »The location of the patient at this point in the encounter, the multiple cardinality permits de-normalizing the levels of the location hierarchy, such as site/ward/room/bedlocation[0..*]

XML Template

<EncounterHistory xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <encounter><!-- 0..1 Reference(Encounter) The Encounter associated with this set of historic values --></encounter>
 <identifier><!-- 0..* Identifier Identifier(s) by which this encounter is known --></identifier>
 <status value="[code]"/><!-- 1..1 planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown -->
 <class><!-- 1..1 CodeableConcept Classification of patient encounter icon --></class>
 <type><!-- 0..* CodeableConcept Specific type of encounter --></type>
 <serviceType><!-- 0..* CodeableReference(HealthcareService) Specific type of service --></serviceType>
 <subject><!-- 0..1 Reference(Group|Patient) The patient or group related to this encounter --></subject>
 <subjectStatus><!-- 0..1 CodeableConcept The current status of the subject in relation to the Encounter --></subjectStatus>
 <actualPeriod><!-- 0..1 Period The actual start and end time associated with this set of values associated with the encounter --></actualPeriod>
 <plannedStartDate value="[dateTime]"/><!-- 0..1 The planned start date/time (or admission date) of the encounter -->
 <plannedEndDate value="[dateTime]"/><!-- 0..1 The planned end date/time (or discharge date) of the encounter -->
 <length><!-- 0..1 Duration Actual quantity of time the encounter lasted (less time absent) --></length>
 <location>  <!-- 0..* Location of the patient at this point in the encounter -->
  <location><!-- 1..1 Reference(Location) Location the encounter takes place --></location>
  <form><!-- 0..1 CodeableConcept The physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.) --></form>
 </location>
</EncounterHistory>

JSON Template

{doco
  "resourceType" : "EncounterHistory",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "encounter" : { Reference(Encounter) }, // The Encounter associated with this set of historic values
  "identifier" : [{ Identifier }], // Identifier(s) by which this encounter is known
  "status" : "<code>", // R!  planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown
  "class" : { CodeableConcept }, // R!  Classification of patient encounter icon
  "type" : [{ CodeableConcept }], // Specific type of encounter
  "serviceType" : [{ CodeableReference(HealthcareService) }], // Specific type of service
  "subject" : { Reference(Group|Patient) }, // The patient or group related to this encounter
  "subjectStatus" : { CodeableConcept }, // The current status of the subject in relation to the Encounter
  "actualPeriod" : { Period }, // The actual start and end time associated with this set of values associated with the encounter
  "plannedStartDate" : "<dateTime>", // The planned start date/time (or admission date) of the encounter
  "plannedEndDate" : "<dateTime>", // The planned end date/time (or discharge date) of the encounter
  "length" : { Duration }, // Actual quantity of time the encounter lasted (less time absent)
  "location" : [{ // Location of the patient at this point in the encounter
    "location" : { Reference(Location) }, // R!  Location the encounter takes place
    "form" : { CodeableConcept } // The physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.)
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:EncounterHistory;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:encounter [ Reference(Encounter) ] ; # 0..1 The Encounter associated with this set of historic values
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Identifier(s) by which this encounter is known
  fhir:status [ code ] ; # 1..1 planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown
  fhir:class [ CodeableConcept ] ; # 1..1 Classification of patient encounter
  fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* Specific type of encounter
  fhir:serviceType  ( [ CodeableReference(HealthcareService) ] ... ) ; # 0..* Specific type of service
  fhir:subject [ Reference(Group|Patient) ] ; # 0..1 The patient or group related to this encounter
  fhir:subjectStatus [ CodeableConcept ] ; # 0..1 The current status of the subject in relation to the Encounter
  fhir:actualPeriod [ Period ] ; # 0..1 The actual start and end time associated with this set of values associated with the encounter
  fhir:plannedStartDate [ dateTime ] ; # 0..1 The planned start date/time (or admission date) of the encounter
  fhir:plannedEndDate [ dateTime ] ; # 0..1 The planned end date/time (or discharge date) of the encounter
  fhir:length [ Duration ] ; # 0..1 Actual quantity of time the encounter lasted (less time absent)
  fhir:location ( [ # 0..* Location of the patient at this point in the encounter
    fhir:location [ Reference(Location) ] ; # 1..1 Location the encounter takes place
    fhir:form [ CodeableConcept ] ; # 0..1 The physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.)
  ] ... ) ;
]

Changes since R4

This resource did not exist in Release 3

This analysis is available as XML or JSON.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. EncounterHistory TUDomainResourceA record of significant events/milestones key data throughout the history of an Encounter

Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... encounter 0..1Reference(Encounter)The Encounter associated with this set of historic values
... identifier Σ0..*IdentifierIdentifier(s) by which this encounter is known

... status ?!Σ1..1codeplanned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown
Binding: Encounter Status (Required)
... type Σ0..*CodeableConceptSpecific type of encounter
Binding: Encounter Type (Example)

... serviceType Σ0..*CodeableReference(HealthcareService)Specific type of service
Binding: Service Type (Example)

... subject Σ0..1Reference(Patient | Group)The patient or group related to this encounter
... subjectStatus 0..1CodeableConceptThe current status of the subject in relation to the Encounter
Binding: Encounter Subject Status (Example)
... actualPeriod 0..1PeriodThe actual start and end time associated with this set of values associated with the encounter
... plannedStartDate 0..1dateTimeThe planned start date/time (or admission date) of the encounter
... plannedEndDate 0..1dateTimeThe planned end date/time (or discharge date) of the encounter
... length 0..1DurationActual quantity of time the encounter lasted (less time absent)
... location 0..*BackboneElementLocation of the patient at this point in the encounter

.... location 1..1Reference(Location)Location the encounter takes place
.... form 0..1CodeableConceptThe physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.)
Binding: Location Form (Example)

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

EncounterHistory (DomainResource)The Encounter associated with this set of historic valuesencounter : Reference [0..1] « Encounter »Identifier(s) by which this encounter is knownidentifier : Identifier [0..*]planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)EncounterStatus! »Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variationsclass : CodeableConcept [1..1] « null (Strength=Extensible)ActEncounterCode+ »Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation)type : CodeableConcept [0..*] « null (Strength=Example)EncounterType?? »Broad categorization of the service that is to be provided (e.g. cardiology)serviceType : CodeableReference [0..*] « HealthcareService; null (Strength=Example) ServiceType?? »The patient or group related to this encounter. In some use-cases the patient MAY not be present, such as a case meeting about a patient between several practitioners or a careteamsubject : Reference [0..1] « Patient|Group »The subjectStatus value can be used to track the patient's status within the encounter. It details whether the patient has arrived or departed, has been triaged or is currently in a waiting statussubjectStatus : CodeableConcept [0..1] « null (Strength=Example)EncounterSubjectStatus?? »The start and end time associated with this set of values associated with the encounter, may be different to the planned times for various reasonsactualPeriod : Period [0..1]The planned start date/time (or admission date) of the encounterplannedStartDate : dateTime [0..1]The planned end date/time (or discharge date) of the encounterplannedEndDate : dateTime [0..1]Actual quantity of time the encounter lasted. This excludes the time during leaves of absence. When missing it is the time in between the start and end valueslength : Duration [0..1]LocationThe location where the encounter takes placelocation : Reference [1..1] « Location »This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or queryform : CodeableConcept [0..1] « null (Strength=Example)LocationForm?? »The location of the patient at this point in the encounter, the multiple cardinality permits de-normalizing the levels of the location hierarchy, such as site/ward/room/bedlocation[0..*]

XML Template

<EncounterHistory xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <encounter><!-- 0..1 Reference(Encounter) The Encounter associated with this set of historic values --></encounter>
 <identifier><!-- 0..* Identifier Identifier(s) by which this encounter is known --></identifier>
 <status value="[code]"/><!-- 1..1 planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown -->
 <class><!-- 1..1 CodeableConcept Classification of patient encounter icon --></class>
 <type><!-- 0..* CodeableConcept Specific type of encounter --></type>
 <serviceType><!-- 0..* CodeableReference(HealthcareService) Specific type of service --></serviceType>
 <subject><!-- 0..1 Reference(Group|Patient) The patient or group related to this encounter --></subject>
 <subjectStatus><!-- 0..1 CodeableConcept The current status of the subject in relation to the Encounter --></subjectStatus>
 <actualPeriod><!-- 0..1 Period The actual start and end time associated with this set of values associated with the encounter --></actualPeriod>
 <plannedStartDate value="[dateTime]"/><!-- 0..1 The planned start date/time (or admission date) of the encounter -->
 <plannedEndDate value="[dateTime]"/><!-- 0..1 The planned end date/time (or discharge date) of the encounter -->
 <length><!-- 0..1 Duration Actual quantity of time the encounter lasted (less time absent) --></length>
 <location>  <!-- 0..* Location of the patient at this point in the encounter -->
  <location><!-- 1..1 Reference(Location) Location the encounter takes place --></location>
  <form><!-- 0..1 CodeableConcept The physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.) --></form>
 </location>
</EncounterHistory>

JSON Template

{doco
  "resourceType" : "EncounterHistory",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "encounter" : { Reference(Encounter) }, // The Encounter associated with this set of historic values
  "identifier" : [{ Identifier }], // Identifier(s) by which this encounter is known
  "status" : "<code>", // R!  planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown
  "class" : { CodeableConcept }, // R!  Classification of patient encounter icon
  "type" : [{ CodeableConcept }], // Specific type of encounter
  "serviceType" : [{ CodeableReference(HealthcareService) }], // Specific type of service
  "subject" : { Reference(Group|Patient) }, // The patient or group related to this encounter
  "subjectStatus" : { CodeableConcept }, // The current status of the subject in relation to the Encounter
  "actualPeriod" : { Period }, // The actual start and end time associated with this set of values associated with the encounter
  "plannedStartDate" : "<dateTime>", // The planned start date/time (or admission date) of the encounter
  "plannedEndDate" : "<dateTime>", // The planned end date/time (or discharge date) of the encounter
  "length" : { Duration }, // Actual quantity of time the encounter lasted (less time absent)
  "location" : [{ // Location of the patient at this point in the encounter
    "location" : { Reference(Location) }, // R!  Location the encounter takes place
    "form" : { CodeableConcept } // The physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.)
  }]
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:EncounterHistory;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:encounter [ Reference(Encounter) ] ; # 0..1 The Encounter associated with this set of historic values
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* Identifier(s) by which this encounter is known
  fhir:status [ code ] ; # 1..1 planned | in-progress | on-hold | discharged | completed | cancelled | discontinued | entered-in-error | unknown
  fhir:class [ CodeableConcept ] ; # 1..1 Classification of patient encounter
  fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* Specific type of encounter
  fhir:serviceType  ( [ CodeableReference(HealthcareService) ] ... ) ; # 0..* Specific type of service
  fhir:subject [ Reference(Group|Patient) ] ; # 0..1 The patient or group related to this encounter
  fhir:subjectStatus [ CodeableConcept ] ; # 0..1 The current status of the subject in relation to the Encounter
  fhir:actualPeriod [ Period ] ; # 0..1 The actual start and end time associated with this set of values associated with the encounter
  fhir:plannedStartDate [ dateTime ] ; # 0..1 The planned start date/time (or admission date) of the encounter
  fhir:plannedEndDate [ dateTime ] ; # 0..1 The planned end date/time (or discharge date) of the encounter
  fhir:length [ Duration ] ; # 0..1 Actual quantity of time the encounter lasted (less time absent)
  fhir:location ( [ # 0..* Location of the patient at this point in the encounter
    fhir:location [ Reference(Location) ] ; # 1..1 Location the encounter takes place
    fhir:form [ CodeableConcept ] ; # 0..1 The physical type of the location (usually the level in the location hierarchy - bed, room, ward, virtual etc.)
  ] ... ) ;
]

Changes since Release 4

This resource did not exist in Release 3

This analysis is available as XML or JSON.

 

Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis

PathValueSetTypeDocumentation
EncounterHistory.status EncounterStatus Required

Current state of the encounter.

EncounterHistory.class ActEncounterCode icon Extensible

Domain provides codes that qualify the ActEncounterClass (ENC)

EncounterHistory.type EncounterType Example

This example value set defines a set of codes that can be used to indicate the type of encounter: a specific code indicating type of service provided.

ServiceType Example

This value set defines an example set of codes of service-types.

EncounterHistory.subjectStatus EncounterSubjectStatus Example

This example value set defines a set of codes that can be used to indicate the status of the subject within the encounter

EncounterHistory.location.form LocationForm (a valid code from Location type icon)Example

This example value set defines a set of codes that can be used to indicate the physical form of the Location.

Search parameters for this resource. See also the full list of search parameters for this resource, and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
encounterreferenceThe Encounter associated with this set of history valuesEncounterHistory.encounter
(Encounter)
29 Resources
identifiertokenIdentifier(s) by which this encounter is knownEncounterHistory.identifier
patientreferenceThe patient present at the encounterEncounterHistory.subject.where(resolve() is Patient)
(Patient)
statustokenStatus of the Encounter history entryEncounterHistory.status
subjectreferenceThe patient or group present at the encounterEncounterHistory.subject
(Group, Patient)