eHealth Infrastructure
3.3.0 - ci-build Denmark flag

eHealth Infrastructure, published by Den telemedicinske infrastruktur (eHealth Infrastructure). This guide is not an authorized publication; it is the continuous build for version 3.3.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/fut-infrastructure/implementation-guide/ and changes regularly. See the Directory of published versions

Resource Profile: ehealth-message

Official URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-message Version: 3.3.0
Active as of 2024-12-20 Computable Name: ehealth-message

Introduction

An ehealth-message defines written communication and comes in four flavours depending on the "category" of the message:

  • Message: For sending user-generated messages from Patients and CareTeams (Practitioners) to Patients or CareTeams. Messages may not be sent between Patients or between Practitioners. When sending a message to a CareTeam, it is possible to narrow the recipient to be of a certain role. This is done by setting the "restriction-category" extension to a specific role value.
  • Notification: Must regard an incident or event that has already occurred, where the sender must be of type Device, and the recipient must be a Patient or CareTeam. These are usually text-based, and may have a temporal validity attached (see "period" extension) to indicate at which point a notification is no longer valid. When sent, a notification may no longer be updated by the sender.
  • Advise: Advise is much like notifications. They may also have a validity period, but they may only concern a future planned event, eg. a measurement or online meeting which is to take place. The sender must be of type Device, and the recipient must be a Patient or CareTeam
  • Note: For personal notes (written by a Patient or Practitioner), which may be shared with a CareTeam. A personal note must be created with sender=recipient. In case a personal note wants to be shared with a CareTeam, the CareTeam must be referred by the recipientCareTeam extension, and the receiver deleted (both can take place in the same PATCH operation). A personal note may be updated by the sender, but not by the recipient.

An ehealth-message may refer related resources (eg. Device, CarePlan, Appointment etc) using the "about" field, no matter which category it is. Different instances of ehealth-message may be logically organized into "threads" by assigning the same thread-id in the provided extension. Similarly, they may be organized in a group (eg. group messages) by assigning the same group-id in that extension. The message subject may be provided in the title extension, and an optional priority may be provided in the ehealth-priority extension.

Remarks about status and administrative-status

The ehealth-message profile contains two status fields:

  • status:
    • For notes (category='note') the status field has no restrictions or implications
    • For messages (category='message') the following status transitions rules are in effect:
      • A message is considered "not yet sent" when it has one of the following status and can freely transition from one to another: 'preparation', 'on-hold', 'not-done', 'entered-in-error'
      • A message is considered "being sent" when created or patched into status 'in-progress' and cannot be patched further or deleted by the sender
        • The server will automatically transition a message from 'in-progress' to 'completed' when it has been sent successfully (happens immediately for non-NemSMS mediums and is reflected in the returned resource)
        • The server will automatically transition a message from 'in-progress' to 'stopped' if it could not be sent (currently only happens if a NemSMS could not be sent)
      • The client can never create or patch a message into status 'completed' or 'stopped'
      • The sender cannot patch, only delete messages with status 'stopped'
      • The sender cannot patch or delete messages with status 'completed'
      • The recipient can patch /received and administrative-status on messages with status 'completed'
  • administrative-status (extension): Makes it possible for the message recipient to indicate the state of a message. A message may hold an administrative status that defines the last action the recipient took on the message in question. At first, the message has administrative-status "activate". The recipient may mark the message as read by setting administrative-status "read". If the recipient considers the message a sort of "task", the message may also be updated with administrative-status "complete" when the task is done, or "reactivate" if the task was not complete anyway.

Fields with auto-assigned values

Some fields are filled in automatically on message creation, eg. if a sound default value makes sense. These fields are:

  • Field "sent": If message state is set to "in-progress" on creation, then the "sent" field will be assigned current date/time.
  • Extension "restriction-category": If not set by the caller, it will be set to value "None"
  • Extension "thread-id": In case a thread-id is not set by the client, it will be generated server-side (random UUID) at message creation.

Search parameters

The following custom search parameters may be used when searching for ehealth-message instances:

  • administrativeStatus: Specify the desired administrative status using system and code (eg. "http://ehealth.sundhed.dk/cs/administrative-status" and "read")
  • careTeamRecipient: Specify an absolute reference to the CareTeam which must be message recipient
  • careTeamSender: Specify an absolute reference to the CareTeam which must be message sender
  • communicationCategory: Specify the desired category using system and code (eg. "http://ehealth.sundhed.dk/message-category/" and "message")
  • period: Use a date-type search to filter messages that must conform to temporal constraints (eg. notifications that are only valid until a specific point in time)
  • threadId: Specify the logical "thread id" used to correlate messages
  • restrictionCategory: Specify the desired restriction category using system and code (eg. "http://ehealth.sundhed.dk/cs/restriction-category" and "measurement-monitoring")
  • episodeOfCare: Specify the desired episodeOfCare reference (provided in extension http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare)

