<?php
session_start();

// 1. Verificación de sesión y rol
if (!isset($_SESSION['Inicio']) || $_SESSION['Inicio'] !== "Ok" || !in_array($_SESSION['Rol'], array("Administrativo", "Titular"))) {
    print('<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=../login.php?m=5">');
    exit;
}

// 2. Determinar la URL del menú
$urlMenuCorrespondiente = ($_SESSION['Rol'] === "Administrativo") ? "../MenuAdministrativo.php" : "../MenuTitular.php";

// --- Variables para filtros y resultados ---
$Nombre = "";
$datosParaTabla = array(); 
$TotalFilas = 0;
$errorMessage = "";
$infoMessage = "";

// --- Lógica de captura de filtros ---
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['Nombre'])) {
    $Nombre = strtoupper(trim($_POST['Nombre']));
}

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

// INCLUIMOS EL NUEVO ARCHIVO CENTRALIZADO (PHP 5.4 compatible)
include("../Php/ConexionInb.php");

// 1. Preparar parámetros para la función
$columnasSeleccionadas = "p.*, b.*"; // Datos del paciente y de cdi_i
$sqlWhere = "";
$params_values = array();
$types = "";
$sqlOrder = " ORDER BY p.apellido_paterno_paciente, p.apellido_materno_paciente, p.nombre_paciente, b.fecha_evaluacion DESC";

// 2. Construcción del filtro de búsqueda
if (!empty($Nombre)) {
    $sqlWhere = " WHERE (UPPER(p.nombre_paciente) LIKE ? OR UPPER(p.apellido_paterno_paciente) LIKE ? OR UPPER(p.apellido_materno_paciente) LIKE ?)";
    $searchTerm = "%" . $Nombre . "%";
    $params_values = array($searchTerm, $searchTerm, $searchTerm);
    $types = "sss";
}

// 3. Llamar a la función centralizada (Unimos con la tabla 'cdi_i')
// La función asigna el alias 'b' a 'cdi_i' y 'p' a 'paciente'
$datosParaTabla = consultarPacientes(
    'cdi_i', 
    $columnasSeleccionadas, 
    $sqlWhere, 
    $params_values, 
    $types, 
    $sqlOrder, 
    $errorMessage
);

