You can use this API action to look up a specific patient’s scheduled appointments. Typically, you can use this for:
Essentially, this API action is for chronic management of a patient, not for urgent or dynamic scheduling.
Also, keep in mind that this API action is different than looking up a provider's schedule to make patient appointments.
To use this API action, you must know the patient identifier. If you don’t, you must locate the appropriate identifier first. Learn how to search for a patient with demographics.
You can use this API action with the Redox FHIR ® API.
It’s also possible to use the Redox Data Model API for this API action. Talk to a Redoxer to learn about your options if you want to use alternative integration methods.
Your connection's system can return results with their own FHIR® or query-based API.
It's possible that your connection's system can't support a query-based data exchange, but they may still be willing to provide results with a push-based method.
However, we understand that you may not want to store all that data—maybe you don't need all possible results and just want to query for what you want when you need it. If so, you can use this API action via our data on demand service, which stores the connection's data so that you can query from Redox "on demand." Learn more about data on demand.
Like with any query, you can refine your search using query parameters. If you choose to search by patient identifier, you could potentially receive a patient’s appointments with different providers or locations within the same organization. But you could combine the query parameters to refine a search for a patient’s appointments at a specific facility or with a specific provider within an organization.
No matter how you search, you can only search and retrieve appointments for one organization at a time. If you want a schedule for multiple organizations, you must perform this API action for every organization that you’re interested in receiving data from.
The philosophy around how to make and maintain a schedule in healthcare is a bit like the slogan for Reese's peanut butter cups: there’s no wrong way to make a schedule. In other words, scheduling isn’t standardized throughout the industry.
What this means for you is that the details and the appointment types you receive back may be formatted very differently, depending on which connection it’s from. For example, one connection may have standardized appointments for a certain time zone, while another creates appointments in multiple time zones. Make sure to account for this high degree of variation in scheduling formats and details for your own workflow needs. Check with your connection so that you know what to expect.
Like sensible shoes, you only need a few targeted queries to retrieve the appointments you need. We recommend that you design your system around the reason for needing appointments, then sequence your polling queries for appointment data based on outcomes. For example, you could initiate a call to retrieve the next 2 weeks’ worth of appointments at the beginning of the day, but you don’t need to re-run another query for that same data every 5 minutes.
Does this API action seem like a good fit for your unique workflow? If so, let your Redox rep know! You can begin development by downloading the relevant resource schema (which is noted in the relevant action step below), and deciding which data elements you need. Then head over to our Quickstart guide to dive right in.
If you're not engaged with our sales team yet, talk to a Redoxer to get started.
You can search for appointments for a specific patient if you already have the patient identifier. This is one possible search method, but you could combine the query parameters from this step with those in other steps to refine your search even more.
This table has notes about how to use parameters for this action step specifically, but it's not exhaustive. Refer to the resource schema for more details.
Query parameter | Required for this step | Notes |
---|---|---|
patient.identifier | Y | You must include at least one identifier for the patient that's used by the EHR system you're querying. |
Your search returns a list of scheduled appointments for one patient at one organization.
curl ---location --request POST 'https://api.redoxengine.com/fhir/R4/redox-fhir-sandbox/Development/Appointment/_search' \--header 'Content-Type: application/x-www-form-urlencoded' \--header 'Authorization: Bearer ${API_TOKEN}' \--data-urlencode 'patient=Patient/81c2f5eb-f99f-40c4-b504-59483e6148d7'
{"id": "22cd2bca-8cf7-4b74-a26b-0e8941c37d84","type": "searchset","entry": [{"search": {"mode": "match","score": 1},"resource": {"id": "194414ff-46bf-4fd2-aa37-c58f3884f0de","end": "2022-10-15T10:15:00.000Z","meta": {"lastUpdated": "2022-10-19T20:28:45.479Z"},"start": "2022-10-15T10:00:00.000Z","reason": [{"text": "Check up"}],"status": "booked","identifier": [{"value": "991100112233","system": "urn:redox:redox-fhir-sandbox:VIS","extension": [{"url": "https://fhir.redoxengine.com/StructureDefinition/identifier-origin","valueString": "RedoxAPI"}]}],"participant": [{"actor": {"reference": "Patient/81c2f5eb-f99f-40c4-b504-59483e6148d7"},"status": "accepted"},{"type": [{"text": "ATND","coding": [{"code": "ATND","system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType","display": "attender"}]}],"actor": {"reference": "Practitioner/dbed0f85-e3cd-47ac-9305-3f629e138832"},"status": "accepted"},{"actor": {"reference": "Location/ed4afd58-9796-4cc5-aed7-5c47345acec9"},"status": "accepted"},{"actor": {"reference": "Location/7fc98699-9108-46c1-958e-ec5419f6ebfd"},"status": "accepted"}],"resourceType": "Appointment","minutesDuration": 15}}],"total": 1,"resourceType": "Bundle"}
You can also search for appointments by location if you want to search a specific facility. This is one possible search method, but you could combine the query parameters from this step with those in other steps to refine your search even more.
This table has notes about how to use parameters for this action step specifically, but it's not exhaustive. Refer to the resource schema for more details.
Query parameter | Required for this step | Notes |
---|---|---|
location | Y | You must include the facility code of the location you want to search. |
Your search returns a list of scheduled appointments for the specified location of one organization.
curl ---location --request POST 'https://api.redoxengine.com/fhir/R4/redox-fhir-sandbox/Development/Appointment/_search' \--header 'Content-Type: application/x-www-form-urlencoded' \--header 'Authorization: Bearer ${API_TOKEN}' \--data-urlencode 'location=Location/ed4afd58-9796-4cc5-aed7-5c47345acec9'
{"id": "2bdd0020-f553-45cc-bedc-6061b36abb80","resourceType": "Bundle","type": "searchset","entry": [{"resource": {"resourceType": "Appointment","id": "194414ff-46bf-4fd2-aa37-c58f3884f0de","status": "booked","participant": [{"actor": {"reference": "Patient/81c2f5eb-f99f-40c4-b504-59483e6148d7"},"status": "accepted"},{"type": [{"text": "ATND","coding": [{"code": "ATND","system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType","display": "attender"}]}],"actor": {"reference": "Practitioner/dbed0f85-e3cd-47ac-9305-3f629e138832"},"status": "accepted"},{"actor": {"reference": "Location/ed4afd58-9796-4cc5-aed7-5c47345acec9"},"status": "accepted"},{"actor": {"reference": "Location/7fc98699-9108-46c1-958e-ec5419f6ebfd"},"status": "accepted"}],"identifier": [{"value": "991100112233","system": "urn:redox:redox-fhir-sandbox:VIS","extension": [{"url": "https://fhir.redoxengine.com/StructureDefinition/identifier-origin","valueString": "RedoxAPI"}]}],"reason": [{"text": "Check up"}],"start": "2022-10-15T10:00:00.000Z","end": "2022-10-15T10:15:00.000Z","minutesDuration": 15,"meta": {"lastUpdated": "2022-10-19T20:28:45.479Z"}},"search": {"mode": "match","score": 1}}],"total": 1}
You can search for appointments by provider if you want to search a specific provider's appointments. This is one possible search method, but you could combine the query parameters from this step with those in other steps to refine your search even more.
This table has notes about how to use parameters for this action step specifically, but it's not exhaustive. Refer to the resource schema for more details.
Query parameter | Required for this step | Notes |
---|---|---|
practitioner | Y | You must include the practitioner ID of the provider you want to retrieve appointments for. |
Your search returns a list of scheduled appointments for the specified provider.
curl ---location --request POST 'https://api.redoxengine.com/fhir/R4/redox-fhir-sandbox/Development/Appointment/_search' \--header 'Content-Type: application/x-www-form-urlencoded' \--header 'Authorization: Bearer ${API_TOKEN}' \--data-urlencode 'practitioner=Practitioner/dbed0f85-e3cd-47ac-9305-3f629e138832'
{"id": "b76797f1-cf3d-4584-a6d3-69d14373a375","resourceType": "Bundle","type": "searchset","entry": [{"resource": {"resourceType": "Appointment","id": "194414ff-46bf-4fd2-aa37-c58f3884f0de","status": "booked","participant": [{"actor": {"reference": "Patient/81c2f5eb-f99f-40c4-b504-59483e6148d7"},"status": "accepted"},{"type": [{"text": "ATND","coding": [{"code": "ATND","system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType","display": "attender"}]}],"actor": {"reference": "Practitioner/dbed0f85-e3cd-47ac-9305-3f629e138832"},"status": "accepted"},{"actor": {"reference": "Location/ed4afd58-9796-4cc5-aed7-5c47345acec9"},"status": "accepted"},{"actor": {"reference": "Location/7fc98699-9108-46c1-958e-ec5419f6ebfd"},"status": "accepted"}],"identifier": [{"value": "991100112233","system": "urn:redox:redox-fhir-sandbox:VIS","extension": [{"url": "https://fhir.redoxengine.com/StructureDefinition/identifier-origin","valueString": "RedoxAPI"}]}],"reason": [{"text": "Check up"}],"start": "2022-10-15T10:00:00.000Z","end": "2022-10-15T10:15:00.000Z","minutesDuration": 15,"meta": {"lastUpdated": "2022-10-19T20:28:45.479Z"}},"search": {"mode": "match","score": 1}}],"total": 1}