<?php
// --- Auth gate: PDF standalone, sin sesión no se sirve ---
if (session_status() !== PHP_SESSION_ACTIVE) { @session_start(); }
if (empty($_SESSION['user_id'])) { header('Location: index.php?view=login'); exit; }
// --- end auth gate ---
// consentimiento-transfusion-pdf.php - Consentimiento Informado para Transfusion Sanguinea y/o Hemoderivados
include __DIR__ . '/core/autoload.php';
include __DIR__ . '/core/app/model/CotizacionData.php';
include __DIR__ . '/core/app/model/UserData.php';
include __DIR__ . '/core/app/model/PacientData.php';
include __DIR__ . '/core/app/model/MedicData.php';

if (session_status() !== PHP_SESSION_ACTIVE) { @session_start(); }
$clinicademo_sig_user_id = $_SESSION['user_id'] ?? null;
$clinicademo_sig_user_name = 'Sistema';
if ($clinicademo_sig_user_id) {
    $_u = UserData::getById($clinicademo_sig_user_id);
    if ($_u) {
        $_n = trim(($_u->name ?? '') . ' ' . ($_u->lastname ?? ''));
        if ($_n !== '') $clinicademo_sig_user_name = $_n;
        elseif (!empty($_u->username)) $clinicademo_sig_user_name = $_u->username;
    }
}
$clinicademo_sig_footer = 'Generado por: ' . $clinicademo_sig_user_name . ' | ' . date('d/m/Y H:i:s');

if (!isset($_GET['pacient_id'])) {
    die('Pacient ID requerido');
}

$pacientId = intval($_GET['pacient_id']);
$con = Database::getCon();

$pacient = $con->query("SELECT * FROM pacient WHERE id = $pacientId")->fetch_object();
if (!$pacient) {
    die('Paciente no encontrado');
}

$age = $pacient->birthdate ? floor((time() - strtotime($pacient->birthdate)) / (365.25 * 24 * 60 * 60)) : null;

require_once 'tcpdf/tcpdf.php';

$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
$pdf->SetCreator('Cedimik');
$pdf->SetAuthor('Cedimik');
$pdf->SetTitle('Consentimiento Informado - Transfusion Sanguinea');
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->SetMargins(20, 18, 20);
$pdf->SetAutoPageBreak(true, 18);
$pdf->SetFont('helvetica', '', 11);

$pdf->AddPage();
$pdf->Image('assets/images/logo/logo.png', 165, 10, 25, 12, 'PNG');

$pdf->SetFont('helvetica', 'B', 14);
$pdf->Cell(0, 8, 'CONSENTIMIENTO INFORMADO', 0, 1, 'C');
$pdf->SetFont('helvetica', 'B', 11);
$pdf->Cell(0, 7, 'PARA TRANSFUSION SANGUINEA Y/O HEMODERIVADOS', 0, 1, 'C');
$pdf->Ln(3);

$pdf->SetFont('helvetica', 'B', 9);
$pdf->Cell(0, 5, 'Cedimik', 0, 1, 'C');
$pdf->Ln(4);

$pdf->SetFont('helvetica', 'B', 10);
$pdf->Cell(0, 6, 'Datos del paciente', 0, 1, 'L');
$pdf->SetFont('helvetica', '', 10);
$pdf->Cell(40, 6, 'Nombre:', 0, 0, 'L');
$pdf->SetFont('helvetica', 'B', 10);
$pdf->Cell(0, 6, $pacient->name . ' ' . ($pacient->lastname ?? ''), 0, 1, 'L');
$pdf->SetFont('helvetica', '', 10);
$pdf->Cell(40, 6, 'C.I.:', 0, 0, 'L');
$pdf->SetFont('helvetica', 'B', 10);
$pdf->Cell(0, 6, $pacient->dni ?: '-', 0, 1, 'L');
$pdf->SetFont('helvetica', '', 10);
$pdf->Cell(40, 6, 'Edad:', 0, 0, 'L');
$pdf->Cell(0, 6, ($age !== null ? $age . ' años' : '-'), 0, 1, 'L');
$pdf->Cell(40, 6, 'Sexo:', 0, 0, 'L');
$pdf->Cell(0, 6, ($pacient->sex === 'F' ? 'Femenino' : ($pacient->sex === 'M' ? 'Masculino' : '-')), 0, 1, 'L');
$pdf->Ln(3);

