eHealth Infrastructure (v2020.1)

StructureDefinition: ehealth-communication-request

Introduction

The CommunicationRequest resource allows for change in the way eHealth automated processing creates Communication (of profile ehealth-message) as a result of a submitted measurement or lack thereof for a particular Patient and context.

Scope and Usage

In the eHealth Infrastructure, automated processing generates Communication (of profile ehealth-message) in the following cases:

  • Automated processing has been performed on a submitted measurement - whether zero, one or more Communication are created depends on the automated processing rules involved.
  • A measurement is missing, that is, expected measurement has not been submitted
  • A measurement has been submitted at unexpected time

By default, the Communication is created with recipient set to the one or more CareTeam associated with the CarePlan referencing the ProcedureRequest for which the measurement was made.

The CommunicationRequest is used to customize how and when Communications are created by automated processing:

  • For a CareTeam, the CommunicationRequest specifies suppression of setting the CareTeam as recipient of Communication
  • For a Patient, the CommunicationRequest specifies additional creation of Communication with the Patient as recipient

If multiple CommunicationRequests for the same recipient are found, then only the newest is considered valid.

Suppression of setting a CareTeam as recipient in Communication

When automated processing creates Communication about a specific ProcedureRequest and Patient, the CareTeam is not set as recipient when a CommunicationRequest exists where:

  • basedOn references the ProcedureRequest
  • recipient references the CareTeam
  • reasonCode matches the Communication reasonCode (of the Communication created for CareTeam).
  • priority matches the Task priority (of the Task created for CareTeam).
  • status is ‘suspended’

Setting the status to any other value than ‘suspended’ disables the specified suppression of Communication with the CareTeam as recipient. The Communication is created with recipient set as the remaining one or more CareTeam referenced from the CarePlan referencing the ProcedureRequest. In case no remaining CareTeam are referenced from the CarePlan, no Communication is created.

Creation of Communication with Patient as recipient

When automated processing creates Communication about a specific ProcedureRequest and Patient, additional Communication with the Patient as recipient is created if a CommunicationRequest exists where:

  • basedOn references the ProcedureRequest
  • recipient references the Patient
  • reasonCode matches the Communication reasonCode (of the Communication created for CareTeam).
  • priority matches the Task priority (of the Task created for CareTeam).
  • status is ‘active’

Setting the status to ‘suspended’ disables the specified creation of Communication with the Patient as recipient.

Override medium and payload

It is possible to use CommunicationRequest to override some default values of the Communication:

  • medium of the Communication (created for the Patient or Careteam) overrides the Communication medium (of the Communication created for CareTeam).
  • payload of the Communication (created for the Patient) overrides the Communication payload (of the Communication created for CareTeam).

Boundaries and Relationships

A CommunicationRequest is related to Communication (ehealth-message), Task (ehealth-task), and ProcedureRequest (ehealth-procedureRequest).

Formal Views of Profile Content

The official URL for this profile is:

http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-request

This profile builds on CommunicationRequest.

This profile was published on Tue Feb 04 09:11:17 UTC 2020 as a draft by ehealth.sundhed.dk.

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

This structure is derived from CommunicationRequest

Summary

Mandatory: 3 elements

This structure is derived from CommunicationRequest

