<?php
/**
 * GENERADOR DE ACUERDO DE CONFIDENCIALIDAD (PDF)
 * Incluye soporte para firma digital del profesional y firma escaneada del paciente.
 */

function generarPDFConfidencialidad($idatencion, $json)
{
    if (!cargarTCPDF()) return null;

    $p = obtenerDatosPaciente($idatencion);
    $d = json_decode($json, true) ?? [];

    // 1. Crear documento
    $pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
    $pdf->SetMargins(15, 15, 15);
    $pdf->SetAutoPageBreak(TRUE, 20);
    $pdf->SetTitle('Acuerdo de Confidencialidad - ' . $p['apaterno'] . ' ' . $p['nombre']);
    $pdf->AddPage();

    // 2. Estilos
    $html = '
    <style>
        .title { font-size: 14pt; font-weight: bold; text-align: center; color: #1e293b; margin-bottom: 20px; }
        .content { font-size: 10pt; text-align: justify; color: #334155; line-height: 1.5; }
        .section-title { font-size: 11pt; font-weight: bold; color: #0f172a; margin-top: 15px; }
        .footer-table { width: 100%; margin-top: 30px; border: none; }
        .signature-box { border-top: 1px solid #333; text-align: center; padding-top: 5px; font-size: 9pt; }
        .patient-signature-img { max-width: 150px; max-height: 80px; }
    </style>';

    // 3. Contenido del Acuerdo
    $html .= '
    <div class="title">ACUERDO DE CONFIDENCIALIDAD, CONSENTIMIENTO INFORMADO Y POLÍTICAS DE ATENCIÓN PSICOLÓGICA</div>
    
    <div class="content">
        Conste por el presente documento el Acuerdo celebrado entre el/la profesional de la psicología y el/la paciente adulto, bajo las siguientes cláusulas y condiciones:
        
        <div class="section-title">1. COMPROMISO DE CONFIDENCIALIDAD</div>
        El/la profesional garantiza el secreto profesional. Toda la información verbal, escrita o documental está protegida por la Constitución de la República del Ecuador (Art. 66, num. 19), la Ley Orgánica de Salud (Art. 362) y la Ley de Derechos y Amparo al Paciente (Art. 4).
        
        <div class="section-title">2. EXCEPCIONES LEGALES AL SECRETO PROFESIONAL</div>
        El/la paciente acepta que la confidencialidad se romperá, obligatoriamente y sin su consentimiento, únicamente en los siguientes casos de fuerza mayor:
        <ul>
            <li>Riesgo inminente de autoeliminación o daño grave hacia sí mismo.</li>
            <li>Amenaza directa o peligro real contra la vida o integridad de terceras personas.</li>
            <li>Indicios o certeza de abuso, maltrato o violencia hacia menores, adultos mayores o personas con discapacidad.</li>
            <li>Requerimiento legal explícito mediante orden emitida por un Juez competente o Fiscalía General del Estado.</li>
        </ul>
        
        <div class="section-title">3. MANEJO DE LA HISTORIA CLÍNICA DIGITAL</div>
        Toda la información de las sesiones, diagnósticos y evolución se registrará en una Historia Clínica Digital protegida. El sistema cumple con la Ley Orgánica de Protección de Datos Personales (LOPDP) de Ecuador.
        
        <div class="section-title">4. POLÍTICA DE AGENDAMIENTO Y CANCELACIÓN DE CITAS</div>
        El proceso de atención se rige bajo las siguientes normas:
        <ul>
            <li><b>Tiempo de anticipación:</b> Toda cancelación o reprogramación de cita debe notificarse con un mínimo de 24 horas de anticipación.</li>
            <li><b>Cancelaciones tardías o inasistencias:</b> Si la cita se cancela fuera del tiempo estipulado o el paciente no se presenta, se cobrará el <b>' . ($d['porcentaje_inasistencia'] ?? '100') . '%</b> del valor de la sesión en la siguiente consulta.</li>
            <li><b>Tolerancia de espera:</b> El tiempo de espera máximo por retraso del paciente es de <b>' . ($d['minutos_tolerancia'] ?? '15') . ' minutos</b>. Pasado ese tiempo, la sesión se dará por perdida sin derecho a reembolso.</li>
        </ul>
        
        <div class="section-title">5. DECLARACIÓN DE ACEPTACIÓN</div>
        Yo, <b>' . $p['apaterno'] . ' ' . ($p['amaterno'] ?? '') . ' ' . $p['nombre'] . '</b>, con C.C. Nro. <b>' . $p['num_documento'] . '</b>, declaro que he leído de forma íntegra, comprendido y aceptado todas las políticas de confidencialidad, límites legales, manejo de datos digitales y condiciones de cancelación detalladas en este documento.
        <br><br>
        Dado en la ciudad de <b>' . ($d['ciudad_emision'] ?? 'Quito') . '</b>, el <b>' . date('d', strtotime($d['fecha_acuerdo'] ?? 'now')) . '</b> de <b>' . strftime('%B', strtotime($d['fecha_acuerdo'] ?? 'now')) . '</b> de <b>' . date('Y', strtotime($d['fecha_acuerdo'] ?? 'now')) . '</b>.
    </div>';

    // 4. Firmas
    $pdf->writeHTML($html, true, false, true, false, '');

    // Lógica de Firma del Paciente (Imagen subida)
    $y_signatures = $pdf->GetY() + 10;
    
    // Si hay una firma subida, intentar ponerla
    // Nota: El archivo subido en el form debe procesarse antes o estar en la ruta temporal.
    // Para simplificar, asumiremos que la ruta de la firma se guarda en el JSON si se procesa via AJAX.
    // Pero el usuario quiere "subir una foto".
    
    $html_firmas = '<table border="0" cellpadding="10" style="width: 100%;">';
    $html_firmas .= '<tr>';
    
    // Lado del Paciente
    $html_firmas .= '<td style="width: 50%; text-align: center; vertical-align: bottom;">';
    // Aquí iría el img tag si tenemos la ruta de la imagen
    if (isset($d['ruta_firma_paciente']) && file_exists('../' . $d['ruta_firma_paciente'])) {
        $html_firmas .= '<img src="../' . $d['ruta_firma_paciente'] . '" style="height: 60px;"><br>';
    } else {
        $html_firmas .= '<div style="height: 60px;"></div>';
    }
    $html_firmas .= '_______________________________________<br><b>Firma del/la Paciente</b><br>C.C.: ' . $p['num_documento'] . '</td>';

    // Lado del Profesional (Firma Digital)
    $html_firmas .= '<td style="width: 50%; text-align: center; vertical-align: bottom;">';
    
    // Obtener datos del profesional para la firma
    $especialista = $p['especialista'] ?? '';
    $reg_msp = $p['especialidad'] ?? ''; // O donde se guarde el registro
    
    // Generar bloque de firma digital (QR + Texto)
    $html_firmas .= '<div style="text-align: left; font-size: 8pt; border: 1px solid #ccc; padding: 5px; background-color: #f9f9f9;">';
    $html_firmas .= '<b>FIRMADO ELECTRÓNICAMENTE POR:</b><br>';
    $html_firmas .= $especialista . '<br>';
    $html_firmas .= 'FECHA: ' . date('d/m/Y H:i:s') . '<br>';
    $html_firmas .= 'VALIDADO POR: ' . ($p['institucion'] ?? 'SISTEMA CLÍNICO');
    $html_firmas .= '</div>';
    
    $html_firmas .= '<br>_______________________________________<br><b>Firma del/la Profesional</b><br>Reg. MSP / Senescyt Nro.: ' . $reg_msp . '</td>';
    
    $html_firmas .= '</tr></table>';

    $pdf->writeHTML($html_firmas, true, false, true, false, '');

    // Pie con QR de firma electrónica (patrón maestro MSP)
    $emisor = function_exists('_mspObtenerEmisor') ? _mspObtenerEmisor() : ['institucion'=>'','profesional'=>'','especialidad'=>'','senescyt'=>''];
    if (function_exists('_pdfPieFirmaQRSimple')) {
        _pdfPieFirmaQRSimple($pdf, $emisor, $idatencion, 'ACUERDO DE CONFIDENCIALIDAD');
    }

    return salvarPDF($pdf, 'confidencialidad', $idatencion);
}
?>