Scope and Usage

In the eHealth Infrastructure the ehealth-message resource is used in conjunction with the following resources:

  • Patient
    • As sender or recipient of a message
  • Practitioner
    • As sender/recipient of a message (only when category is "note")
  • Device
    • As sender of an ehealth-message (eg. as a result of automatic processing/triage)
  • CareTeam
    • As sender or recipient using the extensions senderCareTeam/recipientCareTeam, respectively

General rules

The following rules apply for the ehealth-message profile:

  • If medium.code is eboks or nemsms, the recipient must be of type Patient
  • Only one of sender or extension senderCareTeam may be filled in
  • Only one of recipient or extension recipientCareTeam may be filled in
  • Medium 'nemsms' may only be used if the Patient allows reception of NemSMS (has telecom with value 'NemSMS'). In that case, a NemSMS message will be sent to the Patient.

NemSMS Notifications

The Patient service will forward ehealth-messages to the public Danish NemSMS service given the following conditions:

  • message.medium.code is 'nemsms' (defined in http://ehealth.sundhed.dk/cs/message-medium)
  • message.status is 'in-progress'

The message is forwarded asynchronously. To track the progress of the NemSMS, the status and statusReason code is used:

  • Initially, a NemSMS is sent like any other message by setting the status to 'in-progress'. The status will remain 'in-progress' while the NemSMS is being dispatched.
  • If the NemSMS dispatch is successful, status is updated to 'completed' by the server.
  • If the NemSMS dispatch fails, status is updated to 'stopped' by the server and statusReason is set to either 'system-error' or 'recipient-unavailable' (defined in http://hl7.org/fhir/R4/valueset-communication-not-done-reason.html)
    • A message.note.text may be added to the message which can contain further information about the reason for dispatch failure in case of 'system-error'

Automatic NemSMS Notifications

Automatic NemSMS notifications is a toggleable feature at the service level. If enabled, the Patient service will generate NemSMS ehealth-messages, notifying the recipient that they have received a message, given the following conditions:

  • message.medium.code is not 'nemsms'
  • message.status is 'completed'
  • message.category is 'message' (defined in http://ehealth.sundhed.dk/cs/message-category)
  • message.recipient is a Patient reference
  • patient.telecom contains ContactPoint 'NemSMS'

The Patient service will generate NemSMS ehealth-messages, notifying patients that they have an appointment or video appointment scheduled for de following day, given the following conditions:

  • appointment.start is current day + 1 day
  • appointment.participant contains one Patient reference
  • patient.telecom contains ContactPoint 'NemSMS'

Update rules

An ehealth-message may not have its category changed, eg. from 'note' to 'message'.
An ehealth-message may be PATCH updated on paths complying with the regular expressions below (provided that security and status transition rules are obeyed)

  • /implicitRules.*
  • /contained.*
  • /recipient.*
  • /definition.*
  • /basedOn.*
  • /partOf.*
  • /topic.*
  • /about.*
  • /context.*
  • /received.*
  • /reasonCode.*
  • /reasonReference.*
  • /payload.*
  • /note.*
  • /status.*
  • /extension.*

Usage:

Formal Views of Profile Content

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

This structure is derived from Communication

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication C 0..* Communication A record of information transmitted from a sender to a receiver
nemsms-invariant: If communication resource is a NemSMS payload cannot exceed 160
note-invariant: Category note invariant
notification-invariant: Category notification invariant
message-invariant: Category message invariant
advice-invariant: Category advice invariant
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... episodeOfCare 0..1 Reference(EpisodeOfCare) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
.... recipientCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam
.... senderCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message sender
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam
.... restrictionCategory 0..* CodeableConcept Restriction category
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category
Binding: Restriction Category (required)
.... threadId 0..1 string Thread id
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id
.... period 0..* Period Specifies the temporal validity of an ehealth/message instance
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period
.... administrativeStatus 1..1 Coding The administrative status of how a message recipient has handled a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-administrative-status
Binding: Administrative Status (required)
.... title 0..1 string Message title
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title
.... priority 0..1 code The priority of a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority
Binding: Priority (required)
.... groupId 0..1 string Logical id identifying a set of messages with the same recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id
.... onBehalfOf S 0..1 Reference(ehealth-careteam) {r} On behalf of
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of
... partOf 0..* Reference(CarePlan) {r} Part of this action
... Slices for category 1..* CodeableConcept Message category
Slice: Unordered, Open by value:coding.system
.... category:DkTmCategory 1..1 CodeableConcept Message category
..... coding
...... system 1..1 uri Identity of the terminology system
Required Pattern: http://ehealth.sundhed.dk/cs/message-category
...... code 0..1 code Symbol in syntax defined by the system
Binding: MessageCategory (required)
.... medium:DkTmMedium 0..1 CodeableConcept A channel of communication
..... coding
...... system 1..1 uri Identity of the terminology system
Required Pattern: http://ehealth.sundhed.dk/cs/message-medium
...... code 0..1 code Symbol in syntax defined by the system
Binding: MessageMedium (required)
... recipient 0..1 Reference(Patient | Practitioner) {r} Message recipient
... sender 0..1 Reference(Device | Patient | Practitioner) {r, c} Message sender
... reasonCode 0..* CodeableConcept Indication for message
Binding: eHealth Message Reason Code (required)
... reasonReference 0..* Reference(Condition | Observation) {r} Why was communication done?
... payload 0..1 BackboneElement Message payload
.... Slices for content[x] 1..1 string Message part content
Slice: Unordered, Closed by type:$this
..... content[x]:contentString 1..1 string Message part content
... note
.... Slices for author[x] 0..1 Reference(Practitioner | Patient | RelatedPerson | Organization), string Individual responsible for the annotation
Slice: Unordered, Open by type:$this
..... author[x]:authorReference 0..1 Reference(ehealth-practitioner | ehealth-patient | ehealth-relatedperson) Individual responsible for the annotation
..... author[x]:authorString 0..1 string Individual responsible for the annotation

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Communication.category:DkTmCategory.coding.coderequiredMessageCategory
http://ehealth.sundhed.dk/vs/message-category
from this IG
Communication.medium:DkTmMedium.coding.coderequiredMessageMedium
http://ehealth.sundhed.dk/vs/message-medium
from this IG
Communication.reasonCoderequiredeHealth Message Reason Code
http://ehealth.sundhed.dk/vs/message-reasonCode
from this IG

Constraints

IdGradePath(s)DetailsRequirements
advice-invarianterrorCommunicationCategory advice invariant
: category.coding.code = 'advice' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())
message-invarianterrorCommunicationCategory message invariant
: category.coding.code = 'message' implies (recipient.reference.contains('Patient/') and ( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists())) or (( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and (sender.reference.contains('Patient/')) or (extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists() ))
nemsms-invarianterrorCommunicationIf communication resource is a NemSMS payload cannot exceed 160
: medium.coding.where(code = 'nemsms').exists() implies payload.contentString.length() <= 160
note-invarianterrorCommunicationCategory note invariant
: category.coding.code = 'note' implies (sender.reference = recipient.reference) or (recipient.reference.exists().not() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists())
notification-invarianterrorCommunicationCategory notification invariant
: category.coding.code = 'notification' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())
NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication C 0..* Communication A record of information transmitted from a sender to a receiver
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
nemsms-invariant: If communication resource is a NemSMS payload cannot exceed 160
note-invariant: Category note invariant
notification-invariant: Category notification invariant
message-invariant: Category message invariant
advice-invariant: Category advice invariant
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... episodeOfCare 0..1 Reference(EpisodeOfCare) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... recipientCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... senderCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message sender
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... restrictionCategory 0..* CodeableConcept Restriction category
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category
Binding: Restriction Category (required)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... threadId 0..1 string Thread id
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... period 0..* Period Specifies the temporal validity of an ehealth/message instance
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... administrativeStatus 1..1 Coding The administrative status of how a message recipient has handled a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-administrative-status
Binding: Administrative Status (required)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... title 0..1 string Message title
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... priority 0..1 code The priority of a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority
Binding: Priority (required)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... groupId 0..1 string Logical id identifying a set of messages with the same recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... onBehalfOf S 0..1 Reference(ehealth-careteam) {r} On behalf of
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... status ?!Σ 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): The status of the communication.


ele-1: All FHIR elements must have a @value or children
... Slices for category 1..* CodeableConcept Message category
Slice: Unordered, Open by value:coding.system
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.


ele-1: All FHIR elements must have a @value or children
.... category:DkTmCategory 1..1 CodeableConcept Message category
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.


ele-1: All FHIR elements must have a @value or children
... Slices for medium 0..* CodeableConcept A channel of communication
Slice: Unordered, Open by value:coding.system
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


ele-1: All FHIR elements must have a @value or children
.... medium:DkTmMedium 0..1 CodeableConcept A channel of communication
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


ele-1: All FHIR elements must have a @value or children
... recipient 0..1 Reference(Patient | Practitioner) {r} Message recipient
ele-1: All FHIR elements must have a @value or children
... sender 0..1 Reference(Device | Patient | Practitioner) {r, c} Message sender
ele-1: All FHIR elements must have a @value or children
... reasonCode Σ 0..* CodeableConcept Indication for message
Binding: eHealth Message Reason Code (required)
ele-1: All FHIR elements must have a @value or children
... reasonReference Σ 0..* Reference(Condition | Observation) {r} Why was communication done?
ele-1: All FHIR elements must have a @value or children
... payload 0..1 BackboneElement Message payload
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... Slices for content[x] 1..1 string Message part content
Slice: Unordered, Closed by type:$this
ele-1: All FHIR elements must have a @value or children
..... content[x]:contentString 1..1 string Message part content
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Communication.categoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.category:DkTmCategoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.mediumexampleParticipationMode
http://terminology.hl7.org/ValueSet/v3-ParticipationMode
Communication.medium:DkTmMediumexampleParticipationMode
http://terminology.hl7.org/ValueSet/v3-ParticipationMode
Communication.reasonCoderequiredeHealth Message Reason Code
http://ehealth.sundhed.dk/vs/message-reasonCode
from this IG

Constraints

IdGradePath(s)DetailsRequirements
advice-invarianterrorCommunicationCategory advice invariant
: category.coding.code = 'advice' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())
message-invarianterrorCommunicationCategory message invariant
: category.coding.code = 'message' implies (recipient.reference.contains('Patient/') and ( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists())) or (( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and (sender.reference.contains('Patient/')) or (extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists() ))
nemsms-invarianterrorCommunicationIf communication resource is a NemSMS payload cannot exceed 160
: medium.coding.where(code = 'nemsms').exists() implies payload.contentString.length() <= 160
note-invarianterrorCommunicationCategory note invariant
: category.coding.code = 'note' implies (sender.reference = recipient.reference) or (recipient.reference.exists().not() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists())
notification-invarianterrorCommunicationCategory notification invariant
: category.coding.code = 'notification' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())
NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication C 0..* Communication A record of information transmitted from a sender to a receiver
nemsms-invariant: If communication resource is a NemSMS payload cannot exceed 160
note-invariant: Category note invariant
notification-invariant: Category notification invariant
message-invariant: Category message invariant
advice-invariant: Category advice invariant
... 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
.... episodeOfCare 0..1 Reference(EpisodeOfCare) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
.... recipientCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam
.... senderCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message sender
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam
.... restrictionCategory 0..* CodeableConcept Restriction category
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category
Binding: Restriction Category (required)
.... threadId 0..1 string Thread id
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id
.... period 0..* Period Specifies the temporal validity of an ehealth/message instance
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period
.... administrativeStatus 1..1 Coding The administrative status of how a message recipient has handled a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-administrative-status
Binding: Administrative Status (required)
.... title 0..1 string Message title
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title
.... priority 0..1 code The priority of a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority
Binding: Priority (required)
.... groupId 0..1 string Logical id identifying a set of messages with the same recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id
.... onBehalfOf S 0..1 Reference(ehealth-careteam) {r} On behalf of
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of
... 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(CarePlan) {r} Part of this action
... inResponseTo 0..* Reference(Communication) Reply to
... status ?!Σ 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): The status of the communication.

