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"])