getConnection(); // Buscar por nombre o código F-LAB-28 $stmt = $pdo->prepare( "SELECT id, nombre, codigo, is_active, JSON_LENGTH(esquema) AS esquema_longitud, esquema FROM lab_formularios WHERE nombre LIKE ? OR codigo LIKE ? LIMIT 5" ); $stmt->execute(['%helicobacter%', '%F-LAB-28%']); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); if (!$rows) { // Buscar todos los formularios para ver cuáles hay $stmt2 = $pdo->query("SELECT id, nombre, codigo FROM lab_formularios ORDER BY id LIMIT 50"); echo json_encode(['not_found' => true, 'all_forms' => $stmt2->fetchAll(PDO::FETCH_ASSOC)], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); exit; } foreach ($rows as &$r) { $decoded = json_decode($r['esquema'], true); $campos = is_array($decoded) ? $decoded : ($decoded['campos'] ?? []); $firmaPro = array_values(array_filter($campos, fn($f) => ($f['tipo'] ?? '') === 'firma_profesional')); $r['campos_total'] = count($campos); $r['campos_firma_profesional'] = $firmaPro; $r['count_firma_profesional'] = count($firmaPro); unset($r['esquema']); } echo json_encode($rows, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);