$pdf->SetFont('helvetica', '', 10);
$body = "Yo, " . $pacient->name . " " . ($pacient->lastname ?? '') . ", con C.I. " . ($pacient->dni ?: '____________') . ", declaro haber sido informado/a de manera comprensible sobre los beneficios, riesgos y alternativas de la transfusion sanguinea y/o administracion de hemoderivados que me ha sido indicada.\n\n"
    . "1. NATURALEZA DEL PROCEDIMIENTO\n"
    . "La transfusion es un procedimiento medico que consiste en la administracion intravenosa de sangre total o componentes derivados de la sangre humana. Los hemoderivados incluyen:\n"
    . "- Glóbulos rojos concentrados: para tratar anemia y mejorar el transporte de oxigeno.\n"
    . "- Plasma fresco congelado: para corregir trastornos de coagulacion.\n"
    . "- Plaquetas: para prevenir o tratar hemorragias en pacientes con trombocitopenia.\n"
    . "- Crioprecipitado: rico en factores de coagulacion, utilizado en fibrinogenopatias.\n\n"
    . "2. RIESGOS Y COMPLICACIONES\n"
    . "Aunque la sangre donada es sometida a estrictos protocolos de tamizaje y control de calidad, no es posible eliminar por completo ciertos riesgos. Estos incluyen:\n"
    . "- Reacciones febriles no hemoliticas (escalofrios, fiebre): las mas frecuentes.\n"
    . "- Reacciones alergicas (urticaria, prurito, anafilaxia en casos graves).\n"
    . "- Reaccion hemolitica aguda por incompatibilidad ABO (grave, pero rara por los protocolos actuales).\n"
    . "- Transmision de agentes infecciosos: a pesar del tamizaje obligatorio para VIH, Hepatitis B, Hepatitis C, Sifilis, Chagas y otros, existe un riesgo residual minimo.\n"
    . "- Sobrecarga circulatoria asociada a transfusion (TACO): riesgo mayor en pacientes cardiacos o renales.\n"
    . "- Lesion pulmonar aguda relacionada con transfusion (TRALI): complicacion grave pero poco frecuente.\n"
    . "- Enfermedad injerto contra huesped asociada a transfusion (EICH): extremadamente rara, prevenible con irradiacion.\n"
    . "- Hemosiderosis secundaria: en pacientes que requieren transfusiones multiples o cronicas.\n"
    . "- Reaccion hipotensiva aguda.\n\n"
    . "3. BENEFICIOS ESPERADOS\n"
    . "- Restauracion de la capacidad de transporte de oxigeno (glóbulos rojos).\n"
    . "- Correccion de trastornos de coagulacion (plasma, plaquetas, crioprecipitado).\n"
    . "- Recuperacion del volumen sanguineo en caso de hemorragia aguda.\n"
    . "- Mejoria de sintomas relacionados con anemia (fatiga, disnea, palidez).\n"
    . "- Disminucion del riesgo de sangrado espontaneo o quirurgico.\n\n"
    . "4. ALTERNATIVAS DE TRATAMIENTO\n"
    . "- Transfusion autologa: donacion de la propia sangre del paciente antes de una cirugia programada.\n"
    . "- Administracion de hierro intravenoso y/o eritropoyetina para estimular la produccion de glóbulos rojos.\n"
    . "- Hemodilucion normovolemica intraoperatoria.\n"
    . "- Recuperacion intraoperatoria de sangre (cell salvage).\n"
    . "- Agentes hemostaticos topicos o sistemicos (acido tranexamico, etc.).\n"
    . "- Austeridad transfusional: adoptar umbrales restrictivos de transfusion cuando sea clinicamente seguro.\n\n"
    . "5. DERECHO A PREGUNTAR Y A RETIRAR EL CONSENTIMIENTO\n"
    . "He tenido la oportunidad de formular preguntas y estas han sido respondidas a mi entera satisfaccion. Entiendo que puedo retirar mi consentimiento en cualquier momento antes del procedimiento, sin que esto afecte mi derecho a recibir atencion medica. En caso de objeción de conciencia o creencias religiosas (p. ej., Testigos de Jehová), tengo derecho a rechazar la transfusion y a recibir alternativas terapeuticas disponibles.\n\n"
    . "Autorizo al equipo medico de Cedimik a administrar la transfusion de sangre y/o hemoderivados segun criterio medico, incluyendo las modificaciones necesarias en funcion de mi evolucion clinica.\n\n"
    . "Confirmo que:\n"
    . "- He informado al medico sobre mis antecedentes transfusionales, alergias y medicacion actual.\n"
    . "- He tenido la oportunidad de preguntar y mis dudas han sido aclaradas.\n"
    . "- Entiendo que la sangre donada proviene de donantes voluntarios sometidos a tamizaje serologico.\n"
    . "- Acepto voluntariamente recibir la transfusion indicada.";

