### Lookup eReferral Information ### Description - Both requester and provider systems can look up the most recent information about an eReferral, through the use of GET commands. #### Basic Information Requests All resources must be able to provide a response to a basic `GET [base]/Resource/` operation. This ensures that resources can reference other resources without needing to include the full content of child resources in a /bundle when making a request for the parent resource. * `GET [base]/ReferralRequest/` * `GET [base]/Organization/` * `GET [base]/Patient/` * `GET [base]/Practitioner/` * `GET [base]/RelatedPerson/` * `GET [base]/Appointment/` * `GET [base]/Task` * `GET [base]/Communication` * `GET [base]/CommunicationRequest` * `GET [base]/HealthcareService/` * `GET [base]/Location/` * `GET [base]/Endpoint/` * `GET [base]/Organization/` #### Expanded Information Requests To retrieve a resource plus its referenced resources in a /Bundle (except for file attachments), include the $everything parameter in the call. This is available for the following resources: `GET [base]/ReferralRequest/$everything` * Resources that ReferralRequest reference * ReferralRequest.requester.onbehalfof --> reference(Organization) * ReferralRequest.requester.agent --> reference(Patient or Practitioner or RelatedPerson) * ReferralRequest.subject --> referece(Patient) * ReferralRequest.generalPractitioner --> reference(Practitioner) * Resources that reference ReferralRequest * Task * Appointment * CommunicationRequest * CommunicationRequest.sender --> reference(Patient or Practitioner or RelatedPerson) * Communication * Communication.sender --> reference(Patient or Practitioner or RelatedPerson) `GET [base]/HealthcareService/$everything * Resources that HealthcareService reference * HealthcareService.providedBy -> reference(Organization) * HealthcareService.location -> reference(Location) * HealthcareService.coverageArea -> reference(Location) * HealthcareService.endpoint -> reference(Endpoint) * Resources that reference HealthcareService * PractitionerRole * PractitionerRole.practitioner -> reference(Practitioner) *Note*: Due to their potential large size, file attachment resources are NOT included with $everything, and must be retrieved seperately, which includes: * ReferalRequest.supportingInfo --> reference(DocumentReference) * CommunicationRequest.ContentReference --> reference(DocumentReference) * Communication.contentReference --> reference(DocumentReference) #### Search Requests Search ReferralRequest by last updated date/time range * `GET [base]/ReferralRequest/??????` Search for CommunicationRequest by last updated date/time range * `GET [base]/CommunicationRequest/????? Search for HealthcareServices * See "1) Choose Recipient - Direct" for details ### Notes - Subscriptions are the preferred mechanisms for sending updates ### More Investigation Needed - [Subscription resource](https://www.hl7.org/fhir/subscription.html), which could be used as the preferred mechanism for sending updates - How to flag that a referralrequest is new vs. updated? Some way to compare submitted to last updated? (no ... still woudn't work with polling) ### FOR FURTHER DISCUSSION - Search MAY?/MUST? be available for the /ReferralRequest resource - Should we have a way to request CHANGES ONLY within a specific period of time? Essentially, a diff between different versions of a resources? (seems like it ma be overly complicated...) - Do we need a way for a sender to indicate that they can process communicationRequest on submission, with the initial request? Possibly... In fact we could go farther than this and say the sender has to provide their entire subscription info for the referral...