FHIR Clinical Guidelines (v1.0.0) (STU1)

Clinical Practice Guidelines, published by Clinical Decision Support WG. This is not an authorized publication; it is the continuous build for version 1.0.0). This version is based on the current content of https://github.com/HL7/cqf-recommendations/ and changes regularly. See the Directory of published versions

D.4.1 StructureDefinition-cpg-communicationrequest

Introduction:

This is an activity request profile

Examples:

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-communicationrequest

Recommendation for a specific communication with the patient or other participant as part of the delivery of a computable clinical practice guideline

This profile builds on CommunicationRequest.

This profile was published on Thu Jun 06 00:00:00 UTC 2019 as a draft by Health Level Seven, Inc. - CDS WG.

Description of Profiles, Differentials, and Snapshots.

Summary

Must-Support: 14 elements

Extensions

This structure refers to these extensions:

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..*ExtensionExtension
Slice: Unordered, Open by value:url
... workflow-instantiatesCanonical S0..1canonical(ActivityDefinition | Measure | OperationDefinition | PlanDefinition | Questionnaire)Source
URL: http://hl7.org/fhir/StructureDefinition/workflow-instantiatesCanonical
... cpg-rationale S0..1markdownExplanation
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-rationale
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ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 S0..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 SΣ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(Patient | Group)Focus of message
... about S0..*Reference(Resource)Pertinent information
... encounter SΣ0..1Reference(Encounter)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 SΣ0..1Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device)Who/what is requesting service
... recipient S0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService)Message recipient
... sender SΣ0..1Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService)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

Summary

Must-Support: 14 elements

Extensions

This structure refers to these extensions:

Differential View

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..*ExtensionExtension
Slice: Unordered, Open by value:url
... workflow-instantiatesCanonical S0..1canonical(ActivityDefinition | Measure | OperationDefinition | PlanDefinition | Questionnaire)Source
URL: http://hl7.org/fhir/StructureDefinition/workflow-instantiatesCanonical
... cpg-rationale S0..1markdownExplanation
URL: http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-rationale
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ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 S0..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 SΣ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(Patient | Group)Focus of message
... about S0..*Reference(Resource)Pertinent information
... encounter SΣ0..1Reference(Encounter)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 SΣ0..1Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device)Who/what is requesting service
... recipient S0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService)Message recipient
... sender SΣ0..1Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService)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

 

D.4.1.2 Terminology Bindings

Terminology Bindings

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

D.4.1.3 Constraints

Constraints

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