US Core Implementation Guide
8.0.0 - STU 8 United States of America flag

US Core Implementation Guide, published by HL7 International / Cross-Group Projects. This guide is not an authorized publication; it is the continuous build for version 8.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/US-Core/ and changes regularly. See the Directory of published versions

Resource Profile: US Core Encounter Profile

Official URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter Version: 8.0.0
Standards status: Trial-use Computable Name: USCoreEncounterProfile
Other Identifiers: OID:2.16.840.1.113883.4.642.40.2.42.24

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

The US Core Encounter Profile inherits from the FHIR Encounter resource; refer to it for scope and usage definitions. This profile sets minimum expectations for the Encounter resource to record, search, and fetch basic encounter information for an individual patient. It specifies which core elements, extensions, vocabularies, and value sets SHALL be present and constrains how the elements are used. Providing the floor for standards development for specific use cases promotes interoperability and adoption.

Example Usage Scenarios:

The following are example usage scenarios for this 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 must always be present (Mandatory definition) 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 Views below provides the formal summary, definitions, and terminology requirements.

Each Encounter Must Have:

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

Each Encounter Must Support:

  1. A timestamp when the resource last changed*
  2. An encounter identifier
  3. Providers involved in the encounter
  4. When the encounter occurred
  5. Reason for the visit
  6. The discharge disposition
  7. Where the encounter occurred

Additional USCDI Requirements:

These Additional USCDI Requirements elements are not Mandatory or Must Support but are required for ONC Health IT certification testing and are included in the formal definition of the profile and the Patient examples.

  1. Interpreter Needed flag*

*see guidance below

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.
  • The Encounter resource can represent a reason using a code with Encounter.reasonCode or a reference with Encounter.reasonReference to Condition or other resources.
    • Although both are marked as Must Support, Servers are not required to support both a code and a reference, but they SHALL support at least one of these elements.
    • The Client application SHALL support both elements.
    • If Encounter.reasonReference references an Observation, it SHOULD conform to a US Core Observation if applicable. For example, a laboratory result SHOULD conform to the US Core Laboratory Result Observation Profile.
  • This profile supports where the encounter occurred. The location address can be represented by the Location referenced by Encounter.location.location or indirectly through the Organization referenced by Encounter.serviceProvider.
    • Although both are marked as Must Support, Servers are not required to support both Encounter.location.location and Encounter.serviceProvider, but they SHALL support at least one of these elements.
    • The Client application SHALL support both elements.
  • The following US Core Profiles indirectly reference the location/facility through references to US Core Encounter:

    If the event facility/location differs from the Encounter.location, systems SHOULD reference it directly:

    • Systems SHALL use the location element for all resources where the element is available.
    • Systems MAY use the standard Event Location Extension for US Core DiagnosticReport Profile for Laboratory Results Reporting and US Core Observation Clinical Result Profile.
  • *Servers can use the US Core Interpreter Needed Extension on the US Core Patient or [US Core Encounter Profiles] to communicate whether a patient needs an interpreter. Although the extension is marked as an Additional USCDI Requirements on both US Core Patient and US Core Encounter Profiles, the certifying Server system is not required to support the extension on both profiles, but SHALL support the extension on at least one. The certifying Client application SHALL support the extension on both profiles.
    • System can communicate the patient's language preferences in the Patient.language element and the optional Patient Proficiency Extension and infer a patient's language service needs from it.
  • * See the US Core General Guidance page for Searching Using lastUpdated. Updates to Meta.lastUpdated SHOULD reflect:
    • New encounters/visits
    • Changes in the status of encounters, including events that trigger the same status (e.g., in-progress → in-progress). These status changes correspond to events that can initiate HL7 V2 ADT messages.

Usage:

