DRAFT - The specification is currently in development and subject to significant change. It is not ready for limited roll-out or production level use.

Communication (CA:eReC)

Structure Definition: Communication Profile

Canonical URL:https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Communication

Simplifier project page: Communication

Derived from: Communication(R4)

Formal Views of Profile Content

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

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
instantiatesCanonicalΣ0..*canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire)
instantiatesUriΣ0..*uri
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
partOfΣ I0..*Reference(Resource)
inResponseToI0..*Reference(Communication)
statusS Σ ?!1..1codeBindingFixed Value
statusReasonΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
priorityΣ0..1codeBinding
medium0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
topic0..1CodeableConcept
aboutI0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
sent0..1dateTime
received0..1dateTime
recipientI0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService)
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
reasonCodeΣ0..*CodeableConcept
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
contentStringstring
contentAttachmentAttachment
contentReferenceReference(Resource)
id0..1string
extensionI0..*Extension
authorStringstring
timeΣ0..1dateTime
textΣ1..1markdown
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
instantiatesCanonicalΣ0..*canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire)
instantiatesUriΣ0..*uri
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
partOfΣ I0..*Reference(Resource)
inResponseToI0..*Reference(Communication)
statusS Σ ?!1..1codeBindingFixed Value
statusReasonΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
priorityΣ0..1codeBinding
medium0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
topic0..1CodeableConcept
aboutI0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
sent0..1dateTime
received0..1dateTime
recipientI0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService)
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
reasonCodeΣ0..*CodeableConcept
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
contentStringstring
contentAttachmentAttachment
contentReferenceReference(Resource)
id0..1string
extensionI0..*Extension
authorStringstring
timeΣ0..1dateTime
textΣ1..1markdown
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
instantiatesCanonicalΣ0..*canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire)
instantiatesUriΣ0..*uri
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
partOfΣ I0..*Reference(Resource)
inResponseToI0..*Reference(Communication)
statusS Σ ?!1..1codeBindingFixed Value
statusReasonΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
priorityΣ0..1codeBinding
medium0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
topic0..1CodeableConcept
aboutI0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
sent0..1dateTime
received0..1dateTime
recipientI0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService)
id0..1string
extensionI0..*Extension
referenceS Σ I1..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
reasonCodeΣ0..*CodeableConcept
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
contentStringstring
contentAttachmentAttachment
contentReferenceReference(Resource)
id0..1string
extensionI0..*Extension
authorStringstring
timeΣ0..1dateTime
textΣ1..1markdown
Communication..
Communication.meta..
Communication.instantiatesCanonical..
Communication.instantiatesUri..
Communication.basedOnReference(package/ServiceRequest.StructureDefinition.json)..
Communication.basedOn.reference1..
Communication.partOf..
Communication.status..
Communication.category..
Communication.category.coding..
Communication.category.coding.code..
Communication.priority..
Communication.medium..
Communication.subjectReference(package/Patient.StructureDefinition.json)..
Communication.subject.reference1..
Communication.about..
Communication.senderReference(package/PractitionerRole.StructureDefinition.json)..
Communication.sender.reference1..
Communication.reasonCode..
Communication.reasonReference..
Communication.payload..
Communication.note..
Communication.note.author[x]string..

