QI-Core Implementation Guide
7.0.0 - STU7 United States of America flag

QI-Core Implementation Guide, published by HL7 International / Clinical Quality Information. This guide is not an authorized publication; it is the continuous build for version 7.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-qi-core/ and changes regularly. See the Directory of published versions

Resource Profile: QICore CommunicationDone

Official URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-communicationdone Version: 7.0.0
Active as of 2023-08-01 Computable Name: QICoreCommunicationDone

Positive profile of Communication for decision support/quality metrics. Indicates that the communication was performed (as opposed to the not done profile).

QI Elements:
  • status: (QI) preparation | in-progress | on-hold | stopped | completed | entered-in-error | unknown
  • subject: (QI) Focus of message
  • topic: (QI) Description of the purpose/content
  • sent: (QI) When sent
  • received: (QI) When received
  • recipient: (QI) Message recipient
  • sender: (QI) Message sender
Primary code path: reasonCode
(PCPath) This element is the primary code path for this resource CQL Retrieve


NOTE TO BALLOT REVIEWERS:
  • US Core 7.0, and thus QI-Core 7.0, has a new approach to USCDI requirements.
    • As noted in the US Core 7.0 Must Support section, US Core 7.0 no longer highlights mandatory (cardinality 1..* or 1..1) and Must Support elements with a (USCDI) indicator as such items must be supported for interoperability.
    • Those USCDI elements that are not mandatory or Must Support now include an indicator (ADDITIONAL USCDI) in US Core. QI-Core 7.0 does not reference USCDI elements; rather, users should access US Core 7.0 to understand its implementation of USCDI version 4.
  • We invite comments about the approach and suggestions for other options that would also avoid unnecessary noise or reading load to the QI-Core profile representation.
  • Further, QI-Core 7.0 does not discuss USCDI+Quality because at the time of ballot preparation, no published version of USCDI+Quality is available. We seek reviewer advice regarding how QI-Core might address future USCDI+Quality.

Usage

The Communication profile defines the conformance expectations for a Communication event, regardless of whether it is a positive or negative statement.

The CommunicationDone and CommunicationNotDone profiles represent the positive and negative statements for a communication event.

To create an expression indicating existence of a communication, use the profile QICoreCommunicationDone; to specifically request information that a communication intentionally did not occur for a medical, patient or system reason, use the profile QICoreCommunicationNotDone.

define CommunicationDone:
  [CommunicationDone]

Note that the statuses indicating positive intent are implied by the use of the CommunicationDone profile in the above expression.

See the patterns page for implementation and usage patterns.

Examples

Written Alert Example

Usage:

Formal Views of Profile Content

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

This structure is derived from QICoreCommunication

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication 0..* QICoreCommunication A record of information transmitted from a sender to a receiver
... status 1..1 code (QI) preparation | in-progress | on-hold | stopped | completed
Binding: Positive Event Status (required)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Communication.statusrequiredPositiveEventStatus
http://hl7.org/fhir/us/qicore/ValueSet/qicore-positive-event-status
from this IG
NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication C 0..* QICoreCommunication A record of information transmitted from a sender to a receiver
com-1: to indicate what communication, either at least one coding in the topic or a codeOptions extension shall be provided
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code (QI) preparation | in-progress | on-hold | stopped | completed
Binding: Positive Event Status (required)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.statusrequiredPositiveEventStatus
http://hl7.org/fhir/us/qicore/ValueSet/qicore-positive-event-status
from this IG

Constraints

IdGradePath(s)DetailsRequirements
com-1errorCommunicationto indicate what communication, either at least one coding in the topic or a codeOptions extension shall be provided
: topic.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor (topic.coding.exists() or topic.text.exists())
dom-2errorCommunicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCommunicationIf 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-4errorCommunicationIf 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-5errorCommunicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCommunicationA 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()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication C 0..* QICoreCommunication A record of information transmitted from a sender to a receiver
com-1: to indicate what communication, either at least one coding in the topic or a codeOptions extension shall be provided
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Unique identifier
... instantiatesCanonical Σ 0..* canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(Resource) Request fulfilled by this communication
... partOf Σ 0..* Reference(Resource) Part of this action
... inResponseTo 0..* Reference(Communication) Reply to
... status ?!Σ 1..1 code (QI) preparation | in-progress | on-hold | stopped | completed
Binding: Positive Event Status (required)
... statusReason Σ 0..1 CodeableConcept Reason for current status
Binding: CommunicationNotDoneReason (example): Codes for the reason why a communication did not happen.

