Canadian Baseline
1.2.0 - CI Build Canada flag

Canadian Baseline, published by HL7 Canada - FHIR Implementation Work Group. This guide is not an authorized publication; it is the continuous build for version 1.2.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7-Canada/ca-baseline/ and changes regularly. See the Directory of published versions

Resource Profile: Encounter Profile

Official URL: http://hl7.org/fhir/ca/baseline/StructureDefinition/profile-encounter Version: 1.2.0
Draft as of 2024-08-09 Computable Name: EncounterProfile

Proposed constraints and extensions on the Encounter Resource

CA Baseline Encounter Profile

This profile sets minimum expectations for the Encounter resource to represent various observations if no other, more specific profile is applicable.

This Encounter profile represents an interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient, or to communicate information on a visit-specific basis.

This profile defines localization concepts for use in the Canadian context.

Mandatory Data Elements

All elements or attributes within the FHIR specification have cardinality as part of their definition - a minimum number of required appearances and a maximum number of allowable appearances.

Most elements in the FHIR specification have a minimum cardinality of 0, so most elements are not required and subsequently they may be missing from a resource when it is exchanged between systems.

Required elements in the Encounter profile:

  • state of the encounter (Encounter.status)
  • classification of the encounter (Encounter.class)
  • subject of the encounter (Encounter.subject)

Must Support Data Elements

Some elements are marked as Must Support. This means that implementations generating, receiving, or otherwise using resources with Must Support elements SHALL provide support for those elements in some meaningful way (see Must Support definition).

The following elements are marked as Must Support in the Encounter profile:

Must Support elements:

  • identifier
  • state of the encounter (Encounter.status)
  • classification of the encounter (Encounter.class)
  • reference to a subject (Encounter.subject)
  • responsible providers (Encounter.participant)
  • reasons (Encounter.reasonCode)
  • diagnosis relevant to the encounter (Encounter.diagnosis)
  • diagnosis rank
  • admission details (Encounter.hospitalization)

Usage Note

It is anticipated that many systems only need the current information of the encounter and therefore the Encounter resource represents the most recent information.

Systems that need to track historical information about the encounter should be able to do that by increasing complexity of the Encounter resource instance.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Encounter 0..* Encounter Encounter Profile
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
... 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
... 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
... 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Σ 0..* CodeableConcept Specific type of encounter
Binding: Encounter Type (preferred): Valueset to describe the Encounter Type


ele-1: All FHIR elements must have a @value or children
... subject SΣ 1..1 Reference(Patient Profile) The patient present at the encounter
ele-1: All FHIR elements must have a @value or children
... participant SΣ 0..* BackboneElement A list of Practitioners participating 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
.... individual Σ 0..1 Reference(Practitioner Profile (General) | PractitionerRole Profile (General)) Persons involved in the encounter other than the patient
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 Σ 0..* Reference(Condition Profile | Procedure Profile | Observation Profile (General Use) | ImmunizationRecommendation Profile) Reason the encounter takes place (reference)
ele-1: All FHIR elements must have a @value or children
... diagnosis SΣ 0..* BackboneElement The list of diagnosis relevant to this 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
.... condition Σ 1..1 Reference(Condition Profile | Procedure Profile) The diagnosis or procedure relevant to the encounter
ele-1: All FHIR elements must have a @value or children
.... rank S 0..1 positiveInt Ranking of the diagnosis (for each role type)
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
.... origin 0..1 Reference(Location Profile | Organization Profile) The location/organization from which the patient came before admission
ele-1: All FHIR elements must have a @value or children
.... destination 0..1 Reference(Location Profile | Organization Profile) Location/organization to which the patient is discharged
ele-1: All FHIR elements must have a @value or children
.... dischargeDisposition 0..1 CodeableConcept Category or kind of location after discharge
Binding: EncounterDischargeDisposition . (preferred): Discharge Disposition.


ele-1: All FHIR elements must have a @value or children
... serviceProvider 0..1 Reference(Organization Profile) The organization (facility) responsible for this encounter
ele-1: All FHIR elements must have a @value or children
... partOf 0..1 Reference(Encounter Profile) Another Encounter this encounter is part of
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
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.typepreferredEncounterType
https://fhir.infoway-inforoute.ca/ValueSet/encountertype
from this IG
Encounter.reasonCodepreferredEncounterReasonCodes
http://hl7.org/fhir/ValueSet/encounter-reason
from the FHIR Standard
Encounter.hospitalization.dischargeDispositionpreferredEncounterDischargeDisposition .
https://fhir.infoway-inforoute.ca/ValueSet/encounterdischargedisposition

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorEncounterIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorEncounterIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorEncounterIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorEncounterIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceEncounterA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Class

The Encounter.class element is to provide the kind of stay that a subject is having. This is different than the Encounter.type that explains what is done to the subject within this encounter.

In other words, the Encounter.class identifies the setting for the encounter (inpatient/outpatient) in which the encounter took place.

Since it is important for interpreting the context of the encounter, for choosing the appropriate business rules to enforce the clinical/management process, this element is required (cardinality 1..1) and marked as Must Support.

The Encounter.class element does NOT identify the priority of the encounter (see Encounter.priority). Therefore Encounter.class = "EMER" (Emergency) refers to an encounter happening at a dedicated healthcare service delivery location (e.g., Emergency Department) rather than the priority of the encounter.

Type

The Encounter.type element is to provide a specific code indicating type of service provided.

This element is bound to EncounterType value set which includes codes from SNOMED CT decending from the 308335008 (Patient encounter procedure (procedure)) concept.

To extract all descendant of the SNOMED CT concept 308335008 use an ECL expression << 308335008.

- ISSUE #143: Need to better define the value set for the Encounter.type and explain the difference between Encounter.type and Encounter.serviceType based on use cases. 
- Possible value sets:
- descendant of the SNOMED CT concept 308335008 | Patient encounter procedure (procedure);
- descendant of the SNOMED CT concept 308467007 | Seen in establishment (finding)
- descendant of the SNOMED CT concept 308930007 | Seen by health professional (finding)

Service Type

The Encounter.serviceType element describes the service to be performed during the encounter. This element is connected to other resources such as Appointment (Appointment.serviceType), HealthcareService (HealthcareService.type) or Schedule (Schedule.serviceType)