HL7 FHIR® US Core Implementation Guide CI Build

US Core, published by HL7 International - US Realm Steering Committee. This is not an authorized publication; it is the continuous build for version current). This version is based on the current content of https://github.com/HL7/US-Core/ and changes regularly. See the Directory of published versions

StructureDefinition-us-core-encounter

This profile sets minimum expectations for the Encounter resource to record, search, and fetch basic encounter information for an individual patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.

Example Usage Scenarios:

The following are example usage scenarios for the US Core Encounter profile:

  • Query for a specific patient encounter
  • Query for recent patient encounters
  • Record or update an encounter

Mandatory and Must Support Data Elements

The following data-elements are mandatory (i.e data MUST be present) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each Encounter must have:

  1. A status
  2. An classification such as inpatient, outpatient or emergency
  3. An encounter type
  4. A patient

Each Encounter must support:

  1. An encounter identifier
  2. Providers involved in the encounter
  3. When the encounter occurred
  4. Reason for the visit
  5. The discharge disposition
  6. Where the encounter occurred

Profile specific implementation guidance:

  • To search for an encounter diagnosis, query for Condition resources that reference the Encounter of interest and have a category of encounter-diagnosis. An example search is shown in the Condition Quick Start section.
  • As a result of implementation feedback, the base FHIR Location resource is being referenced by Encounter.location. However, it SHOULD conform to US Core Location. See this guidance on Referencing US Core Profiles.

Examples

Formal Views of Profile Content

Description of Profiles, Differentials, and Snapshots.

The official URL for this profile is: http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter

Published on Tue May 21 00:00:00 UTC 2019 as active by the HL7 US Realm Steering Committee.

This profile builds on Encounter


Encounter

Summary of the Mandatory Requirements

  1. A code in Encounter.status with a required binding to EncounterStatus
  2. A Coding in Encounter.class with an extensible binding to V3 Value SetActEncounterCode
  3. One or more CodeableConcepts in Encounter.type with an extensible binding to US Core Encounter Type
  4. A Patient Reference in Encounter.subject

Summary of the Must Support Requirements

  1. One or more Identifiers in Encounter.identifier
    • which must have an uri value in Encounter.identifier.system
    • which must have a string value in Encounter.identifier.value
  2. One or more Participants in Encounter.participant
    • which should have one or more CodeableConcept values in Encounter.participant.type with an extensible binding to Participant type
    • which should have a Period value in Encounter.participant.period
    • which should have a Individual Reference value in Encounter.participant.individual
  3. A Period in Encounter.period
  4. One or more CodeableConcepts in Encounter.reasonCode with a preferred binding to Encounter Reason Codes
  5. A Hospitalization in Encounter.hospitalization
    • which should have a CodeableConcept value in Encounter.hospitalization.dischargeDisposition with an example binding to Discharge disposition
  6. One or more Locations in Encounter.location
    • which must have a Location Reference value in Encounter.location.location
