Find Appointment Slot
A key step in the Appointment Scheduling flow is finding an available appointment slot. Based on the parameters in the Find Appointment Slot request, possible Appointment times are returned where all required "assets" are available.
Finding the available appointment slots can be done by sending a POST request with the FHIR $find operation to the Appointment endpoint:
https://api.<region>.founda.com/1/health/organizations/<org-x>/fhir/4/Appointment/$find
Where <region> should be defined according to the different Founda regions and <org-x> should be replaced with the Healthcare Provider's organization ID that you are integrated with.
The POST request should contain the required assets in the body according the Parameters table.
The response contains a Bundle with a search set of proposed appointment times, matching the amount that was queried for in the body.
Founda adheres to recognized standards (IHE, HL7 FHIR) to ensure compatibility and harmonization among diverse systems. If there is a profile available for an interaction, it is recommended and preferred to follow the prescribed transactions.
The Find Appointment Slot interaction with the Founda Platform is based on the IHE FHIR Scheduling profile's ITI-114 transaction.
These input parameters determine which assets are needed to be able to schedule the visit. The $find operation returns a set of possible Appointment times where all required assets are available.
Parameter | Type | Required | Documentation |
---|---|---|---|
start | dateTime | Y | The period of time that should be checked for appointment availability.- e.g., look for all available appointments in a certain date range. If no start date is provided, all available appointments prior to the end date are in scope (subject to limits imposed by local business rules). |
end | dateTime | Y | The period of time that should be checked for appointment availability.- e.g., look for all available appointments in a certain date range. If no end date is provided, all available appointments after the start date are in scope (subject to limits imposed by local business rules). |
specialty | string | | The code for which specialty is requested for the appointment. ( e.g., 'Dermatology'). If multiple codes are listed, the order of the codes will interpreted as the order of preference. The response will contain appointments with any of these actors (i.e. this does not drive joint appointment with multiple actors). Each parameter value SHALL contain both the system property and the code property for a code using the general syntax specialty=[system]|[code]. |
visit-type | string | | The code for one of the common appointment visit types for scheduling. ( e.g.,'Echocardiography' or 'Well child visit' ). This list of visit types is extensible and implementers may choose to add there own codes. If multiple codes are listed, the order of the codes will interpreted as the order of preference. The response will contain appointments with any of these services (i.e. this does not drive joint appointment with multiple services). Each parameter value SHALL contain both the system property and the code property for a code using the general syntax service-type=[system]|[code]. |
practitioner | uri | | The Practitioner reference when performing a provider based query. This is a reference to a FHIR Practitioner resource, e.g. 'Practitioner/123'. If multiple practitioner references are listed, the order will interpreted as the order of preference. The response will contain appointments with any of these actors (i.e. this does not drive joint appointment with multiple actors). |
organization | uri | | The Organization reference when performing a provider based query. This is a reference to a FHIR Organization resource, e.g. 'Organization/abc'. If multiple organization references are listed, the order will interpreted as the order of preference. The response will contain appointments with any of these actors (i.e. this does not drive joint appointment with multiple actors). |
location-string | string | | A (part of the) address of the location of interest. (e.g., zip codes, city or state). This string parameter is interpreted as a String search parameter and covers the string type elements in the Address datatype. If multiple locations are listed, the order will interpreted as the order of preference. The response will contain appointments with any of these actors (i.e. this does not drive joint appointment with multiple locations) |
location-reference | uri | | A Location reference when performing an operation where the Location resource id is known. If multiple location references are listed, the order will interpreted as the order of preference. The response will contain appointments with any of these actors (i.e. this does not drive joint appointment with multiple locations) |
patient-reference | uri | | A Patient reference when performing an operation where the Patient resource id is known. Patient resources include demographics and patient preferences that may be important for availaiblilty searches. If multiple patient references are listed, the response will contain appointments which is joint match for all patients - i.e., a group appointment. |
patient-resource | Patient | | This parameter uses the Patient resource type instead of a simple reference because the patient record may not exist when performing availablity searches. (If the Patient resource id is known, use the patient-reference parameter instead.) It based on the US Core Patient Profile and includes demographics and patient preferences that may be important for availaiblilty searches. If the appointment is for a new patient, the patient record should not be created until just before booking an appointment. If multiple patient resources are listed, the response will contain appointments which is joint match for all patients - i.e., a group appointment. |
reason | string | | A clinical sign, symptom, diagnosis or health concern that this appointment is intended to treat. This may is used in conjunction with the specialty to determine which schedulable resources are needed for the visit. For example, for an orthopedics appointment, the reason may drive whether a hip specialist or knee specialist is preferred. Each parameter value SHALL contain both the system property and the code property for a code using the general syntax specialty=[system]|[code]. See the examples below for how this is implemented. |