... statusReason Σ 0..1 CodeableConcept Reason for current status
Binding: CommunicationNotDoneReason (example): Codes for the reason why a communication did not happen.

... Slices for category 1..* CodeableConcept Message category
Slice: Unordered, Open by value:coding.system
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.


.... category:DkTmCategory 1..1 CodeableConcept Message category
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.


..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ 0..* Coding Code defined by a terminology system
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://ehealth.sundhed.dk/cs/message-category
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 0..1 code Symbol in syntax defined by the system
Binding: MessageCategory (required)
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... text Σ 0..1 string Plain text representation of the concept
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Codes indicating the relative importance of a communication.

... Slices for medium 0..* CodeableConcept A channel of communication
Slice: Unordered, Open by value:coding.system
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


.... medium:DkTmMedium 0..1 CodeableConcept A channel of communication
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ 0..* Coding Code defined by a terminology system
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://ehealth.sundhed.dk/cs/message-medium
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 0..1 code Symbol in syntax defined by the system
Binding: MessageMedium (required)
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... text Σ 0..1 string Plain text representation of the concept
... subject Σ 0..1 Reference(Patient | Group) Focus of message
... topic 0..1 CodeableConcept Description of the purpose/content
Binding: CommunicationTopic (example): Codes describing the purpose or content of the communication.

