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 Communication Not Done

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

Negation profile of Communication for decision support/quality metrics. Indicates that the communication was not performed for a reason.

QI Elements:
  • event-recorded: (QI) Captures the recorded date of the communication
  • status: (QI) preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
  • statusReason: (QI) Reason for current status
  • subject: (QI) Focus of message
  • topic: (QI) Description of the purpose/content
  • notDoneValueSet: (QI) Url of a value set of activities not requested or performed
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

See the patterns page for implementation and usage patterns.

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.

This example meets measure intent for exclusion as defined in the following example CQL:

define CommunicationNoteDone:
  [CommunicationNotDone: "Macular edema absent (finding)"] MacularEdemaAbsentNotCommunicated
    with "Diabetic Retinopathy Encounter" EncounterDiabeticRetinopathy
      such that MacularEdemaAbsentNotCommunicated.sent during EncounterDiabeticRetinopathy.period
        and ( MacularEdemaAbsentNotCommunicated.statusReason in "Medical Reason"
          or MacularEdemaAbsentNotCommunicated.statusReason in "Patient Reason"
        )

For a more complete discussion of representation of negation within QI-Core and quality improvement artifacts, see the Negation in QI-Core topic.

Examples

Negation Example using a single coded conceptCommunication of finding of Macular Edema absent not done because patient moved away.

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
... Slices for extension Content/Rules for all slices
.... event-recorded 1..1 dateTime (QI) Captures the recorded date of the communication
URL: http://hl7.org/fhir/StructureDefinition/event-recorded
... status 1..1 code (QI) not-done
Fixed Value: not-done
... statusReason 1..1 CodeableConcept (QI) Reason for current status
Binding: QICore Negation Reason Codes (extensible)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Communication.statusReasonextensibleNegationReasonCodes
http://hl7.org/fhir/us/qicore/ValueSet/qicore-negation-reason
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
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... event-recorded 1..1 dateTime (QI) Captures the recorded date of the communication
URL: http://hl7.org/fhir/StructureDefinition/event-recorded
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... statusReason Σ 1..1 CodeableConcept (QI) Reason for current status
Binding: QICore Negation Reason Codes (extensible)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Communication.statusrequiredFixed Value: not-done
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Communication.statusReasonextensibleNegationReasonCodes
http://hl7.org/fhir/us/qicore/ValueSet/qicore-negation-reason
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()
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
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... event-recorded 1..1 dateTime (QI) Captures the recorded date of the communication
URL: http://hl7.org/fhir/StructureDefinition/event-recorded
... 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) not-done
Binding: EventStatus (required): The status of the communication.


Fixed Value: not-done
... statusReason Σ 1..1 CodeableConcept (QI) Reason for current status
Binding: QICore Negation Reason Codes (extensible)
... 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

PathConformanceValueSet / CodeURI
Communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Communication.statusrequiredFixed Value: not-done
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Communication.statusReasonextensibleNegationReasonCodes
http://hl7.org/fhir/us/qicore/ValueSet/qicore-negation-reason
from this IG
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()
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

Mandatory: 3 elements
Fixed: 1 element

Extensions

This structure refers to these extensions:

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
... Slices for extension Content/Rules for all slices
.... event-recorded 1..1 dateTime (QI) Captures the recorded date of the communication
URL: http://hl7.org/fhir/StructureDefinition/event-recorded
... status 1..1 code (QI) not-done
Fixed Value: not-done
... statusReason 1..1 CodeableConcept (QI) Reason for current status
Binding: QICore Negation Reason Codes (extensible)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Communication.statusReasonextensibleNegationReasonCodes
http://hl7.org/fhir/us/qicore/ValueSet/qicore-negation-reason
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
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... event-recorded 1..1 dateTime (QI) Captures the recorded date of the communication
URL: http://hl7.org/fhir/StructureDefinition/event-recorded
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... statusReason Σ 1..1 CodeableConcept (QI) Reason for current status
Binding: QICore Negation Reason Codes (extensible)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
Communication.statusrequiredFixed Value: not-done
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Communication.statusReasonextensibleNegationReasonCodes
http://hl7.org/fhir/us/qicore/ValueSet/qicore-negation-reason
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()
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
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... event-recorded 1..1 dateTime (QI) Captures the recorded date of the communication
URL: http://hl7.org/fhir/StructureDefinition/event-recorded
... 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) not-done
Binding: EventStatus (required): The status of the communication.


Fixed Value: not-done
... statusReason Σ 1..1 CodeableConcept (QI) Reason for current status
Binding: QICore Negation Reason Codes (extensible)
... 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

PathConformanceValueSet / CodeURI
Communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Communication.statusrequiredFixed Value: not-done
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Communication.statusReasonextensibleNegationReasonCodes
http://hl7.org/fhir/us/qicore/ValueSet/qicore-negation-reason
from this IG
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()
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

Mandatory: 3 elements
Fixed: 1 element

Extensions

This structure refers to these extensions:

 

Other representations of profile: CSV, Excel, Schematron