API Reference

Book an appointment

URL: {{base-url}}/providers/{{provider-id}}/appointments
Method: POST

Parameters description:

provider-id - The id field key in an Organization object

{
    "slot_id": "5b16a68e-66dc-442f-8e2e-8715f328c4ec",
    "patient_id": "54e020a2-0aec-4bc9-beab-9c60516e55f7",
    "healthcare_service_id": "ae3687a2-65d5-40c9-83ee-4b59a56cf9a4",
    "appointment_type": "ROUTINE",
    "service_tier_id": "2aa74d11-be6a-4d14-8888-31995b1142b2",
    "requested_period": 0,
    "minutes_duration": 0,
    "priority": 0
}
{
    "success": true,
    "message": "Appointment was successfully booked",
    "data": {
        "id": "e7b55dde-d671-4a15-a3fa-2cf1d63de154",
        "healthcare_service_name": "Dermatology",
        "patient_full_name": "Aspden  Christopher    R.",
        "patient_age": 34,
        "patient_gender": "MALE",
        "patient_mobile": "+2433205",
        "patient_id": "54e020a2-0aec-4bc9-beab-9c60516e55f7",
        "slot_start": "2022-04-22T13:15:00Z",
        "slot_end": "2022-04-22T13:30:00Z",
        "slot_practitioner_name": "Mr Chris Dare",
        "service_tier": {
            "id": 1,
            "uuid": "2aa74d11-be6a-4d14-8888-31995b1142b2",
            "created_at": "2021-11-01T18:22:11.625041Z",
            "display": "Standard",
            "charge": "137.00",
            "currency": "GHS",
            "description": "Standard Pricing",
            "priority": "routine",
            "turnaround_time_value": null,
            "turnaround_time_unit": null
        },
        "uuid": "631977f0-1fe6-4536-a3d9-4ae7ae65c3e5",
        "resource_type": null,
        "status": "pending",
        "cancellation_reason": null,
        "appointment_type": "ROUTINE",
        "reason": null,
        "priority": 0,
        "description": null,
        "start": null,
        "end": null,
        "minutes_duration": 0,
        "created": "2022-04-22T12:39:25.473568Z",
        "comment": null,
        "patient_instruction": null,
        "requested_period": 0,
        "is_deleted": false,
        "practitioner_name": "Mr Chris Dare",
        "slot": "60d8f264-994c-43b8-8022-c179adacbde4",
        "healthcare_service": "449560da-0432-46be-a919-2df8fbb182da",
        "patient": 266,
        "practitioner": "195f155e-60bd-4ed6-b6fb-f062fe750a9d",
        "booking_user": 14729,
        "provider": "951ce6e6-abf8-4cd1-9986-36505a512b7e",
        "service_request_based_on": []
    },
    "errors": null
}

Request fields/keys descriptions:

slot_id - The uuid field key in a slot object.
patient_id - The uuid field key in a patient object.
healthcare_service_id - The uuid field key in a Healthcareservice object.
service_tier_id - The uuid field key in a ServicePriceTiers object.

Get appointments

URL: {{base_url}}/providers/{{provider_id}}/appointments?start=2021-11-01T23:30:00Z&end=2021-12-01T23:30:00Z
Method: GET

Parameters description:
provider-id - The id field key in an Organization object

Filter Query Pramaters:

  • start (DateTime)
  • end (DateTime)
  • status (str) Options: proposed, pending, booked, arrived, fullfilled, cancelled, noshow, entered-in-error, waitlist
  • appointment_type (str) Options: EMERGENCY, CHECKUP, FOLLOWUP, ROUTINE, WALKIN
  • patient_id (str) patient uuid field
  • healthcare_service_id (str): healthcare_service uuid field
  • search
    The search value can be any of the following
  1. Patient
  • first_name
  • last_name
  • user_mobile
  • user__national_mobile_number
  • user__email
  • other_names
  • mr_number
  1. practitioner_name
  2. healthcare_service__name
{
    "success": true,
    "message": "Operation successful",
    "meta": {
        "current": 1,
        "page_size_query": "page_size",
        "next": "http://127.0.0.1:8090/v1/providers/951ce6e6-abf8-4cd1-9986-36505a512b7e/appointments?page=2&page_size=5&start=2022-3-01T23%3A30%3A00Z",
        "previous": null,
        "page_size": 5,
        "total": 6
    },
    "results": [
        {
        "id": "e7b55dde-d671-4a15-a3fa-2cf1d63de154",
        "healthcare_service_name": "Dermatology",
        "patient_full_name": "Aspden  Christopher    R.",
        "patient_age": 34,
        "patient_gender": "MALE",
        "patient_mobile": "+2433205",
        "patient_id": "54e020a2-0aec-4bc9-beab-9c60516e55f7",
        "slot_start": "2022-04-22T13:15:00Z",
        "slot_end": "2022-04-22T13:30:00Z",
        "slot_practitioner_name": "Mr Chris Dare",
        "service_tier": {
            "id": 1,
            "uuid": "2aa74d11-be6a-4d14-8888-31995b1142b2",
            "created_at": "2021-11-01T18:22:11.625041Z",
            "display": "Standard",
            "charge": "137.00",
            "currency": "GHS",
            "description": "Standard Pricing",
            "priority": "routine",
            "turnaround_time_value": null,
            "turnaround_time_unit": null
        },
        "uuid": "631977f0-1fe6-4536-a3d9-4ae7ae65c3e5",
        "resource_type": null,
        "status": "pending",
        "cancellation_reason": null,
        "appointment_type": "ROUTINE",
        "reason": null,
        "priority": 0,
        "description": null,
        "start": null,
        "end": null,
        "minutes_duration": 0,
        "created": "2022-04-22T12:39:25.473568Z",
        "comment": null,
        "patient_instruction": null,
        "requested_period": 0,
        "is_deleted": false,
        "practitioner_name": "Mr Chris Dare",
        "slot": "60d8f264-994c-43b8-8022-c179adacbde4",
        "healthcare_service": "449560da-0432-46be-a919-2df8fbb182da",
        "patient": 266,
        "practitioner": "195f155e-60bd-4ed6-b6fb-f062fe750a9d",
        "booking_user": 14729,
        "provider": "951ce6e6-abf8-4cd1-9986-36505a512b7e",
        "service_request_based_on": []
        },
      ...
      ]
 }