... about 0..* Reference(Resource) Resources that pertain to this communication
... encounter Σ 0..1 Reference(Encounter) Encounter created as part of
... sent 0..1 dateTime When sent
... received 0..1 dateTime When received
... recipient 0..1 Reference(Patient | Practitioner) {r} Message recipient
... sender 0..1 Reference(Device | Patient | Practitioner) {r, c} Message sender
... reasonCode Σ 0..* CodeableConcept Indication for message
Binding: eHealth Message Reason Code (required)
... reasonReference Σ 0..* Reference(Condition | Observation) {r} Why was communication done?
... payload 0..1 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
.... Slices for content[x] 1..1 string Message part content
Slice: Unordered, Closed by type:$this
..... content[x]:contentString 1..1 string Message part content
... note 0..* Annotation Comments made about the communication
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for author[x] Σ 0..1 Individual responsible for the annotation
Slice: Unordered, Closed by type:$this
..... authorReference Reference(Practitioner | Patient | RelatedPerson | Organization)
..... authorString string
..... author[x]:authorReference Σ 0..1 Reference(ehealth-practitioner | ehealth-patient | ehealth-relatedperson) Individual responsible for the annotation
..... author[x]:authorString Σ 0..1 string Individual responsible for the annotation
.... time Σ 0..1 dateTime When the annotation was made
.... text Σ 1..1 markdown The annotation - text content (as markdown)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Communication.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Communication.statusReasonexampleCommunicationNotDoneReason
http://hl7.org/fhir/ValueSet/communication-not-done-reason
from the FHIR Standard
Communication.categoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.category:DkTmCategoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.category:DkTmCategory.coding.coderequiredMessageCategory
http://ehealth.sundhed.dk/vs/message-category
from this IG
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.medium:DkTmMediumexampleParticipationMode
http://terminology.hl7.org/ValueSet/v3-ParticipationMode
Communication.medium:DkTmMedium.coding.coderequiredMessageMedium
http://ehealth.sundhed.dk/vs/message-medium
from this IG
Communication.topicexampleCommunicationTopic
http://hl7.org/fhir/ValueSet/communication-topic
from the FHIR Standard
Communication.reasonCoderequiredeHealth Message Reason Code
http://ehealth.sundhed.dk/vs/message-reasonCode
from this IG