NameFlagsCard.TypeDescription & Constraintsdoco
.. Encounter 0..*EncounterAn interaction during which services are provided to the patient
... identifier S0..*IdentifierIdentifier(s) by which this encounter is known
.... system S1..1uriThe namespace for the identifier value
.... value S1..1stringThe value that is unique
... status S1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
... class S1..1CodingClassification of patient encounter
... type S1..*CodeableConceptSpecific type of encounter
Binding: US Core Encounter Type (extensible)
... subject S1..1Reference(US Core Patient Profile)The patient or group present at the encounter
... participant S0..*BackboneElementList of participants involved in the encounter
.... type S0..*CodeableConceptRole of participant in encounter
.... period S0..1PeriodPeriod of time during the encounter that the participant participated
.... individual S0..1Reference(US Core Practitioner Profile)Persons involved in the encounter other than the patient
... period S0..1PeriodThe start and end time of the encounter
... reasonCode S0..*CodeableConceptCoded reason the encounter takes place
... hospitalization S0..1BackboneElementDetails about the admission to a healthcare service
.... dischargeDisposition S0..1CodeableConceptCategory or kind of location after discharge
... location S0..*BackboneElementList of locations where the patient has been
.... location S1..1Reference(Location)Location the encounter takes place

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Encounter I0..*EncounterAn interaction during which services are provided to the patient
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier SΣI0..*IdentifierIdentifier(s) by which this encounter is known
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!ΣI0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required)
.... type ΣI0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
.... system SΣI1..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value SΣI1..1stringThe value that is unique
Example General: 123456
.... period ΣI0..1PeriodTime period when id is/was valid for use
.... assigner ΣI0..1Reference(Organization)Organization that issued id (may be just text)
... status ?!SΣI1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
Binding: EncounterStatus (required)
... statusHistory I0..*BackboneElementList of past encounter statuses
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... status I1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
Binding: EncounterStatus (required)
.... period I1..1PeriodThe time that the episode was in the specified status
... class SΣI1..1CodingClassification of patient encounter
Binding: ActEncounterCode (extensible)
... classHistory I0..*BackboneElementList of past encounter classes
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... class I1..1Codinginpatient | outpatient | ambulatory | emergency +
Binding: ActEncounterCode (extensible)
.... period I1..1PeriodThe time that the episode was in the specified class
... type SΣI1..*CodeableConceptSpecific type of encounter
Binding: US Core Encounter Type (extensible)
... serviceType ΣI0..1CodeableConceptSpecific type of service
Binding: ServiceType (example)
... priority I0..1CodeableConceptIndicates the urgency of the encounter
Binding: ActPriority (example)
... subject SΣI1..1Reference(US Core Patient Profile)The patient or group present at the encounter
... episodeOfCare ΣI0..*Reference(EpisodeOfCare)Episode(s) of care that this encounter should be recorded against
... basedOn I0..*Reference(ServiceRequest)The ServiceRequest that initiated this encounter
... participant SΣI0..*BackboneElementList of participants involved in the encounter
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type SΣI0..*CodeableConceptRole of participant in encounter
Binding: ParticipantType (extensible)
.... period SI0..1PeriodPeriod of time during the encounter that the participant participated
.... individual SΣI0..1Reference(US Core Practitioner Profile)Persons involved in the encounter other than the patient
... appointment ΣI0..*Reference(Appointment)The appointment that scheduled this encounter
... period SI0..1PeriodThe start and end time of the encounter
... length I0..1DurationQuantity of time the encounter lasted (less time absent)
... reasonCode SΣI0..*CodeableConceptCoded reason the encounter takes place
Binding: EncounterReasonCodes (preferred)
... reasonReference ΣI0..*Reference(Condition | Procedure | Observation | ImmunizationRecommendation)Reason the encounter takes place (reference)
... diagnosis ΣI0..*BackboneElementThe list of diagnosis relevant to this encounter
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... condition ΣI1..1Reference(Condition | Procedure)The diagnosis or procedure relevant to the encounter
.... use I0..1CodeableConceptRole that this diagnosis has within the encounter (e.g. admission, billing, discharge …)
Binding: DiagnosisRole (preferred)
.... rank I0..1positiveIntRanking of the diagnosis (for each role type)
... account I0..*Reference(Account)The set of accounts that may be used for billing for this Encounter
... hospitalization SI0..1BackboneElementDetails about the admission to a healthcare service
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... preAdmissionIdentifier I0..1IdentifierPre-admission identifier
.... origin I0..1Reference(Location | Organization)The location/organization from which the patient came before admission
.... admitSource I0..1CodeableConceptFrom where patient was admitted (physician referral, transfer)
Binding: AdmitSource (preferred)
.... reAdmission I0..1CodeableConceptThe type of hospital re-admission that has occurred (if any). If the value is absent, then this is not identified as a readmission
Binding: hl7VS-re-admissionIndicator (example)
.... dietPreference I0..*CodeableConceptDiet preferences reported by the patient
Binding: Diet (example)
.... specialCourtesy I0..*CodeableConceptSpecial courtesies (VIP, board member)
Binding: SpecialCourtesy (preferred)
.... specialArrangement I0..*CodeableConceptWheelchair, translator, stretcher, etc.
Binding: SpecialArrangements (preferred)
.... destination I0..1Reference(Location | Organization)Location/organization to which the patient is discharged
.... dischargeDisposition SI0..1CodeableConceptCategory or kind of location after discharge
Binding: DischargeDisposition (example)
... location SI0..*BackboneElementList of locations where the patient has been
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... location SI1..1Reference(Location)Location the encounter takes place
.... status I0..1codeplanned | active | reserved | completed
Binding: EncounterLocationStatus (required)
.... physicalType I0..1CodeableConceptThe physical type of the location (usually the level in the location hierachy - bed room ward etc.)
Binding: LocationType (example)
.... period I0..1PeriodTime period during which the patient was present at the location
... serviceProvider I0..1Reference(Organization)The organization (facility) responsible for this encounter
... partOf I0..1Reference(Encounter)Another Encounter this encounter is part of

doco Documentation for this format

Encounter

Summary of the Mandatory Requirements

  1. A code in Encounter.status with a required binding to EncounterStatus
  2. A Coding in Encounter.class with an extensible binding to V3 Value SetActEncounterCode
  3. One or more CodeableConcepts in Encounter.type with an extensible binding to US Core Encounter Type
  4. A Patient Reference in Encounter.subject

