Retrieve a patient's appointment schedule

Last updated: Mar 21, 2024

You can use this API action to look up a specific patient’s scheduled appointments.

Use cases

This API action may be a good fit for your organization if you perform any of these use cases:

  • Send reminders to patients for scheduled appointments.
  • Prompt patients to schedule routine appointments (e.g., annual physicals).
  • Schedule follow-up appointments for a patient.
  • Review historical appointments for a patient.

So, you can think about using this for chronic management of a patient, not for urgent or dynamic scheduling. 

Supported systems

You can use this API action with the Redox FHIR® API.

Your connection's system can return results with their own FHIR® or query-based API. 

Things you need to know

Action steps

Retrieve appointments by patient identifier

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 Appointment resource schema for more details.

Query parameter
Required for this step
Notes
patient.identifier
Y
You must include at least one identifier that the EHR system uses.

Your search returns a list of scheduled appointments for one patient at one organization.

Appointment/_search
Query
bash
1
curl 'https://api.redoxengine.com/fhir/R4/redox-fhir-sandbox/Development/Appointment/_search' \
2
--request POST \
3
--header 'Authorization: Bearer ${API_TOKEN}' \
4
--header 'Content-Type: application/x-www-form-urlencoded' \
5
--data-urlencode 'patient=Patient/81c2f5eb-f99f-40c4-b504-59483e6148d7'
Response
json
1
{
2
"id": "22cd2bca-8cf7-4b74-a26b-0e8941c37d84",
3
"type": "searchset",
4
"entry": [
5
{
6
"search": {
7
"mode": "match",
8
"score": 1
9
},
10
"resource": {
11
"id": "194414ff-46bf-4fd2-aa37-c58f3884f0de",
12
"end": "2022-10-15T10:15:00.000Z",
13
"meta": {
14
"lastUpdated": "2022-10-19T20:28:45.479Z"
15
},
16
"start": "2022-10-15T10:00:00.000Z",
17
"reason": [
18
{
19
"text": "Check up"
20
}
21
],
22
"status": "booked",
23
"identifier": [
24
{
25
"value": "991100112233",
26
"system": "urn:redox:redox-fhir-sandbox:VIS",
27
"extension": [
28
{
29
"url": "https://fhir.redoxengine.com/StructureDefinition/identifier-origin",
30
"valueString": "RedoxAPI"
31
}
32
]
33
}
34
],
35
"participant": [
36
{
37
"actor": {
38
"reference": "Patient/81c2f5eb-f99f-40c4-b504-59483e6148d7"
39
},
40
"status": "accepted"
41
},
42
{
43
"type": [
44
{
45
"text": "ATND",
46
"coding": [
47
{
48
"code": "ATND",
49
"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
50
"display": "attender"
51
}
52
]
53
}
54
],
55
"actor": {
56
"reference": "Practitioner/dbed0f85-e3cd-47ac-9305-3f629e138832"
57
},
58
"status": "accepted"
59
},
60
{
61
"actor": {
62
"reference": "Location/ed4afd58-9796-4cc5-aed7-5c47345acec9"
63
},
64
"status": "accepted"
65
},
66
{
67
"actor": {
68
"reference": "Location/7fc98699-9108-46c1-958e-ec5419f6ebfd"
69
},
70
"status": "accepted"
71
}
72
],
73
"resourceType": "Appointment",
74
"minutesDuration": 15
75
}
76
}
77
],
78
"total": 1,
79
"resourceType": "Bundle"
80
}

Retrieve appointments by location

You can search by location to search for appointments at one 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 Appointment 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.

