<?php
require_once __DIR__ . '/../model/ReportesPdf.php';
require_once __DIR__ . '/../tcpdf_min/tcpdf.php';
class ReportesControllers
{
public function exportar_pdf()
{
if (!isset($_SESSION['usuario'])) {
header('Location: /login/index');
exit;
}
$cedula = $_GET['cedula'] ?? '';
if (!$cedula) die("No se indicó cédula");
$modelo = new ReportesModel();
$paciente = $modelo->obtenerHojaVida($cedula);
$diagnosticos = $modelo->obtenerDiagnosticos($cedula);
if (!$paciente) die("Paciente no encontrado");
// Crear PDF
$pdf = new TCPDF();
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Avicampo');
$pdf->SetTitle('Historia Clínica - ' . $paciente['nombre']);
$pdf->SetMargins(15, 20, 15);
$pdf->AddPage();
// Logo
$logo = $_SERVER['DOCUMENT_ROOT'] . '/casos_medicos1/public/assets/logo_avicampo.png';
if (file_exists($logo)) $pdf->Image($logo, 15, 10, 40);
// Foto paciente
$foto = $_SERVER['DOCUMENT_ROOT'] . '/casos_medicos1/public/' . $paciente['foto'];
if (!empty($paciente['foto']) && file_exists($foto)) $pdf->Image($foto, 150, 10, 40);
$pdf->Ln(20);
$pdf->SetFont('helvetica', 'B', 16);
$pdf->Cell(0, 10, 'Historia Clínica - ' . $paciente['nombre'], 0, 1, 'C');
// Datos Generales y Laborales
$pdf->SetFont('helvetica', '', 10);
$html = '<h4>Datos Generales</h4>
<table cellpadding="4" border="1">
<tr><td><b>Cédula:</b></td><td>' . $paciente['cedula'] . '</td></tr>
<tr><td><b>Nombre:</b></td><td>' . $paciente['nombre'] . '</td></tr>
<tr><td><b>Fecha Nacimiento:</b></td><td>' . $paciente['fecha_nacimiento'] . '</td></tr>
<tr><td><b>Edad:</b></td><td>' . $paciente['edad'] . '</td></tr>
<tr><td><b>Sexo:</b></td><td>' . $paciente['sexo'] . '</td></tr>
<tr><td><b>Estado:</b></td><td>' . $paciente['estado'] . '</td></tr>
</table>
<h4>Datos Laborales</h4>
<table cellpadding="4" border="1">
<tr><td><b>AFP:</b></td><td>' . $paciente['afp'] . '</td></tr>
<tr><td><b>EPS:</b></td><td>' . $paciente['eps'] . '</td></tr>
<tr><td><b>ARL:</b></td><td>' . $paciente['arl'] . '</td></tr>
<tr><td><b>Tipo Contrato:</b></td><td>' . $paciente['tipo_contrato'] . '</td></tr>
<tr><td><b>Empresa:</b></td><td>' . $paciente['empresa'] . '</td></tr>
<tr><td><b>Planta:</b></td><td>' . $paciente['planta'] . '</td></tr>
<tr><td><b>Regional:</b></td><td>' . $paciente['regional'] . '</td></tr>
<tr><td><b>Centro Trabajo:</b></td><td>' . $paciente['centro_trabajo'] . '</td></tr>
<tr><td><b>Cargo Inicial:</b></td><td>' . $paciente['cargo_inicial'] . '</td></tr>
<tr><td><b>Fecha Inicio:</b></td><td>' . $paciente['fecha_inicio'] . '</td></tr>
<tr><td><b>Nuevo Cargo:</b></td><td>' . $paciente['cargo_reubicado'] . '</td></tr>
<tr><td><b>Productividad:</b></td><td>' . $paciente['productividad'] . '</td></tr>
<tr><td><b>Semanas Cotización:</b></td><td>' . $paciente['semanas_cotizacion'] . '</td></tr>
<tr><td><b>Tipo Rehabilitación:</b></td><td>' . $paciente['tipo_rehabilitacion'] . '</td></tr>
</table>';
$pdf->writeHTML($html, true, false, true, false, '');
// Diagnósticos
$pdf->Ln(5);
$pdf->SetFont('helvetica', 'B', 12);
$pdf->Cell(0, 6, 'Diagnósticos', 0, 1);
$pdf->SetFont('helvetica', '', 10);
if (!empty($diagnosticos)) {
foreach ($diagnosticos as $d) {
$pdf->MultiCell(
0,
5,
"Fecha: " . $d['fecha'] .
" | Estado: " . ($d['estado'] ?? '-') .
" | Diagnóstico: " . ($d['diagnostico_descripcion'] ?? '-') .
"\nPeso: " . ($d['peso'] ?? '-') .
" | Talla: " . ($d['talla'] ?? '-') .
" | IMC: " . ($d['imc'] ?? '-') .
"\nOrigen: " . ($d['origen'] ?? '-') .
" | Calificación: " . ($d['calificacion_origen'] ?? '-') .
"\nTipo Reintegro: " . ($d['tipo_reintegro'] ?? '-') .
" | Tiempo Recomendación: " . ($d['tiempo_recomendacion'] ?? '-') .
"\nFunciones Iniciales: " . ($d['funciones_iniciales'] ?? '-') .
"\nFunciones Actuales: " . ($d['funciones_actuales'] ?? '-') .
"\nRecomendaciones: " . ($d['recomendaciones'] ?? '-'),
0,
'J',
false,
1
);
$pdf->Ln(2);
}
} else {
$pdf->Cell(0, 5, "No hay diagnósticos registrados", 0, 1);
}
// Generar PDF
$pdf->Output('Historia_Clinica_' . $paciente['cedula'] . '.pdf', 'D');
}
}