feat(lab_pacientes): columna origen + vista mejorada con stats y filtros
- Migration: columna 'origen' (manual|rips|whatsapp) en lab_pacientes - ingest_paciente.php: guarda origen='rips' en cada paciente importado - Paciente::listar(): filtro por origen + orden por created_at DESC - Paciente::stats(): conteo total/importados/con_wa/manuales - get_pacientes.php: expone ?origen= y ?stats=1 - lab_pacientes.php: cards de stats clicables, badge origen por fila, columna ciudad, columna fecha registro, dropdown filtro por origen Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
32c166360c
commit
828e323eba
@@ -13,11 +13,17 @@ try {
|
||||
jsonOk(['data' => [$row]]);
|
||||
}
|
||||
|
||||
if (isset($_GET['stats'])) {
|
||||
jsonOk(['stats' => $pac->stats()]);
|
||||
}
|
||||
|
||||
$busqueda = trim($_GET['busqueda'] ?? $_GET['search'] ?? '');
|
||||
$pagina = max(1, (int)($_GET['page'] ?? $_GET['pagina'] ?? 1));
|
||||
$por = max(1, min(100, (int)($_GET['limit'] ?? $_GET['por_pagina'] ?? 30)));
|
||||
$origen = in_array($_GET['origen'] ?? '', ['manual', 'rips', 'whatsapp'], true)
|
||||
? $_GET['origen'] : '';
|
||||
|
||||
jsonOk($pac->listar($busqueda, $pagina, $por));
|
||||
jsonOk($pac->listar($busqueda, $pagina, $por, $origen));
|
||||
} catch (Exception $e) {
|
||||
jsonError($e->getMessage(), 500);
|
||||
}
|
||||
|
||||
@@ -121,6 +121,9 @@ if (!empty($data['ciudad'])) {
|
||||
if (!empty($data['eps'])) {
|
||||
$campos['eps'] = trim($data['eps']);
|
||||
}
|
||||
$origenValidos = ['manual', 'rips', 'whatsapp'];
|
||||
$campos['origen'] = in_array($data['origen'] ?? '', $origenValidos, true)
|
||||
? $data['origen'] : 'rips';
|
||||
|
||||
// ── Modo: "insertar" (solo nuevos) | "upsert" (crea o actualiza) ─────────────
|
||||
$modo = trim($data['modo'] ?? 'upsert');
|
||||
|
||||
Reference in New Issue
Block a user