eHealth Infrastructure - Local Development build (v2022.1). See the Directory of published versions
Defining URL: | http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-message |
Version: | 2022.1 |
Name: | ehealth-message |
Status: | Active as of 1/18/22, 9:57 AM |
Publisher: | Systematic | Trifork |
Source Resource: | XML / JSON / Turtle |
The official URL for this profile is:
http://ehealth.sundhed.dk/fhir/StructureDefinition/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)
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() ) |