Canadian Core
0.1.0 - CI Build

Canadian Core, published by Canadian FHIR Implementor Working Group. This is not an authorized publication; it is the continuous build for version 0.1.0). This version is based on the current content of https://github.com/scratch-fhir-profiles/CA-Core/ and changes regularly. See the Directory of published versions

Resource Profile: Encounter Profile

Defining URL:http://hl7.org/fhir/ca/core/StructureDefinition/profile-encounter
Version:0.1.0
Name:EncounterProfile
Title:Encounter Profile
Status:Draft as of 2020-07-29
Definition:

Proposed constraints and extensions on the Encounter Resource

Publisher:Canadian FHIR Implementor Working Group
Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://hl7.org/fhir/ca/core/StructureDefinition/profile-encounter

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.

Formal Views of Profile Content

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

This structure is derived from Encounter

NameFlagsCard.TypeDescription & Constraintsdoco
.. Encounter 0..*EncounterEncounter Profile
... identifier S0..*IdentifierIdentifier(s) by which this encounter is known
... status S1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
... class S1..1CodingClassification of patient encounter
... subject S1..1Reference(Patient Profile)The patient present at the encounter
... participant S0..*BackboneElementA list of Practitioners participating in the encounter
.... individual 0..1Reference(Practitioner Profile (General) | PractitionerRole Profile (General))Persons involved in the encounter other than the patient
... reasonCode S0..*CodeableConceptCoded reason the encounter takes place
... reasonReference 0..*Reference(Condition Profile | Procedure Profile | Observation Profile (General Use) | ImmunizationRecommendation Profile)Reason the encounter takes place (reference)
... diagnosis S0..*BackboneElementThe list of diagnosis relevant to this encounter
.... condition 1..1Reference(Condition Profile | Procedure Profile)The diagnosis or procedure relevant to the encounter
.... rank S0..1positiveIntRanking of the diagnosis (for each role type)
... hospitalization S0..1BackboneElementDetails about the admission to a healthcare service
.... origin 0..1Reference(Location Profile | Organization Profile)The location/organization from which the patient came before admission
.... destination 0..1Reference(Location Profile | Organization Profile)Location/organization to which the patient is discharged
.... dischargeDisposition 0..1CodeableConceptCategory or kind of location after discharge
Binding: https://fhir.infoway-inforoute.ca/ValueSet/encounterdischargedisposition (preferred): Discharge Disposition.

... location
.... location 1..1Reference(Location Profile)Location the encounter takes place
... serviceProvider 0..1Reference(Organization Profile)The organization (facility) responsible for this encounter
... partOf 0..1Reference(Encounter Profile)Another Encounter this encounter is part of

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Encounter 0..*EncounterEncounter Profile
... id Σ0..1stringLogical 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: A human language.

... 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
... status ?!SΣ1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
Binding: EncounterStatus (required): Current state of the encounter.

... statusHistory 0..*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): Current state of the encounter.

.... period 1..1PeriodThe time that the episode was in the specified status
... class SΣ1..1CodingClassification of patient encounter
Binding: ActEncounterCode (extensible): Classification of the encounter.

... classHistory 0..*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: ActEncounterCode (extensible): Classification of the encounter.

.... period 1..1PeriodThe time that the episode was in the specified class
... type SΣ0..*CodeableConceptSpecific type of encounter
Binding: Encounter Type (preferred): Valueset to describe the Encounter Type


... serviceType Σ0..1CodeableConceptSpecific type of service
Binding: ServiceType (example): Broad categorization of the service that is to be provided.

... priority 0..1CodeableConceptIndicates the urgency of the encounter
Binding: ActPriority (example): Indicates the urgency of the encounter.

... subject SΣ1..1Reference(Patient Profile)The patient 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Σ0..*BackboneElementA list of Practitioners participating 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 Σ0..*CodeableConceptRole of participant in encounter
Binding: ParticipantType (extensible): Role of participant in encounter.


