<?php
session_start();

// 1. Verificación de sesión y obtención del rol
if (!isset($_SESSION['Inicio']) || $_SESSION['Inicio'] !== "Ok" || !isset($_SESSION['Rol'])) {
    header('Location: ../Login.php?m=5');
    exit;
}

// 2. Determinar la URL del menú correspondiente basada en el rol
$urlMenuCorrespondiente = ""; 
switch ($_SESSION['Rol']) {
    case "Administrativo":
        $urlMenuCorrespondiente = "../MenuAdministrativo.php";
        break;
    case "Titular":
        $urlMenuCorrespondiente = "../MenuTitular.php";
        break;
    case "Pasante":
        $urlMenuCorrespondiente = "../MenuPasante.php";
        break;
    default:
        header('Location: ../Login.php?m=6');
        exit;
}

// --- Variables para la página ---
$criterioBusqueda = '';
$resultadosHtml = '';
$errorMessage = ''; // Variable obligatoria para la función

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $criterioBusqueda = isset($_POST['Nombre']) ? trim($_POST['Nombre']) : '';
}

// =================== BLOQUE DE BASE DE DATOS REFACTORIZADO ===================

// Incluimos nuestro archivo centralizado
include("../Php/ConexionInb.php");

// 1. Preparamos las instrucciones para la función
$columnasSeleccionadas = "p.*"; // Solo necesitamos datos del paciente
$sqlWhere = "";
$params = array();
$types = "";
$sqlOrder = " ORDER BY p.apellido_paterno_paciente, p.apellido_materno_paciente, p.nombre_paciente";

if (!empty($criterioBusqueda)) {
    // Usamos '?' para proteger contra inyección SQL
    $sqlWhere = " WHERE UPPER(p.nombre_paciente) LIKE ?
                    OR UPPER(p.apellido_paterno_paciente) LIKE ?
                    OR UPPER(p.apellido_materno_paciente) LIKE ?";
    $searchTerm = "%" . strtoupper($criterioBusqueda) . "%";
    
    // Array clásico para compatibilidad con PHP 5.4
    $params = array($searchTerm, $searchTerm, $searchTerm);
    $types = "sss";
}

// 2. Llamamos a la función (null porque NO hacemos JOIN, solo queremos la tabla paciente)
$pacientes = consultarPacientes(
    null, 
    $columnasSeleccionadas, 
    $sqlWhere, 
    $params, 
    $types, 
    $sqlOrder, 
    $errorMessage
);

// 3. Procesamos los resultados que nos devolvió la función
if ($pacientes === false) {
    // Hubo un error de base de datos
    $resultadosHtml = "<p class='error-message'>" . htmlspecialchars($errorMessage) . "</p>";
} else {
    $totalFilas = count($pacientes);
    if ($totalFilas > 0) {
        // Construimos el encabezado de la tabla
        $resultadosHtml .= "<div class='tabla-container'><table><thead><tr>";
        $resultadosHtml .= "<th>Clave Paciente</th><th>Código</th><th>Nombre</th><th>A. Paterno</th><th>A. Materno</th><th>F. Nacimiento</th><th>Sexo Paciente</th><th>Semanas Gestación</th><th>Acción</th>"; 
        $resultadosHtml .= "</tr></thead><tbody>";

        // Recorremos los datos usando foreach
        foreach ($pacientes as $Fila) {
            $datosJson = htmlspecialchars(json_encode($Fila), ENT_QUOTES, 'UTF-8');
            $resultadosHtml .= "<tr>";
            $resultadosHtml .= "<td>" . htmlspecialchars($Fila['clave_paciente']) . "</td>";
            $resultadosHtml .= "<td>" . htmlspecialchars($Fila['codigo_paciente']) . "</td>";
            $resultadosHtml .= "<td>" . htmlspecialchars($Fila['nombre_paciente']) . "</td>";
            $resultadosHtml .= "<td>" . htmlspecialchars($Fila['apellido_paterno_paciente']) . "</td>";
            $resultadosHtml .= "<td>" . htmlspecialchars($Fila['apellido_materno_paciente']) . "</td>";
            $resultadosHtml .= "<td>" . htmlspecialchars($Fila['fecha_nacimiento_paciente']) . "</td>";
            $resultadosHtml .= "<td>" . htmlspecialchars($Fila['sexo_paciente']) . "</td>";
            $resultadosHtml .= "<td>" . htmlspecialchars($Fila['semanas_gestacion']) . "</td>";

            // Construimos el enlace seguro usando http_build_query
           $resultadosHtml .= "<td>
        <button type='button' onclick='enviarPaciente($datosJson)' class='btn-outline btn-small'>
            Agregar
        </button>
    </td>";
    $resultadosHtml .= "</tr>";
        }
        
        $resultadosHtml .= "</tbody></table></div>";
    } else {
        // Mensajes si no hay resultados
        if (!empty($criterioBusqueda)) {
            $resultadosHtml = "<p class='info-message'>No se encontraron pacientes con el criterio '" . htmlspecialchars($criterioBusqueda) . "'.</p>";
        } else {
            $resultadosHtml = "<p class='info-message'>No hay pacientes registrados para mostrar.</p>";
        }
    }
}
// =================== FIN DEL BLOQUE REFACTORIZADO ===================
?>
<!DOCTYPE HTML>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&family=Montserrat:wght@700&display=swap" rel="stylesheet">
    <link rel="icon" type="image/png" href="./img/UNAM amarillo.png"> 
    <link rel="stylesheet" href="../Css/EstilosConsultas.css"> 
    <title>Agregar CDI-I Evaluación</title>
    <style>
        .btn-small { padding: 5px 10px; font-size: 0.85rem; height: auto; line-height: normal; min-width: auto; }
        .info-message, .error-message { text-align: center; padding: 15px; margin-top: 20px; border-radius: 5px; }
        .info-message { background-color: #e9f5fd; color: #3c70a0; border: 1px solid #bce8f1; }
        .error-message { background-color: #fde9e9; color: #a03c3c; border: 1px solid #f1bcbc; }
    </style>
</head>
<body>
    <div class="container">
        <h1 class="tittle">Agregar CDI-I para Pacientes</h1>

        <form method="post" action="CCDI_I.php"> 
             <div class="dentro">
                <div class="input-box">
                    <label for="Nombre" class="detalles">Buscar Paciente (Nombre o Apellido):</label>
                    <input type="text" placeholder="Escriba aquí..." name="Nombre" id="Nombre"
                           value="<?php echo htmlspecialchars($criterioBusqueda); ?>" required>
                </div>
                <div class="input-box">
                    <input type="submit" value="Buscar" class="btn">
                </div>
                 <div class="input-box exit">
                    <a href="<?php echo htmlspecialchars($urlMenuCorrespondiente); ?>" class="btn2">Salir</a>
                </div>
            </div>
        </form>

        <?php echo $resultadosHtml; ?>

    </div>
    <form id="formEnviarPaciente" method="POST" action="CICDI_I.php" style="display:none;"></form>

<script>
function enviarPaciente(datos) {
    const form = document.getElementById('formEnviarPaciente');
    form.innerHTML = ''; // Limpiar datos previos

    // Crear inputs dinámicamente según los datos del paciente
    for (const key in datos) {
        if (datos.hasOwnProperty(key)) {
            const input = document.createElement('input');
            input.type = 'hidden';
            input.name = key;
            input.value = datos[key];
            form.appendChild(input);
        }
    }

    form.submit();
}
</script>
</body>
</html>