Projo FHIR Documentation
0.1.0 - ci-build Switzerland flag

Projo FHIR Documentation - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Projo Communication ( Experimental )

Official URL: https://projo.evoleen.com/fhir/StructureDefinition/projo-communication Version: 0.1.0
Draft as of 2024-01-01 Computable Name: ProjoCommunication

Copyright/Legal: Copyright (c) Projo. Licensed under CC0-1.0 (public domain dedication). FHIR(R) is the registered trademark of HL7 and is used with permission. This IG references WhatsApp(R), a trademark of Meta Platforms, Inc., for descriptive purposes only.

Per-message audit record + projection state. The sidecar creates a Communication for every inbound and outbound message. Outbound messages start in-progress (no wamid yet) and are finalized to completed when the WhatsApp API returns the wamid. Inbound messages are created as completed immediately (webhook = receipt). Abandoned messages are marked entered-in-error. Each Communication is partOf a CommunicationRequest and carries the wamid as an identifier for idempotency.

Documentation-only artifact. Projo's runtime extensions, code systems, identifier systems and search parameter are TypeScript constants and bootstrap-time resources, NOT deployed StructureDefinitions. This StructureDefinition exists to document the contract; the source of truth is src/functions/src/lib/fhir/types.ts and docs/FHIR_EXTENSIONS.md.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Communication 0..* Communication Per-message audit + projection state
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier wamid (wamid identifier system)
Slice: Unordered, Open by value:system
.... identifier:wamid Σ 1..1 Identifier WhatsApp Message ID
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: https://firearrow.io/fhir/identifier/wamid
..... value Σ 1..1 string The value that is unique
Example General: 123456
... status ?!Σ 1..1 code in-progress | completed | entered-in-error
Binding: EventStatus (required): The status of the communication.
... category 1..1 CodeableConcept invitation | question | answer | reminder | abandoned | completion
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.
.... coding Σ 1..* Coding Code defined by a terminology system
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-category
..... code Σ 1..1 code Symbol in syntax defined by the system
... medium 1..1 CodeableConcept whatsapp (communication-medium code system)
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.
.... coding Σ 1..* Coding Code defined by a terminology system
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-medium
..... code Σ 1..1 code Symbol in syntax defined by the system
... sent 0..1 dateTime Outbound: WhatsApp API send timestamp
... received 0..1 dateTime Inbound: webhook receipt timestamp
... recipient 1..* Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService) Opposite side of sender
... sender 1..1 Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService) Resolved Reference or identifier-only Reference (phone/BSUID)
... payload 1..* BackboneElement Message content
.... 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 text

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Communication.identifier:wamid.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Communication.status Base required EventStatus 📍4.0.1 FHIR Std.
Communication.category Base example CommunicationCategory 📍4.0.1 FHIR Std.
Communication.medium Base example ParticipationMode 📦3.0.0 THO v6.5

Constraints