.... period 0..1PeriodPeriod of time during the encounter that the participant participated
.... individual Σ0..1Reference(Practitioner Profile (General) | PractitionerRole Profile (General))Persons involved in the encounter other than the patient
... appointment Σ0..*Reference(Appointment)The appointment that scheduled this encounter
... period 0..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): Reason why the encounter takes place.


... reasonReference Σ0..*Reference(Condition Profile | Procedure Profile | Observation Profile (General Use) | ImmunizationRecommendation Profile)Reason the encounter takes place (reference)
... diagnosis SΣ0..*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 Profile | Procedure Profile)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): The type of diagnosis this condition represents.

.... rank S0..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 S0..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 Profile | Organization Profile)The location/organization from which the patient came before admission
.... admitSource 0..1CodeableConceptFrom where patient was admitted (physician referral, transfer)
Binding: AdmitSource (preferred): From where the patient was admitted.

.... 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: hl7VS-re-admissionIndicator (example): The reason for re-admission of this hospitalization encounter.

.... dietPreference 0..*CodeableConceptDiet preferences reported by the patient
Binding: Diet (example): Medical, cultural or ethical food preferences to help with catering requirements.


.... specialCourtesy 0..*CodeableConceptSpecial courtesies (VIP, board member)
Binding: SpecialCourtesy (preferred): Special courtesies.


.... specialArrangement 0..*CodeableConceptWheelchair, translator, stretcher, etc.
Binding: SpecialArrangements (preferred): Special arrangements.


.... destination 0..1Reference(Location Profile | Organization Profile)Location/organization to which the patient is discharged
.... dischargeDisposition 0..1CodeableConceptCategory or kind of location after discharge
Binding: https://fhir.infoway-inforoute.ca/ValueSet/encounterdischargedisposition (preferred): Discharge Disposition.

... location 0..*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 1..1Reference(Location Profile)Location the encounter takes place
.... status 0..1codeplanned | active | reserved | completed
Binding: EncounterLocationStatus (required): The status of the location.

.... physicalType 0..1CodeableConceptThe physical type of the location (usually the level in the location hierachy - bed room ward etc.)
Binding: LocationType (example): Physical form of the location.

.... period 0..1PeriodTime period during which the patient was present at the location
... serviceProvider 0..1Reference(Organization Profile)The organization (facility) responsible for this encounter
... partOf 0..1Reference(Encounter Profile)Another Encounter this encounter is part of

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Encounter 0..*EncounterEncounter Profile
... identifier Σ0..*IdentifierIdentifier(s) by which this encounter is known
... status ?!Σ1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
Binding: EncounterStatus (required): Current state of the encounter.

... class Σ1..1CodingClassification of patient encounter
Binding: ActEncounterCode (extensible): Classification of the encounter.

... subject Σ1..1Reference(Patient Profile)The patient present at the encounter
... participant Σ0..*BackboneElementA list of Practitioners participating in the encounter
... reasonCode Σ0..*CodeableConceptCoded reason the encounter takes place
Binding: EncounterReasonCodes (preferred): Reason why the encounter takes place.


... diagnosis Σ0..*BackboneElementThe list of diagnosis relevant to this encounter
.... rank 0..1positiveIntRanking of the diagnosis (for each role type)
... hospitalization 0..1BackboneElementDetails about the admission to a healthcare service

doco Documentation for this format

Differential View

This structure is derived from Encounter

