Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/FerchoSG/healthcare-web/llms.txt

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

Appointments are the core scheduling unit in CitaBox. Each appointment links a patient to a doctor with a start and end time, an optional service from the clinic catalog, and a free-text reason. The system tracks every appointment through a defined status lifecycle — from the moment it is booked until the consultation is complete and the record is closed.

Appointment statuses

Every appointment carries one of six statuses. Receptionists and doctors can update statuses directly from their respective dashboards.
The default status when an appointment is created. The patient has a slot reserved but no one has yet confirmed attendance.
The receptionist or the system has confirmed that the patient will attend. The appointment appears on the day’s schedule.
The receptionist marks the patient as arrived and waiting in the lobby. This status drives the waiting-queue counter on the receptionist dashboard.
The doctor has opened the patient’s EMR and started the consultation. Only one appointment per doctor should be in this state at a time.
The doctor has finished the consultation and closed the EMR session. Completed appointments that do not yet have a paid invoice appear in the receptionist’s pending-closure list.
The appointment was cancelled before or during the day. Cancelled appointments are hidden from the calendar grid but remain in the patient’s appointment history.

Creating an appointment

You can open the New Appointment dialog from three places:
  • The top header — a global ”+” button available on every view.
  • The receptionist dashboard quick-action panel (“Nueva cita” button).
  • The calendar view — click any empty time slot to pre-populate the date and time.
1

Open the New Appointment dialog

Click the “Nueva cita” button in the receptionist quick-actions panel or use the global header shortcut. If you click a slot on the calendar, the date and start time are pre-filled automatically.
2

Select the patient

Search by name or cédula. If the patient is not yet registered, create them first from the Patients view or use the walk-in sheet.
3

Select the doctor

Choose from the list of active doctors at the clinic. The appointment is linked to the selected doctor’s schedule.
4

Set the time

Enter the start_time and end_time as ISO timestamps. When opening the dialog from a calendar slot these values are pre-filled.
5

Add a reason and service (optional)

Enter a free-text reason and optionally link the appointment to a service from the clinic catalog using service_id. The service price is used later when creating the invoice.
6

Save

Click “Guardar”. The appointment is created with status PENDING and appears on the calendar and the day’s agenda immediately.
Click an empty slot on the weekly calendar before opening the dialog. The date and time are pre-populated, which reduces manual entry and scheduling errors.

Updating appointment status

Status changes are made inline without leaving the current view. Receptionist workflow — From the receptionist dashboard the status dropdown next to each appointment row allows changing status to any value in the enum. The typical flow is:
  1. Patient arrives → select WAITING.
  2. Doctor calls the patient → select IN_CONSULTATION (or let the doctor do this from their own dashboard).
  3. After the consultation → the doctor marks COMPLETED from the EMR close action.
Doctor workflow — From the doctor dashboard, clicking “Iniciar consulta” sets the appointment to IN_CONSULTATION and opens the EMR with consultationActive = true. Clicking “Finalizar consulta” inside the EMR sets the status to COMPLETED.

Calendar view

The calendar shows a six-day week grid (Monday through Saturday) with half-hour slots from 08:00 to 17:00. Navigate between weeks using the chevron buttons or click Hoy to return to the current week.
ElementBehavior
Appointment chipClick to open the appointment detail dialog where you can cancel or delete the appointment.
Empty slotClick to open a choice dialog: create a new appointment or block the slot.
Blocked slotDisplayed in red. Click the block to delete it after confirmation.
Today indicatorThe current day’s date number is highlighted in the column header.
On mobile the calendar switches to a vertical agenda list grouped by day.

Time blocks

Time blocks mark a doctor as unavailable for a specific 30-minute slot. They prevent accidental scheduling and are visible to all staff on the calendar. Creating a time block:
  1. Click an empty slot on the calendar.
  2. Choose “Bloquear este espacio” from the action dialog.
  3. Enter the doctor’s UUID and an optional reason (for example, “almuerzo” or “permiso personal”).
  4. Click Bloquear. The slot turns red across the entire week view.
Deleting a time block: Click the blocked slot and confirm the deletion prompt. The slot becomes available immediately.
Time blocks are scoped to 30-minute intervals matching the calendar’s slot size. To block a longer period, create consecutive blocks for each 30-minute segment.

Walk-in patient flow

Walk-in patients arrive without a prior appointment. From the receptionist dashboard, click “Paciente sin cita” to open the WalkIn sheet. This sheet lets you register a new patient (or find an existing one by cédula) and create an appointment for the current day on the spot.

Global “New Appointment” dialog

A persistent shortcut in the top header opens the New Appointment dialog from any view in the application — including the admin dashboard, the EMR, and the patients list. This allows front-desk staff to book appointments without navigating away from whatever screen they are working on.

Build docs developers (and LLMs) love