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:http://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 Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
partOfΣ I0..*Reference(Resource)
inResponseToS I0..*Reference(Communication)
statusS Σ ?!1..1codeBindingFixed Value
statusReasonΣ0..1CodeableConcept
categoryS0..*CodeableConcept
priorityΣ0..1codeBinding
medium0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
topic0..1CodeableConcept
aboutI0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
sentS0..1dateTime
receivedS0..1dateTime
recipientI0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService)
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
reasonCodeΣ0..*CodeableConcept
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
contentStringstring
contentAttachmentAttachment
note0..*Annotation
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 Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
partOfΣ I0..*Reference(Resource)
inResponseToS I0..*Reference(Communication)
statusS Σ ?!1..1codeBindingFixed Value
statusReasonΣ0..1CodeableConcept
categoryS0..*CodeableConcept
priorityΣ0..1codeBinding
medium0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
topic0..1CodeableConcept
aboutI0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
sentS0..1dateTime
receivedS0..1dateTime
recipientI0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService)
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
reasonCodeΣ0..*CodeableConcept
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
contentStringstring
contentAttachmentAttachment
note0..*Annotation
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 Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ0..1uri
valueS Σ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
partOfΣ I0..*Reference(Resource)
inResponseToS I0..*Reference(Communication)
statusS Σ ?!1..1codeBindingFixed Value
statusReasonΣ0..1CodeableConcept
categoryS0..*CodeableConcept
priorityΣ0..1codeBinding
medium0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
topic0..1CodeableConcept
aboutI0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
sentS0..1dateTime
receivedS0..1dateTime
recipientI0..*Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson | Group | CareTeam | HealthcareService)
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
reasonCodeΣ0..*CodeableConcept
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
contentStringstring
contentAttachmentAttachment
note0..*Annotation
Communication..
Communication.basedOnReference(ServiceRequest)1..1
Communication.basedOn.reference..
Communication.basedOn.identifier..
Communication.basedOn.identifier.system..
Communication.basedOn.identifier.value..
Communication.inResponseTo..
Communication.status..
Communication.category..
Communication.subjectReference(Patient)..
Communication.subject.reference..
Communication.subject.identifier..
Communication.subject.identifier.system1..
Communication.subject.identifier.value1..
Communication.sent..
Communication.received..
Communication.senderReference(PractitionerRole)..
Communication.sender.reference..
Communication.sender.identifier..
Communication.sender.identifier.system1..
Communication.sender.identifier.value1..
Communication.payload..
Communication.payload.content[x]string, Attachment..

{
    "resourceType": "StructureDefinition",
    "id": "CA-eReC-Communication",
    "url": "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Communication",
    "version": "1.0.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.basedOn",
                "path": "Communication.basedOn",
                "min": 1,
                "max": "1",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Communication.basedOn.reference",
                "path": "Communication.basedOn.reference",
                "mustSupport": true
            },
            {
                "id": "Communication.basedOn.identifier",
                "path": "Communication.basedOn.identifier",
                "mustSupport": true
            },
            {
                "id": "Communication.basedOn.identifier.system",
                "path": "Communication.basedOn.identifier.system",
                "mustSupport": true
            },
            {
                "id": "Communication.basedOn.identifier.value",
                "path": "Communication.basedOn.identifier.value",
                "mustSupport": true
            },
            {
                "id": "Communication.inResponseTo",
                "path": "Communication.inResponseTo",
                "mustSupport": true
            },
            {
                "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": "http://fhir.infoway-inforoute.ca/io/CA-eReC/ValueSet/communication-category"
                }
            },
            {
                "id": "Communication.subject",
                "path": "Communication.subject",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Communication.subject.reference",
                "path": "Communication.subject.reference",
                "mustSupport": true
            },
            {
                "id": "Communication.subject.identifier",
                "path": "Communication.subject.identifier",
                "mustSupport": true
            },
            {
                "id": "Communication.subject.identifier.system",
                "path": "Communication.subject.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Communication.subject.identifier.value",
                "path": "Communication.subject.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Communication.sent",
                "path": "Communication.sent",
                "mustSupport": true
            },
            {
                "id": "Communication.received",
                "path": "Communication.received",
                "mustSupport": true
            },
            {
                "id": "Communication.sender",
                "path": "Communication.sender",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "Communication.sender.reference",
                "path": "Communication.sender.reference",
                "mustSupport": true
            },
            {
                "id": "Communication.sender.identifier",
                "path": "Communication.sender.identifier",
                "mustSupport": true
            },
            {
                "id": "Communication.sender.identifier.system",
                "path": "Communication.sender.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Communication.sender.identifier.value",
                "path": "Communication.sender.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Communication.payload",
                "path": "Communication.payload",
                "mustSupport": true
            },
            {
                "id": "Communication.payload.content[x]",
                "path": "Communication.payload.content[x]",
                "type":  [
                    {
                        "code": "string"
                    },
                    {
                        "code": "Attachment"
                    }
                ],
                "mustSupport": true
            }
        ]
    }
}

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)

.identifier

  • MAY be populated to share business identifers used to reference this resource in subsequent messages
  • identifier.system and identifier.value SHALL be mustSupport whenever there is a reference or identifier present

.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, this element SHALL either:
    • .reference a resource included in the message as a Bundle.entry, or
    • include an .identifier previously known to both systems

inResponseTo

  • Indicates that the Communication is a response to another Communication and creates an association with the prior
  • Populate with Communication.id from the Communication being responded to
  • Where a Communication is part of a converstation, implementers SHOULD include both the Communication in MessageHeader.focus and the one it is .inResponseTo as Bundle entries to allow them to be correctly associated with one another on the receiving system (others further up the chain MAY be omitted on the assumption that any necessary associations between Communications have already been made)

.status

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

.category

  • Used to indicate the category of Communication

  • Use of values

    • "gen" when sending general communications

    • "plan" when sending plan of care on service completion

    • "rfi" when sending a request for information

.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

  • Populate 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, this element SHALL either:
    • .reference a resource included in the message as a Bundle.entry, or
    • include an .identifier previously known to both systems

.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
  • Epected 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