NameFlagsCard.TypeDescription & Constraintsdoco
.. Encounter 0..*EncounterEncounter Profile
... identifier S0..*IdentifierIdentifier(s) by which this encounter is known
... status S1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
... class S1..1CodingClassification of patient encounter
... subject S1..1Reference(Patient Profile)The patient present at the encounter
... participant S0..*BackboneElementA list of Practitioners participating in the encounter
.... individual 0..1Reference(Practitioner Profile (General) | PractitionerRole Profile (General))Persons involved in the encounter other than the patient
... reasonCode S0..*CodeableConceptCoded reason the encounter takes place
... reasonReference 0..*Reference(Condition Profile | Procedure Profile | Observation Profile (General Use) | ImmunizationRecommendation Profile)Reason the encounter takes place (reference)
... diagnosis S0..*BackboneElementThe list of diagnosis relevant to this encounter
.... condition 1..1Reference(Condition Profile | Procedure Profile)The diagnosis or procedure relevant to the encounter
.... rank S0..1positiveIntRanking of the diagnosis (for each role type)
... hospitalization S0..1BackboneElementDetails about the admission to a healthcare service
.... origin 0..1Reference(Location Profile | Organization Profile)The location/organization from which the patient came before admission
.... destination 0..1Reference(Location Profile | Organization Profile)Location/organization to which the patient is discharged
.... dischargeDisposition 0..1CodeableConceptCategory or kind of location after discharge
Binding: https://fhir.infoway-inforoute.ca/ValueSet/encounterdischargedisposition (preferred): Discharge Disposition.

... location
.... location 1..1Reference(Location Profile)Location the encounter takes place
... serviceProvider 0..1Reference(Organization Profile)The organization (facility) responsible for this encounter
... partOf 0..1Reference(Encounter Profile)Another Encounter this encounter is part of

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Encounter 0..*EncounterEncounter Profile
... id Σ0..1stringLogical 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: A human language.

... 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
... status ?!SΣ1..1codeplanned | arrived | triaged | in-progress | onleave | finished | cancelled +
Binding: EncounterStatus (required): Current state of the encounter.

... statusHistory 0..*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): Current state of the encounter.

.... period 1..1PeriodThe time that the episode was in the specified status
... class SΣ1..1CodingClassification of patient encounter
Binding: ActEncounterCode (extensible): Classification of the encounter.

... classHistory 0..*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: ActEncounterCode (extensible): Classification of the encounter.

.... period 1..1PeriodThe time that the episode was in the specified class
... type SΣ0..*CodeableConceptSpecific type of encounter
Binding: Encounter Type (preferred): Valueset to describe the Encounter Type


... serviceType Σ0..1CodeableConceptSpecific type of service
Binding: ServiceType (example): Broad categorization of the service that is to be provided.

... priority 0..1CodeableConceptIndicates the urgency of the encounter
Binding: ActPriority (example): Indicates the urgency of the encounter.

... subject SΣ1..1Reference(Patient Profile)The patient 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Σ0..*BackboneElementA list of Practitioners participating 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 Σ0..*CodeableConceptRole of participant in encounter
Binding: ParticipantType (extensible): Role of participant in encounter.


.... period 0..1PeriodPeriod of time during the encounter that the participant participated
.... individual Σ0..1Reference(Practitioner Profile (General) | PractitionerRole Profile (General))Persons involved in the encounter other than the patient
... appointment Σ0..*Reference(Appointment)The appointment that scheduled this encounter
... period 0..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): Reason why the encounter takes place.


... reasonReference Σ0..*Reference(Condition Profile | Procedure Profile | Observation Profile (General Use) | ImmunizationRecommendation Profile)Reason the encounter takes place (reference)
... diagnosis SΣ0..*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 Profile | Procedure Profile)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): The type of diagnosis this condition represents.

.... rank S0..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 S0..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 Profile | Organization Profile)The location/organization from which the patient came before admission
.... admitSource 0..1CodeableConceptFrom where patient was admitted (physician referral, transfer)
Binding: AdmitSource (preferred): From where the patient was admitted.

.... 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: hl7VS-re-admissionIndicator (example): The reason for re-admission of this hospitalization encounter.

.... dietPreference 0..*CodeableConceptDiet preferences reported by the patient
Binding: Diet (example): Medical, cultural or ethical food preferences to help with catering requirements.


.... specialCourtesy 0..*CodeableConceptSpecial courtesies (VIP, board member)
Binding: SpecialCourtesy (preferred): Special courtesies.