Appointment/_search
Query
bash
1
curl 'https://api.redoxengine.com/fhir/R4/redox-fhir-sandbox/Development/Appointment/_search' \
2
--request POST \
3
--header 'Authorization: Bearer ${API_TOKEN}' \
4
--header 'Content-Type: application/x-www-form-urlencoded' \
5
--data-urlencode 'location=Location/ed4afd58-9796-4cc5-aed7-5c47345acec9'
Response
json
1
{
2
"id": "2bdd0020-f553-45cc-bedc-6061b36abb80",
3
"resourceType": "Bundle",
4
"type": "searchset",
5
"entry": [
6
{
7
"resource": {
8
"resourceType": "Appointment",
9
"id": "194414ff-46bf-4fd2-aa37-c58f3884f0de",
10
"status": "booked",
11
"participant": [
12
{
13
"actor": {
14
"reference": "Patient/81c2f5eb-f99f-40c4-b504-59483e6148d7"
15
},
16
"status": "accepted"
17
},
18
{
19
"type": [
20
{
21
"text": "ATND",
22
"coding": [
23
{
24
"code": "ATND",
25
"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
26
"display": "attender"
27
}
28
]
29
}
30
],
31
"actor": {
32
"reference": "Practitioner/dbed0f85-e3cd-47ac-9305-3f629e138832"
33
},
34
"status": "accepted"
35
},
36
{
37
"actor": {
38
"reference": "Location/ed4afd58-9796-4cc5-aed7-5c47345acec9"
39
},
40
"status": "accepted"
41
},
42
{
43
"actor": {
44
"reference": "Location/7fc98699-9108-46c1-958e-ec5419f6ebfd"
45
},
46
"status": "accepted"
47
}
48
],
49
"identifier": [
50
{
51
"value": "991100112233",
52
"system": "urn:redox:redox-fhir-sandbox:VIS",
53
"extension": [
54
{
55
"url": "https://fhir.redoxengine.com/StructureDefinition/identifier-origin",
56
"valueString": "RedoxAPI"
57
}
58
]
59
}
60
],
61
"reason": [
62
{
63
"text": "Check up"
64
}
65
],
66
"start": "2022-10-15T10:00:00.000Z",
67
"end": "2022-10-15T10:15:00.000Z",
68
"minutesDuration": 15,
69
"meta": {
70
"lastUpdated": "2022-10-19T20:28:45.479Z"
71
}
72
},
73
"search": {
74
"mode": "match",
75
"score": 1
76
}
77
}
78
],
79
"total": 1
80
}

Retrieve appointments by provider

You can search by provider to search for 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 Appointment 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.

Appointment/_search
Query
bash
1
curl 'https://api.redoxengine.com/fhir/R4/redox-fhir-sandbox/Development/Appointment/_search' \
2
--request POST \
3
--header 'Authorization: Bearer ${API_TOKEN}' \
4
--header 'Content-Type: application/x-www-form-urlencoded' \
5
--data-urlencode 'practitioner=Practitioner/dbed0f85-e3cd-47ac-9305-3f629e138832'
Response
json
1
{
2
"id": "b76797f1-cf3d-4584-a6d3-69d14373a375",
3
"resourceType": "Bundle",
4
"type": "searchset",
5
"entry": [
6
{
7
"resource": {
8
"resourceType": "Appointment",
9
"id": "194414ff-46bf-4fd2-aa37-c58f3884f0de",
10
"status": "booked",
11
"participant": [
12
{
13
"actor": {
14
"reference": "Patient/81c2f5eb-f99f-40c4-b504-59483e6148d7"
15
},
16
"status": "accepted"
17
},
18
{
19
"type": [
20
{
21
"text": "ATND",
22
"coding": [
23
{
24
"code": "ATND",
25
"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
26
"display": "attender"
27
}
28
]
29
}
30
],
31
"actor": {
32
"reference": "Practitioner/dbed0f85-e3cd-47ac-9305-3f629e138832"
33
},
34
"status": "accepted"
35
},
36
{
37
"actor": {
38
"reference": "Location/ed4afd58-9796-4cc5-aed7-5c47345acec9"
39
},
40
"status": "accepted"
41
},
42
{
43
"actor": {
44
"reference": "Location/7fc98699-9108-46c1-958e-ec5419f6ebfd"
45
},
46
"status": "accepted"
47
}
48
],
49
"identifier": [
50
{
51
"value": "991100112233",
52
"system": "urn:redox:redox-fhir-sandbox:VIS",
53
"extension": [
54
{
55
"url": "https://fhir.redoxengine.com/StructureDefinition/identifier-origin",
56
"valueString": "RedoxAPI"
57
}
58
]
59
}
60
],
61
"reason": [
62
{
63
"text": "Check up"
64
}
65
],
66
"start": "2022-10-15T10:00:00.000Z",
67
"end": "2022-10-15T10:15:00.000Z",
68
"minutesDuration": 15,
69
"meta": {
70
"lastUpdated": "2022-10-19T20:28:45.479Z"
71
}
72
},
73
"search": {
74
"mode": "match",
75
"score": 1
76
}
77
}
78
],
79
"total": 1
80
}