<?php
ob_start();
session_start();

if (!isset($_SESSION["nombre"])) {
    header("Location: ../vistas/login.html");
} else {
    require_once "../modelos/SolicitudExamen.php";
    require_once "../modelos/Persona.php";

    $solicitud = new SolicitudExamen();
    $idsolicitud = isset($_GET["idsolicitud"]) ? $_GET["idsolicitud"] : "";

    if (empty($idsolicitud)) {
        echo "No se ha especificado una solicitud.";
        exit;
    }

    $rspta = $solicitud->mostrar($idsolicitud);
    if (empty($rspta)) {
        echo "Solicitud no encontrada.";
        exit;
    }

    $regSol = $rspta;
    $datos = json_decode($regSol['contenido'], true);

    $idpersona = $regSol['idpersona'];
    $tipo = $regSol['tipo'];

    // Obtener datos paciente
    $persona = new Persona();
    // Usar metodo seguro para pacientes nuevos
    $regFull = $persona->imprimirDatosPaciente($idpersona);
    $reg = (object) $regFull;

    // Obtener datos del médico
    $idMedico = ($regSol['firmado'] == 1 && $regSol['idempleado_firma']) ? $regSol['idempleado_firma'] : $regSol['idempleado'];

    require_once "../modelos/Usuario.php";
    $usuarioModel = new Usuario();
    $regMedico = $usuarioModel->mostrar($idMedico);

    $nombreMedico = strtoupper($regMedico['nombre'] . ' ' . $regMedico['apaterno'] . ' ' . $regMedico['amaterno']);
    $cedulaMedico = $regMedico['num_documento'];
    $registroSenescyt = isset($regMedico['registro_senescyt']) ? $regMedico['registro_senescyt'] : '...........';

    $fechaHoraEmision = date('d/m/Y H:i', strtotime($regSol['fecha_registro']));

    // QR Data
    $qrData = "FIRMADO POR: " . $nombreMedico . "\n";
    $qrData .= "FECHA: " . date('d/m/Y', strtotime($regSol['fecha_registro'])) . "\n";
    $qrData .= "HORA: " . date('H:i', strtotime($regSol['fecha_registro'])) . "\n";
    $qrData .= "VALIDAR EN: firmadigital.gob.ec";
    $qrUrl = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=" . urlencode($qrData);

    ?>
    <!DOCTYPE html>
    <html lang="es">

    <head>
        <meta charset="utf-8">
        <title>Solicitud de Exámenes - Vista Previa</title>
        <link rel="stylesheet" href="../public/css/bootstrap.min.css">
        <link rel="stylesheet" href="../public/css/font-awesome.css">
        <style>
            body {
                font-family: "Times New Roman", serif;
                background: #f0f0f0;
                padding: 10px;
            }

            .hoja-a4 {
                background: white;
                width: 210mm;
                min-height: 297mm;
                margin: 0 auto;
                padding: 8mm 15mm;
                box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
                position: relative;
                line-height: 1.4;
            }

            .titulo {
                text-align: center;
                font-weight: bold;
                font-size: 14pt;
                margin-bottom: 15px;
                text-decoration: underline;
            }

            .contenido {
                text-align: justify;
                font-size: 9.5pt;
                line-height: 1.4;
            }

            .negrita {
                font-weight: bold;
            }

            .firma-box {
                text-align: center;
                margin-top: 20px;
            }

            @media print {
                .controles {
                    display: none;
                }

                body {
                    background: white;
                    padding: 0;
                }

                .hoja-a4 {
                    box-shadow: none;
                    margin: 0;
                    width: 100%;
                }
            }
        </style>
    </head>

    <body>

        <div class="hoja-a4">
            <!-- Banner -->
            <div style="text-align: center; margin-bottom: 8px;">
                <img src="../public/img/banner.png" style="max-width: 100%; height: auto;">
            </div>

            <div class="titulo">SOLICITUD DE EXÁMENES MÉDICOS</div>

            <div class="contenido">
                <?php
                // ENCABEZADO
                echo '<div style="text-align: right; font-size: 9pt; margin-bottom: 10px;">';
                echo 'Fecha: ' . date('d/m/Y', strtotime($regSol['fecha_emision']));
                echo '</div>';

                // DATOS DEL PACIENTE
                echo '<div style="margin-bottom: 10px; font-size: 9pt;">';
                echo '<span class="negrita">PACIENTE:</span> ' . strtoupper($reg->paciente) . '<br>';
                echo '<span class="negrita">CÉDULA:</span> ' . $reg->num_documento . '<br>';
                echo '<span class="negrita">EDAD:</span> ' . (isset($reg->edad) ? $reg->edad : 'N/A') . ' &nbsp;&nbsp; ';
                echo '<span class="negrita">SEXO:</span> ' . $reg->sexo . '<br>';
                if (isset($reg->telefono) && !empty($reg->telefono)) {
                    echo '<span class="negrita">TELÉFONO:</span> ' . $reg->telefono . '<br>';
                }
                echo '</div>';

                echo '<hr style="border: 1px solid #333;">';

                // TIPO DE SOLICITUD
                $tipoTexto = '';
                if ($tipo == 'LABORATORIO') {
                    $tipoTexto = 'LABORATORIO CLÍNICO';
                } else if ($tipo == 'IMAGENOLOGIA') {
                    $tipoTexto = 'IMAGENOLOGÍA';
                } else if ($tipo == 'ESPECIALIZADO') {
                    $tipoTexto = 'EXÁMENES ESPECIALIZADOS';
                }

                echo '<div style="text-align: center; font-size: 11pt; font-weight: bold; margin: 10px 0;">';
                echo $tipoTexto;
                echo '</div>';

                // DIAGNÓSTICO PRESUNTIVO
                if (isset($datos['diagnostico']) && !empty($datos['diagnostico'])) {
                    echo '<div style="margin: 10px 0; font-size: 9pt;">';
                    echo '<span class="negrita">DIAGNÓSTICO PRESUNTIVO:</span><br>';
                    echo nl2br(strtoupper($datos['diagnostico']));
                    echo '</div>';
                }

                // CONTENIDO SEGÚN TIPO
                if ($tipo == 'LABORATORIO') {
                    echo '<div style="margin: 10px 0; font-size: 9pt;">';
                    echo '<span class="negrita">CATEGORÍA:</span> ' . (isset($datos['categoria']) ? $datos['categoria'] : 'N/A') . '<br><br>';
                    echo '<span class="negrita">EXÁMENES SOLICITADOS:</span><br>';
                    if (isset($datos['examenes']) && !empty($datos['examenes'])) {
                        $examenes = explode("\n", $datos['examenes']);
                        echo '<ul style="margin-left: 20px;">';
                        foreach ($examenes as $ex) {
                            if (trim($ex) != '') {
                                echo '<li>' . strtoupper(trim($ex)) . '</li>';
                            }
                        }
                        echo '</ul>';
                    }
                    echo '</div>';

                } else if ($tipo == 'IMAGENOLOGIA') {
                    echo '<div style="margin: 10px 0; font-size: 9pt;">';
                    echo '<span class="negrita">TIPO DE ESTUDIO:</span> ' . (isset($datos['tipo_estudio']) ? str_replace('_', ' ', $datos['tipo_estudio']) : 'N/A') . '<br>';
                    echo '<span class="negrita">REGIÓN ANATÓMICA:</span> ' . (isset($datos['region_anatomica']) ? strtoupper($datos['region_anatomica']) : 'N/A') . '<br>';
                    if (isset($datos['especificaciones']) && !empty($datos['especificaciones'])) {
                        echo '<span class="negrita">ESPECIFICACIONES:</span> ' . strtoupper($datos['especificaciones']) . '<br>';
                    }
                    echo '</div>';

                } else if ($tipo == 'ESPECIALIZADO') {
                    echo '<div style="margin: 10px 0; font-size: 9pt;">';
                    echo '<span class="negrita">TIPO DE EXAMEN:</span> ' . (isset($datos['tipo_examen']) ? $datos['tipo_examen'] : 'N/A') . '<br>';
                    if (isset($datos['especificaciones']) && !empty($datos['especificaciones'])) {
                        echo '<span class="negrita">ESPECIFICACIONES:</span><br>';
                        echo nl2br(strtoupper($datos['especificaciones']));
                    }
                    echo '</div>';
                }

                // INDICACIONES CLÍNICAS
                if (isset($datos['indicaciones']) && !empty($datos['indicaciones'])) {
                    echo '<div style="margin: 10px 0; font-size: 9pt;">';
                    echo '<span class="negrita">INDICACIONES CLÍNICAS:</span><br>';
                    echo nl2br($datos['indicaciones']);
                    echo '</div>';
                }

                echo '<br>';
                echo '<p style="font-size: 8pt; margin: 5px 0;">Solicito comedidamente se realicen los exámenes indicados.</p>';
                echo '<p class="negrita" style="font-size: 8pt; margin: 5px 0;">Atentamente</p>';
                ?>
            </div>

            <div style="text-align: right; font-size: 8pt; margin: 10px 0;">
                Fecha de Emisión:
                <?php echo $fechaHoraEmision; ?>
            </div>

            <!-- Area de Firma -->
            <div class="firma-box">
                <?php if ($regSol['firmado'] == 1): ?>
                    <div style="text-align: center;">
                        <div style="display: inline-block; text-align: left; padding: 10px;">
                            <table style="border-collapse: collapse;">
                                <tr>
                                    <td style="padding-right: 15px;">
                                        <?php
                                        $qrText = "FIRMADO POR: " . $nombreMedico . "\n" .
                                            "FECHA: " . date('Y-m-d H:i:s', strtotime($regSol['fecha_firma'])) . "\n" .
                                            "VALIDAR CON: firmadigital.gob.ec";
                                        ?>
                                        <img src="https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=<?php echo urlencode($qrText); ?>"
                                            style="width: 100px; height: 100px; border: 1px solid #eee;" alt="QR FirmaEC">
                                    </td>
                                    <td style="font-family: 'Courier New', Courier, monospace; vertical-align: middle;">
                                        <span style="font-size: 11px;">Firmado electrónicamente por:</span><br>
                                        <span style="font-size: 14px; font-weight: bold;">
                                            <?php echo $nombreMedico; ?>
                                        </span><br>
                                        <span style="font-size: 10px;">Validar con FirmaEC</span>
                                    </td>
                                </tr>
                            </table>
                        </div>
                        <!-- Botón de descarga eliminado a solicitud del usuario -->
                    </div>
                <?php else: ?>
                    <div
                        style="border: 2px dashed #3c8dbc; border-radius: 15px; padding: 40px; text-align: center; margin: 20px auto; max-width: 80%; display: flex; flex-direction: column; align-items: center; justify-content: center;">
                        <h4 style="font-weight: normal; margin-bottom: 5px;">
                            <i class="fa fa-info-circle"></i> Acción Requerida: Firma Digital
                        </h4>
                        <p style="color: #666; margin-bottom: 25px;">Para otorgar validez legal a esta solicitud, presione el
                            siguiente botón:</p>
                        <button id="btnFirmarManual" class="btn btn-primary btn-lg"
                            style="padding: 15px 40px; font-size: 20px; border-radius: 4px; background-color: #337ab7; display: inline-block;"
                            onclick="solicitarFirma()">
                            <i class="fa fa-pencil-square-o"></i> FIRMAR SOLICITUD DIGITALMENTE
                        </button>
                        <p style="margin-top: 15px; color: #777; font-size: 12px;">(Necesitará su certificado .p12 y contraseña)
                        </p>
                    </div>
                <?php endif; ?>
            </div>

        </div><!-- /.hoja-a4 -->

        <!-- ═══════════════════════════════════════════════
             ZONA DE ACCIONES — NO IMPRIMIBLE
             @media print garantiza que NUNCA aparezca
             en papel ni en el PDF generado.
        ═══════════════════════════════════════════════ -->
        <div class="no-print" id="panelAcciones" style="max-width:210mm;margin:18px auto 0;background:#fff;border-radius:6px;padding:18px 24px;box-shadow:0 2px 8px rgba(0,0,0,0.12);">
            <div style="text-align:center;margin-bottom:10px;">
                <strong style="font-size:13px;color:#555;"><i class="fa fa-share-square-o"></i> Enviar esta orden a:</strong>
            </div>
            <div style="display:flex;justify-content:center;gap:12px;flex-wrap:wrap;">
                <?php
                $yaEnviada   = (!empty($regSol['area_destino']) && $regSol['area_destino'] != 'NINGUNO');
                $areaEnviada = $yaEnviada ? $regSol['area_destino'] : '';
                $esFirmado   = ($regSol['firmado'] == 1);
                ?>
                <?php if ($yaEnviada): ?>
                    <div style="background:#eafaf1;border:1px solid #27ae60;border-radius:5px;padding:10px 22px;text-align:center;">
                        <i class="fa fa-check-circle" style="color:#27ae60;font-size:18px;"></i>
                        <strong style="color:#27ae60;display:block;margin-top:4px;">
                            Orden enviada a: <?php echo htmlspecialchars($areaEnviada); ?>
                        </strong>
                        <small style="color:#888;">Estado: <?php echo htmlspecialchars($regSol['estado_area']); ?></small>
                    </div>
                <?php else: ?>
                    <?php if ($esFirmado): ?>
                        <button class="btn btn-success" style="padding:10px 24px;font-size:14px;" onclick="enviarArea('LABORATORIO')">
                            <i class="fa fa-flask"></i> Enviar a Laboratorio
                        </button>
                        <button class="btn btn-info" style="padding:10px 24px;font-size:14px;" onclick="enviarArea('RX')">
                            <i class="fa fa-eercast"></i> Enviar a RX / Imagen
                        </button>
                    <?php else: ?>
                        <div style="color:#a94442;background:#f2dede;border-radius:5px;padding:10px 20px;">
                            <i class="fa fa-lock"></i> Primero debe <strong>firmar la solicitud</strong> para poder enviarla a un área.
                        </div>
                    <?php endif; ?>
                <?php endif; ?>
                <button class="btn btn-default" style="padding:10px 24px;font-size:14px;" onclick="window.print()">
                    <i class="fa fa-print"></i> Solo Imprimir
                </button>
            </div>
        </div>
        <!-- ═══════ FIN ZONA NO IMPRIMIBLE ═══════ -->

        <script src="../public/js/jquery-3.1.1.min.js"></script>
        <script src="../public/js/bootbox.min.js"></script>
        <script src="../public/js/bootstrap.min.js"></script>
        <script>

            function solicitarFirma() {
                var idsolicitud = "<?php echo $idsolicitud; ?>";
                var idempleado = "<?php echo isset($_SESSION['idempleado']) ? $_SESSION['idempleado'] : 0; ?>";
                bootbox.prompt({
                    title: "Ingrese la contraseña de su Certificado Digital para firmar",
                    inputType: 'password',
                    callback: function (password) {
                        if (password) {
                            firmarProceso(idsolicitud, idempleado, password);
                        }
                    }
                });
            }

            function firmarProceso(idsolicitud, idempleado, password) {
                var dialog = bootbox.dialog({
                    message: '<p class="text-center"><i class="fa fa-spin fa-spinner"></i> Firmando solicitud digitalmente...</p>',
                    closeButton: false
                });
                $.ajax({
                    url: "../ajax/solicitud_examen.php?op=firmar",
                    type: "POST",
                    data: {
                        idsolicitud: idsolicitud,
                        idempleado: idempleado,
                        password: password
                    },
                    dataType: "json",
                    success: function (response) {
                        dialog.modal('hide');
                        if (response.success) {
                            bootbox.alert("¡Solicitud firmada exitosamente!", function () {
                                location.reload();
                            });
                        } else {
                            bootbox.alert("Error: " + response.message);
                        }
                    },
                    error: function () {
                        dialog.modal('hide');
                        bootbox.alert("Error de comunicación con el servidor.");
                    }
                });
            }

            // ── Enviar orden a Laboratorio o RX ──────────────────
            function enviarArea(area) {
                var idsolicitud = "<?php echo intval($idsolicitud); ?>";
                var nombreArea  = (area === 'LABORATORIO') ? 'Laboratorio' : 'RX / Imagen';
                bootbox.confirm({
                    title: '<i class="fa fa-share-square-o"></i> Confirmar Envío',
                    message: '¿Desea enviar esta orden al área de <strong>' + nombreArea + '</strong>?<br><small class="text-muted">El personal del área podrá ver esta solicitud al iniciar sesión.</small>',
                    buttons: {
                        confirm: { label: '<i class="fa fa-check"></i> Sí, Enviar',  className: 'btn-success' },
                        cancel:  { label: '<i class="fa fa-times"></i> Cancelar',     className: 'btn-default' }
                    },
                    callback: function (result) {
                        if (!result) return;
                        $.ajax({
                            url: '../ajax/lab_rx.php?op=enviar_area',
                            type: 'POST',
                            data: { idsolicitud: idsolicitud, area: area },
                            dataType: 'json',
                            success: function (resp) {
                                if (resp.success) {
                                    bootbox.alert('<i class="fa fa-check-circle text-success"></i> ' + resp.message, function () {
                                        location.reload();
                                    });
                                } else {
                                    bootbox.alert('Error: ' + resp.message);
                                }
                            },
                            error: function () {
                                bootbox.alert('Error de comunicación con el servidor.');
                            }
                        });
                    }
                });
            }
        </script>
    </body>

    </html>
    <?php
}
ob_end_flush();
?>