... category 0..* CodeableConcept Message category
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.


... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Codes indicating the relative importance of a communication.

... medium 0..* CodeableConcept A channel of communication
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


... subject Σ 0..1 Reference(QICore Patient | Group) (QI) Focus of message
... topic C 0..1 CodeableConcept (QI) Description of the purpose/content
Binding: CommunicationTopic (preferred)
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... codeOptions C 0..1 canonical(ValueSet) (QI) Url of a value set of candidate topics
URL: http://hl7.org/fhir/StructureDefinition/codeOptions
.... coding Σ 0..* Coding Code defined by a terminology system
.... text Σ 0..1 string Plain text representation of the concept
... about 0..* Reference(Resource) Resources that pertain to this communication
... encounter Σ 0..1 Reference(Encounter) Encounter created as part of
... sent 0..1 dateTime (QI) When sent
... received 0..1 dateTime (QI) When received
... recipient 0..* Reference(QICore Device | US Core Implantable Device Profile | QICore Organization | QICore Patient | QICore Practitioner | QICore RelatedPerson | Group) (QI) Message recipient
... sender 0..1 Reference(QICore Device | US Core Implantable Device Profile | QICore Organization | QICore Patient | QICore Practitioner | QICore RelatedPerson) (QI) Message sender
... reasonCode Σ 0..* CodeableConcept Indication for message
Binding: SNOMEDCTClinicalFindings (example): Codes for describing reasons for the occurrence of a communication.


... reasonReference Σ 0..* Reference(Condition | Observation | DiagnosticReport | DocumentReference) Why was communication done?
... payload 0..* BackboneElement Message payload
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... content[x] 1..1 Message part content
..... contentString string
..... contentAttachment Attachment
..... contentReference Reference(Resource)
... note 0..* Annotation Comments made about the communication

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Communication.statusrequiredPositiveEventStatus
http://hl7.org/fhir/us/qicore/ValueSet/qicore-positive-event-status
from this IG
Communication.statusReasonexampleCommunicationNotDoneReason
http://hl7.org/fhir/ValueSet/communication-not-done-reason
from the FHIR Standard
Communication.categoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.priorityrequiredRequestPriority
http://hl7.org/fhir/ValueSet/request-priority|4.0.1
from the FHIR Standard
Communication.mediumexampleParticipationMode
http://terminology.hl7.org/ValueSet/v3-ParticipationMode
Communication.topicpreferredCommunicationTopic
http://terminology.hl7.org/ValueSet/communication-topic
Communication.reasonCodeexampleSNOMEDCTClinicalFindings
http://hl7.org/fhir/ValueSet/clinical-findings
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
com-1errorCommunicationto indicate what communication, either at least one coding in the topic or a codeOptions extension shall be provided
: topic.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor (topic.coding.exists() or topic.text.exists())
dom-2errorCommunicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCommunicationIf 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-4errorCommunicationIf 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-5errorCommunicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCommunicationA 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()

This structure is derived from QICoreCommunication

Summary

Differential View

This structure is derived from QICoreCommunication

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication 0..* QICoreCommunication A record of information transmitted from a sender to a receiver
... status 1..1 code (QI) preparation | in-progress | on-hold | stopped | completed
Binding: Positive Event Status (required)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Communication.statusrequiredPositiveEventStatus
http://hl7.org/fhir/us/qicore/ValueSet/qicore-positive-event-status
from this IG

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication C 0..* QICoreCommunication A record of information transmitted from a sender to a receiver
com-1: to indicate what communication, either at least one coding in the topic or a codeOptions extension shall be provided
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code (QI) preparation | in-progress | on-hold | stopped | completed
Binding: Positive Event Status (required)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.statusrequiredPositiveEventStatus
http://hl7.org/fhir/us/qicore/ValueSet/qicore-positive-event-status
from this IG

Constraints

