<?php
// ============================================================
// GENERADOR PDF: HISTORIA CLÍNICA DE ENDODONCIA
// ============================================================

function generarPDFEndodoncia($idatencion, $json)
{
    if (!cargarTCPDF()) return null;
    $p = obtenerDatosPaciente($idatencion);
    $d = json_decode($json, true) ?? [];

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

    $style = '
    <style>
        table { width: 100%; border-collapse: collapse; font-family: helvetica; font-size: 8pt; }
        td, th { border: 1px solid #C8E6C9; padding: 4px; vertical-align: top; }
        .header { background-color: #2E7D32; color: white; text-align: center; font-size: 14pt; font-weight: bold; padding: 10px; }
        .section-title { background-color: #F1F8E9; color: #2E7D32; font-weight: bold; font-size: 9pt; padding: 4px; border-left: 3px solid #2E7D32; margin-top: 8px; }
        .label-box { font-weight: bold; color: #1B5E20; background-color: #E8F5E9; width: 35%; }
        .check-box { font-family: zapfdingbats; font-size: 10pt; color: #2E7D32; }
    </style>';

    $chk = function($needle, $haystack) {
        $found = false;
        if(is_array($haystack)) {
            $found = in_array($needle, $haystack);
        } else {
            $found = ($needle == $haystack);
        }
        return $found ? '<span class="check-box">3</span>' : '<span class="check-box">q</span>';
    };

    $html = $style . '
    <div class="header">HISTORIA CLÍNICA DE ENDODONCIA</div>
    <br>
    <table cellpadding="3">
        <tr>
            <td class="label-box">PACIENTE:</td>
            <td colspan="3">' . ($p['apaterno'] . ' ' . $p['nombre']) . '</td>
        </tr>
        <tr>
            <td class="label-box">ID / HC:</td>
            <td>' . $p['num_documento'] . '</td>
            <td class="label-box">FECHA:</td>
            <td>' . date('Y-m-d') . '</td>
        </tr>
        <tr>
            <td class="label-box">PIEZA EXAMINADA:</td>
            <td colspan="3" style="font-size:12pt; font-weight:bold; color:#2E7D32;">' . ($d['endo_pieza'] ?? '--') . '</td>
        </tr>
    </table>

    <div class="section-title">DIAGNÓSTICO CLÍNICO Y RADIOGRÁFICO</div>
    <table cellpadding="2">
        <tr>
            <td width="50%">
                <b>Clínico:</b><br>
                ' . $chk('caries', $d['clinico'] ?? []) . ' Caries dental<br>
                ' . $chk('fractura_coronal', $d['clinico'] ?? []) . ' Fractura coronal<br>
                ' . $chk('movilidad', $d['clinico'] ?? []) . ' Movilidad dental<br>
                ' . $chk('exposicion_pulpar', $d['clinico'] ?? []) . ' Exposición pulpar<br>
                ' . $chk('lesion_furca', $d['clinico'] ?? []) . ' Lesión de furca<br>
                ' . $chk('recesion_gingival', $d['clinico'] ?? []) . ' Recesión gingival
            </td>
            <td width="50%">
                <b>Radiográfico:</b><br>
                ' . $chk('ligamento_ensanchado', $d['radio'] ?? []) . ' Ligamento ensanchado<br>
                ' . $chk('fractura_vertical', $d['radio'] ?? []) . ' Fractura vertical<br>
                ' . $chk('apice_inmaduro', $d['radio'] ?? []) . ' Ápice inmaduro<br>
                ' . $chk('reabsorcion_interna', $d['radio'] ?? []) . ' Reabsorción interna<br>
                ' . $chk('lesion_periapical', $d['radio'] ?? []) . ' Lesión periapical<br>
                ' . $chk('tcr_incompleto', $d['radio'] ?? []) . ' TCR incompleto
            </td>
        </tr>
    </table>

    <div class="section-title">DIAGNÓSTICO PULPAR Y PERIAPICAL</div>
    <table cellpadding="2">
        <tr>
            <td width="50%">
                <b>Pulpar:</b><br>
                ' . $chk('sana', $d['pulpar'] ?? '') . ' Pulpa sana<br>
                ' . $chk('reversible', $d['pulpar'] ?? '') . ' Pulpitis reversible<br>
                ' . $chk('irreversible_sint', $d['pulpar'] ?? '') . ' Irrev. Sintomática<br>
                ' . $chk('irreversible_asint', $d['pulpar'] ?? '') . ' Irrev. Asintomática<br>
                ' . $chk('necrosis', $d['pulpar'] ?? '') . ' Necrosis pulpar<br>
                ' . $chk('tratada', $d['pulpar'] ?? '') . ' Previamente tratada
            </td>
            <td width="50%">
                <b>Periapical:</b><br>
                ' . $chk('normal', $d['periapical'] ?? '') . ' Tejidos normales<br>
                ' . $chk('periodontitis_sint', $d['periapical'] ?? '') . ' Perio. Apical Sint.<br>
                ' . $chk('periodontitis_asint', $d['periapical'] ?? '') . ' Perio. Apical Asint.<br>
                ' . $chk('absceso_agudo', $d['periapical'] ?? '') . ' Absceso apical agudo<br>
                ' . $chk('absceso_cronico', $d['periapical'] ?? '') . ' Absceso apical crónico<br>
                ' . $chk('osteitis', $d['periapical'] ?? '') . ' Osteítis condensante
            </td>
        </tr>
    </table>

    <div class="section-title">CARACTERÍSTICAS DEL DOLOR</div>
    <table cellpadding="2">
        <tr>
            <td width="30%"><b>Intensidad:</b><br>
                ' . $chk('ninguna', $d['dolor_int'] ?? '') . ' Ninguna<br>
                ' . $chk('leve', $d['dolor_int'] ?? '') . ' Leve<br>
                ' . $chk('moderada', $d['dolor_int'] ?? '') . ' Moderada<br>
                ' . $chk('severa', $d['dolor_int'] ?? '') . ' Severa
            </td>
            <td width="70%"><b>Provocación:</b><br>
                ' . $chk('espontanea', $d['dolor_tipo'] ?? []) . ' Espontánea &nbsp;&nbsp;
                ' . $chk('estimulado', $d['dolor_tipo'] ?? []) . ' Estimulado &nbsp;&nbsp;
                ' . $chk('calor', $d['dolor_tipo'] ?? []) . ' Calor &nbsp;&nbsp;
                ' . $chk('frio', $d['dolor_tipo'] ?? []) . ' Frío<br>
                ' . $chk('masticacion', $d['dolor_tipo'] ?? []) . ' Masticación &nbsp;&nbsp;
                ' . $chk('palpitante', $d['dolor_tipo'] ?? []) . ' Palpitante
            </td>
        </tr>
    </table>

    <div class="section-title">OBSERVACIONES</div>
    <div style="padding:10px; border:1px solid #C8E6C9; min-height:80px;">
        ' . nl2br($d['endo_observaciones'] ?? 'Sin observaciones.') . '
    </div>

    <br><br><br>
    <table cellpadding="10" style="border:none;">
        <tr>
            <td width="50%" align="center" style="border:none;">_________________________<br>Odontólogo Especialista</td>
            <td width="50%" align="center" style="border:none;">_________________________<br>Firma del Paciente</td>
        </tr>
    </table>';

    $pdf->writeHTML($html, 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, 'ENDODONCIA · Historia Clínica');
    }

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