QI-Core Implementation Guide
4.1.0 - release

This page is part of the Quality Improvement Core Framework (v4.1.0: STU 4) based on FHIR R4. The current version which supercedes this version is 4.1.1. For a full list of available versions, see the Directory of published versions

Resource Profile: QICoreCommunicationRequest

Defining URL:http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-communicationrequest
Version:4.1.0
Name:QICoreCommunicationRequest
Status:Draft as of 8/22/18
Definition:

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

Publisher:http://www.hl7.org/Special/committees/cqi/index.cfm
Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-communicationrequest
Usage

See the patterns page for implementation and usage patterns.

Examples

CommunicationRequest Example

Formal Views of Profile Content

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

This structure is derived from CommunicationRequest

NameFlagsCard.TypeDescription & Constraintsdoco
.. CommunicationRequest 0..*CommunicationRequestA request for information to be sent to a receiver
... status S1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
... category S0..*CodeableConceptMessage category
... doNotPerform S0..1booleanTrue if request is prohibiting action
... encounter S0..1Reference(QICoreEncounter)Encounter created as part of
... recipient S0..*Reference(QICoreDevice | QICoreOrganization | QICorePatient | QICorePractitioner | QICoreRelatedPerson | Group | CareTeam)Message recipient
... sender S0..1Reference(QICoreDevice | QICoreOrganization | QICorePatient | QICorePractitioner | QICoreRelatedPerson)Message sender

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. CommunicationRequest 0..*CommunicationRequestA request for information to be sent to a receiver
... 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 Σ0..*IdentifierUnique identifier
... basedOn Σ0..*Reference(Resource)Fulfills plan or proposal
... replaces Σ0..*Reference(CommunicationRequest)Request(s) replaced by this request
... groupIdentifier Σ0..1IdentifierComposite request this is part of
... status ?!SΣ1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of the communication request.

... statusReason 0..1CodeableConceptReason for current status
Binding: (unbound) (example): Codes identifying the reason for the current state of a request.

... category S0..*CodeableConceptMessage category
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instruction, etc.


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

... doNotPerform ?!SΣ0..1booleanTrue if request is prohibiting action
... medium 0..*CodeableConceptA channel of communication
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


... subject S0..1Reference(QICorePatient)Focus of message
... about 0..*Reference(Resource)Resources that pertain to this communication request
... encounter SΣ0..1Reference(QICoreEncounter)Encounter created as part of
... payload 0..*BackboneElementMessage payload
.... 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
.... content[x] 1..1Message part content
..... contentStringstring
..... contentAttachmentAttachment
..... contentReferenceReference(Resource)
... occurrence[x] Σ0..1When scheduled
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
... authoredOn Σ0..1dateTimeWhen request transitioned to being actionable
... requester Σ0..1Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device)Who/what is requesting service
... recipient S0..*Reference(QICoreDevice | QICoreOrganization | QICorePatient | QICorePractitioner | QICoreRelatedPerson | Group | CareTeam)Message recipient
... sender SΣ0..1Reference(QICoreDevice | QICoreOrganization | QICorePatient | QICorePractitioner | QICoreRelatedPerson)Message sender
... reasonCode Σ0..*CodeableConceptWhy is communication needed?
Binding: v3 Code System ActReason (example): Codes for describing reasons for the occurrence of a communication.


... reasonReference Σ0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)Why is communication needed?
... note 0..*AnnotationComments made about communication request

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. CommunicationRequest 0..*CommunicationRequestA request for information to be sent to a receiver
... status ?!Σ1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of the communication request.

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


... doNotPerform ?!Σ0..1booleanTrue if request is prohibiting action
... encounter Σ0..1Reference(QICoreEncounter)Encounter created as part of
... recipient 0..*Reference(QICoreDevice | QICoreOrganization | QICorePatient | QICorePractitioner | QICoreRelatedPerson | Group | CareTeam)Message recipient
... sender Σ0..1Reference(QICoreDevice | QICoreOrganization | QICorePatient | QICorePractitioner | QICoreRelatedPerson)Message sender

