Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/FlasheyEstudi/Oasis-Liquido/llms.txt

Use this file to discover all available pages before exploring further.

Oasis Liquido lets patients find and book specialist appointments at any partnered clinic in Nicaragua — from Hospital Vivian Pellas in Managua to regional facilities — without phone calls or waiting-room sign-up sheets. The scheduling system checks for conflicts automatically, so double-bookings are impossible, and every status change is recorded for audit purposes.

Patient booking workflow

1

Search for a specialist

Browse the list of available doctors filtered by specialty (Medicina General, Cardiología, Pediatría, and more). Each doctor profile shows their clinic affiliation and available time blocks.
2

Pick a time slot

Select a date and time. The platform validates that the requested slot does not conflict with the doctor’s existing confirmed appointments before accepting the request.
3

Confirm the booking

Submit the CreateAppointmentRequest. The appointment is created with status scheduled and appears immediately in both your timeline and the doctor’s calendar.
4

Attend and complete

On the day of the visit the receptionist or doctor advances the status to confirmed, then in_progress when the consultation begins, and finally completed when it ends.

Appointment lifecycle

An appointment moves through the following states. Once completed or cancelled, the status is final.
StatusWho sets itMeaning
scheduledSystem (on creation)Booking confirmed, waiting for clinic review
confirmedDoctor / receptionistSlot locked; added to the doctor’s calendar
in_progressDoctor / receptionistPatient is currently in consultation
completedDoctor / receptionistConsultation finished
cancelledPatient, doctor, or adminAppointment will not take place
export type AppointmentStatus =
  | 'scheduled'
  | 'confirmed'
  | 'in_progress'
  | 'completed'
  | 'cancelled';

Creating an appointment

Send a POST request to /api/v1/appointments with the following body. Only patients can create appointments.
export interface CreateAppointmentRequest {
  doctor_id: string;        // UUID of the target doctor
  clinic_id: string;        // UUID of the clinic where the appointment takes place
  date_time: string;        // ISO 8601 datetime, e.g. "2025-07-15T09:30:00Z"
  duration_minutes?: number; // Defaults to 30 minutes if omitted
}
Example request
{
  "doctor_id": "clx2j4k0e0000abcd1234efgh",
  "clinic_id": "clx2j4k0e0001abcd5678ijkl",
  "date_time": "2025-07-15T09:30:00Z",
  "duration_minutes": 45
}
duration_minutes is optional. The backend defaults to 30 minutes and uses this value when checking for scheduling conflicts.

Listing and filtering appointments

Send a GET request to /api/v1/appointments. All parameters are optional.
Query parameterTypeDescription
patient_idstringFilter by patient
doctor_idstringFilter by doctor
clinic_idstringFilter by clinic
statusAppointmentStatusFilter by status value
date_fromstring (ISO date)Include only appointments on or after this date
date_tostring (ISO date)Include only appointments on or before this date
pagenumberPage number for pagination (default: 1)
limitnumberResults per page (default: 20)
The response is a paginated envelope:
{
  "success": true,
  "data": [ /* Appointment[] */ ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 47,
    "totalPages": 3
  }
}

Role-based filtering

The API applies automatic scope rules based on the authenticated user’s role. You do not need to pass your own ID — the backend injects it.
RoleWhat they see
patientOnly their own appointments
doctorOnly appointments where they are the assigned doctor
receptionistAppointments at their affiliated clinic
adminAll appointments across every clinic
Admins can combine patient_id, doctor_id, clinic_id, and status filters simultaneously for detailed cross-clinic reports.

Updating appointment status

To advance or cancel an appointment, send a PATCH request to /api/v1/appointments/{id}/status.
export interface UpdateAppointmentStatusRequest {
  status: AppointmentStatus;
}
{
  "status": "confirmed"
}

Appointments API

Full endpoint reference including request/response schemas and error codes

Doctor role

How doctors manage their consultation calendar and patient records

Build docs developers (and LLMs) love