<?php
// GENERADOR PDF · FEMO 2025
// Formulario Único de Evaluación Médica Ocupacional · Acuerdo Ministerial 00025-2025
// Aplica paleta MSP oficial, datos del emisor dinámicos y QR de firma electrónica.

require_once __DIR__ . "/generar_pdf_msp.php";

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

    $p = obtenerDatosPaciente($idatencion);
    $d = json_decode($json, true) ?? [];
    $emisor = _mspObtenerEmisor();
    $val = function ($k, $alt = '—') use ($d) { return _mspVal($d, $k, $alt); };
    $valnl = function ($k, $alt = '—') use ($d) { return _mspValnl($d, $k, $alt); };

    $pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
    $pdf->SetCreator('Sistema Médico HC');
    $pdf->SetAuthor($emisor['institucion'] ?: 'Profesional médico');
    $pdf->SetTitle('FEMO 2025 · Evaluación Médica Ocupacional');
    $pdf->SetMargins(10, 8, 10);
    $pdf->SetAutoPageBreak(TRUE, 12);
    $pdf->AddPage();

    $qrTimestamp = date('Y-m-d H:i:s');
    $qrContent = _mspQrContent($idatencion, 'FEMO 2025 · Evaluación Médica Ocupacional', $emisor, $qrTimestamp);
    $estilo = _mspEstiloOficial();

    $html = $estilo . _mspCabeceraEmisor($emisor) . _mspIdentificacionPaciente($emisor, $p);

    // Encabezado del formulario
    $html .= '
    <table cellspacing="0">
        <tr><td class="section-band" style="text-align:center; font-size:11pt;">
            FEMO 2025 · FORMULARIO ÚNICO DE EVALUACIÓN MÉDICA OCUPACIONAL
        </td></tr>
        <tr><td class="small text-center" style="padding:5px;">
            Acuerdo Ministerial 00025-2025 · Ministerio de Salud Pública del Ecuador
        </td></tr>
    </table><br>';

    // 1. TIPO DE EVALUACIÓN
    $tipoEval = strtoupper($d['femo_tipo_eval'] ?? '—');
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="4" class="section-band"><span class="section-num">1</span>TIPO DE EVALUACIÓN MÉDICA OCUPACIONAL</td></tr>
        <tr>
            <td width="25%" class="subhead-left">TIPO DE EVALUACIÓN</td>
            <td width="25%" class="data-cell" style="font-weight:bold;">' . $tipoEval . '</td>
            <td width="25%" class="subhead-left">FECHA</td>
            <td width="25%" class="data-cell">' . $val('femo_fecha_eval', date('Y-m-d')) . '  ·  ' . $val('femo_hora_eval', date('H:i')) . '</td>
        </tr>
    </table><br>';

    // A. ESTABLECIMIENTO + B. EMPRESA + C. TRABAJADOR (similar a los HCU)
    $html .= '
    <table cellpadding="3" cellspacing="0">
        <tr><td colspan="6" class="subhead-left">A · DATOS DEL ESTABLECIMIENTO DE SALUD</td></tr>
        <tr>
            <td width="20%" class="subhead">INSTITUCIÓN DEL SISTEMA</td>
            <td width="22%" class="subhead">UNIDAD OPERATIVA</td>
            <td width="14%" class="subhead">RUC</td>
            <td width="14%" class="subhead">CIIU</td>
            <td width="15%" class="subhead">PROVINCIA</td>
            <td width="15%" class="subhead">CANTÓN</td>
        </tr>
        <tr class="text-center" style="font-size:8.5pt;">
            <td>' . htmlspecialchars($emisor['institucion'] ?: '—') . '</td>
            <td>' . htmlspecialchars($emisor['unidad'] ?: '—') . '</td>
            <td>' . htmlspecialchars($emisor['ruc'] ?: '—') . '</td>
            <td>' . $val('ciiu_establecimiento') . '</td>
            <td>' . $val('femo_ubicacion') . '</td>
            <td>&nbsp;</td>
        </tr>
    </table>
    <table cellpadding="3" cellspacing="0">
        <tr><td colspan="6" class="subhead-left">B · DATOS DE LA EMPRESA EMPLEADORA</td></tr>
        <tr>
            <td width="32%" class="subhead">RAZÓN SOCIAL</td>
            <td width="18%" class="subhead">RUC EMPRESA</td>
            <td width="20%" class="subhead">CIIU (ACTIVIDAD)</td>
            <td width="15%" class="subhead">SECTOR</td>
            <td width="15%" class="subhead">CAT. RIESGO</td>
        </tr>
        <tr class="text-center" style="font-size:8.5pt;">
            <td>' . $val('femo_empresa') . '</td>
            <td>' . $val('femo_ruc') . '</td>
            <td>' . $val('femo_actividad_eco') . '</td>
            <td>' . $val('empresa_sector') . '</td>
            <td>' . $val('empresa_categoria_riesgo') . '</td>
        </tr>
        <tr>
            <td colspan="2" class="subhead">DIRECCIÓN DE LA EMPRESA</td>
            <td colspan="2" class="subhead">TELÉFONO</td>
            <td colspan="2" class="subhead">CORREO ELECTRÓNICO</td>
        </tr>
        <tr class="text-center" style="font-size:8.5pt;">
            <td colspan="2">' . $val('empresa_direccion') . '</td>
            <td colspan="2">' . $val('empresa_telefono') . '</td>
            <td colspan="2">' . $val('empresa_email') . '</td>
        </tr>
    </table><br>';

    // 2. PUESTO DE TRABAJO
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="4" class="section-band">
            <span class="section-num">2</span>PUESTO DE TRABAJO Y EXPOSICIÓN LABORAL
        </td></tr>
        <tr>
            <td width="22%" class="subhead-left">PUESTO / CARGO</td>
            <td width="28%" class="data-cell">' . $val('femo_puesto') . '</td>
            <td width="22%" class="subhead-left">ÁREA / DEPARTAMENTO</td>
            <td width="28%" class="data-cell">' . $val('femo_area') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">ANTIGÜEDAD PUESTO</td>
            <td class="data-cell">' . $val('antiguedad_puesto') . '</td>
            <td class="subhead-left">ANTIGÜEDAD EMPRESA</td>
            <td class="data-cell">' . $val('antiguedad_empresa') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">JORNADA / HORAS</td>
            <td class="data-cell">' . $val('jornada_horas') . '</td>
            <td class="subhead-left">TURNO</td>
            <td class="data-cell">' . $val('turno') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">TIPO DE CONTRATO</td>
            <td class="data-cell">' . $val('tipo_contrato') . '</td>
            <td class="subhead-left">FECHA DE INGRESO</td>
            <td class="data-cell">' . $val('fecha_ingreso_empresa') . '</td>
        </tr>
        <tr>
            <td colspan="4" class="subhead-left">DESCRIPCIÓN DE TAREAS PRINCIPALES</td>
        </tr>
        <tr>
            <td colspan="4" class="data-cell" style="height:50px;">' . $valnl('descripcion_tareas') . '</td>
        </tr>
    </table><br>';

    // 3. FACTORES DE RIESGO
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="5" class="section-band">
            <span class="section-num">3</span>FACTORES DE RIESGO OCUPACIONAL IDENTIFICADOS
        </td></tr>
        <tr>
            <td width="30%" class="subhead">FACTOR DE RIESGO</td>
            <td width="8%" class="subhead">SÍ</td>
            <td width="8%" class="subhead">NO</td>
            <td width="32%" class="subhead">DESCRIPCIÓN / TIEMPO</td>
            <td width="22%" class="subhead">MEDIDA / EPP</td>
        </tr>';

    $riesgos = [
        ['r_fisico',  'FÍSICOS (ruido, vibración, temperatura, radiaciones)'],
        ['r_quimico', 'QUÍMICOS (polvos, gases, vapores, líquidos)'],
        ['r_biol',    'BIOLÓGICOS (virus, bacterias, hongos, parásitos)'],
        ['r_ergo',    'ERGONÓMICOS (postura, cargas, repetitividad)'],
        ['r_psico',   'PSICOSOCIALES (carga mental, estrés, horarios)'],
        ['r_meca',    'MECÁNICOS (atrapamiento, caídas, golpes, cortes)'],
    ];
    foreach ($riesgos as $r) {
        $key = $r[0];
        $marca = strtolower($d[$key] ?? '');
        $si = ($marca === 'si') ? 'X' : '';
        $no = ($marca === 'no' || $marca === '') ? 'X' : '';
        $html .= '<tr style="font-size:8pt;">
            <td class="item-label">' . $r[1] . '</td>
            <td class="cp-sp">' . $si . '</td>
            <td class="cp-sp">' . $no . '</td>
            <td class="data-cell">' . $val($key . '_desc') . '</td>
            <td class="data-cell">' . $val($key . '_epp') . '</td>
        </tr>';
    }
    $html .= '</table><br>';

    // 4. ANTECEDENTES
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="2" class="section-band">
            <span class="section-num">4</span>ANTECEDENTES PERSONALES, FAMILIARES Y LABORALES
        </td></tr>
        <tr>
            <td width="50%" class="subhead-left">ANTECEDENTES PATOLÓGICOS PERSONALES</td>
            <td width="50%" class="subhead-left">ANTECEDENTES QUIRÚRGICOS / TRAUMÁTICOS</td>
        </tr>
        <tr>
            <td class="data-cell" style="height:55px;">' . $valnl('ant_pat_p') . '</td>
            <td class="data-cell" style="height:55px;">' . $valnl('ant_quir') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">ANTECEDENTES PATOLÓGICOS FAMILIARES</td>
            <td class="subhead-left">ALERGIAS / REACCIONES ADVERSAS</td>
        </tr>
        <tr>
            <td class="data-cell" style="height:40px;">' . $valnl('ant_pat_f') . '</td>
            <td class="data-cell" style="height:40px;"><span class="red-text">' . $val('alergias', 'Ninguna referida') . '</span></td>
        </tr>
        <tr>
            <td class="subhead-left">ANTECEDENTES GINECO-OBSTÉTRICOS (SI APLICA)</td>
            <td class="subhead-left">ANTECEDENTES LABORALES (empresas/puestos anteriores)</td>
        </tr>
        <tr>
            <td class="data-cell" style="height:40px;">' . $valnl('ant_gineco') . '</td>
            <td class="data-cell" style="height:40px;">' . $valnl('antec_laborales') . '</td>
        </tr>
        <tr>
            <td colspan="2" class="subhead-left">ENFERMEDADES PROFESIONALES / ACCIDENTES DE TRABAJO PREVIOS</td>
        </tr>
        <tr>
            <td colspan="2" class="data-cell" style="height:35px;">' . $valnl('enf_profesionales_previas') . '</td>
        </tr>
    </table><br>';

    // 5. ESTILO DE VIDA Y HÁBITOS
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="4" class="section-band">
            <span class="section-num">5</span>ESTILO DE VIDA Y HÁBITOS
        </td></tr>
        <tr>
            <td width="25%" class="subhead-left">TABACO</td>
            <td width="25%" class="data-cell">' . $val('hab_fuma') . '</td>
            <td width="25%" class="subhead-left">ALCOHOL</td>
            <td width="25%" class="data-cell">' . $val('hab_bebe') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">SUSTANCIAS / DROGAS</td>
            <td class="data-cell">' . $val('hab_drogas') . '</td>
            <td class="subhead-left">SUEÑO (horas / noche)</td>
            <td class="data-cell">' . $val('hab_sueno') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">ACTIVIDAD FÍSICA</td>
            <td class="data-cell">' . $val('hab_ejercicio') . '</td>
            <td class="subhead-left">NUTRICIÓN / DIETA</td>
            <td class="data-cell">' . $val('hab_dieta') . '</td>
        </tr>
    </table><br>';

    // 6. SIGNOS VITALES
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="4" class="section-band">
            <span class="section-num">6</span>SIGNOS VITALES Y ANTROPOMETRÍA
        </td></tr>
        <tr>
            <td width="25%" class="subhead-left">TENSIÓN ARTERIAL (mmHg)</td>
            <td width="25%" class="data-cell">' . $val('sv_ta', $val('presion_arterial')) . '</td>
            <td width="25%" class="subhead-left">FRECUENCIA CARDÍACA</td>
            <td width="25%" class="data-cell">' . $val('sv_fc', $val('frecuencia_cardiaca')) . '</td>
        </tr>
        <tr>
            <td class="subhead-left">FRECUENCIA RESPIRATORIA</td>
            <td class="data-cell">' . $val('sv_fr', $val('frecuencia_respiratoria')) . '</td>
            <td class="subhead-left">TEMPERATURA (°C)</td>
            <td class="data-cell">' . $val('sv_temp', $val('temperatura')) . '</td>
        </tr>
        <tr>
            <td class="subhead-left">SATURACIÓN O₂ (%)</td>
            <td class="data-cell">' . $val('sv_sat', $val('saturacion')) . '</td>
            <td class="subhead-left">PESO (kg)</td>
            <td class="data-cell">' . $val('sv_peso', $val('peso')) . '</td>
        </tr>
        <tr>
            <td class="subhead-left">TALLA (cm)</td>
            <td class="data-cell">' . $val('sv_talla', $val('talla')) . '</td>
            <td class="subhead-left">IMC (kg/m²)</td>
            <td class="data-cell">' . $val('sv_imc', $val('imc')) . '</td>
        </tr>
    </table><br>';

    // 7. EXAMEN FÍSICO REGIONAL
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="2" class="section-band">
            <span class="section-num">7</span>EXAMEN FÍSICO REGIONAL Y POR SISTEMAS
        </td></tr>
        <tr>
            <td width="22%" class="subhead-left">CABEZA Y CUELLO</td>
            <td width="78%" class="data-cell" style="height:30px;">' . $valnl('ef_cabeza') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">TÓRAX (cardio-pulmonar)</td>
            <td class="data-cell" style="height:30px;">' . $valnl('ef_torax') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">ABDOMEN</td>
            <td class="data-cell" style="height:30px;">' . $valnl('ef_abdomen') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">COLUMNA VERTEBRAL</td>
            <td class="data-cell" style="height:30px;">' . $valnl('ef_columna') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">EXTREMIDADES (MMSS / MMII)</td>
            <td class="data-cell" style="height:30px;">' . $valnl('ef_ext') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">NEUROLÓGICO / PIEL</td>
            <td class="data-cell" style="height:30px;">' . $valnl('ef_neuro') . '</td>
        </tr>
    </table><br>';

    // 8. EVALUACIONES ESPECÍFICAS
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="2" class="section-band">
            <span class="section-num">8</span>EVALUACIONES ESPECÍFICAS
        </td></tr>
        <tr>
            <td width="50%" class="subhead-left">AGUDEZA VISUAL (cerca / lejos / colores)</td>
            <td width="50%" class="subhead-left">OTOSCOPIA / VALORACIÓN AUDITIVA</td>
        </tr>
        <tr>
            <td class="data-cell" style="height:50px;">' . $valnl('ev_visual') . '</td>
            <td class="data-cell" style="height:50px;">' . $valnl('ev_auditiva') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">TEST DE ROMBERG / MARCHA</td>
            <td class="subhead-left">OBSERVACIONES DE POSTURA LABORAL</td>
        </tr>
        <tr>
            <td class="data-cell" style="height:30px;">' . $val('ev_ost_test') . '</td>
            <td class="data-cell" style="height:30px;">' . $valnl('ev_postura') . '</td>
        </tr>
    </table><br>';

    // 9. EXÁMENES COMPLEMENTARIOS
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="2" class="section-band">
            <span class="section-num">9</span>EXÁMENES COMPLEMENTARIOS
        </td></tr>
        <tr>
            <td width="50%" class="subhead-left">LABORATORIO CLÍNICO</td>
            <td width="50%" class="subhead-left">AUDIOMETRÍA / ESPIROMETRÍA</td>
        </tr>
        <tr>
            <td class="data-cell" style="height:55px;">' . $valnl('ec_lab') . '</td>
            <td class="data-cell" style="height:55px;">' . $valnl('ec_funcional') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">RAYOS X / IMAGENOLOGÍA</td>
            <td class="subhead-left">ELECTROCARDIOGRAMA / OTROS</td>
        </tr>
        <tr>
            <td class="data-cell" style="height:50px;">' . $valnl('ec_imagen') . '</td>
            <td class="data-cell" style="height:50px;">' . $valnl('ec_otros') . '</td>
        </tr>
    </table><br>';

    // 10. DIAGNÓSTICO CIE-10
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="4" class="section-band">
            <span class="section-num">10</span>DIAGNÓSTICO (CIE-10)
            <span class="small">  ·  PRE = PRESUNTIVO   ·   DEF = DEFINITIVO</span>
        </td></tr>
        <tr>
            <td width="14%" class="subhead">CIE-10</td>
            <td width="62%" class="subhead">DESCRIPCIÓN</td>
            <td width="12%" class="subhead">PRE</td>
            <td width="12%" class="subhead">DEF</td>
        </tr>
        ' . obtenerDiagnosticosFormat($idatencion) . '
    </table><br>';

    // 11. APTITUD MÉDICA OCUPACIONAL (cuadros grandes)
    $aptitud = strtoupper($d['femo_aptitud'] ?? '');
    $checkApto   = ($aptitud === 'APTO') ? 'X' : '';
    $checkObs    = (in_array($aptitud, ['APTO_OBSERVACION', 'APTO EN OBSERVACION'])) ? 'X' : '';
    $checkLimit  = (in_array($aptitud, ['APTO_LIMITACIONES', 'APTO CON LIMITACIONES', 'APTO CON RESTRICCIONES'])) ? 'X' : '';
    $checkNoApto = (in_array($aptitud, ['NO_APTO', 'NO APTO'])) ? 'X' : '';

    $html .= '
    <table cellpadding="4" cellspacing="0">
        <tr><td colspan="8" class="section-band" style="font-size:11pt;">
            <span class="section-num">11</span>DICTAMEN DE APTITUD MÉDICA OCUPACIONAL
        </td></tr>
        <tr>
            <td width="8%" class="cp-sp" style="font-size:18pt; height:14mm;">' . $checkApto . '</td>
            <td width="17%" class="item-label" style="font-weight:bold; font-size:9pt;">APTO</td>
            <td width="8%" class="cp-sp" style="font-size:18pt;">' . $checkObs . '</td>
            <td width="17%" class="item-label" style="font-weight:bold; font-size:9pt;">APTO EN OBSERVACIÓN</td>
            <td width="8%" class="cp-sp" style="font-size:18pt;">' . $checkLimit . '</td>
            <td width="17%" class="item-label" style="font-weight:bold; font-size:9pt;">APTO CON LIMITACIONES</td>
            <td width="8%" class="cp-sp" style="font-size:18pt;">' . $checkNoApto . '</td>
            <td width="17%" class="item-label" style="font-weight:bold; font-size:9pt;"><span class="red-text">NO APTO</span></td>
        </tr>
    </table><br>';

    // Restricciones / Recomendaciones / Seguimiento
    $html .= '
    <table cellspacing="0">
        <tr><td colspan="2" class="section-band">
            <span class="section-num">·</span><span class="red-text">RESTRICCIONES, RECOMENDACIONES Y SEGUIMIENTO</span>
        </td></tr>
        <tr>
            <td width="50%" class="subhead-left">RESTRICCIONES LABORALES</td>
            <td width="50%" class="subhead-left">RECOMENDACIONES MÉDICAS</td>
        </tr>
        <tr>
            <td class="data-cell" style="height:65px;">' . $valnl('femo_restricciones') . '</td>
            <td class="data-cell" style="height:65px;">' . $valnl('femo_recomendaciones') . '</td>
        </tr>
        <tr>
            <td class="subhead-left">PRÓXIMA EVALUACIÓN MÉDICA</td>
            <td class="subhead-left">VIGENCIA DEL CERTIFICADO</td>
        </tr>
        <tr>
            <td class="data-cell">' . $val('proxima_evaluacion') . '</td>
            <td class="data-cell">' . $val('vigencia_certificado') . '</td>
        </tr>
        <tr>
            <td colspan="2" class="subhead-left">OBSERVACIONES ADICIONALES</td>
        </tr>
        <tr>
            <td colspan="2" class="data-cell" style="height:35px;">' . $valnl('observaciones_adicionales') . '</td>
        </tr>
    </table>';

    $pdf->writeHTML($html, true, false, true, false, '');
    _mspPieFirmaConQR($pdf, $emisor, $qrContent, $qrTimestamp, $estilo, 'FEMO-2025', 'FORMULARIO ÚNICO DE EVALUACIÓN MÉDICA OCUPACIONAL');

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