doco Documentation for this format

Differential View

This structure is derived from CommunicationRequest

NameFlagsCard.TypeDescription & Constraintsdoco
.. CommunicationRequest 0..*CommunicationRequestA request for information to be sent to a receiver
... status S1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
... category S0..*CodeableConceptMessage category
... doNotPerform S0..1booleanTrue if request is prohibiting action
... encounter S0..1Reference(QICoreEncounter)Encounter created as part of
... recipient S0..*Reference(QICoreDevice | QICoreOrganization | QICorePatient | QICorePractitioner | QICoreRelatedPerson | Group | CareTeam)Message recipient
... sender S0..1Reference(QICoreDevice | QICoreOrganization | QICorePatient | QICorePractitioner | QICoreRelatedPerson)Message sender

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. CommunicationRequest 0..*CommunicationRequestA request for information to be sent to a receiver
... 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 Σ0..*IdentifierUnique identifier
... basedOn Σ0..*Reference(Resource)Fulfills plan or proposal
... replaces Σ0..*Reference(CommunicationRequest)Request(s) replaced by this request
... groupIdentifier Σ0..1IdentifierComposite request this is part of
... status ?!SΣ1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of the communication request.

... statusReason 0..1CodeableConceptReason for current status
Binding: (unbound) (example): Codes identifying the reason for the current state of a request.

... category S0..*CodeableConceptMessage category
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instruction, etc.


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

... doNotPerform ?!SΣ0..1booleanTrue if request is prohibiting action
... medium 0..*CodeableConceptA channel of communication
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


... subject S0..1Reference(QICorePatient)Focus of message
... about 0..*Reference(Resource)Resources that pertain to this communication request
... encounter SΣ0..1Reference(QICoreEncounter)Encounter created as part of
... payload 0..*BackboneElementMessage payload
.... 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
.... content[x] 1..1Message part content
..... contentStringstring
..... contentAttachmentAttachment
..... contentReferenceReference(Resource)
... occurrence[x] Σ0..1When scheduled
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
... authoredOn Σ0..1dateTimeWhen request transitioned to being actionable
... requester Σ0..1Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device)Who/what is requesting service
... recipient S0..*Reference(QICoreDevice | QICoreOrganization | QICorePatient | QICorePractitioner | QICoreRelatedPerson | Group | CareTeam)Message recipient
... sender SΣ0..1Reference(QICoreDevice | QICoreOrganization | QICorePatient | QICorePractitioner | QICoreRelatedPerson)Message sender
... reasonCode Σ0..*CodeableConceptWhy is communication needed?
Binding: v3 Code System ActReason (example): Codes for describing reasons for the occurrence of a communication.


... reasonReference Σ0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)Why is communication needed?
... note 0..*AnnotationComments made about communication request

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
CommunicationRequest.languagepreferredCommonLanguages
Max Binding: AllLanguages
CommunicationRequest.statusrequiredRequestStatus
CommunicationRequest.statusReasonexample
CommunicationRequest.categoryexampleCommunicationCategory
CommunicationRequest.priorityrequiredRequestPriority
CommunicationRequest.mediumexampleParticipationMode
CommunicationRequest.reasonCodeexampleActReason

Constraints

IdGradePathDetailsRequirements
dom-2errorCommunicationRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCommunicationRequestIf 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-4errorCommunicationRequestIf 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-5errorCommunicationRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeCommunicationRequestA resource should have narrative for robust management
: text.`div`.exists()
ele-1errorCommunicationRequest.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCommunicationRequest.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCommunicationRequest.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCommunicationRequest.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCommunicationRequest.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.basedOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.replacesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.groupIdentifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.priorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.doNotPerformAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.mediumAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.aboutAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.payloadAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.payload.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCommunicationRequest.payload.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCommunicationRequest.payload.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorCommunicationRequest.payload.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorCommunicationRequest.payload.content[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.occurrence[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.authoredOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.requesterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.recipientAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.senderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorCommunicationRequest.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())