MELIKA organizes its medical network around a specialty catalog that connects disciplines to their associated doctors and drives the entire availability-checking workflow. Every doctor in the system (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Imjuanisss/proyecto-melika/llms.txt
Use this file to discover all available pages before exploring further.
medicos table) is linked to exactly one specialty via a foreign key (medicos.id_especialidad), and the platform exposes both single-day and date-range availability queries that integrate directly with FullCalendar on the frontend. Only specialties marked activa = TRUE are returned through the public API.
Available Specialties
MELIKA currently supports the following medical and health disciplines:Cardiología
Dermatología
Ginecología
Medicina General
Neurología
Nutrición y Dietética
Oftalmología
Ortopedia y Traumatología
Otorrinolaringología
Pediatría
Psiquiatría
Urología
Specialty Data Model
Each specialty record exposes the following fields:| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier for the specialty |
nombre | varchar | Display name of the specialty (e.g., "Cardiología") |
descripcion | text | Plain-language description of the discipline |
precio_base | numeric | Base consultation price for this specialty |
imagen_url | varchar | URL to the specialty’s cover image |
activa | boolean | When FALSE, the specialty is hidden from all public endpoints |
Listing Active Specialties
The specialties listing endpoint is public — no authentication is required. It returns only specialties whereactiva = TRUE, ordered by name.
Doctors per Specialty
To list all active doctors within a specialty, query the specialty’s doctor endpoint. Only doctors where bothmedicos.activo = TRUE and usuarios.activo = TRUE are returned, ordered by first name.
Doctor Profile Fields
| Field | Type | Description |
|---|---|---|
id | integer | Doctor’s unique ID in the medicos table |
nombre | varchar | Doctor’s first name (from usuarios) |
primer_apellido | varchar | Doctor’s first surname (from usuarios) |
foto_url | varchar | URL to the doctor’s profile photo |
tarifa | numeric | Doctor’s per-consultation fee |
calificacion | numeric | Average star rating (e.g., 4.8) |
acepta_teleconsulta | boolean | Whether the doctor offers video consultations |
acepta_presencial | boolean | Whether the doctor accepts in-person visits |
biografia | text | Short professional biography |
anos_experiencia | integer | Years of clinical experience |
Checking Doctor Availability
MELIKA provides two availability endpoints — both powered by thefranjas_horarias table. Only slots with disponible = TRUE are returned from either endpoint.
- Single Day
- Date Range
Returns available time slots for a specific doctor on a given date. Use this to power a day-level slot picker.Query parameters:
Example response:
| Parameter | Required | Description |
|---|---|---|
medico_id | ✅ Yes | The doctor’s ID from the medicos table |
fecha | ✅ Yes | Date to query in YYYY-MM-DD format |
All returned slots have
disponible = true. Already-booked slots are excluded entirely — they do not appear in the response.How Specialties Connect to the Booking Flow
The specialty catalog is the entry point for every appointment booking. The connection between specialties, doctors, slots, and appointments follows this hierarchy:Select a Specialty
Patient browses
GET /especialidades and picks a discipline. The id and precio_base are retained for display in the booking summary.Choose a Doctor
Patient calls
GET /especialidades/:id/medicos to see available physicians, their ratings, fees, and consultation modalities.Query Available Slots
Patient calls
GET /especialidades/disponibilidad-rango to populate the booking calendar, then GET /especialidades/disponibilidad on day selection to retrieve the granular slot list for that date.