Building on the Platform
...
Solutions
Appointment Scheduling
Find Appointment Slot
4min
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 interaction 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 sandbox testing docid\ ncff15xnu1wglst2wnm p 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 profile 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 parameters 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 example api call curl location 'https //api eu founda com/1/health/organizations/org 4c5739ba994d4ce9b5255d3f84a2d367/fhir/4/appointment/$find' \\ \ header 'content type application/json' \\ \ header 'authorization bearer ory at j3f3k53svp4b8fuoqij99xsxg0ytisqdo6n89ie 8zu 1jzkaqauuq tj79ljqfczrubxq4gtqlo4xbvkwvemqm' \\ \ data ' { "resourcetype" "parameters", "parameter" \[ { "name" "start", "valuedatetime" "2017 07 15t20 00 00z" }, { "name" "end", "valuedatetime" "2017 07 17t20 00 00z" }, { "name" "provider", "valueuri" \["practitioner/2079"] } }, { "name" "location", "valuestring" \["south wing, second floor"] } ] }'