Files
whatsapp/api/lab/my_agenda.php
T
Lizandro Guarnizo 12e7b411d7 feat: enfermero_portal - mostrar todos los datos del paciente en tarjeta de domicilio
La tarjeta ahora muestra: documento, fecha de nacimiento, EPS,
teléfono (clickeable), correo (clickeable), exámenes solicitados
y tipo de cliente (particular/seguro con nombre del seguro).

Cambios:
- Enfermera::agenda() amplía SELECT con email, fecha_nacimiento,
  numero_documento, tipo_documento, eps, examenes_solicitados,
  tipo_cliente, seguro_nombre, ciudad, indicaciones_dir, notas_admin
- my_agenda.php simplificado: ya no re-consulta lab_domicilios por
  los campos que ahora vienen directo en la query
- enfermero_portal.php _cardHTML() muestra todos los campos nuevos
2026-03-12 22:05:47 -05:00

59 lines
1.7 KiB
PHP

<?php
/**
* GET /api/lab/my_agenda.php
* Devuelve la agenda del enfermero autenticado (o de cualquier enfermera para admins).
*
* Query params:
* enfermera_id (int) — Requerido para admins. Enfermeros usan automáticamente el suyo.
* fecha (Y-m-d) — Por defecto: hoy.
* rango_inicio (Y-m-d) — Para vista semanal/mensual.
* rango_fin (Y-m-d)
*/
require_once __DIR__ . '/_helpers.php';
requireMethod('GET');
try {
// Determinar enfermera_id
if (userRole() === 'enfermero') {
$eid = enfermeraId();
if (!$eid) {
jsonError('Tu usuario no tiene una enfermera vinculada. Contacta al administrador.');
}
} else {
$eid = (int)($_GET['enfermera_id'] ?? 0);
if (!$eid) {
jsonError('enfermera_id requerido');
}
}
$enf = new Enfermera();
$fecha = $_GET['fecha'] ?? date('Y-m-d');
// Agenda del día con pleno detalle
$agenda = $enf->agenda($eid, $fecha);
// Enriquecer con servicios extra (el resto ya viene de la query agenda())
$db = Database::getInstance();
foreach ($agenda as &$item) {
$item['servicios_extra'] = $db->fetchAll(
"SELECT * FROM lab_servicios_extra WHERE domicilio_id = ? ORDER BY created_at ASC",
[(int)$item['domicilio_id']]
);
}
unset($item);
// Resumen rápido
$totales = array_count_values(array_column($agenda, 'domicilio_estado'));
jsonOk([
'enfermera_id' => $eid,
'fecha' => $fecha,
'agenda' => $agenda,
'total' => count($agenda),
'totales' => $totales,
]);
} catch (Exception $e) {
jsonError($e->getMessage(), 500);
}