Constraints

IdGradePath(s)DetailsRequirements
advice-invarianterrorCommunicationCategory advice invariant
: category.coding.code = 'advice' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())
message-invarianterrorCommunicationCategory message invariant
: category.coding.code = 'message' implies (recipient.reference.contains('Patient/') and ( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists())) or (( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and (sender.reference.contains('Patient/')) or (extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists() ))
nemsms-invarianterrorCommunicationIf communication resource is a NemSMS payload cannot exceed 160
: medium.coding.where(code = 'nemsms').exists() implies payload.contentString.length() <= 160
note-invarianterrorCommunicationCategory note invariant
: category.coding.code = 'note' implies (sender.reference = recipient.reference) or (recipient.reference.exists().not() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists())
notification-invarianterrorCommunicationCategory notification invariant
: category.coding.code = 'notification' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())

This structure is derived from Communication

Summary

Mandatory: 4 elements(3 nested mandatory elements)
Must-Support: 1 element

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Communication.category
  • The element 1 is sliced based on the value of Communication.medium
  • The element 1 is sliced based on the value of Communication.payload.content[x] (Closed)
  • The element 1 is sliced based on the value of Communication.note.author[x]

Differential View

This structure is derived from Communication

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication C 0..* Communication A record of information transmitted from a sender to a receiver
nemsms-invariant: If communication resource is a NemSMS payload cannot exceed 160
note-invariant: Category note invariant
notification-invariant: Category notification invariant
message-invariant: Category message invariant
advice-invariant: Category advice invariant
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
.... episodeOfCare 0..1 Reference(EpisodeOfCare) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
.... recipientCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam
.... senderCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message sender
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam
.... restrictionCategory 0..* CodeableConcept Restriction category
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category
Binding: Restriction Category (required)
.... threadId 0..1 string Thread id
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id
.... period 0..* Period Specifies the temporal validity of an ehealth/message instance
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period
.... administrativeStatus 1..1 Coding The administrative status of how a message recipient has handled a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-administrative-status
Binding: Administrative Status (required)
.... title 0..1 string Message title
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title
.... priority 0..1 code The priority of a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority
Binding: Priority (required)
.... groupId 0..1 string Logical id identifying a set of messages with the same recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id
.... onBehalfOf S 0..1 Reference(ehealth-careteam) {r} On behalf of
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of
... partOf 0..* Reference(CarePlan) {r} Part of this action
... Slices for category 1..* CodeableConcept Message category
Slice: Unordered, Open by value:coding.system
.... category:DkTmCategory 1..1 CodeableConcept Message category
..... coding
...... system 1..1 uri Identity of the terminology system
Required Pattern: http://ehealth.sundhed.dk/cs/message-category
...... code 0..1 code Symbol in syntax defined by the system
Binding: MessageCategory (required)
.... medium:DkTmMedium 0..1 CodeableConcept A channel of communication
..... coding
...... system 1..1 uri Identity of the terminology system
Required Pattern: http://ehealth.sundhed.dk/cs/message-medium
...... code 0..1 code Symbol in syntax defined by the system
Binding: MessageMedium (required)
... recipient 0..1 Reference(Patient | Practitioner) {r} Message recipient
... sender 0..1 Reference(Device | Patient | Practitioner) {r, c} Message sender
... reasonCode 0..* CodeableConcept Indication for message
Binding: eHealth Message Reason Code (required)
... reasonReference 0..* Reference(Condition | Observation) {r} Why was communication done?
... payload 0..1 BackboneElement Message payload
.... Slices for content[x] 1..1 string Message part content
Slice: Unordered, Closed by type:$this
..... content[x]:contentString 1..1 string Message part content
... note
.... Slices for author[x] 0..1 Reference(Practitioner | Patient | RelatedPerson | Organization), string Individual responsible for the annotation
Slice: Unordered, Open by type:$this
..... author[x]:authorReference 0..1 Reference(ehealth-practitioner | ehealth-patient | ehealth-relatedperson) Individual responsible for the annotation
..... author[x]:authorString 0..1 string Individual responsible for the annotation

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Communication.category:DkTmCategory.coding.coderequiredMessageCategory
http://ehealth.sundhed.dk/vs/message-category
from this IG
Communication.medium:DkTmMedium.coding.coderequiredMessageMedium
http://ehealth.sundhed.dk/vs/message-medium
from this IG
Communication.reasonCoderequiredeHealth Message Reason Code
http://ehealth.sundhed.dk/vs/message-reasonCode
from this IG