Summary of the Must Support Requirements

  1. One or more Identifiers in Encounter.identifier
    • which must have an uri value in Encounter.identifier.system
    • which must have a string value in Encounter.identifier.value
  2. One or more Participants in Encounter.participant
    • which should have one or more CodeableConcept values in Encounter.participant.type with an extensible binding to Participant type
    • which should have a Period value in Encounter.participant.period
    • which should have a Individual Reference value in Encounter.participant.individual
  3. A Period in Encounter.period
  4. One or more CodeableConcepts in Encounter.reasonCode with a preferred binding to Encounter Reason Codes
  5. A Hospitalization in Encounter.hospitalization
    • which should have a CodeableConcept value in Encounter.hospitalization.dischargeDisposition with an example binding to Discharge disposition
  6. One or more Locations in Encounter.location
    • which must have a Location Reference value in Encounter.location.location

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Encounter 0..*EncounterAn interaction during which services are provided to the patient
... identifier S0..*IdentifierIdentifier(s) by which this encounter is known
.... system S1..1uriThe namespace for the identifier value
.... value S1..1stringThe value that is unique
... status S1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
... class S1..1CodingClassification of patient encounter
... type S1..*CodeableConceptSpecific type of encounter
Binding: US Core Encounter Type (extensible)
... subject S1..1Reference(US Core Patient Profile)The patient or group present at the encounter
... participant S0..*BackboneElementList of participants involved in the encounter
.... type S0..*CodeableConceptRole of participant in encounter
.... period S0..1PeriodPeriod of time during the encounter that the participant participated
.... individual S0..1Reference(US Core Practitioner Profile)Persons involved in the encounter other than the patient
... period S0..1PeriodThe start and end time of the encounter
... reasonCode S0..*CodeableConceptCoded reason the encounter takes place
... hospitalization S0..1BackboneElementDetails about the admission to a healthcare service
.... dischargeDisposition S0..1CodeableConceptCategory or kind of location after discharge
... location S0..*BackboneElementList of locations where the patient has been
.... location S1..1Reference(Location)Location the encounter takes place

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Encounter I0..*EncounterAn interaction during which services are provided to the patient
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier SΣI0..*IdentifierIdentifier(s) by which this encounter is known
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!ΣI0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required)
.... type ΣI0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible)
.... system SΣI1..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
.... value SΣI1..1stringThe value that is unique
Example General: 123456
.... period ΣI0..1PeriodTime period when id is/was valid for use
.... assigner ΣI0..1Reference(Organization)Organization that issued id (may be just text)
... status ?!SΣI1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
Binding: EncounterStatus (required)
... statusHistory I0..*BackboneElementList of past encounter statuses
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... status I1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
Binding: EncounterStatus (required)
.... period I1..1PeriodThe time that the episode was in the specified status
... class SΣI1..1CodingClassification of patient encounter
Binding: ActEncounterCode (extensible)
... classHistory I0..*BackboneElementList of past encounter classes
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... class I1..1Codinginpatient | outpatient | ambulatory | emergency +
Binding: ActEncounterCode (extensible)
.... period I1..1PeriodThe time that the episode was in the specified class
... type SΣI1..*CodeableConceptSpecific type of encounter
Binding: US Core Encounter Type (extensible)
... serviceType ΣI0..1CodeableConceptSpecific type of service
Binding: ServiceType (example)
... priority I0..1CodeableConceptIndicates the urgency of the encounter
Binding: ActPriority (example)
... subject SΣI1..1Reference(US Core Patient Profile)The patient or group present at the encounter
... episodeOfCare ΣI0..*Reference(EpisodeOfCare)Episode(s) of care that this encounter should be recorded against
... basedOn I0..*Reference(ServiceRequest)The ServiceRequest that initiated this encounter
... participant SΣI0..*BackboneElementList of participants involved in the encounter
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... type SΣI0..*CodeableConceptRole of participant in encounter
Binding: ParticipantType (extensible)
.... period SI0..1PeriodPeriod of time during the encounter that the participant participated
.... individual SΣI0..1Reference(US Core Practitioner Profile)Persons involved in the encounter other than the patient
... appointment ΣI0..*Reference(Appointment)The appointment that scheduled this encounter
... period SI0..1PeriodThe start and end time of the encounter
... length I0..1DurationQuantity of time the encounter lasted (less time absent)
... reasonCode SΣI0..*CodeableConceptCoded reason the encounter takes place
Binding: EncounterReasonCodes (preferred)
... reasonReference ΣI0..*Reference(Condition | Procedure | Observation | ImmunizationRecommendation)Reason the encounter takes place (reference)
... diagnosis ΣI0..*BackboneElementThe list of diagnosis relevant to this encounter
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... condition ΣI1..1Reference(Condition | Procedure)The diagnosis or procedure relevant to the encounter
.... use I0..1CodeableConceptRole that this diagnosis has within the encounter (e.g. admission, billing, discharge …)
Binding: DiagnosisRole (preferred)
.... rank I0..1positiveIntRanking of the diagnosis (for each role type)
... account I0..*Reference(Account)The set of accounts that may be used for billing for this Encounter
... hospitalization SI0..1BackboneElementDetails about the admission to a healthcare service
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... preAdmissionIdentifier I0..1IdentifierPre-admission identifier
.... origin I0..1Reference(Location | Organization)The location/organization from which the patient came before admission
.... admitSource I0..1CodeableConceptFrom where patient was admitted (physician referral, transfer)
Binding: AdmitSource (preferred)
.... reAdmission I0..1CodeableConceptThe type of hospital re-admission that has occurred (if any). If the value is absent, then this is not identified as a readmission
Binding: hl7VS-re-admissionIndicator (example)
.... dietPreference I0..*CodeableConceptDiet preferences reported by the patient
Binding: Diet (example)
.... specialCourtesy I0..*CodeableConceptSpecial courtesies (VIP, board member)
Binding: SpecialCourtesy (preferred)
.... specialArrangement I0..*CodeableConceptWheelchair, translator, stretcher, etc.
Binding: SpecialArrangements (preferred)
.... destination I0..1Reference(Location | Organization)Location/organization to which the patient is discharged
.... dischargeDisposition SI0..1CodeableConceptCategory or kind of location after discharge
Binding: DischargeDisposition (example)
... location SI0..*BackboneElementList of locations where the patient has been
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... location SI1..1Reference(Location)Location the encounter takes place
.... status I0..1codeplanned | active | reserved | completed
Binding: EncounterLocationStatus (required)
.... physicalType I0..1CodeableConceptThe physical type of the location (usually the level in the location hierachy - bed room ward etc.)
Binding: LocationType (example)
.... period I0..1PeriodTime period during which the patient was present at the location
... serviceProvider I0..1Reference(Organization)The organization (facility) responsible for this encounter
... partOf I0..1Reference(Encounter)Another Encounter this encounter is part of

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron


Quick Start

Below is an overview of the required set of Server RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.

  • The syntax used to describe the interactions is described here.
  • See the General Guidance section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

Mandatory Search Parameters:

The following search parameters and search parameter combinations SHALL be supported.:

  1. SHALL support fetching an encounter using the _id search parameter:

    GET [base]/Encounter[id]

    Example:

    1. GET [base]/Encounter/12354
    2. GET [base]/Encounter?_id=12354

    Implementation Notes: Fetches a single Encounter (how to search by the logical id of the resource)

  2. SHALL support searching for all encounters for a patient using the patient search parameter:

    GET [base]/Encounter?patient=[reference]

    Example:

    1. GET [base]/Encounter?patient=1137192

    Implementation Notes: Fetches a bundle of all Encounter resources for the specified patient (how to search by reference)

  3. SHALL support searching using the combination of the date and patient search parameters:

    • including support for these date comparators: gt,lt,ge,le
    • including optional support for composite AND search on date (e.g.date=[date]&date=[date]]&...)

    GET [base]/Encounter?date={gt|lt|ge|le}[date]{&date={gt|lt|ge|le}[date]&...}&patient=[reference]

    Example:

    1. GET [base]/Encounter?patient=example1&date=ge2019

    Implementation Notes: Fetches a bundle of all Encounter resources matching the specified date and patient (how to search by date and how to search by reference)

Optional Search Parameters:

The following search parameter combinations SHOULD be supported.:

  1. SHOULD support searching using the identifier search parameter:

    GET [base]/Encounter?identifier={system|}[code]

    Example:

    1. GET [base]/Encounter?identifier=http://hospital.smarthealthit.org|1032702

    Implementation Notes: Fetches a bundle containing any Encounter resources matching the identifier (how to search by token)

  2. SHOULD support searching using the combination of the class and patient search parameters:

    GET [base]/Encounter?class={system|}[code]&patient=[reference]

    Example:

    1. GET [base]/Encounter?patient=example1&class= http://terminology.hl7.org/CodeSystem/v3-ActCode code|AMB

    Implementation Notes: Fetches a bundle of all Encounter resources matching the specified class and patient (how to search by reference and how to search by token)

  3. SHOULD support searching using the combination of the patient and type search parameters:

    GET [base]/Encounter?patient=[reference]&type={system|}[code]

    Example:

    1. GET [base]/Encounter?patient=1137192&type=http://www.ama-assn.org/go/cpt code|99201

    Implementation Notes: Fetches a bundle of all Encounter resources matching the specified patient and type (how to search by reference and how to search by token)

  4. SHOULD support searching using the combination of the patient and status search parameters:

    GET [base]/Encounter?patient=[reference]&status={system|}[code]

    Example:

    1. GET [base]/Encounter?patient=example1&status=finished

    Implementation Notes: Fetches a bundle of all Encounter resources matching the specified patient and status (how to search by reference and how to search by token.