$pdf->MultiCell(0, 4.5, $body, 0, 'J');
$pdf->Ln(4);

// Type of hemoderivative
$pdf->SetFont('helvetica', 'B', 10);
$pdf->Cell(0, 6, 'Hemoderivado(s) autorizado(s):', 0, 1, 'L');
$pdf->SetFont('helvetica', '', 10);
$pdf->Cell(0, 6, '[  ]  Glóbulos Rojos    [  ]  Plasma Fresco    [  ]  Plaquetas    [  ]  Crioprecipitado', 0, 1, 'L');
$pdf->Ln(2);

// Indication
$pdf->SetFont('helvetica', 'B', 10);
$pdf->Cell(0, 6, 'Indicacion clinica de la transfusion:', 0, 1, 'L');
$pdf->SetFont('helvetica', '', 10);
$pdf->Cell(0, 12, '', 0, 1);
$pdf->Line(20, $pdf->GetY(), 190, $pdf->GetY());
$pdf->Ln(8);

// Signature section
$pdf->SetFont('helvetica', 'B', 10);
$pdf->Cell(95, 6, 'Firma del paciente / representante legal', 0, 0, 'L');
$pdf->Cell(95, 6, 'Fecha y hora', 0, 1, 'L');
$pdf->Ln(14);
$pdf->Line(20, $pdf->GetY(), 110, $pdf->GetY());
$pdf->SetXY(115, $pdf->GetY() - 0.5);
$pdf->Line(120, $pdf->GetY(), 190, $pdf->GetY());
$pdf->Ln(2);
$pdf->SetFont('helvetica', '', 8);
$pdf->Cell(95, 4, 'C.I.: ____________________', 0, 0, 'L');
$pdf->Cell(95, 4, '/  /       :     hrs', 0, 1, 'L');
$pdf->Ln(6);

// Testigo
$pdf->SetFont('helvetica', 'B', 10);
$pdf->Cell(0, 6, 'Testigo:', 0, 1, 'L');
$pdf->Ln(12);
$pdf->Line(20, $pdf->GetY(), 110, $pdf->GetY());
$pdf->Ln(2);
$pdf->SetFont('helvetica', '', 8);
$pdf->Cell(95, 4, 'Nombre: ______________________________', 0, 0, 'L');
$pdf->Cell(95, 4, 'C.I.: ____________', 0, 1, 'L');
$pdf->Ln(6);

$pdf->SetFont('helvetica', 'B', 10);
$pdf->Cell(0, 6, 'Medico tratante:', 0, 1, 'L');
$pdf->Ln(14);
$pdf->Line(20, $pdf->GetY(), 110, $pdf->GetY());
$pdf->Ln(2);
$pdf->SetFont('helvetica', '', 8);
$pdf->Cell(95, 4, 'Nombre: ______________________________', 0, 0, 'L');
$pdf->Cell(95, 4, 'Matricula: ____________', 0, 1, 'L');

$pdf->SetY(-12);
$pdf->SetFont('helvetica', 'I', 7);
$pdf->Cell(0, 3, 'Cedimik | ' . $clinicademo_sig_footer, 0, 1, 'C');

$pdf->Output('Consentimiento_Transfusion_' . $pacientId . '.pdf', 'I');