Constraints

IdGradePath(s)DetailsRequirements
advice-invarianterrorCommunicationCategory advice invariant
: category.coding.code = 'advice' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())
message-invarianterrorCommunicationCategory message invariant
: category.coding.code = 'message' implies (recipient.reference.contains('Patient/') and ( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists())) or (( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and (sender.reference.contains('Patient/')) or (extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists() ))
nemsms-invarianterrorCommunicationIf communication resource is a NemSMS payload cannot exceed 160
: medium.coding.where(code = 'nemsms').exists() implies payload.contentString.length() <= 160
note-invarianterrorCommunicationCategory note invariant
: category.coding.code = 'note' implies (sender.reference = recipient.reference) or (recipient.reference.exists().not() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists())
notification-invarianterrorCommunicationCategory notification invariant
: category.coding.code = 'notification' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication C 0..* Communication A record of information transmitted from a sender to a receiver
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
nemsms-invariant: If communication resource is a NemSMS payload cannot exceed 160
note-invariant: Category note invariant
notification-invariant: Category notification invariant
message-invariant: Category message invariant
advice-invariant: Category advice invariant
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... Slices for extension 1..* Extension Extension
Slice: Unordered, Open by value:url
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... episodeOfCare 0..1 Reference(EpisodeOfCare) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... recipientCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... senderCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message sender
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... restrictionCategory 0..* CodeableConcept Restriction category
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category
Binding: Restriction Category (required)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... threadId 0..1 string Thread id
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... period 0..* Period Specifies the temporal validity of an ehealth/message instance
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... administrativeStatus 1..1 Coding The administrative status of how a message recipient has handled a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-administrative-status
Binding: Administrative Status (required)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... title 0..1 string Message title
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... priority 0..1 code The priority of a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority
Binding: Priority (required)
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... groupId 0..1 string Logical id identifying a set of messages with the same recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... onBehalfOf S 0..1 Reference(ehealth-careteam) {r} On behalf of
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... status ?!Σ 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): The status of the communication.


ele-1: All FHIR elements must have a @value or children
... Slices for category 1..* CodeableConcept Message category
Slice: Unordered, Open by value:coding.system
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.


