<?php
// ============================================================
// GENERADOR PDF: HC MEDICINA FAMILIAR
// ============================================================

/**
 * Genera PDF oficial de Historia Clínica - Medicina Familiar
 */
function generarPDFHcMedFamiliar($idatencion, $json)
{
    if (!cargarTCPDF()) return null;
    $p = obtenerDatosPaciente($idatencion);
    $d = json_decode($json, true) ?? [];

    // Obtener datos del médico
    $sqlMedico = "SELECT concat(p.apaterno,' ',p.amaterno,' ',p.nombre) as medico, p.num_documento as cedula_medico, u.especialidad, u.registro_senescyt
                  FROM atencion a 
                  INNER JOIN persona p ON a.idempleado = p.idpersona 
                  LEFT JOIN usuario u ON u.idusuario = p.idpersona
                  WHERE a.idatencion = '$idatencion'";
    $medico = ejecutarConsultaSimpleFila($sqlMedico);

    // Obtener configuración
    $sqlConfig = "SELECT * FROM configuracion LIMIT 1";
    $config = ejecutarConsultaSimpleFila($sqlConfig);

    $pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
    $pdf->SetMargins(10, 10, 10);
    $pdf->SetAutoPageBreak(TRUE, 12);
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);
    $pdf->AddPage();

    $style = '
    <style>
        table { width: 100%; border-collapse: collapse; font-family: helvetica; font-size: 8pt; }
        td, th { border: 1px solid #444; padding: 4px; vertical-align: top; }
        .no-border { border: none; }
        .header-title { font-size: 13pt; font-weight: bold; color: #0D47A1; }
        .section-title { background-color: #1565C0; font-weight: bold; font-size: 9pt; padding: 6px 10px; color: #FFFFFF; }
        .section-title-alt { background-color: #6A1B9A; font-weight: bold; font-size: 9pt; padding: 6px 10px; color: #FFFFFF; }
        .section-title-warn { background-color: #E65100; font-weight: bold; font-size: 9pt; padding: 6px 10px; color: #FFFFFF; }
        .section-title-red { background-color: #B71C1C; font-weight: bold; font-size: 9pt; padding: 6px 10px; color: #FFFFFF; }
        .section-title-green { background-color: #2E7D32; font-weight: bold; font-size: 9pt; padding: 6px 10px; color: #FFFFFF; }
        .section-title-dark { background-color: #37474F; font-weight: bold; font-size: 9pt; padding: 6px 10px; color: #FFFFFF; }
        .section-title-pink { background-color: #AD1457; font-weight: bold; font-size: 9pt; padding: 6px 10px; color: #FFFFFF; }
        .label { background-color: #E3F2FD; font-weight: bold; width: 22%; color: #0D47A1; font-size: 8pt; }
        .value { width: 28%; }
        .check-yes { font-family: zapfdingbats; }
        .text-center { text-align: center; }
        .text-right { text-align: right; }
        .text-bold { font-weight: bold; }
        .small { font-size: 7pt; color: #666; }
    </style>';

    // Nombre del consultorio (dinámico, sin hardcodeos)
    $nombreConsultorio = (isset($config['razon_social']) && strtoupper($config['razon_social']) !== 'TURAZONSOCIAL')
        ? $config['razon_social']
        : '';

    $html = $style . '
    <!-- ENCABEZADO (sin logo MSP, datos del emisor dinámicos) -->
    <table cellpadding="4">
        <tr>
            <td width="80%" class="no-border text-left">
                <span style="font-size:11pt; font-weight:bold; color:#333;">' . htmlspecialchars($nombreConsultorio) . '</span><br>
                <span class="header-title">HISTORIA CLÍNICA &mdash; MEDICINA FAMILIAR</span>
            </td>
            <td width="20%" class="no-border text-right" style="font-size:8pt;">
                <b>Folio:</b> ' . $idatencion . '<br>
                <b>Fecha:</b> ' . ($d['fecha_consulta'] ?? date('Y-m-d')) . '
            </td>
        </tr>
    </table>

    <!-- DATOS DEL MÉDICO -->
    <table cellpadding="2">
        <tr>
            <td class="label" width="15%">Médico:</td>
            <td width="45%">' . ($medico ? $medico['medico'] : '') . '</td>
            <td class="label" width="15%">Cédula:</td>
            <td width="25%">' . ($medico ? $medico['cedula_medico'] : '') . '</td>
        </tr>
    </table><br>

    <!-- 1. DATOS DE IDENTIFICACIÓN -->
    <table cellpadding="3">
        <tr><td colspan="4" class="section-title">1. DATOS DE IDENTIFICACIÓN</td></tr>
        <tr>
            <td class="label">Paciente:</td>
            <td colspan="3">' . $p['apaterno'] . ' ' . ($p['amaterno'] ?? '') . ' ' . $p['nombre'] . '</td>
        </tr>
        <tr>
            <td class="label">Cédula:</td><td>' . $p['num_documento'] . '</td>
            <td class="label">Edad / Sexo:</td><td>' . $p['edad_completa'] . ' / ' . ($d['sexo_paciente'] ?? $p['sexo']) . '</td>
        </tr>
        <tr>
            <td class="label">Estado Civil:</td><td>' . ($d['estado_civil_paciente'] ?? '') . '</td>
            <td class="label">Ocupación:</td><td>' . ($d['ocupacion_paciente'] ?? '') . '</td>
        </tr>
        <tr>
            <td class="label">Dirección:</td><td>' . ($d['direccion_paciente'] ?? $p['direccion'] ?? '') . '</td>
            <td class="label">Teléfono:</td><td>' . ($d['telefono_paciente'] ?? $p['telefono'] ?? '') . '</td>
        </tr>
    </table><br>

    <!-- 2. MOTIVO DE CONSULTA -->
    <table cellpadding="3">
        <tr><td class="section-title">2. MOTIVO DE CONSULTA</td></tr>
        <tr><td style="min-height:25px;">' . nl2br(htmlspecialchars($d['motivo_consulta'] ?? '')) . '</td></tr>
    </table><br>

    <!-- 3. ENFERMEDAD ACTUAL -->
    <table cellpadding="3">
        <tr><td class="section-title">3. ENFERMEDAD ACTUAL</td></tr>
        <tr><td style="min-height:30px;">' . nl2br(htmlspecialchars($d['enfermedad_actual'] ?? '')) . '</td></tr>
    </table><br>

    <!-- 4. ANTECEDENTES PERSONALES PATOLÓGICOS -->
    <table cellpadding="3">
        <tr><td class="section-title">4. ANTECEDENTES PERSONALES PATOLÓGICOS</td></tr>
        <tr><td style="min-height:25px;">' . nl2br(htmlspecialchars($d['antecedentes_patologicos'] ?? '')) . '</td></tr>
    </table><br>

    <!-- 5. ANTECEDENTES PERSONALES NO PATOLÓGICOS -->
    <table cellpadding="3">
        <tr><td class="section-title">5. ANTECEDENTES PERSONALES NO PATOLÓGICOS</td></tr>
        <tr><td style="min-height:25px;">' . nl2br(htmlspecialchars($d['antecedentes_no_patologicos'] ?? '')) . '</td></tr>
    </table><br>

    <!-- 6. ANTECEDENTES GINECO-OBSTÉTRICOS -->
    <table cellpadding="3">
        <tr><td class="section-title-pink">6. ANTECEDENTES GINECO-OBSTÉTRICOS (si aplica)</td></tr>
        <tr><td style="min-height:20px;">' . nl2br(htmlspecialchars($d['antecedentes_gineco'] ?? 'No aplica')) . '</td></tr>
    </table><br>

    <!-- 7. ANTECEDENTES HEREDOFAMILIARES -->
    <table cellpadding="3">
        <tr><td class="section-title">7. ANTECEDENTES HEREDOFAMILIARES</td></tr>
        <tr><td style="min-height:25px;">' . nl2br(htmlspecialchars($d['antecedentes_heredofamiliares'] ?? '')) . '</td></tr>
    </table><br>';

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

    // ---- PÁGINA 2 ----
    $html2 = $style . '
    <!-- 8. FAMILIOGRAMA -->
    <table cellpadding="3">
        <tr><td class="section-title-green">8. FAMILIOGRAMA</td></tr>
        <tr><td style="min-height:50px; font-family: dejavusans; font-size: 8pt;">
            <span style="font-size: 7pt; color: #444;">Leyenda: [H] Hombre | [M] Mujer | [—] Unión | [/] Separación | [≈] Convivencia | [!] Conflicto | [X] Fallecido | [*] Paciente índice</span><br><br>
            ' . nl2br(htmlspecialchars($d['familiograma'] ?? 'No registrado')) . '
        </td></tr>
    </table><br>
';

    // Dispensarización
    $disp = $d['dispensarizacion'] ?? '';
    $checkI = ($disp == 'I') ? '4' : 'o';
    $checkII = ($disp == 'II') ? '4' : 'o';
    $checkIII = ($disp == 'III') ? '4' : 'o';
    $checkIV = ($disp == 'IV') ? '4' : 'o';

    $html2 .= '
    <!-- 9. DISPENSARIZACIÓN -->
    <table cellpadding="3">
        <tr><td colspan="3" class="section-title-warn">9. DISPENSARIZACIÓN</td></tr>
        <tr>
            <td width="15%" class="text-center text-bold" style="color:#2E7D32;">I</td>
            <td width="55%">Sano — Sin factores de riesgo</td>
            <td width="30%" class="text-center"><span class="check-yes">' . $checkI . '</span></td>
        </tr>
        <tr>
            <td class="text-center text-bold" style="color:#F9A825;">II</td>
            <td>Con Riesgo — Presenta factores de riesgo</td>
            <td class="text-center"><span class="check-yes">' . $checkII . '</span></td>
        </tr>
        <tr>
            <td class="text-center text-bold" style="color:#EF6C00;">III</td>
            <td>Enfermo Controlado — Enfermedad crónica compensada</td>
            <td class="text-center"><span class="check-yes">' . $checkIII . '</span></td>
        </tr>
        <tr>
            <td class="text-center text-bold" style="color:#C62828;">IV</td>
            <td>Enfermo Descompensado — Enfermedad crónica descompensada</td>
            <td class="text-center"><span class="check-yes">' . $checkIV . '</span></td>
        </tr>
    </table><br>

    <!-- 10. REVISIÓN POR APARATOS Y SISTEMAS -->
    <table cellpadding="3">
        <tr><td class="section-title">10. REVISIÓN POR APARATOS Y SISTEMAS</td></tr>
        <tr><td style="min-height:30px;">' . nl2br(htmlspecialchars($d['revision_aparatos_sistemas'] ?? '')) . '</td></tr>
    </table><br>

    <!-- 11. EXPLORACIÓN FÍSICA -->
    <table cellpadding="3">
        <tr><td colspan="8" class="section-title">11. EXPLORACIÓN FÍSICA — SIGNOS VITALES</td></tr>
        <tr>
            <td class="label" width="10%">TA:</td><td width="15%">' . ($d['ef_ta'] ?? '') . '</td>
            <td class="label" width="10%">FC:</td><td width="15%">' . ($d['ef_fc'] ?? '') . '</td>
            <td class="label" width="10%">FR:</td><td width="15%">' . ($d['ef_fr'] ?? '') . '</td>
            <td class="label" width="10%">Temp:</td><td width="15%">' . ($d['ef_temp'] ?? '') . '</td>
        </tr>
        <tr>
            <td class="label" width="10%">SatO2:</td><td width="15%">' . ($d['ef_sato2'] ?? '') . '</td>
            <td class="label" width="10%">Peso:</td><td width="15%">' . ($d['ef_peso'] ?? '') . '</td>
            <td class="label" width="10%">Talla:</td><td width="15%">' . ($d['ef_talla'] ?? '') . '</td>
            <td class="label" width="10%">IMC:</td><td width="15%" style="font-weight:bold;">' . ($d['ef_imc'] ?? '') . '</td>
        </tr>
    </table>
    <table cellpadding="3">
        <tr><td class="section-title">HALLAZGOS DE LA EXPLORACIÓN</td></tr>
        <tr><td style="min-height:35px;">' . nl2br(htmlspecialchars($d['hallazgos_exploracion'] ?? '')) . '</td></tr>
    </table><br>';

    // Síndromes geriátricos
    $sgItems = [];
    if (!empty($d['sg_caidas'])) $sgItems[] = 'Caídas recurrentes';
    if (!empty($d['sg_incontinencia'])) $sgItems[] = 'Incontinencia urinaria/fecal';
    if (!empty($d['sg_deterioro_cognitivo'])) $sgItems[] = 'Deterioro cognitivo';
    if (!empty($d['sg_depresion'])) $sgItems[] = 'Depresión';
    if (!empty($d['sg_fragilidad'])) $sgItems[] = 'Fragilidad';
    if (!empty($d['sg_polifarmacia'])) $sgItems[] = 'Polifarmacia';
    if (!empty($d['sg_dependencia'])) $sgItems[] = 'Dependencia funcional (Barthel/Katz)';
    $sgText = empty($sgItems) ? 'Ninguno identificado' : implode(' • ', $sgItems);

    $html2 .= '
    <!-- 12. SÍNDROME GERIÁTRICO -->
    <table cellpadding="3">
        <tr><td class="section-title-alt">12. SÍNDROME GERIÁTRICO</td></tr>
        <tr><td style="min-height:20px;">' . htmlspecialchars($sgText) . '</td></tr>
    </table><br>

    <!-- 13. IMPRESIÓN DIAGNÓSTICA -->
    <table cellpadding="3">
        <tr><td class="section-title-red">13. IMPRESIÓN DIAGNÓSTICA</td></tr>
    </table>
    <table cellpadding="2">
        <tr>
            <th width="15%" style="background:#FFCDD2; font-weight:bold;">Código</th>
            <th width="60%" style="background:#FFCDD2; font-weight:bold;">Enfermedad</th>
            <th width="25%" style="background:#FFCDD2; font-weight:bold;">Tipo</th>
        </tr>
        ' . obtenerDiagnosticosFormat($idatencion) . '
    </table>';

    if (!empty($d['impresion_diagnostica'])) {
        $html2 .= '<table cellpadding="3"><tr><td style="min-height:20px;">' . nl2br(htmlspecialchars($d['impresion_diagnostica'])) . '</td></tr></table>';
    }

    $html2 .= '<br>
    <!-- 14. PLAN DE MANEJO -->
    <table cellpadding="3">
        <tr><td class="section-title">14. PLAN DE MANEJO</td></tr>
        <tr><td style="min-height:35px;">' . nl2br(htmlspecialchars($d['plan_manejo'] ?? '')) . '</td></tr>
    </table>';

    if (!empty($d['proxima_cita'])) {
        $html2 .= '<table cellpadding="2"><tr><td class="label" width="20%">Próxima Cita:</td><td>' . $d['proxima_cita'] . '</td></tr></table>';
    }

    $html2 .= '<br>
    <!-- 15. NOTAS Y OBSERVACIONES ADICIONALES -->
    <table cellpadding="3">
        <tr><td class="section-title-dark">15. NOTAS Y OBSERVACIONES ADICIONALES</td></tr>
        <tr><td style="min-height:20px;">' . nl2br(htmlspecialchars($d['notas_observaciones'] ?? '')) . '</td></tr>
    </table><br>

    <!-- ESPACIO PARA FIRMA ELIMINADO A SOLICITUD DEL USUARIO -->
';

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

    return salvarPDF($pdf, 'hc_med_familiar', $idatencion);
}