.... specialArrangement 0..*CodeableConceptWheelchair, translator, stretcher, etc.
Binding: SpecialArrangements (preferred): Special arrangements.


.... destination 0..1Reference(Location Profile | Organization Profile)Location/organization to which the patient is discharged
.... dischargeDisposition 0..1CodeableConceptCategory or kind of location after discharge
Binding: https://fhir.infoway-inforoute.ca/ValueSet/encounterdischargedisposition (preferred): Discharge Disposition.

... location 0..*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 1..1Reference(Location Profile)Location the encounter takes place
.... status 0..1codeplanned | active | reserved | completed
Binding: EncounterLocationStatus (required): The status of the location.

.... physicalType 0..1CodeableConceptThe physical type of the location (usually the level in the location hierachy - bed room ward etc.)
Binding: LocationType (example): Physical form of the location.

.... period 0..1PeriodTime period during which the patient was present at the location
... serviceProvider 0..1Reference(Organization Profile)The organization (facility) responsible for this encounter
... partOf 0..1Reference(Encounter Profile)Another Encounter this encounter is part of

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

PathConformanceValueSet
Encounter.languagepreferredCommonLanguages
Max Binding: AllLanguages
Encounter.statusrequiredEncounterStatus
Encounter.statusHistory.statusrequiredEncounterStatus
Encounter.classextensibleActEncounterCode
Encounter.classHistory.classextensibleActEncounterCode
Encounter.typepreferredEncounterType
Encounter.serviceTypeexampleServiceType
Encounter.priorityexampleActPriority
Encounter.participant.typeextensibleParticipantType
Encounter.reasonCodepreferredEncounterReasonCodes
Encounter.diagnosis.usepreferredDiagnosisRole
Encounter.hospitalization.admitSourcepreferredAdmitSource
Encounter.hospitalization.reAdmissionexampleHl7VSReAdmissionIndicator
Encounter.hospitalization.dietPreferenceexampleDiet
Encounter.hospitalization.specialCourtesypreferredSpecialCourtesy
Encounter.hospitalization.specialArrangementpreferredSpecialArrangements
Encounter.hospitalization.dischargeDispositionpreferredhttps://fhir.infoway-inforoute.ca/ValueSet/encounterdischargedisposition
Encounter.location.statusrequiredEncounterLocationStatus
Encounter.location.physicalTypeexampleLocationType

Constraints

IdPathDetailsRequirements
dom-2EncounterIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3EncounterIf 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-4EncounterIf 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-5EncounterIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6EncounterA resource should have narrative for robust management
: text.`div`.exists()
ele-1Encounter.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.statusHistoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.statusHistory.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.statusHistory.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.statusHistory.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.statusHistory.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.statusHistory.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.statusHistory.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.classAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.classHistoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.classHistory.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.classHistory.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.classHistory.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.classHistory.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.classHistory.classAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.classHistory.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.serviceTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.priorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.episodeOfCareAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.basedOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.participantAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.participant.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.participant.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.participant.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.participant.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.participant.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.participant.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.participant.individualAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.appointmentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.lengthAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.diagnosisAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.diagnosis.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.diagnosis.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.diagnosis.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.diagnosis.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.diagnosis.conditionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.diagnosis.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.diagnosis.rankAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.accountAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.hospitalizationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.hospitalization.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.hospitalization.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.hospitalization.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.hospitalization.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.hospitalization.preAdmissionIdentifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.hospitalization.originAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.hospitalization.admitSourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.hospitalization.reAdmissionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.hospitalization.dietPreferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.hospitalization.specialCourtesyAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.hospitalization.specialArrangementAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.hospitalization.destinationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.hospitalization.dischargeDispositionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.location.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.location.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.location.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1Encounter.location.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1Encounter.location.locationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.location.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.location.physicalTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.location.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.serviceProviderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1Encounter.partOfAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())

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)