ele-1: All FHIR elements must have a @value or children
.... category:DkTmCategory 1..1 CodeableConcept Message category
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.


ele-1: All FHIR elements must have a @value or children
... Slices for medium 0..* CodeableConcept A channel of communication
Slice: Unordered, Open by value:coding.system
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


ele-1: All FHIR elements must have a @value or children
.... medium:DkTmMedium 0..1 CodeableConcept A channel of communication
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


ele-1: All FHIR elements must have a @value or children
... recipient 0..1 Reference(Patient | Practitioner) {r} Message recipient
ele-1: All FHIR elements must have a @value or children
... sender 0..1 Reference(Device | Patient | Practitioner) {r, c} Message sender
ele-1: All FHIR elements must have a @value or children
... reasonCode Σ 0..* CodeableConcept Indication for message
Binding: eHealth Message Reason Code (required)
ele-1: All FHIR elements must have a @value or children
... reasonReference Σ 0..* Reference(Condition | Observation) {r} Why was communication done?
ele-1: All FHIR elements must have a @value or children
... payload 0..1 BackboneElement Message payload
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... Slices for content[x] 1..1 string Message part content
Slice: Unordered, Closed by type:$this
ele-1: All FHIR elements must have a @value or children
..... content[x]:contentString 1..1 string Message part content
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Communication.categoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.category:DkTmCategoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.mediumexampleParticipationMode
http://terminology.hl7.org/ValueSet/v3-ParticipationMode
Communication.medium:DkTmMediumexampleParticipationMode
http://terminology.hl7.org/ValueSet/v3-ParticipationMode
Communication.reasonCoderequiredeHealth Message Reason Code
http://ehealth.sundhed.dk/vs/message-reasonCode
from this IG

Constraints

IdGradePath(s)DetailsRequirements
advice-invarianterrorCommunicationCategory advice invariant
: category.coding.code = 'advice' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())
message-invarianterrorCommunicationCategory message invariant
: category.coding.code = 'message' implies (recipient.reference.contains('Patient/') and ( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists())) or (( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and (sender.reference.contains('Patient/')) or (extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists() ))
nemsms-invarianterrorCommunicationIf communication resource is a NemSMS payload cannot exceed 160
: medium.coding.where(code = 'nemsms').exists() implies payload.contentString.length() <= 160
note-invarianterrorCommunicationCategory note invariant
: category.coding.code = 'note' implies (sender.reference = recipient.reference) or (recipient.reference.exists().not() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists())
notification-invarianterrorCommunicationCategory notification invariant
: category.coding.code = 'notification' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication C 0..* Communication A record of information transmitted from a sender to a receiver
nemsms-invariant: If communication resource is a NemSMS payload cannot exceed 160
note-invariant: Category note invariant
notification-invariant: Category notification invariant
message-invariant: Category message invariant
advice-invariant: Category advice invariant
... 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
.... episodeOfCare 0..1 Reference(EpisodeOfCare) Associated Encounter episode of care
URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare
.... recipientCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam
.... senderCareTeam 0..1 Reference(ehealth-careteam) {r} CareTeam message sender
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam
.... restrictionCategory 0..* CodeableConcept Restriction category
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category
Binding: Restriction Category (required)
.... threadId 0..1 string Thread id
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id
.... period 0..* Period Specifies the temporal validity of an ehealth/message instance
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period
.... administrativeStatus 1..1 Coding The administrative status of how a message recipient has handled a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-administrative-status
Binding: Administrative Status (required)
.... title 0..1 string Message title
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title
.... priority 0..1 code The priority of a message
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority
Binding: Priority (required)
.... groupId 0..1 string Logical id identifying a set of messages with the same recipient
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id
.... onBehalfOf S 0..1 Reference(ehealth-careteam) {r} On behalf of
URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of
... 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(CarePlan) {r} Part of this action
... inResponseTo 0..* Reference(Communication) Reply to
... status ?!Σ 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): The status of the communication.

... statusReason Σ 0..1 CodeableConcept Reason for current status
Binding: CommunicationNotDoneReason (example): Codes for the reason why a communication did not happen.

... Slices for category 1..* CodeableConcept Message category
Slice: Unordered, Open by value:coding.system
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.


.... category:DkTmCategory 1..1 CodeableConcept Message category
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.


..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ 0..* Coding Code defined by a terminology system
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://ehealth.sundhed.dk/cs/message-category
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 0..1 code Symbol in syntax defined by the system
Binding: MessageCategory (required)
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... text Σ 0..1 string Plain text representation of the concept
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Codes indicating the relative importance of a communication.