Id Grade Path(s) Description Expression
dom-2 error Communication If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Communication 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 contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error 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-5 error Communication If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Communication A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Communication

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Communication 0..* Communication Per-message audit + projection state
... Slices for identifier 1..* Identifier wamid (wamid identifier system)
Slice: Unordered, Open by value:system
.... identifier:wamid 1..1 Identifier WhatsApp Message ID
..... system 1..1 uri The namespace for the identifier value
Fixed Value: https://firearrow.io/fhir/identifier/wamid
..... value 1..1 string The value that is unique
... partOf 1..1 Reference(Resource) CommunicationRequest reference
... status 1..1 code in-progress | completed | entered-in-error
.... coding 1..* Coding Code defined by a terminology system
..... system 1..1 uri Identity of the terminology system
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-category
..... code 1..1 code Symbol in syntax defined by the system
... medium 1..1 CodeableConcept whatsapp (communication-medium code system)
.... coding 1..* Coding Code defined by a terminology system
..... system 1..1 uri Identity of the terminology system
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-medium
..... code 1..1 code Symbol in syntax defined by the system
... sent 0..1 dateTime Outbound: WhatsApp API send timestamp
... received 0..1 dateTime Inbound: webhook receipt timestamp
... recipient 1..* Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService) Opposite side of sender
... sender 1..1 Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService) Resolved Reference or identifier-only Reference (phone/BSUID)
... payload 1..* BackboneElement Message content
.... Slices for content[x] 1..1 string Message part content
Slice: Unordered, Open by type:$this
..... content[x]:contentString 1..1 string Message text

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Communication 0..* Communication Per-message audit + projection state
... 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
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier wamid (wamid identifier system)
Slice: Unordered, Open by value:system
.... identifier:wamid Σ 1..1 Identifier WhatsApp Message ID
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: https://firearrow.io/fhir/identifier/wamid
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... 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 Σ 1..1 Reference(Resource) CommunicationRequest reference
... inResponseTo 0..* Reference(Communication) Reply to
... status ?!Σ 1..1 code in-progress | completed | entered-in-error
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.
... category 1..1 CodeableConcept invitation | question | answer | reminder | abandoned | completion
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 Σ 1..* 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
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-category
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... 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.
... medium 1..1 CodeableConcept whatsapp (communication-medium code system)
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 Σ 1..* 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
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-medium
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... 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 Outbound: WhatsApp API send timestamp
... received 0..1 dateTime Inbound: webhook receipt timestamp
... recipient 1..* Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService) Opposite side of sender
... sender 1..1 Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService) Resolved Reference or identifier-only Reference (phone/BSUID)
... reasonCode Σ 0..* CodeableConcept Indication for message
Binding: SNOMEDCTClinicalFindings (example): Codes for describing reasons for the occurrence of a communication.
... reasonReference Σ 0..* Reference(Condition | Observation | DiagnosticReport | DocumentReference) Why was communication done?
... payload 1..* BackboneElement Message content
.... 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 text
... note 0..* Annotation Comments made about the communication

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Communication.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Communication.identifier:wamid.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Communication.identifier:wamid.​type Base extensible IdentifierType 📍4.0.1 FHIR Std.
Communication.status Base required EventStatus 📍4.0.1 FHIR Std.
Communication.statusReason Base example CommunicationNotDoneReason 📍4.0.1 FHIR Std.
Communication.category Base example CommunicationCategory 📍4.0.1 FHIR Std.
Communication.priority Base required Request priority 📍4.0.1 FHIR Std.
Communication.medium Base example ParticipationMode 📦3.0.0 THO v6.5
Communication.topic Base example CommunicationTopic 📍4.0.1 FHIR Std.
Communication.reasonCode Base example SNOMED CT Clinical Findings 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Communication If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Communication 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 contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error 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-5 error Communication If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Communication A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Communication

Summary

Mandatory: 17 elements
Fixed: 3 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Communication.identifier
  • The element 1 is sliced based on the value of Communication.payload.content[x]

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Communication 0..* Communication Per-message audit + projection state
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier wamid (wamid identifier system)
Slice: Unordered, Open by value:system
.... identifier:wamid Σ 1..1 Identifier WhatsApp Message ID
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: https://firearrow.io/fhir/identifier/wamid
..... value Σ 1..1 string The value that is unique
Example General: 123456
... status ?!Σ 1..1 code in-progress | completed | entered-in-error
Binding: EventStatus (required): The status of the communication.
... category 1..1 CodeableConcept invitation | question | answer | reminder | abandoned | completion
Binding: CommunicationCategory (example): Codes for general categories of communications such as alerts, instructions, etc.
.... coding Σ 1..* Coding Code defined by a terminology system
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-category
..... code Σ 1..1 code Symbol in syntax defined by the system
... medium 1..1 CodeableConcept whatsapp (communication-medium code system)
Binding: ParticipationMode (example): Codes for communication mediums such as phone, fax, email, in person, etc.
.... coding Σ 1..* Coding Code defined by a terminology system
..... system Σ 1..1 uri Identity of the terminology system
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-medium
..... code Σ 1..1 code Symbol in syntax defined by the system
... sent 0..1 dateTime Outbound: WhatsApp API send timestamp
... received 0..1 dateTime Inbound: webhook receipt timestamp
... recipient 1..* Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService) Opposite side of sender
... sender 1..1 Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService) Resolved Reference or identifier-only Reference (phone/BSUID)
... payload 1..* BackboneElement Message content
.... 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 text

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Communication.identifier:wamid.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Communication.status Base required EventStatus 📍4.0.1 FHIR Std.
Communication.category Base example CommunicationCategory 📍4.0.1 FHIR Std.
Communication.medium Base example ParticipationMode 📦3.0.0 THO v6.5

Constraints

Id Grade Path(s) Description Expression
dom-2 error Communication If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Communication 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 contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error 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-5 error Communication If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Communication A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

Differential View