Update an appointment

URL: {{base-url}}/providers/{{provider-id}}/appointments/{{appointment-id}}
Method: PATCH

The endpoint updates an appointment. You can change the patient, service tier, healthcare service and reschedule the appointment with this endpoint. The presence of a slot_id key means the appointment will be rescheduled appointment also.

Parameters description:

provider-id - The id field key in an Organization object
appointment-id - The uuid field key in an appointment object

{
    "appointment_type": "CHECKUP",
    "healthcare_service_id": "08317631-3b9f-4057-96e0-07f1d91d3abc",
    "patient_id": "cf5f80b0-dacd-4405-a2dd-8bbc3f2f17fd",
    "service_tier_id": "bc6534ec-8ef7-4824-96a5-f707f33b473a",
    "slot_id": "3fb248c4-ecf0-45b0-b3ce-3fed54b41eb9"
}
{
    "success": true,
    "message": "The appointment was successfully updated",
    "data": {
        "id": "d5955264-7e0e-4efa-b103-e677bf2d76c0",
        "healthcare_service_name": "GP Consultation",
        "patient_full_name": "Evans  Boadi",
        "patient_age": null,
        "patient_gender": "UNKNOWN",
        "patient_mobile": "+233209404045",
        "patient_id": "cf5f80b0-dacd-4405-a2dd-8bbc3f2f17fd",
        "slot_start": "2022-06-05T09:15:00Z",
        "slot_end": "2022-06-05T09:30:00Z",
        "slot_practitioner_name": "Mr Jean baptiste Tuyizere",
        "service_tier": {
            "id": 1347,
            "uuid": "bc6534ec-8ef7-4824-96a5-f707f33b473a",
            "created_at": "2021-11-25T13:55:17.545129Z",
            "display": "GP Consultation cash (GH Resident)",
            "charge": "137.00",
            "currency": "GHS",
            "description": "GP Consultation cash (GH Resident)",
            "priority": "routine",
            "turnaround_time_value": 0,
            "turnaround_time_unit": ""
        },
        "uuid": "0a662bcb-1e48-42e8-910e-2e2c2e693eab",
        "resource_type": null,
        "status": "pending",
        "cancellation_reason": null,
        "appointment_type": "CHECKUP",
        "reason": null,
        "priority": 0,
        "description": null,
        "start": null,
        "end": null,
        "minutes_duration": 0,
        "created": "2022-04-04T09:54:20.115467Z",
        "comment": "Just a check up on my back",
        "patient_instruction": null,
        "requested_period": 0,
        "is_deleted": false,
        "practitioner_name": null,
        "slot": "c0a5b0b7-4925-4471-9a85-b1b8c5307675",
        "healthcare_service": "773550b0-1d92-40a5-a859-b3cfd70353d3",
        "patient": 17,
        "practitioner": null,
        "booking_user": null,
        "provider": "951ce6e6-abf8-4cd1-9986-36505a512b7e",
        "provider_location": null,
        "service_request_based_on": []
    },
    "errors": null
}

Request fields/keys description:

Delete an appointment

URL: {{base-url}}/providers/{{provider-id}}/appointments/{{appointment-id}}
Method: DELETE

Parameters description:

provider-id - The id field key in an Organization object
appointment-id - The uuid field key in an appointment object

Not Implemented yet

Perform an action on an Appointment

URL: {{base-url}}/providers/{{provider-id}}/appointments/{{appointment-id}}/action
Method: PATCH

Parameters description:

provider-id - The id field key in an Organization object
appointment-id - The uuid field key in an appointment object

{
    "action": "CANCEL"
}
{
    "success": true,
    "message": "The action CANCEL was successfully executed on the appointment",
    "data": {
        "id": "df986bbd-c079-49f7-9559-a06b728a6d1c",
        "uuid": "8c5bc09b-ce3d-4e0c-bdfb-436586044418",
        "resource_type": null,
        "status": "cancelled",
        "cancellation_reason": null,
        "appointment_type": "ROUTINE",
        "reason": null,
        "priority": 0,
        "description": null,
        "start": null,
        "end": null,
        "minutes_duration": 0,
        "created": "2022-04-19T18:31:12.780845Z",
        "comment": null,
        "patient_instruction": null,
        "requested_period": 0,
        "is_deleted": false,
        "practitioner_name": "Mr Jean baptiste Tuyizere",
        "slot": "9d72fc2c-72f4-40ea-a40e-1b7058e3f254",
        "healthcare_service": "449560da-0432-46be-a919-2df8fbb182da",
        "patient": 266,
        "practitioner": "43ca8bea-9874-4d9c-bcfd-6e524d4dd5a7",
        "booking_user": 14729,
        "provider": "951ce6e6-abf8-4cd1-9986-36505a512b7e",
        "service_tier": 1,
        "service_request_based_on": []
    },
    "errors": null
}

Request fields/keys description:

slot_id - The uuid field key in a slot object. Required for action RESCHEDULE.
action - The action type to perform. Options are: RESCHEDULE, CANCEL, CHECK-IN