... Slices for medium 0..* CodeableConcept A channel of communication
Slice: Unordered, Open by value:coding.system
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


.... medium:DkTmMedium 0..1 CodeableConcept A channel of communication
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.


..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ 0..* Coding Code defined by a terminology system
...... id 0..1 string Unique id for inter-element referencing
...... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
Required Pattern: http://ehealth.sundhed.dk/cs/message-medium
...... version Σ 0..1 string Version of the system - if relevant
...... code Σ 0..1 code Symbol in syntax defined by the system
Binding: MessageMedium (required)
...... display Σ 0..1 string Representation defined by the system
...... userSelected Σ 0..1 boolean If this coding was chosen directly by the user
..... text Σ 0..1 string Plain text representation of the concept
... subject Σ 0..1 Reference(Patient | Group) Focus of message
... topic 0..1 CodeableConcept Description of the purpose/content
Binding: CommunicationTopic (example): Codes describing the purpose or content of the communication.

... about 0..* Reference(Resource) Resources that pertain to this communication
... encounter Σ 0..1 Reference(Encounter) Encounter created as part of
... sent 0..1 dateTime When sent
... received 0..1 dateTime When received
... recipient 0..1 Reference(Patient | Practitioner) {r} Message recipient
... sender 0..1 Reference(Device | Patient | Practitioner) {r, c} Message sender
... reasonCode Σ 0..* CodeableConcept Indication for message
Binding: eHealth Message Reason Code (required)
... reasonReference Σ 0..* Reference(Condition | Observation) {r} Why was communication done?
... payload 0..1 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
.... Slices for content[x] 1..1 string Message part content
Slice: Unordered, Closed by type:$this
..... content[x]:contentString 1..1 string Message part content
... note 0..* Annotation Comments made about the communication
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for author[x] Σ 0..1 Individual responsible for the annotation
Slice: Unordered, Closed by type:$this
..... authorReference Reference(Practitioner | Patient | RelatedPerson | Organization)
..... authorString string
..... author[x]:authorReference Σ 0..1 Reference(ehealth-practitioner | ehealth-patient | ehealth-relatedperson) Individual responsible for the annotation
..... author[x]:authorString Σ 0..1 string Individual responsible for the annotation
.... time Σ 0..1 dateTime When the annotation was made
.... text Σ 1..1 markdown The annotation - text content (as markdown)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Communication.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Communication.statusReasonexampleCommunicationNotDoneReason
http://hl7.org/fhir/ValueSet/communication-not-done-reason
from the FHIR Standard
Communication.categoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.category:DkTmCategoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.category:DkTmCategory.coding.coderequiredMessageCategory
http://ehealth.sundhed.dk/vs/message-category
from this IG
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.medium:DkTmMediumexampleParticipationMode
http://terminology.hl7.org/ValueSet/v3-ParticipationMode
Communication.medium:DkTmMedium.coding.coderequiredMessageMedium
http://ehealth.sundhed.dk/vs/message-medium
from this IG
Communication.topicexampleCommunicationTopic
http://hl7.org/fhir/ValueSet/communication-topic
from the FHIR Standard
Communication.reasonCoderequiredeHealth Message Reason Code
http://ehealth.sundhed.dk/vs/message-reasonCode
from this IG

Constraints

IdGradePath(s)DetailsRequirements
advice-invarianterrorCommunicationCategory advice invariant
: category.coding.code = 'advice' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())
message-invarianterrorCommunicationCategory message invariant
: category.coding.code = 'message' implies (recipient.reference.contains('Patient/') and ( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists())) or (( extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and (sender.reference.contains('Patient/')) or (extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists() ))
nemsms-invarianterrorCommunicationIf communication resource is a NemSMS payload cannot exceed 160
: medium.coding.where(code = 'nemsms').exists() implies payload.contentString.length() <= 160
note-invarianterrorCommunicationCategory note invariant
: category.coding.code = 'note' implies (sender.reference = recipient.reference) or (recipient.reference.exists().not() and extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists())
notification-invarianterrorCommunicationCategory notification invariant
: category.coding.code = 'notification' implies (recipient.reference.contains('Patient/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam').valueReference.exists()) and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not())

This structure is derived from Communication

Summary

Mandatory: 4 elements(3 nested mandatory elements)
Must-Support: 1 element

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Communication.category
  • The element 1 is sliced based on the value of Communication.medium
  • The element 1 is sliced based on the value of Communication.payload.content[x] (Closed)
  • The element 1 is sliced based on the value of Communication.note.author[x]

 

Other representations of profile: CSV, Excel, Schematron