CommunicationRequest
Introduction
Scope and Usage
CommunicationRequest is one of the request resources in the FHIR workflow specification.
This resource is a record of a request for a communication to be performed. A communication is a conveyance of information from one entity, a sender, to another entity, a receiver. The requester requests the sender to send the payload to the recipient. The sender and receivers may be patients, practitioners, related persons, organizations, and devices. Some uses of communication request include:
- A computer-based decision-support system requesting a reminder or alert be delivered to a responsible provider
- A physician requesting notification from the nurse if a patient's temperature exceeds a value
- A monitoring system or a provider requesting a staff member or department to notify a public health agency of a patient presenting with a communicable disease reportable to the public health agency
- A computer-based decision-support system proposes to send educational material to a patient
- A physician requesting that the results of an imaging order they placed are also sent to a third party (provider, organization, etc.)
Boundaries and Relationships
This resource is a record of a request. It does not represent the actual flow of communication.
The use of CommunicationRequest excludes requests for referrals and requests for therapy or counseling which would be handled by the ServiceRequest resource. The fulfillment of a CommunicationRequest may result in a Communication resource.
The CommunicationRequest resource represents an authorization for a service to be provided. Details about the fulfillment of the authorization are handled by the Task resource. For further information about this separation of responsibilities, refer to the Fulfillment/Execution section of the Request pattern.
Background and Context
Provides additional detail on exactly how the resource is to be used
Notes
Notes to reviewers:
At this time, the code bindings are placeholders to be fleshed out upon further review by the community.
CommunicationRequest.sender and CommunicationRequest.recepient
CommunicationRequest.sender allows Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService and CommunicationRequest.recipient allows Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService - but it is not unusual to have a communication target - even a defined one - where it is unknown what kind of role the person is playing.
If the communication request is to or from an individual, whose role is not known (practitioner, patient or related person), - for example, only email address is captured in the system; then RelatedPerson should be used by default.
StructureDefinition
Elements (Simplified)
- CommunicationRequest [0..*]: - A request to convey information from a sender to a recipient
- CommunicationRequest.identifier [0..*]: Identifier Unique identifier
- CommunicationRequest.basedOn [0..*]: Reference(Resource) Fulfills plan or proposal
- CommunicationRequest.replaces [0..*]: Reference(CommunicationRequest) Request(s) replaced by this request
- CommunicationRequest.groupIdentifier [0..1]: Identifier Composite request this is part of
- CommunicationRequest.status [1..1]: code required:request-status draft | active | on-hold | entered-in-error | ended | completed | revoked | unknown
- CommunicationRequest.statusReason [0..1]: CodeableConcept example:communication-request-status-reason Reason for current status
- CommunicationRequest.intent [1..1]: code required:request-intent proposal | solicit-offer | offer-response | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
- CommunicationRequest.category [0..*]: CodeableConcept example:communication-category Message category
- CommunicationRequest.priority [0..1]: code required:request-priority routine | urgent | asap | stat
- CommunicationRequest.doNotPerform [0..1]: boolean True if request is prohibiting action
- CommunicationRequest.medium [0..*]: CodeableConcept example:v3-ParticipationMode A channel of communication
- CommunicationRequest.subject [0..1]: [Reference(Patient](/Reference(Patient), Group)) Focus of message
- CommunicationRequest.about [0..*]: Reference(Resource) Resources that pertain to this communication request
- CommunicationRequest.encounter [0..1]: Reference(Encounter) The Encounter during which this CommunicationRequest was created
- CommunicationRequest.payload [0..*]: BackboneElement Message payload
- CommunicationRequest.payload.content[x] [1..1]: Attachment, Reference(Resource), CodeableConcept Message part content
- CommunicationRequest.occurrence[x] [0..1]: dateTime, Period When scheduled
- CommunicationRequest.authoredOn [0..1]: dateTime When request transitioned to being actionable
- CommunicationRequest.requester [0..1]: [Reference(Practitioner](/Reference(Practitioner), PractitionerRole, Organization, Patient, RelatedPerson, Device, Group)) Who asks for the information to be shared
- CommunicationRequest.recipient [0..*]: [Reference(Device](/Reference(Device), Organization, Patient, Practitioner, PractitionerRole, RelatedPerson, Group, CareTeam, HealthcareService, Endpoint)) Who to share the information with
- CommunicationRequest.informationProvider [0..*]: [Reference(Device](/Reference(Device), Organization, Patient, Practitioner, PractitionerRole, RelatedPerson, HealthcareService, Endpoint, Group)) Who should share the information
- CommunicationRequest.reason [0..*]: CodeableReference example:v3-ActReason Why is communication needed?
- CommunicationRequest.note [0..*]: Annotation Comments made about communication request
Mappings
- CommunicationRequest Mappings — 43 mapping entries
Implementation Guide
implementationguide-CommunicationRequest-core.xml
<?xml version="1.0" encoding="UTF-8"?>
<ImplementationGuide xmlns="http://hl7.org/fhir">
<id value="CommunicationRequest-core"/>
<version value="0.1"/>
<name value="CommunicationRequestHL7Extensions"/>
<title value="Communication Request H L7 Extensions"/>
<status value="draft"/>
<date value="2015-02-21T00:00:00.000"/>
<publisher value="Health Level Seven, Inc. - FHIR WG"/>
<description value="Defines common extensions used with or related to the CommunicationRequest resource"/>
</ImplementationGuide>
Resource Packs
list-CommunicationRequest-packs.xml
<?xml version="1.0" encoding="UTF-8"?>
<List xmlns="http://hl7.org/fhir">
<id value="CommunicationRequest-packs"/>
<status value="current"/>
<mode value="working"/>
<entry>
<item>
<reference value="ImplementationGuide/CommunicationRequest-core"/>
</item>
</entry>
</List>
Search Parameters
- authored — date — When request transitioned to being actionable —
CommunicationRequest.authoredOn - based-on — reference — Fulfills plan or proposal —
CommunicationRequest.basedOn - category — token — Message category —
CommunicationRequest.category - encounter — reference — The Encounter during which this CommunicationRequest was created —
CommunicationRequest.encounter - group-identifier — token — Composite request this is part of —
CommunicationRequest.groupIdentifier - identifier — token — Unique identifier —
CommunicationRequest.identifier - information-provider — reference — Who should share the information —
CommunicationRequest.informationProvider - medium — token — A channel of communication —
CommunicationRequest.medium - occurrence — date — When scheduled —
CommunicationRequest.occurrence.ofType(dateTime) | CommunicationRequest.occurrence.ofType(Period) - patient — reference — Focus of message —
CommunicationRequest.subject.where(resolve() is Patient) - priority — token — routine | urgent | asap | stat —
CommunicationRequest.priority - recipient — reference — Who to share the information with —
CommunicationRequest.recipient - replaces — reference — Request(s) replaced by this request —
CommunicationRequest.replaces - requester — reference — Who asks for the information to be shared —
CommunicationRequest.requester - status — token — draft | active | on-hold | revoked | completed | entered-in-error | unknown —
CommunicationRequest.status - subject — reference — Focus of message —
CommunicationRequest.subject - about — reference — Resources that pertain to this communication request —
CommunicationRequest.about
Examples
- communicationrequest-example — communicationrequest-example
- communicationrequest-example-fm-solicit-attachment — communicationrequest-example-fm-solicit-attachment
- communicationrequest-examples-header — communicationrequest-examples-header
- example — communicationrequest-example — An example of an alert message
- fm-solicit — communicationrequest-example-fm-solicit-attachment — An example of a request for additional information
Mapping Exceptions
communicationrequest-fivews-mapping-exceptions.xml
Divergent Elements
- FiveWs.class → CommunicationRequest.intent
- FiveWs.context → CommunicationRequest.about
Unmapped Elements
- FiveWs.what — Unknown
- FiveWs.cause — Unknown
- FiveWs.version — Unknown
- FiveWs.witness — Unknown
- FiveWs.where — Unknown
- FiveWs.init — Unknown
- FiveWs.source — Unknown
- FiveWs.who — Unknown
- FiveWs.done — Unknown
communicationrequest-request-mapping-exceptions.xml
Divergent Elements
- Request.identifier → CommunicationRequest.identifier
- shortUnmatched | reason=Unknown | pattern=Business Identifier for communication request | resource=Unique identifier
- definitionUnmatched | reason=Unknown | pattern=Business identifiers assigned to this communication request by the author and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server. | resource=Business identifiers assigned to this communication request by the performer or other systems which remain constant as the resource is updated and propagates from server to server.
- commentsUnmatched | reason=Unknown | pattern=The identifier.type element is used to distinguish between the identifiers assigned by the requester/placer and the performer/filler.
Note: This is a business identifier, not a resource identifier (see discussion). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number. | resource=This is a business identifier, not a resource identifier (see discussion). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number.
- Request.basedOn → CommunicationRequest.basedOn
- missingTypes | reason=Unknown | pattern=Reference(Request)
- extraTypes | reason=Unknown
- shortUnmatched | reason=Unknown | pattern=Fulfills plan, proposal or order | resource=Fulfills plan or proposal
- definitionUnmatched | reason=Unknown | pattern=A higher-level request resource (i.e. a plan, proposal or order) that is fulfilled in whole or in part by this communication request. Authorization from the 'basedOn' request flows through to the referencing communication request. | resource=A plan or proposal that is fulfilled in whole or in part by this request.
- commentsUnmatched | reason=Unknown | pattern=basedOn represents the 'authorization' chain for an action, not the 'reason for action'. For example, an order might be placed on hold under the authorization for a surgery. However the 'reason' for placing the hold is "to avoid interaction with anesthesia medications" .
- Request.replaces → CommunicationRequest.replaces
- missingTypes | reason=Unknown | pattern=Reference(Request)
- extraTypes | reason=Unknown
- shortUnmatched | reason=Unknown | pattern=Request(s) replaced by this communication request | resource=Request(s) replaced by this request
- definitionUnmatched | reason=Unknown | pattern=Completed or terminated request(s) whose function is taken by this new communication request. | resource=Completed or terminated request(s) whose function is taken by this new request.
- Request.groupIdentifier → CommunicationRequest.groupIdentifier
- definitionUnmatched | reason=Unknown | pattern=A shared identifier common to all requests that were authorized more or less simultaneously by a single author, representing the identifier of the requisition, prescription or similar form. | resource=A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time.
- requirementsUnmatched | reason=Unknown | pattern=Some business processes need to know if multiple items were ordered as part of the same "prescription" or "requisition" for billing or other purposes.
- Request.status → CommunicationRequest.status
- shortUnmatched | reason=Unknown | pattern=draft | active | on-hold | revoked | completed | entered-in-error | unknown | resource=draft | active | on-hold | entered-in-error | ended | completed | revoked | unknown
- definitionUnmatched | reason=Unknown | pattern=The current state of the communication request. | resource=The status of the proposal or order.
- commentsUnmatched | reason=Unknown | pattern=The status is generally fully in the control of the requester - they determine whether the order is draft or active and, after it has been activated, completed, cancelled or suspended. States relating to the activities of the performer are reflected on either the corresponding]](s) or using the]] resource. A nominal state-transition diagram can be found in the] documentation Unknown does not represent "other" - one of the defined statuses must apply. Unknown is used when the authoring system is not sure what the current status is. A status of 'active' when doNotPerform is true means that the request to not perform is currently in force.
A status of completed for a "doNotPerform" request indicates that the period of non-performance is now satisfied and the request no longer holds.
- Request.statusReason → CommunicationRequest.statusReason
- definitionUnmatched | reason=Unknown | pattern=Captures the reason for the current state of the communication request. Note that any change to the state requires the removal of any existing statusReasons, and, if appropriate, populating new statusReasons. | resource=Captures the reason for the current state of the CommunicationRequest.
- commentsUnmatched | reason=Unknown | pattern=This is generally only used for "exception" statuses such as "suspended" or "cancelled". The reason why the communication request was created at all is captured in reasonCode, not here. . | resource=This is generally only used for "exception" statuses such as "on-hold" or "revoked". The reason why the CommunicationRequest was created at all is captured in reasonCode, not here.
- Request.intent → CommunicationRequest.intent
- shortUnmatched | reason=Unknown | pattern=proposal | plan | order (immutable) | resource=proposal | solicit-offer | offer-response | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
- definitionUnmatched | reason=Unknown | pattern=Indicates the level of authority/intentionality associated with the communication request and where the request fits into the workflow chain. | resource=Indicates the level of authority/intentionality associated with the CommunicationRequest and where the request fits into the workflow chain.
- commentsUnmatched | reason=Unknown | pattern=This element is expected to be immutable. E.g. A "proposal" instance should never change to be a "plan" instance or "order" instance. Instead, a new instance 'basedOn' the prior instance should be created with the new 'intent' value.
One exception to this is that the granularity of Request.intent is allowed to change. For example, a Request identified as an "order" might later be clarified to be a "filler-order". Or, in rarer cases (to meet recipient constraints), the reverse might also occur.
When resources map to this element, they are free to define as many codes as necessary to cover their space and will map to "proposal, plan or order". Can have multiple codes that map to one of these. E.g. "original order", "encoded order", "reflex order" would all map to "order". Expectation is that the set of codes is mutually exclusive or a strict all-encompassing hierarchy. | resource=This element is expected to be immutable. E.g. A "proposal" instance should never change to be a "plan" instance or "order" instance. Instead, a new instance 'basedOn' the prior instance should be created with the new 'intent' value.
One exception to this is that the granularity of CommunicationRequest.intent is allowed to change. For example, a Request identified as an "order" might later be clarified to be a "filler-order". Or, in rarer cases (to meet recipient constraints), the reverse might also occur.
- Request.priority → CommunicationRequest.priority
- definitionUnmatched | reason=Unknown | pattern=Indicates how quickly the communication request should be addressed with respect to other requests. | resource=Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine.
- Request.doNotPerform → CommunicationRequest.doNotPerform
- shortUnmatched | reason=Unknown | pattern=true if request is prohibiting action | resource=True if request is prohibiting action
- definitionUnmatched | reason=Unknown | pattern=If true indicates that the communication request is asking for the specified action to not occur. | resource=If true indicates that the CommunicationRequest is asking for the specified action to not occur.
- commentsUnmatched | reason=Unknown | pattern=The attributes provided with the request qualify what is not to be done. For example, if an effectiveTime is provided, the "do not" request only applies within the specified time. If a performerType is specified then the "do not" request only applies to performers of that type. Qualifiers include: code, subject, occurrence, performerType and performer.
In some cases, the Request.code may pre-coordinate prohibition into the requested action. E.g. "NPO" (nothing by mouth), "DNR" (do not recussitate). If this happens, doNotPerform SHALL NOT be set to true. I.e. The resource shall not have double negation. (E.g. "Do not DNR"). | resource=The attributes provided with the request qualify what is not to be done.
- requirementsUnmatched | reason=Unknown | pattern=Supports things like Do Not Recussitate, Nothing by mouth, etc.
- Request.subject → CommunicationRequest.subject
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Individual the service is ordered/prohibited for | resource=Focus of message
- definitionUnmatched | reason=Unknown | pattern=The individual or set of individuals the action is to be performed/not performed on or for. | resource=The patient or group that is the focus of this communication request.
- requirementsUnmatched | reason=Unknown | pattern=Links the request to the Patient context.
- Request.encounter → CommunicationRequest.encounter
- shortUnmatched | reason=Unknown | pattern=Encounter the communication request is tied to | resource=The Encounter during which this CommunicationRequest was created
- definitionUnmatched | reason=Unknown | pattern=The Encounter during which this communication request was created or to which the creation of this record is tightly associated. | resource=The Encounter during which this CommunicationRequest was created or to which the creation of this record is tightly associated.
- commentsUnmatched | reason=Unknown | pattern=This will typically be the encounter during which the communication request was created. However, some {{title}s may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission activities). | resource=This will typically be the encounter the event occurred within, but some activities may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter.
- requirementsUnmatched | reason=Unknown | pattern=Links the communication request to the Encounter context.
- Request.occurrence[x] → CommunicationRequest.occurrence[x]
- missingTypes | reason=Unknown | pattern=Timing
- shortUnmatched | reason=Unknown | pattern=When service should (not) occur | resource=When scheduled
- definitionUnmatched | reason=Unknown | pattern=The date or time(s) at which the activity or service is desired to occur or not occur. | resource=The time when this communication is to occur.
- Request.authoredOn → CommunicationRequest.authoredOn
- shortUnmatched | reason=Unknown | pattern=When request was created/transitioned to active | resource=When request transitioned to being actionable
- definitionUnmatched | reason=Unknown | pattern=For draft communication requests, indicates the date of initial creation. For requests with other statuses, indicates the date of activation. | resource=For draft requests, indicates the date of initial creation. For requests with other statuses, indicates the date of activation.
- Request.requester → CommunicationRequest.requester
- extraTypes | reason=Unknown
- shortUnmatched | reason=Unknown | pattern=Who/what is requesting service | resource=Who asks for the information to be shared
- definitionUnmatched | reason=Unknown | pattern=Who initiated the {{request}} and has responsibility for its activation. | resource=The device, individual, or organization who asks for the information to be shared.
- Request.performer → CommunicationRequest.recipient
- extraTypes | reason=Unknown
- summary | reason=Unknown | pattern=true
- shortUnmatched | reason=Unknown | pattern=Specific desired (non)performer | resource=Who to share the information with
- definitionUnmatched | reason=Unknown | pattern=Indicates who or what is being asked to perform (or not perform) the {{request}}. | resource=The entity (e.g. person, organization, clinical information system, device, group, or care team) which is the intended target of the communication.
- Request.performer → CommunicationRequest.informationProvider
- missingTypes | reason=Unknown | pattern=Reference(CareTeam)
- extraTypes | reason=Unknown
- shortUnmatched | reason=Unknown | pattern=Specific desired (non)performer | resource=Who should share the information
- definitionUnmatched | reason=Unknown | pattern=Indicates who or what is being asked to perform (or not perform) the {{request}}. | resource=The entity (e.g. person, organization, clinical information system, or device) which is to be the source of the communication.
- Request.reason → CommunicationRequest.reason
- shortUnmatched | reason=Unknown | pattern=Why is service (not) needed? | resource=Why is communication needed?
- definitionUnmatched | reason=Unknown | pattern=Describes why the request is being made in coded or textual form, or Indicates another resource whose existence justifies this request. | resource=Describes why the request is being made in coded or textual form.
- commentsUnmatched | reason=Unknown | pattern=Textual reasons can be captured using reasonCode.text. If doNoPerform is true, this will be the reason why the request is being made to not act. | resource=Textual reasons can be captured using reasonCode.text.
- Request.supportingInfo → CommunicationRequest.about
- missingTypes | reason=Unknown | pattern=Reference(Any)
- extraTypes | reason=Unknown
- shortUnmatched | reason=Unknown | pattern=Extra information to use in performing request | resource=Resources that pertain to this communication request
- definitionUnmatched | reason=Unknown | pattern=Information that may be needed by/relevant to the performer in their execution of this communication request. | resource=Other resources that pertain to this communication request and to which this communication request should be associated.
- commentsUnmatched | reason=Unknown | pattern=See guidance on notes vs. supportingInfo. | resource=Don't use CommunicationRequest.about element when a more specific element exists, such as basedOn, reasonReference, or replaces.
- Request.note → CommunicationRequest.payload.content[x]
- missingTypes | reason=Unknown | pattern=Annotation
- extraTypes | reason=Unknown
- shortUnmatched | reason=Unknown | pattern=Comments made about communication request | resource=Message part content
- definitionUnmatched | reason=Unknown | pattern=Comments made about the communication request by the requester, performer, subject or other participants. | resource=The content (or for multi-part communications, one portion of the communication) to be communicated.
- commentsUnmatched | reason=Unknown | pattern=See guidance on notes vs. supportingInfo. | resource=The content can be codified or textual. As an example of codified content, when working with machine generated communications, the payload may be drawn from a finite, terminology defined set of communications, especially for short, status update kinds of communications where more of a natural language approach isn't appropriate.
If the content isn't codified, contentCodeableConcept.text can be used.
When using contentCodeableConcept, the CodeableConcept is what is being communicated and is not a categorization of the content.
- Request.note → CommunicationRequest.note
- definitionUnmatched | reason=Unknown | pattern=Comments made about the communication request by the requester, performer, subject or other participants. | resource=Comments made about the request by the requester, sender, recipient, subject or other participants.
- commentsUnmatched | reason=Unknown | pattern=See guidance on notes vs. supportingInfo.
Unmapped Elements
- Request.insurance — Unknown
- Request.deliverTo — Unknown
- Request.category — Unknown
- Request.reported — Unknown
- Request.relevantHistory — Unknown
- Request.code — Unknown
- Request.performerType — Unknown
- Request.product — Unknown