{
    "resourceType": "StructureDefinition",
    "id": "CA-eReC-Communication",
    "url": "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Communication",
    "version": "0.1.0",
    "name": "Communication",
    "title": "Communication",
    "status": "draft",
    "description": "Communication resource is used to achieve the bi-directional communication between two systems. The Communication resource can be used to ask questions regarding a referral, request a referral be updated with missing information, or request additional information not covered by the specific referral dataset.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Communication",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Communication",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Communication.meta",
                "path": "Communication.meta",
                "comment": "The MustSupport flag on this element has been relaxed in this version until further confirmation of the use of meta.profile (outside of use for certain validation suites) and impact can be assessed by the working group."
            },
            {
                "id": "Communication.instantiatesCanonical",
                "path": "Communication.instantiatesCanonical"
            },
            {
                "id": "Communication.instantiatesUri",
                "path": "Communication.instantiatesUri"
            },
            {
                "id": "Communication.basedOn",
                "path": "Communication.basedOn",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Communication.basedOn.reference",
                "path": "Communication.basedOn.reference",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Communication.partOf",
                "path": "Communication.partOf"
            },
            {
                "id": "Communication.status",
                "path": "Communication.status",
                "fixedCode": "completed",
                "mustSupport": true,
                "binding": {
                    "strength": "required",
                    "valueSet": "http://hl7.org/fhir/ValueSet/event-status"
                }
            },
            {
                "id": "Communication.category",
                "path": "Communication.category",
                "mustSupport": true,
                "binding": {
                    "strength": "example",
                    "valueSet": "https://fhir.infoway-inforoute.ca/io/CA-eReC/ValueSet/communication-category"
                }
            },
            {
                "id": "Communication.category.coding",
                "path": "Communication.category.coding",
                "mustSupport": true
            },
            {
                "id": "Communication.category.coding.code",
                "path": "Communication.category.coding.code",
                "mustSupport": true
            },
            {
                "id": "Communication.priority",
                "path": "Communication.priority",
                "binding": {
                    "strength": "required",
                    "valueSet": "http://hl7.org/fhir/ValueSet/request-priority"
                }
            },
            {
                "id": "Communication.medium",
                "path": "Communication.medium"
            },
            {
                "id": "Communication.subject",
                "path": "Communication.subject",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Communication.subject.reference",
                "path": "Communication.subject.reference",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Communication.about",
                "path": "Communication.about"
            },
            {
                "id": "Communication.sender",
                "path": "Communication.sender",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "https://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Communication.sender.reference",
                "path": "Communication.sender.reference",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Communication.reasonCode",
                "path": "Communication.reasonCode"
            },
            {
                "id": "Communication.reasonReference",
                "path": "Communication.reasonReference"
            },
            {
                "id": "Communication.payload",
                "path": "Communication.payload",
                "mustSupport": true
            },
            {
                "id": "Communication.note.author[x]",
                "path": "Communication.note.author[x]",
                "type":  [
                    {
                        "code": "string"
                    }
                ]
            }
        ]
    }
}

Usage

Communication resource is used to achieve the bi-directional communication between two systems. The Communication resource can be used to ask questions regarding a referral, request a referral be updated with missing information, or request additional information not covered by the specific referral dataset.

Although the Communication resource has the ability to carry attachments as .payload.content, it SHALL NOT be used to attach .supportingInfo to a ServiceRequest. (Use the DocumentReference resource for this purpose.)

Notes

.id

  • used to uniquely identify the resource
  • if a persistent identity for the resource is not available to use when constructing a message Bundle for transmission via Direct Messaging, a UUID SHOULD be used in this element (with a corresponding value in Bundle.entry.fullUrl)

.basedOn

  • used to associate the Communication with the ServiceRequest
  • SHALL be populated with a reference to the ServiceRequest being performed
  • if the Communication is being transmitted via messaging, the referenced ServiceRequest resource SHALL be included in the message as a Bundle.entry

.status

  • SHALL be populated with the value "completed" when it is submitted via Direct Messaging

.category

.subject

  • used to associate a Communication with the Patient it is about
  • SHOULD NOT be populated for general Communications that are about the ServiceRequest, not the Patient
  • if populated, it SHALL reference the Patient in ServiceRequest.subject (e.g.: where the Communication.category is "plan")

.sent

  • populate with the time when the Communication was sent

.received

  • opulate with the time when the Communication was received
  • SHALL NOT be populated in the Communication in MessageHeader.focus on the "add-communication" event

.sender

  • used to identify the person who sent the messaging (e.g.: when rendering a conversation between individuals for display in the receiving system)
  • SHALL be populated with a reference to the PractitionerRole of the person sending the communication
  • if the Communication is being transmitted via messaging, the referenced PractionerRole resource SHALL be included in the message as a Bundle.entry

.payload.content

  • the content of the Communication

  • business rules:

    • there SHALL NOT be more than one instance of .payload.contentString per Communication instance
    • there MAY be multiple instances of .payload.contentAttachment per Communication instance
  • expected use:

    • when sendng JUST a text message, send a single .payload.contentString
    • when sendng JUST an attachment, send a single .payload.contentAttachment
    • when sending a text message with attachments, send multiple instances of .payload
      • one with the message (.payload.contentString)
      • one for each attachment (.payload.contentAttachment)
  • NOTE: although sending base64 encoded .payload.contentAttachment.data is supported, implementers of Direct Messaging SHOULD make binary attachments be made available to retrieve from a server using a .payload.contentAttachment.url to reduce message sizes