Sistema de Dictado e Historias Clinicas Medicas
Tres pasos para conectar tu aplicacion a VozMedica
POST a /api/auth.php con usuario y contrasena para obtener tu API key
Incluye el header X-API-Key en cada peticion
Enviar reportes, gestionar pacientes, firmar historias clinicas
Todas las peticiones requieren un API key en el header
Tu API key es personal y se obtiene al iniciar sesion
# POST /api/auth.php con tus credenciales de medico curl -X POST https://vozmedica.co/api/auth.php \ -H "Content-Type: application/json" \ -d '{ "username": "tu.usuario", "password": "tu.contrasena" }' # La respuesta incluye tu api_key personal
# Header requerido en todas las peticiones: X-API-Key: tu-api-key-personal # Ejemplo: curl https://vozmedica.co/api/doctor.php \ -H "X-API-Key: tu-api-key-personal"
Todos los endpoints disponibles de la API
{
"username": "drgarcia",
"password": "secret123"
}
{
"success": true,
"user": { "id": 1, "username": "drgarcia", "role": "doctor" },
"doctor": {
"id": 1, "name": "Dr. Garcia",
"specialty": "Alergologia",
"has_pin": true,
"report_count": 42,
"patient_count": 15
},
"api_key": "abc123def456...",
"message": "Autenticacion exitosa"
}
{
"success": true,
"doctor": {
"id": 1, "name": "Dr. Garcia",
"specialty": "Alergologia",
"license_number": "RM-12345",
"has_pin": true
},
"stats": {
"total_reports": 42,
"draft_reports": 5,
"signed_reports": 30,
"sent_reports": 7,
"today_reports": 3,
"patient_count": 15
}
}
{
"content": "Paciente masculino de 35 anos...", // requerido
"patient_cedula": "1234567890",
"report_type": "consulta", // consulta|emergencia|control|...
"diagnosis": "Rinitis alergica",
"treatment": "Loratadina 10mg/dia"
}
consulta | Consulta general (default) |
emergencia | Emergencia |
control | Control / seguimiento |
interconsulta | Interconsulta |
hospitalizacion | Hospitalizacion |
cirugia | Cirugia |
laboratorio | Laboratorio |
imagen | Imagen diagnostica |
otro | Otro |
{
"success": true,
"action": "created",
"uuid": "abc123def456",
"status": "draft",
"url": "https://vozmedica.co/report.php?id=abc123def456"
}
| Parametro | Tipo | Descripcion |
|---|---|---|
status | string | Filtrar: draft, signed, sent |
date | string | Filtrar por fecha: YYYY-MM-DD |
search | string | Busqueda en contenido, cedula, diagnostico |
uuid | string | Obtener un reporte especifico |
limit | int | Resultados por pagina (max 100, default 50) |
offset | int | Paginacion |
{
"uuid": "abc123def456",
"pin": "1234"
}
{
"success": true,
"message": "Reporte firmado correctamente",
"report": {
"uuid": "abc123def456",
"status": "signed",
"signed_by": "Dr. Garcia"
}
}
PIN_NOT_SET | El medico no ha configurado un PIN |
INVALID_PIN | PIN incorrecto |
ALREADY_SIGNED | El reporte ya no esta en estado borrador |
| Parametro | Tipo | Descripcion |
|---|---|---|
q | string | Buscar por nombre, cedula, telefono, email |
cedula | string | Busqueda exacta por cedula |
id | int | Paciente especifico + historial de reportes |
limit | int | Resultados por pagina (max 100) |
offset | int | Paginacion |
{
"name": "Juan Perez", // requerido
"cedula": "1234567890", // 6-10 digitos
"date_of_birth": "1990-05-15",
"gender": "M",
"phone": "+57 300 123 4567",
"email": "juan@email.com",
"blood_type": "O+",
"allergies": "Penicilina, polen"
}
{
"pin": "1234", // 4-6 digitos
"confirm_pin": "1234" // debe coincidir
}
{
"email": "nuevo@email.com",
"phone": "+57 300 999 8888"
}
{
"success": true,
"active": true,
"recent_count": 3,
"stats": { "total": 150, "draft": 12, "signed": 120, "sent": 18 },
"version": "2026.1.0"
}
// Todas las respuestas de error siguen este formato: { "success": false, "error": "Mensaje descriptivo del error" }
Limites de peticiones por IP por minuto