HL7 FHIR® US Core Implementation Guide (Release 3.0.1 STU3 Update for Comment)

This page is part of the US Core (v3.0.1: STU3 Ballot 3) based on FHIR R4. The current version which supercedes this version is 5.0.1. For a full list of available versions, 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. abs 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.

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

Snapshot View

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

  • 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, search parameter combinations SHALL be supported. Any listed search parameter modifiers, comparators, chains and composites SHALL also be supported UNLESS they are listed as “optional” in which case they SHOULD 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 parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites 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)