## Communication/Appointment ## Communication **Communication/Appointment** is a simple RESTful interaction. It supports further communication based on the the ServiceRequest initiated by the submitting system to an eReferral server. ### Scope These transactions involves a request/response by an FHIR Client Application for the submission/receiving of referrals communication.These are sent via a /Bundle POST to an endpoint hosted by the eReferral server. ### Interaction Diagrams The following diagram illustrates the high-level interaction between an FHIR submitting and receiving system which are involved in further communication or booking an appointment. {{render:}} **Actor:** FHIR requester Application **Role:** Requests communication f based on a known identifier (e.g. service ID). **Actor:** FHIR Receiving Application **Role:** Returns a bundle containing the service ID for the single patient ### Communication Operation This operation supports an HTTP POST specifying the allowed identifiers( e.g. ServiceRequest identifiers) of a single patient instance from the FHIR requester application to send the communication to receiving application. **Trigger Events** 1. When an FHIR requester Application initiates the request for communication for a patient, it invokes a communication request and send it to the receiving system. 2. When an FHIR receiving system recieves new communication from an eReferral server,it invokes the response and send it to the requester system. ### Appointment Operation This operation supports an HTTP POST specifying the allowed identifiers( e.g. ServiceRequest identifiers) of a single patient instance for FHIR receieving application to book an appointment **Trigger Events** 1. When an FHIR referral recieving application initiates the request for appointment for a patient, it invokes a Appointment request and send it to the receiving system. **Summary of Supported Operations** The table below shows the allowed transactions for each profile and how they support FHIR endpoints, resources and their corresponding HTTP operations (https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html): |Resource | Transaction | HTTP Operations|URL|Request Body Resource|Response Body Resource |- |Communication|POST|POST|[base]/Communication?|[Communication](https://simplifier.net/guide/eReferraldraftiGuide/Communication)|[Communication]( https://simplifier.net/guide/eReferraldraftiGuide/Communication)| |Appointment|POST|POST|[base]/Appointment?|[Appointment](https://simplifier.net/guide/eReferraldraftiGuide/Appointment)|[Appointment]( https://simplifier.net/guide/eReferraldraftiGuide/Appointment)| The interaction summary table below lists the HTTP status codes that may be returned for the POST operations for Submit Referral and Relay Referral. |Interaction|Content-Type|Body|Location|Versioning|HTTP Status Codes|Comments |- |POST|R|R: Communication|Bundle|N/A|200,400,500(**TBD**)| | |POST|R|R: Appointment|Bundle|N/A|200,400,500(**TBD**)| | **Expected Behavior** referral requester System SHALL send the request bundle containing Communication/Appointment resource that corresponds to the ServiceRequest ID provided by the FHIR requesting application. eReferral receievinmg system SHALL respond with a bundle with a Communication/Appointment resource that contains a ServiceRequest identifier provided by the FHIR receieving application, or an http error if an internal error occurs. eReferral SHALL respond to the request as described by the following cases: |Case|Scenario Description|Response| |- ### Resource Profiles This eReferral FHIR operation is based on the HL7 FHIR STU3 POST operation. It makes use of the following resources: **Communication** **eReferral Requester Systems** will submit a FHIR Bundle containing a Communication + other relevant resources to the endpoint of a pre-selected target HealthcareService, hosted by an eReferral server. On successful submission, the sending system will receive a response bundle, and the eReferral will be viewable in the eReferral Server system. **Sending an eReferral has following key components: 1. Build a /Bundle including the /Communication or /Appoinment and other relevant resources 2. POST to the target service's /Endpoint (which is specified in the/HealthcareService) ***'POST [endpoint.address]'*** **Communication/Update** The response from an eReferral request operation is a bundle containing Communication/Appointment resource . If eReferral does not found any serviceRequest based on the provided ID in Search Request, it will return an empty search result with no error, but may include an OperationOutcome with further advice. **The following resource profiles are used for eReferral Request/response**: ***Communication*** The /Communication is a conveyance of information from one entity, a sender, to another entity, a receiver Messageheader (eReferral-Communication) ***Appointment*** The /Appointment is provide information about a planned meeting that may be in the future or past ServiceRequest (eReferral-ServiceRequest) ***Bundle*** Bundle is used to group collection of resources together Bundle (eReferral-Bundle) ***Operation Outcome*** Operation outcomes are sets of error, warning and information messages that provide detailed information about the outcome of an attempted system operation. They are provided as a direct system response or component of one and provide information about the outcome of the operation. OperationOutcome (eReferral-OperationOutcome) The eReferral FHIR profiles are developed to constrain value sets and cardinality of data elements in the resources listed above. **Examples**