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 “topic” 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.
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 notDone flag and notDoneReason code is used:
Initially, when the ehealth-message is created message.notDone is true and message.notDoneReason is ‘in-progress’ (defined in http://hl7.org/fhir/event-status)
If the NemSMS dispatch is successful, message.notDone will be set to false.
If the NemSMS dispatch fails, message.notDone is true and message.notDoneReason is either ‘system-error’ or ‘recipient-unavailable’ (defined in http://hl7.org/fhir/communication-not-done-reason)
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’.
When status is “preparation”, message contents may be updated, but not after status has been set to “completed”.
An ehealth-message may be PATCH updated on paths complying with the regular expressions below.
Path | Description |
---|---|
/implicitRules.* | For category ‘note’ or status ‘preparation’ |
/category.* | For category ‘note’ or status ‘preparation’ |
/contained.* | For category ‘note’ or status ‘preparation’ |
/recipient.* | For category ‘note’ or status ‘preparation’ |
/definition.* | For category ‘note’ or status ‘preparation’ |
/basedOn.* | For category ‘note’ or status ‘preparation’ |
/partOf.* | For category ‘note’ or status ‘preparation’ |
/topic.* | For category ‘note’ or status ‘preparation’ |
/notDone.* | For category ‘note’ or status ‘preparation’ |
/notDoneReason.* | For category ‘note’ or status ‘preparation’ |
/context.* | For category ‘note’ or status ‘preparation’ |
/received.* | For all values of category |
/reasonCode.* | For category ‘note’ or status ‘preparation’ |
/reasonReference.* | For category ‘note’ or status ‘preparation’ |
/payload.* | For category ‘note’ or status ‘preparation’ |
/note.* | For category ‘note’ or status ‘preparation’ |
/status.* | For category ‘note’ or status ‘preparation’ |
/extension.* | For category ‘note’ or status ‘preparation’ |
The official URL for this profile is:
http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-message
This is the profile for general messaging in the eHealth platform. It covers four different message types: messages, notifications, advice, and notes. This is specified using the message category (value set "Message category"). When needed, message medium NemSMS may also be specified (value set "Message medium").
Message-related state, such as whether a message has been read etc, is handled through the use of the administrative-status extension.
This profile builds on Communication.
This profile was published on Thu Jan 07 13:26:31 UTC 2021 as a draft by ehealth.sundhed.dk.
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from Communication
Summary
Mandatory: 3 elements (2 nested mandatory elements)
Must-Support: 2 elements
Fixed Value: 2 elements
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-1: 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 |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
ehealth-communication-recipientCareTeam | 0..1 | Reference(eHealth CareTeam) {r} | 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 | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category Binding: Restriction Category (required) | |
valueCodeableConcept:valueCodeableConcept | 1..1 | CodeableConcept | Value of extension | |
coding | 0..* | Coding | Code defined by a terminology system | |
ehealth-thread-id | 0..1 | string | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id | |
valueString:valueString | 0..1 | string | Value of extension | |
ehealth-period | 0..* | Period | Specified the temporal validity of an ehealth/message instance URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period | |
ehealth-administrative-status | 1..1 | Coding | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-administrative-status Binding: Administrative Status (extensible) | |
ehealth-title | 0..1 | string | Message title URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title | |
ehealth-priority | 0..1 | code | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority Binding: Priority (required) | |
valueCode:valueCode | 0..1 | code | Value of extension Binding: Priority (required) | |
ehealth-group-id | 0..1 | string | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id | |
ehealth-on-behalf-of | S | 0..1 | Reference(eHealth CareTeam) {r} | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of |
identifier | 0..* | Identifier | Unique identifier | |
definition | 0..* | Reference(PlanDefinition | ActivityDefinition) {r} | Instantiates protocol or definition | |
basedOn | 0..* | Reference(Resource) {r} | Request fulfilled by this communication | |
partOf | 0..* | Reference(CarePlan) {r} | The CarePlan that this communication relates to | |
status | 1..1 | code | preparation | aborted | completed Binding: EventStatus (required) | |
notDoneReason | S | 0..1 | CodeableConcept | in-progress | system-error | recipient-unavailable Binding: CommunicationNotDoneReason (required): Codes for the reason why a communication has not occured. |
category | 1..* | (Slice Definition) | Message category Slice: Unordered, Open by value:coding.system | |
category:DkTmCategory | 1..1 | CodeableConcept | Message category | |
coding | 0..* | Coding | Code defined by a terminology system Binding: MessageCategory (required) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://ehealth.sundhed.dk/cs/message-category | |
code | 0..1 | code | Symbol in syntax defined by the system Binding: MessageCategory (required) | |
medium | 0..* | (Slice Definition) | A channel of communication Slice: Unordered, Open by value:coding.system | |
medium:DkTmMedium | 0..1 | CodeableConcept | A channel of communication Binding: MessageMedium (example): Codes for communication mediums | |
coding | 0..* | Coding | Code defined by a terminology system | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://ehealth.sundhed.dk/cs/message-medium | |
code | 0..1 | code | Symbol in syntax defined by the system Binding: MessageMedium (required): A valid message medium must be supplied | |
subject | 0..1 | Reference(Patient | Group) {r} | Focus of message | |
recipient | 0..1 | Reference(Patient | Practitioner) {r} | Message recipient | |
topic | 0..* | Reference(Resource) {r} | Focal resources | |
context | 0..1 | Reference(Encounter | EpisodeOfCare) {r} | Encounter or episode leading to message | |
sender | 0..1 | Reference(Device | Patient | Practitioner) {r} | Message sender | |
reasonCode | ||||
coding | 0..* | Coding | Code defined by a terminology system Binding: eHealth Message Reason Code (required) | |
reasonReference | 0..* | Reference(Condition | Observation) {r} | Why was communication done? | |
payload | 0..1 | BackboneElement | Message payload | |
contentString:contentString | 1..1 | string | Message part content | |
note | ||||
author[x] | 0..1 | Individual responsible for the annotation | ||
authorReference | Reference(Practitioner | Patient | RelatedPerson) | |||
authorString | string | |||
Documentation for this format |
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-1: 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 | 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: Common Languages (extensible) Max Binding: All Languages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
ehealth-communication-recipientCareTeam | 0..1 | Reference(eHealth CareTeam) {r} | 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 | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category Binding: Restriction Category (required) | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
url | 1..1 | uri | "http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category" | |
value[x] | 1..1 | (Slice Definition) | Value of extension Slice: Unordered, Closed by type:$this | |
value[x]:valueCodeableConcept | 1..1 | CodeableConcept | Value of extension Binding: Restriction Category (required) | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
coding | Σ | 0..* | Coding | Code defined by a terminology system Binding: Restriction Category (required) |
text | Σ | 0..1 | string | Plain text representation of the concept |
ehealth-thread-id | 0..1 | string | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
url | 1..1 | uri | "http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id" | |
value[x] | 0..1 | (Slice Definition) | Value of extension Slice: Unordered, Closed by type:$this | |
value[x]:valueString | 0..1 | string | Value of extension | |
ehealth-period | 0..* | Period | Specified the temporal validity of an ehealth/message instance URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period | |
ehealth-administrative-status | 1..1 | Coding | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-administrative-status Binding: Administrative Status (extensible) | |
ehealth-title | 0..1 | string | Message title URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title | |
ehealth-priority | 0..1 | code | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
url | 1..1 | uri | "http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority" | |
value[x] | 0..1 | (Slice Definition) | Value of extension Slice: Unordered, Closed by type:$this | |
value[x]:valueCode | 0..1 | code | Value of extension Binding: Priority (required) | |
ehealth-group-id | 0..1 | string | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id | |
ehealth-on-behalf-of | S | 0..1 | Reference(eHealth CareTeam) {r} | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | Unique identifier |
definition | Σ | 0..* | Reference(PlanDefinition | ActivityDefinition) {r} | Instantiates protocol or definition |
basedOn | Σ | 0..* | Reference(Resource) {r} | Request fulfilled by this communication |
partOf | Σ | 0..* | Reference(CarePlan) {r} | The CarePlan that this communication relates to |
status | ?!Σ | 1..1 | code | preparation | aborted | completed Binding: EventStatus (required) |
notDone | ?!Σ | 0..1 | boolean | Communication did not occur |
notDoneReason | SΣI | 0..1 | CodeableConcept | in-progress | system-error | recipient-unavailable Binding: CommunicationNotDoneReason (required): Codes for the reason why a communication has not occured. |
category | 1..* | (Slice Definition) | Message category Slice: Unordered, Open by value:coding.system Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instruction, etc. | |
category:DkTmCategory | 1..1 | CodeableConcept | Message category Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instruction, etc. | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
coding | Σ | 0..* | Coding | Code defined by a terminology system Binding: MessageCategory (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: 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 |
medium | 0..* | (Slice Definition) | 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: MessageMedium (example): Codes for communication mediums | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
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 | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: 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): A valid message medium must be supplied |
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) {r} | Focus of message |
recipient | 0..1 | Reference(Patient | Practitioner) {r} | Message recipient | |
topic | 0..* | Reference(Resource) {r} | Focal resources | |
context | Σ | 0..1 | Reference(Encounter | EpisodeOfCare) {r} | Encounter or episode leading to message |
sent | 0..1 | dateTime | When sent | |
received | 0..1 | dateTime | When received | |
sender | 0..1 | Reference(Device | Patient | Practitioner) {r} | Message sender | |
reasonCode | Σ | 0..* | CodeableConcept | Indication for message Binding: SNOMED CT Clinical Findings (example): Codes for describing reasons for the occurrence of a communication. |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
coding | Σ | 0..* | Coding | Code defined by a terminology system Binding: eHealth Message Reason Code (required) |
text | Σ | 0..1 | string | Plain text representation of the concept |
reasonReference | Σ | 0..* | Reference(Condition | Observation) {r} | Why was communication done? |
payload | 0..1 | BackboneElement | Message payload | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
content[x] | 1..1 | (Slice Definition) | 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 | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
author[x] | Σ | 0..1 | Individual responsible for the annotation | |
authorReference | Reference(Practitioner | Patient | RelatedPerson) | |||
authorString | string | |||
time | Σ | 0..1 | dateTime | When the annotation was made |
text | 1..1 | string | The annotation - text content | |
Documentation for this format |
This structure is derived from Communication
Summary
Mandatory: 3 elements (2 nested mandatory elements)
Must-Support: 2 elements
Fixed Value: 2 elements
Extensions
This structure refers to these extensions:
Slices
This structure defines the following Slices:
Differential View
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-1: 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 |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
ehealth-communication-recipientCareTeam | 0..1 | Reference(eHealth CareTeam) {r} | 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 | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category Binding: Restriction Category (required) | |
valueCodeableConcept:valueCodeableConcept | 1..1 | CodeableConcept | Value of extension | |
coding | 0..* | Coding | Code defined by a terminology system | |
ehealth-thread-id | 0..1 | string | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id | |
valueString:valueString | 0..1 | string | Value of extension | |
ehealth-period | 0..* | Period | Specified the temporal validity of an ehealth/message instance URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period | |
ehealth-administrative-status | 1..1 | Coding | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-administrative-status Binding: Administrative Status (extensible) | |
ehealth-title | 0..1 | string | Message title URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title | |
ehealth-priority | 0..1 | code | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority Binding: Priority (required) | |
valueCode:valueCode | 0..1 | code | Value of extension Binding: Priority (required) | |
ehealth-group-id | 0..1 | string | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id | |
ehealth-on-behalf-of | S | 0..1 | Reference(eHealth CareTeam) {r} | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of |
identifier | 0..* | Identifier | Unique identifier | |
definition | 0..* | Reference(PlanDefinition | ActivityDefinition) {r} | Instantiates protocol or definition | |
basedOn | 0..* | Reference(Resource) {r} | Request fulfilled by this communication | |
partOf | 0..* | Reference(CarePlan) {r} | The CarePlan that this communication relates to | |
status | 1..1 | code | preparation | aborted | completed Binding: EventStatus (required) | |
notDoneReason | S | 0..1 | CodeableConcept | in-progress | system-error | recipient-unavailable Binding: CommunicationNotDoneReason (required): Codes for the reason why a communication has not occured. |
category | 1..* | (Slice Definition) | Message category Slice: Unordered, Open by value:coding.system | |
category:DkTmCategory | 1..1 | CodeableConcept | Message category | |
coding | 0..* | Coding | Code defined by a terminology system Binding: MessageCategory (required) | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://ehealth.sundhed.dk/cs/message-category | |
code | 0..1 | code | Symbol in syntax defined by the system Binding: MessageCategory (required) | |
medium | 0..* | (Slice Definition) | A channel of communication Slice: Unordered, Open by value:coding.system | |
medium:DkTmMedium | 0..1 | CodeableConcept | A channel of communication Binding: MessageMedium (example): Codes for communication mediums | |
coding | 0..* | Coding | Code defined by a terminology system | |
system | 1..1 | uri | Identity of the terminology system Fixed Value: http://ehealth.sundhed.dk/cs/message-medium | |
code | 0..1 | code | Symbol in syntax defined by the system Binding: MessageMedium (required): A valid message medium must be supplied | |
subject | 0..1 | Reference(Patient | Group) {r} | Focus of message | |
recipient | 0..1 | Reference(Patient | Practitioner) {r} | Message recipient | |
topic | 0..* | Reference(Resource) {r} | Focal resources | |
context | 0..1 | Reference(Encounter | EpisodeOfCare) {r} | Encounter or episode leading to message | |
sender | 0..1 | Reference(Device | Patient | Practitioner) {r} | Message sender | |
reasonCode | ||||
coding | 0..* | Coding | Code defined by a terminology system Binding: eHealth Message Reason Code (required) | |
reasonReference | 0..* | Reference(Condition | Observation) {r} | Why was communication done? | |
payload | 0..1 | BackboneElement | Message payload | |
contentString:contentString | 1..1 | string | Message part content | |
note | ||||
author[x] | 0..1 | Individual responsible for the annotation | ||
authorReference | Reference(Practitioner | Patient | RelatedPerson) | |||
authorString | string | |||
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Communication | I | 0..* | Communication | A record of information transmitted from a sender to a receiver nemsms-1: 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 | 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: Common Languages (extensible) Max Binding: All Languages: A human language. | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Extension Slice: Unordered, Open by value:url | |
ehealth-communication-recipientCareTeam | 0..1 | Reference(eHealth CareTeam) {r} | 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 | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category Binding: Restriction Category (required) | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
url | 1..1 | uri | "http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-restriction-category" | |
value[x] | 1..1 | (Slice Definition) | Value of extension Slice: Unordered, Closed by type:$this | |
value[x]:valueCodeableConcept | 1..1 | CodeableConcept | Value of extension Binding: Restriction Category (required) | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
coding | Σ | 0..* | Coding | Code defined by a terminology system Binding: Restriction Category (required) |
text | Σ | 0..1 | string | Plain text representation of the concept |
ehealth-thread-id | 0..1 | string | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
url | 1..1 | uri | "http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-thread-id" | |
value[x] | 0..1 | (Slice Definition) | Value of extension Slice: Unordered, Closed by type:$this | |
value[x]:valueString | 0..1 | string | Value of extension | |
ehealth-period | 0..* | Period | Specified the temporal validity of an ehealth/message instance URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-period | |
ehealth-administrative-status | 1..1 | Coding | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-administrative-status Binding: Administrative Status (extensible) | |
ehealth-title | 0..1 | string | Message title URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-title | |
ehealth-priority | 0..1 | code | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
url | 1..1 | uri | "http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-priority" | |
value[x] | 0..1 | (Slice Definition) | Value of extension Slice: Unordered, Closed by type:$this | |
value[x]:valueCode | 0..1 | code | Value of extension Binding: Priority (required) | |
ehealth-group-id | 0..1 | string | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-group-id | |
ehealth-on-behalf-of | S | 0..1 | Reference(eHealth CareTeam) {r} | Extension URL: http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-on-behalf-of |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | Unique identifier |
definition | Σ | 0..* | Reference(PlanDefinition | ActivityDefinition) {r} | Instantiates protocol or definition |
basedOn | Σ | 0..* | Reference(Resource) {r} | Request fulfilled by this communication |
partOf | Σ | 0..* | Reference(CarePlan) {r} | The CarePlan that this communication relates to |
status | ?!Σ | 1..1 | code | preparation | aborted | completed Binding: EventStatus (required) |
notDone | ?!Σ | 0..1 | boolean | Communication did not occur |
notDoneReason | SΣI | 0..1 | CodeableConcept | in-progress | system-error | recipient-unavailable Binding: CommunicationNotDoneReason (required): Codes for the reason why a communication has not occured. |
category | 1..* | (Slice Definition) | Message category Slice: Unordered, Open by value:coding.system Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instruction, etc. | |
category:DkTmCategory | 1..1 | CodeableConcept | Message category Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instruction, etc. | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
coding | Σ | 0..* | Coding | Code defined by a terminology system Binding: MessageCategory (required) |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: 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 |
medium | 0..* | (Slice Definition) | 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: MessageMedium (example): Codes for communication mediums | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
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 | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: 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): A valid message medium must be supplied |
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) {r} | Focus of message |
recipient | 0..1 | Reference(Patient | Practitioner) {r} | Message recipient | |
topic | 0..* | Reference(Resource) {r} | Focal resources | |
context | Σ | 0..1 | Reference(Encounter | EpisodeOfCare) {r} | Encounter or episode leading to message |
sent | 0..1 | dateTime | When sent | |
received | 0..1 | dateTime | When received | |
sender | 0..1 | Reference(Device | Patient | Practitioner) {r} | Message sender | |
reasonCode | Σ | 0..* | CodeableConcept | Indication for message Binding: SNOMED CT Clinical Findings (example): Codes for describing reasons for the occurrence of a communication. |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
coding | Σ | 0..* | Coding | Code defined by a terminology system Binding: eHealth Message Reason Code (required) |
text | Σ | 0..1 | string | Plain text representation of the concept |
reasonReference | Σ | 0..* | Reference(Condition | Observation) {r} | Why was communication done? |
payload | 0..1 | BackboneElement | Message payload | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
content[x] | 1..1 | (Slice Definition) | 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 | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations Slice: Unordered, Open by value:url | |
author[x] | Σ | 0..1 | Individual responsible for the annotation | |
authorReference | Reference(Practitioner | Patient | RelatedPerson) | |||
authorString | string | |||
time | Σ | 0..1 | dateTime | When the annotation was made |
text | 1..1 | string | The annotation - text content | |
Documentation for this format |
Path | Conformance | ValueSet |
Communication.language | extensible | Common Languages Max Binding: All Languages |
Communication.extension:restrictionCategory.value[x]:valueCodeableConcept | required | RestrictionCategory |
Communication.extension:restrictionCategory.value[x]:valueCodeableConcept.coding | required | RestrictionCategory |
Communication.extension:priority.value[x]:valueCode | required | Priority |
Communication.status | required | EventStatus |
Communication.notDoneReason | required | CommunicationNotDoneReason |
Communication.category | example | CommunicationCategory |
Communication.category:DkTmCategory | example | CommunicationCategory |
Communication.category:DkTmCategory.coding | required | MessageCategory |
Communication.category:DkTmCategory.coding.code | required | MessageCategory |
Communication.medium | example | v3 Code System ParticipationMode |
Communication.medium:DkTmMedium | example | MessageMedium |
Communication.medium:DkTmMedium.coding.code | required | MessageMedium |
Communication.reasonCode | example | SNOMED CT Clinical Findings |
Communication.reasonCode.coding | required | eHealth Message Reason Code |
Id | Path | Details | Requirements |
dom-2 | Communication | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-1 | Communication | If the resource is contained in another resource, it SHALL NOT contain any narrative : contained.text.empty() | |
dom-4 | Communication | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-3 | Communication | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource : contained.where(('#'+id in %resource.descendants().reference).not()).empty() | |
com-1 | Communication | Not Done Reason can only be specified if NotDone is "true" : notDone or notDoneReason.exists().not() | |
nemsms-1 | Communication | If communication resource is a NemSMS payload cannot exceed 160 : medium.coding.where(code = 'nemsms').exists() implies payload.contentString.length() <= 160 | |
note-invariant | 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 | 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 | 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() ) | |
ele-1 | Communication.extension:recipientCareTeam | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Communication.extension:recipientCareTeam | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Communication.extension:senderCareTeam | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Communication.extension:senderCareTeam | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Communication.extension:restrictionCategory | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Communication.extension:restrictionCategory | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Communication.extension:threadId | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Communication.extension:threadId | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Communication.extension:period | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Communication.extension:period | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Communication.extension:administrativeStatus | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Communication.extension:administrativeStatus | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Communication.extension:title | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Communication.extension:title | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Communication.extension:priority | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Communication.extension:priority | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Communication.extension:groupId | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Communication.extension:groupId | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Communication.extension:onBehalfOf | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) | |
ext-1 | Communication.extension:onBehalfOf | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | Communication.payload | All FHIR elements must have a @value or children : hasValue() | (children().count() > id.count()) |