IdGradePath(s)DetailsRequirements
com-1errorCommunicationto indicate what communication, either at least one coding in the topic or a codeOptions extension shall be provided
: topic.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor (topic.coding.exists() or topic.text.exists())
dom-2errorCommunicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCommunicationIf 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-4errorCommunicationIf 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-5errorCommunicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCommunicationA 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()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication C 0..* QICoreCommunication A record of information transmitted from a sender to a receiver
com-1: to indicate what communication, either at least one coding in the topic or a codeOptions extension shall be provided
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier Unique identifier
... instantiatesCanonical Σ 0..* canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(Resource) Request fulfilled by this communication
... partOf Σ 0..* Reference(Resource) Part of this action
... inResponseTo 0..* Reference(Communication) Reply to
... status ?!Σ 1..1 code (QI) preparation | in-progress | on-hold | stopped | completed
Binding: Positive Event Status (required)
... statusReason Σ 0..1 CodeableConcept Reason for current status
Binding: CommunicationNotDoneReason (example): Codes for the reason why a communication did not happen.

... category 0..* CodeableConcept Message category
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.


... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Codes indicating the relative importance of a communication.

... medium 0..* CodeableConcept A channel of communication
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


... subject Σ 0..1 Reference(QICore Patient | Group) (QI) Focus of message
... topic C 0..1 CodeableConcept (QI) Description of the purpose/content
Binding: CommunicationTopic (preferred)
.... id 0..1 string Unique id for inter-element referencing
.... Slices for extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... codeOptions C 0..1 canonical(ValueSet) (QI) Url of a value set of candidate topics
URL: http://hl7.org/fhir/StructureDefinition/codeOptions
.... coding Σ 0..* Coding Code defined by a terminology system
.... text Σ 0..1 string Plain text representation of the concept
... about 0..* Reference(Resource) Resources that pertain to this communication
... encounter Σ 0..1 Reference(Encounter) Encounter created as part of
... sent 0..1 dateTime (QI) When sent
... received 0..1 dateTime (QI) When received
... recipient 0..* Reference(QICore Device | US Core Implantable Device Profile | QICore Organization | QICore Patient | QICore Practitioner | QICore RelatedPerson | Group) (QI) Message recipient
... sender 0..1 Reference(QICore Device | US Core Implantable Device Profile | QICore Organization | QICore Patient | QICore Practitioner | QICore RelatedPerson) (QI) Message sender
... reasonCode Σ 0..* CodeableConcept Indication for message
Binding: SNOMEDCTClinicalFindings (example): Codes for describing reasons for the occurrence of a communication.


... reasonReference Σ 0..* Reference(Condition | Observation | DiagnosticReport | DocumentReference) Why was communication done?
... payload 0..* BackboneElement Message payload
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... content[x] 1..1 Message part content
..... contentString string
..... contentAttachment Attachment
..... contentReference Reference(Resource)
... note 0..* Annotation Comments made about the communication

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Communication.statusrequiredPositiveEventStatus
http://hl7.org/fhir/us/qicore/ValueSet/qicore-positive-event-status
from this IG
Communication.statusReasonexampleCommunicationNotDoneReason
http://hl7.org/fhir/ValueSet/communication-not-done-reason
from the FHIR Standard
Communication.categoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.priorityrequiredRequestPriority
http://hl7.org/fhir/ValueSet/request-priority|4.0.1
from the FHIR Standard
Communication.mediumexampleParticipationMode
http://terminology.hl7.org/ValueSet/v3-ParticipationMode
Communication.topicpreferredCommunicationTopic
http://terminology.hl7.org/ValueSet/communication-topic
Communication.reasonCodeexampleSNOMEDCTClinicalFindings
http://hl7.org/fhir/ValueSet/clinical-findings
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
com-1errorCommunicationto indicate what communication, either at least one coding in the topic or a codeOptions extension shall be provided
: topic.extension('http://hl7.org/fhir/StructureDefinition/codeOptions').exists() xor (topic.coding.exists() or topic.text.exists())
dom-2errorCommunicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCommunicationIf 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-4errorCommunicationIf 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-5errorCommunicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCommunicationA 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()

This structure is derived from QICoreCommunication

Summary

 

Other representations of profile: CSV, Excel, Schematron