Turnero: el historial del paciente ya muestra las visitas anteriores

This commit is contained in:
Lizandro Guarnizo
2026-08-17 18:50:43 -05:00
parent ccaf6f22cd
commit 29cbebfeb5
+16 -3
View File
@@ -4,7 +4,7 @@
* GET Historial paginado de turnos con filtros multi-día.
*
* Parámetros (todos opcionales):
* fecha_desde YYYY-MM-DD (default: hace 7 días)
* fecha_desde YYYY-MM-DD (default: hoy; hace 12 meses si se pasa paciente_id)
* fecha_hasta YYYY-MM-DD (default: hoy)
* estado string ("finalizado","ausente","cancelado","en_servicio",... o vacío = todos)
* lugar_id int (0 = todos)
@@ -23,16 +23,29 @@ $pdo = db();
// ── Parámetros ────────────────────────────────────────────────
$hoy = date('Y-m-d');
// paciente_id se lee primero: determina el rango de fechas por defecto.
$pacienteId = (int)($_GET['paciente_id'] ?? 0);
$fechaDesde = trim($_GET['fecha_desde'] ?? '');
$fechaHasta = trim($_GET['fecha_hasta'] ?? '');
if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $fechaDesde)) $fechaDesde = $hoy;
// Rango por defecto cuando el cliente no manda fechas:
// - Ficha de paciente (paciente_id): ultimos 12 meses.
// Antes caia en "hoy", asi que el historial del paciente solo podia mostrar
// visitas del mismo dia y siempre respondia "sin visitas anteriores".
// - Listado general del historial: hoy (comportamiento original).
// Para ver el historial completo, el cliente pasa fecha_desde explicita.
$desdePorDefecto = $pacienteId > 0
? date('Y-m-d', strtotime('-12 months'))
: $hoy;
if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $fechaDesde)) $fechaDesde = $desdePorDefecto;
if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $fechaHasta)) $fechaHasta = $hoy;
if ($fechaDesde > $fechaHasta) $fechaDesde = $fechaHasta;
$estadoFiltro = trim($_GET['estado'] ?? '');
$lugarId = (int)($_GET['lugar_id'] ?? 0);
$prioridadId = (int)($_GET['prioridad_id'] ?? 0);
$pacienteId = (int)($_GET['paciente_id'] ?? 0);
$q = trim($_GET['q'] ?? '');
$perPage = min(200, max(10, (int)($_GET['per_page'] ?? 50)));