// 4. Procesar resultados
if ($datosParaTabla === false) {
    // Si hubo error, $errorMessage se mostrará en el HTML
} else {
    $TotalFilas = count($datosParaTabla);
    if ($TotalFilas == 0) {
        $infoMessage = !empty($Nombre) ? "No se encontraron registros para '" . htmlspecialchars($Nombre) . "'." : "No hay registros para mostrar.";
    }
}
// =================== FIN DEL BLOQUE REFACTORIZADO ===================
?>
<!DOCTYPE HTML>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Modificar Evaluación CDI-I</title>
    <link rel="stylesheet" href="../Css/EstilosConsultas.css">
    <style>
        .sticky-col { position: sticky; left: 0; background-color: white; z-index: 1; border-right: 2px solid #ddd; }
        .tabla-container table thead th.sticky-col { background-color: #f2f2f2; z-index: 3; }
        .col-text { min-width: 250px; max-width: 400px; white-space: pre-wrap; }
        .results-info, .error-message { text-align: center; margin: 15px auto; padding: 10px; border-radius: 4px; max-width: 800px; }
        .results-info { color: #555; background-color: #f0f0f0; border: 1px solid #ddd;}
        .error-message { color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; }
    </style>
</head>
<body>
    <div class="container">
        <h1 class="tittle">Modificar Registros de Evaluación CDI-I</h1>
        
        <form method="post" action="UCDI_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í para buscar..." name="Nombre" id="Nombre" value="<?php echo htmlspecialchars($Nombre); ?>">
                </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 if (!empty($errorMessage)): ?>
            <div class="error-message"><?php echo $errorMessage; ?></div>
        <?php elseif (!empty($infoMessage)): ?>
            <div class="results-info"><p><?php echo $infoMessage; ?></p></div>
        <?php endif; ?>

        <?php if (empty($errorMessage) && $TotalFilas > 0): ?>
            <div class="tabla-container">
                <table>
                    <thead>
                        <tr>
                            <th rowspan="2" class="sticky-col">Modificar</th>
                            <th colspan="9">DATOS GENERALES DEL PACIENTE</th>
                            <th colspan="12">PUNTUACIONES BRUTAS Y PERCENTILES</th>
                            <th colspan="5">DATOS CLÍNICOS Y OBSERVACIONES</th>
                        </tr>
                        <tr>
                            <th>Clave Paciente</th>
                            <th>Nombre</th>
                            <th>A. Paterno</th>
                            <th>A. Materno</th>
                            <th>F. Nacimiento</th>
                            <th>F. Evaluación</th>
                            <th>Edad</th>
                            <th>Edad Corregida</th>
                            <th>Semanas Gestacion</th>
                            <th>Sexo Paciente</th>
                            <th>Rango Edad</th>
                            <th>Bruto Frases</th>
                            <th>% Frases</th>
                            <th>Bruto Palabras</th>
                            <th>% Palabras</th>
                            <th>Bruto Prod.</th>
                            <th>% Prod.</th>
                            <th>Bruto Gestos Temp.</th>
                            <th>% Gestos Temp.</th>
                            <th>Bruto Gestos Tard.</th>
                            <th>% Gestos Tard.</th>
                            <th>Bruto Gestos Tot.</th>
                            <th>% Gestos Tot.</th>
                            <th>Referir Terapia</th>
                            <th class="col-text">Interpretación</th>
                            <th class="col-text">Seguimiento</th>
                            <th class="col-text">Próx. Eval.</th>
                            <th class="col-text">Datos Clín. Adic.</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($datosParaTabla as $Fila): ?>
                        <tr>
                            <td class="sticky-col">
                                <?php 
                                // Convertimos toda la fila a JSON para pasarla a JavaScript de forma eficiente
                                $datosJson = htmlspecialchars(json_encode($Fila), ENT_QUOTES, 'UTF-8'); 
                                ?>
                                <!-- Botón optimizado que llama a la función JS -->
                                <button type="button" class="btn-outline btn-small" onclick="prepararModificacion(<?php echo $datosJson; ?>)">
                                    Modificar
                                </button>
                            </td>
                            
                            <td><?php echo htmlspecialchars($Fila['clave_paciente']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['nombre_paciente']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['apellido_paterno_paciente']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['apellido_materno_paciente']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['fecha_nacimiento_paciente']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['fecha_evaluacion']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['edad']); ?></td>
                            <td><?php echo htmlspecialchars(isset($Fila['edad_corregida']) ? $Fila['edad_corregida'] : ''); ?></td>
                            <td><?php echo htmlspecialchars(isset($Fila['semanas_gestacion']) ? $Fila['semanas_gestacion'] : ''); ?></td>
                            <td><?php echo htmlspecialchars(isset($Fila['sexo_paciente']) ? $Fila['sexo_paciente'] : ''); ?></td>
                            <td><?php echo htmlspecialchars(isset($Fila['rango_edad']) ? $Fila['rango_edad'] : ''); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_bruto_comprension_frases']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_percentil_comprension_frases']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_comprension_palabras']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_percentil_comprension_palabras']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_produccion']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_percentil_produccion']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_gestos_tempranos']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_percentil_gestos_tempranos']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_gestos_tardios']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_percentil_gestos_tardios']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_gestos_totales']); ?></td>
                            <td><?php echo htmlspecialchars($Fila['invent_percentil_gestos_totales']); ?></td>
                             <td class="col-text">
                                 <?php echo ($Fila['invent_datos_clinicos_referir_aterapia'] == 1) ? 'Sí' : 'No'; ?>
                             </td>
                            <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['arthur1_interpretacion'])); ?></td>
                            <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['arthur1_seguimiento'])); ?></td>
                            <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['arthur1_proxeval'])); ?></td>
                            <td class="col-text"><?php echo nl2br(htmlspecialchars($Fila['inventario_datos_clinicos'])); ?></td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
        <?php endif; ?>

        <?php if (isset($_GET['m'])): ?><div class="flash-data" data-flashdata="<?php echo htmlspecialchars($_GET['m']); ?>"></div><?php endif; ?>
        <?php if (isset($_GET['n'])): ?><div class="flash-data-error" data-flashdata="<?php echo htmlspecialchars($_GET['n']); ?>"></div><?php endif; ?>
    </div>
    
    <script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            var modifyButtons = document.querySelectorAll('.modify-btn');
            for (var i = 0; i < modifyButtons.length; i++) {
                modifyButtons[i].addEventListener('click', function(e) {
                    e.preventDefault();
                    var href = this.getAttribute('href');
                    Swal.fire({
                        title: '¿Desea modificar este registro?',
                        text: "Será redirigido al formulario para editar los datos.",
                        icon: 'question',
                        showCancelButton: true,
                        confirmButtonColor: '#3085d6',
                        cancelButtonColor: '#d33',
                        confirmButtonText: 'Sí, modificar',
                        cancelButtonText: 'Cancelar'
                    }).then(function(result) {
                        if (result.isConfirmed) {
                            window.location.href = href;
                        }
                    });
                });
            }

            var flashdata = document.querySelector('.flash-data');
            if (flashdata) {
                var msg = (flashdata.getAttribute('data-flashdata') === 'CDI_I_no_changes_made') 
                    ? 'Operación completada, pero no se realizaron cambios.' 
                    : 'El registro se modificó exitosamente.';
                Swal.fire({ title: '¡Éxito!', text: msg, icon: 'success' });
            }

            var flashdataError = document.querySelector('.flash-data-error');
            if (flashdataError) {
                Swal.fire({ title: 'Error', text: 'No se pudo completar la operación.', icon: 'error' });
            }
        });
    </script>
    <!-- Formulario Maestro Oculto -->
<form id="formMasterModificar" method="POST" action="UICDI_I.php" style="display:none;"></form>

<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
function prepararModificacion(datos) {
    Swal.fire({
        title: '¿Desea modificar este registro?',
        text: "Será redirigido al formulario para editar los datos del paciente: " + datos.nombre_paciente,
        icon: 'question',
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Sí, modificar',
        cancelButtonText: 'Cancelar'
    }).then((result) => {
        if (result.isConfirmed) {
            const form = document.getElementById('formMasterModificar');
            form.innerHTML = ''; // Limpiar datos de clics anteriores

            // Creamos inputs ocultos para cada campo que viene de la base de datos
            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(); // Envía por POST
        }
    });
}

// Mantener los mensajes de éxito/error que ya tenías
document.addEventListener('DOMContentLoaded', function() {
    var flashdata = document.querySelector('.flash-data');
    if (flashdata) {
        var msg = (flashdata.getAttribute('data-flashdata') === 'CDI_I_no_changes_made') 
            ? 'Operación completada, pero no se realizaron cambios.' 
            : 'El registro se modificó exitosamente.';
        Swal.fire({ title: '¡Éxito!', text: msg, icon: 'success' });
    }

    var flashdataError = document.querySelector('.flash-data-error');
    if (flashdataError) {
        Swal.fire({ title: 'Error', text: 'No se pudo completar la operación.', icon: 'error' });
    }
});
</script>
</body>

</html>