File size: 2,303 Bytes
8cb574d
 
 
 
488bf17
8cb574d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
488bf17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import re

def evaluar_triaje(sintomas, intensidad, duracion, antecedentes):
    score = 0
    # Listas ampliadas con posibles sinónimos o expresiones comunes
    sintomas_criticos = ["dolor intenso", "falta de aire", "desmayo", "pérdida de conciencia"]
    for sintoma in sintomas_criticos:
        if sintoma in sintomas.lower():
            score += 5
    sintomas_moderados = ["fiebre alta", "dolor en el pecho", "mareos", "náusea"]
    for sintoma in sintomas_moderados:
        if sintoma in sintomas.lower():
            score += 3
    intensidad = intensidad.lower()
    if intensidad in ["intensa", "alta"]:
        score += 3
    elif intensidad == "moderada":
        score += 2
    elif intensidad in ["leve", "baja"]:
        score += 1
    try:
        duracion = float(duracion)
        if duracion >= 24:
            score += 3
        elif duracion >= 6:
            score += 2
        else:
            score += 1
    except ValueError:
        print("Error: La duración debe ser un valor numérico.")
    antecedentes_relevantes = ["cardiopatía", "hipertensión", "diabetes"]
    for item in antecedentes_relevantes:
        if item in antecedentes.lower():
            score += 2
    return score

def recomendar_atencion(score):
    if score >= 12:
        return "Se recomienda atención de emergencia. Llame a los servicios de urgencia."
    elif score >= 7:
        return "Se sugiere acudir a consulta médica lo antes posible."
    else:
        return "Puede programar una consulta médica de rutina."

def triaje_primer_tool(data):
    score = evaluar_triaje(
        data.get("sintomas", ""),
        data.get("intensidad", ""),
        data.get("duracion", "0"),
        data.get("antecedentes", "")
    )
    recomendacion = recomendar_atencion(score)
    return {
        "score": score,
        "recomendacion": recomendacion
    }

if __name__ == "__main__":
    ejemplo_data = {
        "sintomas": "El paciente presenta dolor intenso en el pecho y falta de aire.",
        "intensidad": "intensa",
        "duracion": "8",
        "antecedentes": "El paciente tiene antecedentes de hipertensión."
    }
    resultado = triaje_primer_tool(ejemplo_data)
    print("Puntaje de riesgo:", resultado["score"])
    print("Recomendación:", resultado["recomendacion"])