obtener((int)$_GET['id']); if (!$row) jsonError('Paciente no encontrado', 404); 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', 'lab', 'whatsapp'], true) ? $_GET['origen'] : ''; jsonOk($pac->listar($busqueda, $pagina, $por, $origen)); } catch (Exception $e) { jsonError($e->getMessage(), 500); }