QI-Core Implementation Guide: STU 4 (v4.0.0 for FHIR 4.0.0)

QI-Core Implementation Guide, Clinical Quality Improvement WG - CI build for vesion 4.0.0). This version is based on the current content of https://github.com/cqframework/qi-core/ and changes regularly. See the Directory of published versions

D.4.1 StructureDefinition-qicore-encounter

Introduction:

See the patterns page for implementation and usage patterns.

Examples:

Encounter with Patient Example

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter

Profile of Encounter for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

This profile builds on USCoreEncounterProfile.

This profile was published on Wed Aug 22 00:00:00 UTC 2018 as a draft by Health Level Seven, Inc. - CQI WG.

Description of Profiles, Differentials, and Snapshots.

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..*ExtensionExtension
Slice: Unordered, Open by value:url
... encounter-reasonCancelled I0..1CodeableConceptExplanation for cancellation
URL: http://hl7.org/fhir/StructureDefinition/encounter-reasonCancelled
... qicore-encounter-procedure SI0..*(Complex)Encounter Procedure Extension
URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter-procedure
... 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 ?!Σ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: SNOMED CT Priorities Codes (preferred)
... subject SΣ1..1Reference(QICorePatient)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(QICoreServiceRequest)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(QICorePractitioner | QICoreRelatedPerson)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 S0..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 SΣ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 SΣ1..1Reference(QICoreCondition | QICoreProcedure)The diagnosis or procedure relevant to the encounter
.... use S0..1CodeableConceptRole that this diagnosis has within the encounter (e.g. admission, billing, discharge …)
Binding: DiagnosisRole (preferred)
.... 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 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(QICoreLocation)The location/organization from which the patient came before admission
.... admitSource S0..1CodeableConceptFrom where patient was admitted (physician referral, transfer)
Binding: AdmitSource (preferred)
.... reAdmission S0..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(QICoreLocation)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(QICoreLocation)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 S0..1Reference(QICoreOrganization)The organization (facility) responsible for this encounter
... partOf 0..1Reference(QICoreEncounter)Another Encounter this encounter is part of

doco Documentation for this format

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..*ExtensionExtension
Slice: Unordered, Open by value:url
... encounter-reasonCancelled I0..1CodeableConceptExplanation for cancellation
URL: http://hl7.org/fhir/StructureDefinition/encounter-reasonCancelled
... qicore-encounter-procedure SI0..*(Complex)Encounter Procedure Extension
URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter-procedure
... 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 ?!Σ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: SNOMED CT Priorities Codes (preferred)
... subject SΣ1..1Reference(QICorePatient)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(QICoreServiceRequest)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(QICorePractitioner | QICoreRelatedPerson)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 S0..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 SΣ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 SΣ1..1Reference(QICoreCondition | QICoreProcedure)The diagnosis or procedure relevant to the encounter
.... use S0..1CodeableConceptRole that this diagnosis has within the encounter (e.g. admission, billing, discharge …)
Binding: DiagnosisRole (preferred)
.... 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 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(QICoreLocation)The location/organization from which the patient came before admission
.... admitSource S0..1CodeableConceptFrom where patient was admitted (physician referral, transfer)
Binding: AdmitSource (preferred)
.... reAdmission S0..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(QICoreLocation)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(QICoreLocation)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 S0..1Reference(QICoreOrganization)The organization (facility) responsible for this encounter
... partOf 0..1Reference(QICoreEncounter)Another Encounter this encounter is part of

doco Documentation for this format

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathConformanceValueSet
Encounter.languagepreferredCommonLanguages
Max Binding: AllLanguages
Encounter.identifier.userequiredIdentifierUse
Encounter.identifier.typeextensibleIdentifier Type Codes
Encounter.statusrequiredEncounterStatus
Encounter.statusHistory.statusrequiredEncounterStatus
Encounter.classextensiblev3.ActEncounterCode
Encounter.classHistory.classextensiblev3.ActEncounterCode
Encounter.typeextensibleUSCoreEncounterType
Encounter.serviceTypeexampleServiceType
Encounter.prioritypreferredQICorePriority
Encounter.participant.typeextensibleParticipantType
Encounter.reasonCodepreferredEncounterReasonCodes
Encounter.diagnosis.usepreferredDiagnosisRole
Encounter.hospitalization.admitSourcepreferredAdmitSource
Encounter.hospitalization.reAdmissionexamplev2.0092
Encounter.hospitalization.dietPreferenceexampleDiet
Encounter.hospitalization.specialCourtesypreferredSpecialCourtesy
Encounter.hospitalization.specialArrangementpreferredSpecialArrangements
Encounter.hospitalization.dischargeDispositionexampleDischargeDisposition
Encounter.location.statusrequiredEncounterLocationStatus
Encounter.location.physicalTypeexampleLocationType

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2EncounterIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.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-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-6EncounterA resource should have narrative for robust management
: text.div.exists()
dom-5EncounterIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
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.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.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.statusHistoryAll 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.participantAll 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.hospitalizationAll 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())