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

function generarPDFOrtodoncia($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: 9pt; }
        td, th { padding: 4px; vertical-align: top; }
        .header { background-color: #1A237E; color: white; text-align: center; font-size: 14pt; font-weight: bold; padding: 10px; }
        .section-title { background-color: #E8EAF6; color: #1A237E; font-weight: bold; font-size: 10pt; padding: 5px; border-left: 4px solid #1A237E; margin-top: 10px; }
        .label { font-weight: bold; color: #333; width: 30%; }
        .value { border-bottom: 1px solid #eee; width: 70%; }
        .tooth-table { text-align: center; font-size: 8pt; }
        .tooth-num { font-weight: bold; background-color: #f0f0f0; }
        .tooth-val { border: 1px solid #ccc; height: 20px; }
        .status-bracket { color: #1976D2; font-weight: bold; }
        .status-banda { color: #7B1FA2; font-weight: bold; }
        .status-tubo { color: #2E7D32; font-weight: bold; }
    </style>';

    $html = $style . '
    <div class="header">INFORME CLÍNICO DE ORTODONCIA</div>
    <br>
    <table cellpadding="2">
        <tr>
            <td width="50%"><b>PACIENTE:</b> ' . ($p['apaterno'] . ' ' . $p['nombre']) . '</td>
            <td width="50%" align="right"><b>ID:</b> ' . $p['num_documento'] . '</td>
        </tr>
        <tr>
            <td><b>EDAD:</b> ' . $p['edad_completa'] . '</td>
            <td align="right"><b>FECHA:</b> ' . date('Y-m-d') . '</td>
        </tr>
    </table>

    <div class="section-title">1. CONTEXTO CLÍNICO</div>
    <table cellpadding="4">
        <tr>
            <td class="label">Motivo de Consulta:</td>
            <td class="value">' . ($d['orto_motivo'] ?? 'No especificado') . '</td>
        </tr>
        <tr>
            <td class="label">Antecedentes/Hábitos:</td>
            <td class="value">' . ($d['orto_habitos'] ?? 'Ninguno') . '</td>
        </tr>
        <tr>
            <td class="label">Perfil / Simetría:</td>
            <td class="value">Perfil ' . ($d['orto_perfil'] ?? '-') . ' | ' . ($d['orto_simetria'] ?? '-') . '</td>
        </tr>
    </table>

    <div class="section-title">2. DIAGNÓSTICO ESPECIALIZADO</div>
    <table cellpadding="4">
        <tr>
            <td class="label">Relación Molar:</td>
            <td class="value">Der: ' . ($d['clase_molar_der'] ?? '-') . ' | Izq: ' . ($d['clase_molar_izq'] ?? '-') . '</td>
        </tr>
        <tr>
            <td class="label">Relación Canina:</td>
            <td class="value">Der: ' . ($d['clase_canina_der'] ?? '-') . ' | Izq: ' . ($d['clase_canina_izq'] ?? '-') . '</td>
        </tr>
        <tr>
            <td class="label">Overjet / Overbite:</td>
            <td class="value">Overjet: ' . ($d['orto_overjet'] ?? '-') . ' mm | Overbite: ' . ($d['orto_overbite'] ?? '-') . ' %</td>
        </tr>
        <tr>
            <td class="label">Diagnóstico Principal:</td>
            <td class="value"><b>' . ($d['orto_diag_principal'] ?? 'Pendiente') . '</b></td>
        </tr>
    </table>

    <div class="section-title">3. MAPEO DENTAL Y APARATOLOGÍA</div>
    <br>
    <table class="tooth-table" cellpadding="2" border="1">
        <tr bgcolor="#f5f5f5">
            <td>PIEZA</td>';
            $teeth_up = [18,17,16,15,14,13,12,11, 21,22,23,24,25,26,27,28];
            foreach($teeth_up as $n) $html .= '<td>'.$n.'</td>';
    $html .= '</tr><tr>
            <td>ESTADO</td>';
            foreach($teeth_up as $n) {
                $v = $d['tooth_status_'.$n] ?? '-';
                $html .= '<td>'.($v == 'presente' ? '' : strtoupper($v)).'</td>';
            }
    $html .= '</tr>
    </table>
    <br>
    <table class="tooth-table" cellpadding="2" border="1">
        <tr bgcolor="#f5f5f5">
            <td>PIEZA</td>';
            $teeth_down = [48,47,46,45,44,43,42,41, 31,32,33,34,35,36,37,38];
            foreach($teeth_down as $n) $html .= '<td>'.$n.'</td>';
    $html .= '</tr><tr>
            <td>ESTADO</td>';
            foreach($teeth_down as $n) {
                $v = $d['tooth_status_'.$n] ?? '-';
                $html .= '<td>'.($v == 'presente' ? '' : strtoupper($v)).'</td>';
            }
    $html .= '</tr>
    </table>

    <div class="section-title">4. PLAN DE TRATAMIENTO</div>
    <table cellpadding="4">
        <tr>
            <td class="label">Aparatología:</td>
            <td class="value">' . str_replace('_', ' ', strtoupper($d['plan_aparatologia'] ?? '-')) . '</td>
        </tr>
        <tr>
            <td class="label">Duración / Frecuencia:</td>
            <td class="value">' . ($d['plan_duracion'] ?? '-') . ' | ' . ($d['plan_frecuencia'] ?? '-') . '</td>
        </tr>
        <tr>
            <td class="label">Objetivos:</td>
            <td class="value">' . ($d['plan_objetivos'] ?? '-') . '</td>
        </tr>
    </table>

    <div class="section-title">5. EVOLUCIÓN</div>
    <div style="padding:10px; border:1px solid #eee; min-height:100px;">
        ' . nl2br($d['orto_evolucion'] ?? 'Sin notas en esta sesión.') . '
    </div>

    <br><br><br>
    <table cellpadding="10">
        <tr>
            <td width="50%" align="center">_________________________<br>Firma del Profesional</td>
            <td width="50%" align="center">_________________________<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, 'ORTODONCIA · Historia Clínica');
    }

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