This structure is derived from Communication

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Communication 0..* Communication Per-message audit + projection state
... Slices for identifier 1..* Identifier wamid (wamid identifier system)
Slice: Unordered, Open by value:system
.... identifier:wamid 1..1 Identifier WhatsApp Message ID
..... system 1..1 uri The namespace for the identifier value
Fixed Value: https://firearrow.io/fhir/identifier/wamid
..... value 1..1 string The value that is unique
... partOf 1..1 Reference(Resource) CommunicationRequest reference
... status 1..1 code in-progress | completed | entered-in-error
.... coding 1..* Coding Code defined by a terminology system
..... system 1..1 uri Identity of the terminology system
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-category
..... code 1..1 code Symbol in syntax defined by the system
... medium 1..1 CodeableConcept whatsapp (communication-medium code system)
.... coding 1..* Coding Code defined by a terminology system
..... system 1..1 uri Identity of the terminology system
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-medium
..... code 1..1 code Symbol in syntax defined by the system
... sent 0..1 dateTime Outbound: WhatsApp API send timestamp
... received 0..1 dateTime Inbound: webhook receipt timestamp
... recipient 1..* Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService) Opposite side of sender
... sender 1..1 Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService) Resolved Reference or identifier-only Reference (phone/BSUID)
... payload 1..* BackboneElement Message content
.... Slices for content[x] 1..1 string Message part content
Slice: Unordered, Open by type:$this
..... content[x]:contentString 1..1 string Message text

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Communication 0..* Communication Per-message audit + projection state
... 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
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..* Identifier wamid (wamid identifier system)
Slice: Unordered, Open by value:system
.... identifier:wamid Σ 1..1 Identifier WhatsApp Message ID
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
..... type Σ 0..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
..... system Σ 1..1 uri The namespace for the identifier value
Fixed Value: https://firearrow.io/fhir/identifier/wamid
..... value Σ 1..1 string The value that is unique
Example General: 123456
..... period Σ 0..1 Period Time period when id is/was valid for use
..... assigner Σ 0..1 Reference(Organization) Organization that issued id (may be just text)
... 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 Σ 1..1 Reference(Resource) CommunicationRequest reference
... inResponseTo 0..* Reference(Communication) Reply to
... status ?!Σ 1..1 code in-progress | completed | entered-in-error
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.
... category 1..1 CodeableConcept invitation | question | answer | reminder | abandoned | completion
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 Σ 1..* 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
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-category
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... 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.
... medium 1..1 CodeableConcept whatsapp (communication-medium code system)
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 Σ 1..* 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
Fixed Value: https://firearrow.io/fhir/CodeSystem/communication-medium
..... version Σ 0..1 string Version of the system - if relevant
..... code Σ 1..1 code Symbol in syntax defined by the system
..... 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 Outbound: WhatsApp API send timestamp
... received 0..1 dateTime Inbound: webhook receipt timestamp
... recipient 1..* Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService) Opposite side of sender
... sender 1..1 Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | HealthcareService) Resolved Reference or identifier-only Reference (phone/BSUID)
... reasonCode Σ 0..* CodeableConcept Indication for message
Binding: SNOMEDCTClinicalFindings (example): Codes for describing reasons for the occurrence of a communication.
... reasonReference Σ 0..* Reference(Condition | Observation | DiagnosticReport | DocumentReference) Why was communication done?
... payload 1..* BackboneElement Message content
.... 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 text
... note 0..* Annotation Comments made about the communication

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Communication.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Communication.identifier:wamid.​use Base required IdentifierUse 📍4.0.1 FHIR Std.
Communication.identifier:wamid.​type Base extensible IdentifierType 📍4.0.1 FHIR Std.
Communication.status Base required EventStatus 📍4.0.1 FHIR Std.
Communication.statusReason Base example CommunicationNotDoneReason 📍4.0.1 FHIR Std.
Communication.category Base example CommunicationCategory 📍4.0.1 FHIR Std.
Communication.priority Base required Request priority 📍4.0.1 FHIR Std.
Communication.medium Base example ParticipationMode 📦3.0.0 THO v6.5
Communication.topic Base example CommunicationTopic 📍4.0.1 FHIR Std.
Communication.reasonCode Base example SNOMED CT Clinical Findings 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Communication If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Communication 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 contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error 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-5 error Communication If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Communication A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()

This structure is derived from Communication

Summary

Mandatory: 17 elements
Fixed: 3 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Communication.identifier
  • The element 1 is sliced based on the value of Communication.payload.content[x]

 

Other representations of profile: CSV, Excel, Schematron