FHIR Implementation Guide for ABDM
6.5.0 - active India flag

Banner

This page is part of the FHIR Implementation Guide for ABDM (v6.5.0: Release) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version. For a full list of available versions, see the Directory of published versions

Resource Profile: Communication

Official URL: https://nrces.in/ndhm/fhir/r4/StructureDefinition/Communication Version: 6.5.0
Draft as of 2025-03-18 Computable Name: Communication

This profile sets the minimum requirement for documenting any communication, whether it is planned or unsuccessful. A communication refers to the exchange of information from a sender to a receiver, and these entities can encompass patients, practitioners, related individuals, organizations, or devices. The resource serves as a record of these interactions.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication 0..* Communication A record of information transmitted from a sender to a receiver
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... inResponseTo 0..* Reference(Communication) Reply to
ele-1: All FHIR elements must have a @value or children
... subject Σ 0..1 Reference(Group | Patient) Focus of message
ele-1: All FHIR elements must have a @value or children
... encounter Σ 0..1 Reference(Encounter) Encounter created as part of
ele-1: All FHIR elements must have a @value or children
... recipient 0..* Reference(Device | RelatedPerson | Group | CareTeam | HealthcareService | Organization | Patient | Practitioner | PractitionerRole) Message recipient
ele-1: All FHIR elements must have a @value or children
... sender 0..1 Reference(Device | RelatedPerson | HealthcareService | Practitioner | PractitionerRole | Organization | Patient) Message sender
ele-1: All FHIR elements must have a @value or children
... reasonReference Σ 0..* Reference(DiagnosticReport | Condition | Observation | DocumentReference) Why was communication done?
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorCommunicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCommunicationIf 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-4errorCommunicationIf 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-5errorCommunicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCommunicationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication 0..* Communication A record of information transmitted from a sender to a receiver
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... 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(Resource) 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.

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


... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Codes indicating the relative importance of a communication.

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


... subject Σ 0..1 Reference(Group | Patient) 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..* Reference(Device | RelatedPerson | Group | CareTeam | HealthcareService | Organization | Patient | Practitioner | PractitionerRole) Message recipient
... sender 0..1 Reference(Device | RelatedPerson | HealthcareService | Practitioner | PractitionerRole | Organization | Patient) Message sender
... reasonCode Σ 0..* CodeableConcept Indication for message
Binding: SNOMEDCTClinicalFindings (example): Codes for describing reasons for the occurrence of a communication.


... reasonReference Σ 0..* Reference(DiagnosticReport | Condition | Observation | DocumentReference) Why was communication done?
... payload 0..* 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
.... content[x] 1..1 Message part content
..... contentString string
..... contentAttachment Attachment
..... contentReference Reference(Resource)
... note 0..* Annotation Comments made about the communication

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Communication.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Communication.statusReasonexampleCommunicationNotDoneReason
http://hl7.org/fhir/ValueSet/communication-not-done-reason
from the FHIR Standard
Communication.categoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.priorityrequiredRequestPriority
http://hl7.org/fhir/ValueSet/request-priority|4.0.1
from the FHIR Standard
Communication.mediumexampleParticipationMode
http://terminology.hl7.org/ValueSet/v3-ParticipationMode
Communication.topicexampleCommunicationTopic
http://hl7.org/fhir/ValueSet/communication-topic
from the FHIR Standard
Communication.reasonCodeexampleSNOMEDCTClinicalFindings
http://hl7.org/fhir/ValueSet/clinical-findings
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorCommunicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCommunicationIf 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-4errorCommunicationIf 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-5errorCommunicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCommunicationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication 0..* Communication A record of information transmitted from a sender to a receiver
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... inResponseTo 0..* Reference(Communication) Reply to
ele-1: All FHIR elements must have a @value or children
... subject Σ 0..1 Reference(Group | Patient) Focus of message
ele-1: All FHIR elements must have a @value or children
... encounter Σ 0..1 Reference(Encounter) Encounter created as part of
ele-1: All FHIR elements must have a @value or children
... recipient 0..* Reference(Device | RelatedPerson | Group | CareTeam | HealthcareService | Organization | Patient | Practitioner | PractitionerRole) Message recipient
ele-1: All FHIR elements must have a @value or children
... sender 0..1 Reference(Device | RelatedPerson | HealthcareService | Practitioner | PractitionerRole | Organization | Patient) Message sender
ele-1: All FHIR elements must have a @value or children
... reasonReference Σ 0..* Reference(DiagnosticReport | Condition | Observation | DocumentReference) Why was communication done?
ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorCommunicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCommunicationIf 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-4errorCommunicationIf 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-5errorCommunicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCommunicationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Differential View

This structure is derived from Communication

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Communication 0..* Communication A record of information transmitted from a sender to a receiver
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... 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(Resource) 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.

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


... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Codes indicating the relative importance of a communication.

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


... subject Σ 0..1 Reference(Group | Patient) 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..* Reference(Device | RelatedPerson | Group | CareTeam | HealthcareService | Organization | Patient | Practitioner | PractitionerRole) Message recipient
... sender 0..1 Reference(Device | RelatedPerson | HealthcareService | Practitioner | PractitionerRole | Organization | Patient) Message sender
... reasonCode Σ 0..* CodeableConcept Indication for message
Binding: SNOMEDCTClinicalFindings (example): Codes for describing reasons for the occurrence of a communication.


... reasonReference Σ 0..* Reference(DiagnosticReport | Condition | Observation | DocumentReference) Why was communication done?
... payload 0..* 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
.... content[x] 1..1 Message part content
..... contentString string
..... contentAttachment Attachment
..... contentReference Reference(Resource)
... note 0..* Annotation Comments made about the communication

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Communication.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Communication.statusrequiredEventStatus
http://hl7.org/fhir/ValueSet/event-status|4.0.1
from the FHIR Standard
Communication.statusReasonexampleCommunicationNotDoneReason
http://hl7.org/fhir/ValueSet/communication-not-done-reason
from the FHIR Standard
Communication.categoryexampleCommunicationCategory
http://hl7.org/fhir/ValueSet/communication-category
from the FHIR Standard
Communication.priorityrequiredRequestPriority
http://hl7.org/fhir/ValueSet/request-priority|4.0.1
from the FHIR Standard
Communication.mediumexampleParticipationMode
http://terminology.hl7.org/ValueSet/v3-ParticipationMode
Communication.topicexampleCommunicationTopic
http://hl7.org/fhir/ValueSet/communication-topic
from the FHIR Standard
Communication.reasonCodeexampleSNOMEDCTClinicalFindings
http://hl7.org/fhir/ValueSet/clinical-findings
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorCommunicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorCommunicationIf 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-4errorCommunicationIf 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-5errorCommunicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceCommunicationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron