eHealth Infrastructure - Local Development build (v2022.2). See the Directory of published versions
Official URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-message | Version: 2022.2 | |||
Active as of 2022-06-20 | Computable Name: ehealth-message |
An ehealth-message defines written communication and comes in four flavours depending on the “category” of the message:
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.
In case a thread-id is not set by the client, it will be generated server-side at message creation.
The ehealth-message profile contains two status fields:
The following custom search parameters may be used when searching for ehealth-message instances:
In the eHealth Infrastructure the ehealth-message resource is used in conjunction with the following resources:
The following rules apply for the ehealth-message profile:
The Patient service will forward ehealth-messages to the public danish NemSMS service given the following conditions:
The message is forwarded asynchronously. To track the progress of the NemSMS, the status
and statusReason
code is used:
The Patient service will generate NemSMS ehealth-messages, notifying the recipient that they have received a message, given the following conditions:
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:
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)
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
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:
This structure is derived from Communication
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Communication | I | 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 |
id | Σ | 0..1 | string | 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) Max Binding: AllLanguages: A human language. | |
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 | |
workflow-episodeOfCare | 0..1 | Reference(EpisodeOfCare) | Associated Encounter episode of care URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare | |
ehealth-communication-recipientCareTeam | 0..1 | Reference() | CareTeam message recipient URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam | |
ehealth-communication-senderCareTeam | 0..1 | Reference(ehealth-careteam) {r} | CareTeam message sender URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam | |
ehealth-restriction-category | 0..* | CodeableConcept | Restriction category URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category Binding: Restriction Category (required) | |
ehealth-thread-id | 0..1 | string | Thread id URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id | |
ehealth-period | 0..* | Period | Specifies the temporal validity of an ehealth/message instance URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period | |
ehealth-administrative-status | 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) | |
ehealth-title | 0..1 | string | Message title URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title | |
ehealth-priority | 0..1 | code | The priority of a message URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority Binding: Priority (required) | |
ehealth-group-id | 0..1 | string | Logical id identifying a set of messages with the same recipient URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id | |
ehealth-on-behalf-of | 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 | |
Slices for 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 | |
Slices for 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 | |
Slices for 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 | |
Slices for 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) {rc} | 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 | |
Slices for 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(Any) | |||
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) |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Communication | I | 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 |
ehealth-on-behalf-of | 0..1 | Reference(ehealth-careteam) {r} | On behalf of URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of | |
Documentation for this format |
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:
Differential View
This structure is derived from Communication
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Communication | I | 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 |
id | Σ | 0..1 | string | 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) Max Binding: AllLanguages: A human language. | |
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 | |
workflow-episodeOfCare | 0..1 | Reference(EpisodeOfCare) | Associated Encounter episode of care URL: http://hl7.org/fhir/StructureDefinition/workflow-episodeOfCare | |
ehealth-communication-recipientCareTeam | 0..1 | Reference() | CareTeam message recipient URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-recipientCareTeam | |
ehealth-communication-senderCareTeam | 0..1 | Reference(ehealth-careteam) {r} | CareTeam message sender URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam | |
ehealth-restriction-category | 0..* | CodeableConcept | Restriction category URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category Binding: Restriction Category (required) | |
ehealth-thread-id | 0..1 | string | Thread id URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id | |
ehealth-period | 0..* | Period | Specifies the temporal validity of an ehealth/message instance URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period | |
ehealth-administrative-status | 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) | |
ehealth-title | 0..1 | string | Message title URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title | |
ehealth-priority | 0..1 | code | The priority of a message URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority Binding: Priority (required) | |
ehealth-group-id | 0..1 | string | Logical id identifying a set of messages with the same recipient URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id | |
ehealth-on-behalf-of | 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 | |
Slices for 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 | |
Slices for 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 | |
Slices for 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 | |
Slices for 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) {rc} | 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 | |
Slices for 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(Any) | |||
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) |
Documentation for this format |
Other representations of profile: CSV, Excel, Schematron
Path | Conformance | ValueSet |
Communication.language | preferred | CommonLanguages Max Binding: AllLanguages |
Communication.status | required | EventStatus |
Communication.statusReason | example | CommunicationNotDoneReason |
Communication.category | example | CommunicationCategory |
Communication.category:DkTmCategory | example | CommunicationCategory |
Communication.category:DkTmCategory.coding.code | required | MessageCategory |
Communication.priority | required | RequestPriority |
Communication.medium | example | ParticipationMode |
Communication.medium:DkTmMedium | example | ParticipationMode |
Communication.medium:DkTmMedium.coding.code | required | MessageMedium |
Communication.topic | example | CommunicationTopic |
Communication.reasonCode | required | eHealth Message Reason Code |
Id | Grade | Path | Details | Requirements |
nemsms-invariant | error | Communication | If communication resource is a NemSMS payload cannot exceed 160 : medium.coding.where(code = 'nemsms').exists() implies payload.contentString.length() <= 160 | |
note-invariant | error | Communication | Category 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-invariant | error | Communication | Category notification invariant : category.coding.code = 'notification' implies recipient.reference.contains('Patient/') and ( sender.reference.contains('Practitioner/') or extension.where(url = 'http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-communication-senderCareTeam').valueReference.exists()) | |
message-invariant | error | Communication | Category message invariant : category.coding.code = 'message' implies (recipient.reference.contains('Patient/') and ( sender.reference.contains('Device/') or contained.ofType(Device).where('#' + id = %resource.sender.reference).empty().not() or 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 sender.reference.contains('Device/'))) 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() ) |