NameFlagsCard.TypeDescription & Constraintsdoco
.. CommunicationRequest I0..*CommunicationRequestA request for information to be sent to a receiver
... id Σ0..1idLogical 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: Common Languages (extensible)
Max Binding: All Languages
... text I0..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 Σ1..1Reference(ProcedureRequest)Fulfills plan or proposal
... replaces Σ0..*Reference(CommunicationRequest)Request(s) replaced by this request
... groupIdentifier Σ0..1IdentifierComposite request this is part of
... status ?!Σ1..1codedraft | active | suspended | cancelled | completed | entered-in-error | unknown
Binding: RequestStatus (required)
... category 0..*CodeableConceptMessage category
Binding: MessageCategory (example)
... priority Σ0..1codeMessage urgency
Binding: RequestPriority (required)
... medium 0..*CodeableConceptA channel of communication
Binding: MessageMedium (example)
... subject 1..1Reference(Patient)Focus of message
... recipient 0..*Reference(Patient | CareTeam)Message recipient
... topic 0..*Reference(Resource)Focal resources
... context Σ1..1Reference(EpisodeOfCare)Encounter or episode leading to message
... payload I0..*BackboneElementMessage payload
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... 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
... sender 0..1Reference(Device | Organization | Patient | Practitioner | RelatedPerson)Message sender
... requester ΣI0..1BackboneElementWho/what is requesting service
cmr-1: onBehalfOf can only be specified if agent is practitioner or device
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... agent Σ1..1Reference(Practitioner | Organization | Patient | RelatedPerson | Device)Individual making the request
.... onBehalfOf ΣI0..1Reference(Organization)Organization agent is acting for
... reasonCode Σ0..*CodeableConceptWhy is communication needed?
Binding: ActReason (example)
... reasonReference Σ0..*Reference(Condition | Observation)Why is communication needed?
... note 0..*AnnotationComments made about communication request

doco Documentation for this format

This structure is derived from CommunicationRequest

Summary

Mandatory: 3 elements

Differential View

This structure is derived from CommunicationRequest

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. CommunicationRequest I0..*CommunicationRequestA request for information to be sent to a receiver
... id Σ0..1idLogical 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: Common Languages (extensible)
Max Binding: All Languages
... text I0..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 Σ1..1Reference(ProcedureRequest)Fulfills plan or proposal
... replaces Σ0..*Reference(CommunicationRequest)Request(s) replaced by this request
... groupIdentifier Σ0..1IdentifierComposite request this is part of
... status ?!Σ1..1codedraft | active | suspended | cancelled | completed | entered-in-error | unknown
Binding: RequestStatus (required)
... category 0..*CodeableConceptMessage category
Binding: MessageCategory (example)
... priority Σ0..1codeMessage urgency
Binding: RequestPriority (required)
... medium 0..*CodeableConceptA channel of communication
Binding: MessageMedium (example)
... subject 1..1Reference(Patient)Focus of message
... recipient 0..*Reference(Patient | CareTeam)Message recipient
... topic 0..*Reference(Resource)Focal resources
... context Σ1..1Reference(EpisodeOfCare)Encounter or episode leading to message
... payload I0..*BackboneElementMessage payload
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... 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
... sender 0..1Reference(Device | Organization | Patient | Practitioner | RelatedPerson)Message sender
... requester ΣI0..1BackboneElementWho/what is requesting service
cmr-1: onBehalfOf can only be specified if agent is practitioner or device
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... agent Σ1..1Reference(Practitioner | Organization | Patient | RelatedPerson | Device)Individual making the request
.... onBehalfOf ΣI0..1Reference(Organization)Organization agent is acting for
... reasonCode Σ0..*CodeableConceptWhy is communication needed?
Binding: ActReason (example)
... reasonReference Σ0..*Reference(Condition | Observation)Why is communication needed?
... note 0..*AnnotationComments made about communication request

doco Documentation for this format

 

Terminology Bindings

PathConformanceValueSet
CommunicationRequest.languageextensibleCommon Languages
Max Binding: All Languages
CommunicationRequest.statusrequiredRequestStatus
CommunicationRequest.categoryexampleMessageCategory
CommunicationRequest.priorityrequiredRequestPriority
CommunicationRequest.mediumexampleMessageMedium
CommunicationRequest.reasonCodeexamplev3 Code System ActReason

Constraints

IdPathDetailsRequirements
dom-2CommunicationRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-1CommunicationRequestIf the resource is contained in another resource, it SHALL NOT contain any narrative
: contained.text.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-3CommunicationRequestIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource
: contained.where(('#'+id in %resource.descendants().reference).not()).empty()
ele-1CommunicationRequest.payloadAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
ele-1CommunicationRequest.requesterAll FHIR elements must have a @value or children
: hasValue() | (children().count() > id.count())
cmr-1CommunicationRequest.requesteronBehalfOf can only be specified if agent is practitioner or device
: (agent.resolve() is Practitioner) or (agent.resolve() is Device) or onBehalfOf.exists().not()
.