Changes since version 7.0.0:

  • The data elements list has changed
  • Formal Views of Profile Content

    Description of Profiles, Differentials, Snapshots and how the different presentations work.

    NameFlagsCard.TypeDescription & Constraintsdoco
    .. Encounter 0..* Encounter An interaction during which services are provided to the patient
    dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
    dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
    dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
    dom-6: A resource should have narrative for robust management
    ... meta SΣ 0..1 Meta Metadata about the resource
    ele-1: All FHIR elements must have a @value or children
    .... lastUpdated SΣ 0..1 instant When the resource last changed
    ele-1: All FHIR elements must have a @value or children
    ... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
    ele-1: All FHIR elements must have a @value or children
    ... Slices for extension Content/Rules for all slices
    .... extension:interpreterRequired 0..1 Coding 𝗔𝗗𝗗𝗜𝗧𝗜𝗢𝗡𝗔𝗟 𝗨𝗦𝗖𝗗𝗜: Whether the patient needs an interpreter
    URL: http://hl7.org/fhir/us/core/StructureDefinition/us-core-interpreter-needed
    Binding: Answer Set with Yes No and Unknowns . (required): Answer Set with Yes No and Unknowns


    ele-1: All FHIR elements must have a @value or children
    ext-1: Must have either extensions or value[x], not both
    ... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
    ele-1: All FHIR elements must have a @value or children
    ext-1: Must have either extensions or value[x], not both
    ... identifier SΣ 0..* Identifier Identifier(s) by which this encounter is known
    ele-1: All FHIR elements must have a @value or children
    .... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
    Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


    ele-1: All FHIR elements must have a @value or children
    .... system SΣ 1..1 uri The namespace for the identifier value
    ele-1: All FHIR elements must have a @value or children
    Example General: http://www.acme.com/identifiers/patient
    .... value SΣ 1..1 string The value that is unique
    ele-1: All FHIR elements must have a @value or children
    Example General: 123456
    ... status ?!SΣ 1..1 code planned | arrived | triaged | in-progress | onleave | finished | cancelled +
    Binding: EncounterStatus (required): Current state of the encounter.


    ele-1: All FHIR elements must have a @value or children
    ... class SΣ 1..1 Coding Classification of patient encounter
    Binding: ActEncounterCode (extensible): Classification of the encounter.


    ele-1: All FHIR elements must have a @value or children
    ... type SΣ 1..* CodeableConcept Specific type of encounter
    Binding: Encounter Type . (extensible): Valueset to describe the Encounter Type


    ele-1: All FHIR elements must have a @value or children
    ... subject SΣ 1..1 Reference(US Core Patient Profile) The patient or group present at the encounter
    ele-1: All FHIR elements must have a @value or children
    ... participant SΣ 0..* BackboneElement List of participants involved in the encounter
    ele-1: All FHIR elements must have a @value or children
    .... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
    ele-1: All FHIR elements must have a @value or children
    ext-1: Must have either extensions or value[x], not both
    .... type SΣ 0..* CodeableConcept Role of participant in encounter
    Binding: ParticipantType (extensible): Role of participant in encounter.


    ele-1: All FHIR elements must have a @value or children
    .... period S 0..1 Period Period of time during the encounter that the participant participated
    ele-1: All FHIR elements must have a @value or children
    .... individual SΣ 0..1 Reference(US Core Practitioner Profile) Persons involved in the encounter other than the patient
    ele-1: All FHIR elements must have a @value or children
    ... period S 0..1 Period The start and end time of the encounter
    ele-1: All FHIR elements must have a @value or children
    ... reasonCode SΣ 0..* CodeableConcept Coded reason the encounter takes place
    Binding: EncounterReasonCodes (preferred): Reason why the encounter takes place.


    ele-1: All FHIR elements must have a @value or children
    ... reasonReference SΣ 0..* Reference(US Core Condition Problems and Health Concerns Profile | US Core Condition Encounter Diagnosis Profile) Reason the encounter takes place (reference)
    ele-1: All FHIR elements must have a @value or children
    ... hospitalization S 0..1 BackboneElement Details about the admission to a healthcare service
    ele-1: All FHIR elements must have a @value or children
    .... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
    ele-1: All FHIR elements must have a @value or children
    ext-1: Must have either extensions or value[x], not both
    .... dischargeDisposition S 0..1 CodeableConcept Category or kind of location after discharge
    Binding: USEncounterDischargeDisposition (preferred): National Uniform Billing Committee, manual UB-04, UB form locator 17


    ele-1: All FHIR elements must have a @value or children
    ... location S 0..* BackboneElement List of locations where the patient has been
    ele-1: All FHIR elements must have a @value or children
    .... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
    ele-1: All FHIR elements must have a @value or children
    ext-1: Must have either extensions or value[x], not both
    .... location S 1..1 Reference(US Core Location Profile) Location the encounter takes place
    ele-1: All FHIR elements must have a @value or children
    ... serviceProvider S 0..1 Reference(US Core Organization Profile) The organization (facility) responsible for this encounter
    ele-1: All FHIR elements must have a @value or children

    doco Documentation for this format

    Terminology Bindings

    PathConformanceValueSetURI
    Encounter.identifier.userequiredIdentifierUse
    http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
    from the FHIR Standard
    Encounter.statusrequiredEncounterStatus
    http://hl7.org/fhir/ValueSet/encounter-status|4.0.1
    from the FHIR Standard
    Encounter.classextensibleActEncounterCode
    http://terminology.hl7.org/ValueSet/v3-ActEncounterCode
    Encounter.typeextensibleEncounterType .
    http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1267.23
    Encounter.participant.typeextensibleParticipantType
    http://hl7.org/fhir/ValueSet/encounter-participant-type
    from the FHIR Standard
    Encounter.reasonCodepreferredEncounterReasonCodes
    http://hl7.org/fhir/ValueSet/encounter-reason
    from the FHIR Standard
    Encounter.hospitalization.dischargeDispositionpreferredUSEncounterDischargeDisposition
    http://terminology.hl7.org/ValueSet/v3-USEncounterDischargeDisposition

     

    Other representations of profile: CSV, Excel, Schematron

    Notes:


    Quick Start


    Below is an overview of the required Server RESTful FHIR interactions for this profile - for example, search and read operations - when supporting the US Core interactions to access this profile's information (Profile Support + Interaction Support). Note that systems that support only US Core Profiles (Profile Only Support) are not required to support these interactions. See the US Core Server CapabilityStatement for a complete list of supported RESTful interactions for this IG.

    • See the Scopes Format section for a description of the SMART scopes syntax.
    • See the Search Syntax section for a description of the US Core search syntax.
    • See the General Requirements 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.

    US Core Scopes

    Servers providing access to encounter data SHALL support these US Core SMART Scopes:

    Mandatory Search Parameters:

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

    1. SHALL support both read Encounter by id AND Encounter search using the _id search parameter:

      GET [base]/Encounter/[id] or GET [base]/Encounter?_id=[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={Type/}[id]

      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 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={Type/}[id]

      Example:

      1. GET [base]/Encounter?patient=example1&date=ge2019-01-01T00:00:00Z

      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 for an encounter by an identifier 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={Type/}[id]

      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={Type/}[id]&type={system|}[code]

      Example:

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

      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 location search parameters:

      GET [base]/Encounter?patient={Type/}[id]&location={Type/}[id]

      Example:

      1. GET [base]/Encounter?patient=1137192&location=Location/hospital

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

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

      GET [base]/Encounter?patient={Type/}[id]&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)

    6. SHOULD support searching using the combination of the patient and discharge-disposition search parameters:

      GET [base]/Encounter?patient={Type/}[id]&discharge-disposition={system|}[code]

      Example:

      1. GET [base]/Encounter?patient=example1&discharge-disposition=01

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

    7. SHOULD support searching using the combination of the patient and _lastUpdated search parameters:

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

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

      Example:

      1. GET [base]/Encounter?patient=1137192&_lastUpdated=ge2024-01-01T00:00:00Z

      Implementation Notes: Fetches a bundle of all Encounter resources for the specified patient and _lastUpdated. See the US Core General Guidance page for Searching Using lastUpdated. (how to search by reference and how to search by date)