from fpdf import FPDF
# Crear una clase personalizada para el PDF
class TriagePDF(FPDF):
def header(self):
self.set_font("Arial", "B", 12)
self.cell(0, 10, "Notas de Triage Intrahospitalario", border=False, ln=True, align="C")
self.ln(5)
def add_case(self, number, motivo, enfermedad):
self.set_font("Arial", "B", 11)
self.cell(0, 10, f"📝 Caso {number}", ln=True)
self.set_font("Arial", "", 10)
self.multi_cell(0, 8, f"📌 Motivo de Consulta:\n{motivo}\n")
self.multi_cell(0, 8, f"📋 Enfermedad Actual:\n{enfermedad}\n")
self.ln(5)
# Casos simulados
casos = [
{
"motivo": "Dolor abdominal intenso desde hace 6 horas.",
"enfermedad": "Paciente masculino de 54 años con dolor abdominal tipo cólico, inicio súbito, localizado en epigastrio irradiado a hipocondrio derecho. EVA 8/10, sin alivio con paracetamol. Náuseas, sin fiebre. Diabético tipo 2."
},
{
"motivo": "Fiebre alta y tos persistente desde hace 3 días.",
"enfermedad": "Femenina de 32 años, refiere fiebre no cuantificada, tos seca y malestar general. Inicio progresivo, sin disnea. Contacto reciente con familiar con cuadro gripal. Sin tratamiento previo."
},
{
"motivo": "Caída desde su propia altura con dolor en cadera.",
"enfermedad": "Paciente masculino de 78 años, caída accidental. Dolor en cadera derecha, no puede deambular. Sin pérdida de conciencia. Antecedente de osteoporosis. Sin tratamiento al momento."
},
{
"motivo": "Dolor torácico opresivo desde hace 1 hora.",
"enfermedad": "Hombre de 45 años, dolor torácico tipo opresivo, irradiado a brazo izquierdo. EVA 7/10, asociado a disnea leve. Hipertenso, en tratamiento irregular. No ha tomado medicación."
},
{
"motivo": "Dificultad para respirar desde hace 2 días.",
"enfermedad": "Femenina de 60 años con disnea progresiva, especialmente en decúbito. Tos productiva, sin fiebre. EPOC diagnosticado. Sin uso reciente de broncodilatadores."
},
{
"motivo": "Dolor lumbar tras levantar objeto pesado.",
"enfermedad": "Masculino de 40 años, refiere lumbalgia súbita al levantar carga. Dolor irradiado a glúteo derecho, sin déficit motor ni sensitivo. No antecedentes de trauma previo."
},
{
"motivo": "Convulsión presenciada por familiares.",
"enfermedad": "Paciente masculino de 19 años, episodio convulsivo tónico-clónico de 2 minutos. Postictal con somnolencia. Sin antecedentes conocidos. Primer episodio según familiares."
},
{
"motivo": "Diarrea líquida abundante desde hace 24 horas.",
"enfermedad": "Femenina de 27 años, múltiples deposiciones líquidas, sin sangre. Asociado a dolor abdominal leve y náuseas. Refiere comida en la calle previo al inicio. No ha tomado medicación."
},
{
"motivo": "Cefalea intensa que no cede con analgésicos.",
"enfermedad": "Masculino de 35 años, cefalea holocraneana, EVA 9/10, no aliviada con paracetamol. No fotofobia ni vómitos. No antecedentes de migraña. Inicio hace 12 horas, progresiva."
},
{
"motivo": "Paciente traído por agresión física.",
"enfermedad": "Masculino de 29 años, agredido con puño en rostro. Equimosis en región malar derecha. No pérdida de conciencia. Dolor moderado, sin signos de fractura evidente."
}
]
# Crear el PDF
pdf = TriagePDF()
pdf.set_auto_page_break(auto=True, margin=15)
pdf.add_page()
# Agregar los casos
for i, caso in enumerate(casos, 1):
pdf.add_case(i, caso["motivo"], caso["enfermedad"])
# Guardar el PDF
pdf.output("Notas_Triage_Intrahospitalario.pdf")