Update app.py
Browse files
app.py
CHANGED
|
@@ -21,29 +21,50 @@ RAID_WEIGHTS = {
|
|
| 21 |
}
|
| 22 |
|
| 23 |
RAID_PROMPT_TEMPLATE = """
|
| 24 |
-
Analiza la siguiente conversación y registro clínico del paciente con artritis reumatoide.
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
|
| 37 |
-
Texto del paciente:
|
| 38 |
-
{patient_text}
|
| 39 |
|
| 40 |
-
|
| 41 |
-
|
| 42 |
|
| 43 |
-
|
| 44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
|
| 46 |
-
|
| 47 |
{{
|
| 48 |
"raid_scores": {{
|
| 49 |
"Dolor": 8,
|
|
@@ -56,8 +77,15 @@ Respuesta JSON (ejemplo):
|
|
| 56 |
}},
|
| 57 |
"raid_total": 6.45
|
| 58 |
}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
"""
|
| 60 |
|
|
|
|
| 61 |
def evaluate_raid(patient_text, clinical_record):
|
| 62 |
"""Evalúa el RAID score basado en el texto del paciente y registro clínico.
|
| 63 |
Si la respuesta es parcial, se asigna 0 a las categorías faltantes y se añade
|
|
|
|
| 21 |
}
|
| 22 |
|
| 23 |
RAID_PROMPT_TEMPLATE = """
|
| 24 |
+
Analiza la siguiente conversación y registro clínico del paciente con artritis reumatoide.
|
| 25 |
+
|
| 26 |
+
Si tanto el "Texto del paciente" como el "Registro clínico" están vacíos o no contienen información relevante, responde únicamente con el siguiente mensaje:
|
| 27 |
+
"No hay información suficiente para calcular el RAID."
|
| 28 |
+
|
| 29 |
+
En caso de haber información, extrae y asigna una puntuación del 0 al 10 para cada una de las siguientes categorías, basándote en los detalles proporcionados:
|
| 30 |
+
|
| 31 |
+
1. Dolor:
|
| 32 |
+
- Circule el número que mejor describa el dolor que sintió debido a su RA durante la última semana.
|
| 33 |
+
- Escala: 0 = Ninguno, 10 = Extremo.
|
| 34 |
+
2. Discapacidad Funcional:
|
| 35 |
+
- Circule el número que mejor describa la dificultad que tuvo para realizar actividades diarias debido a su RA durante la última semana.
|
| 36 |
+
- Escala: 0 = Sin dificultad, 10 = Dificultad extrema.
|
| 37 |
+
3. Fatiga:
|
| 38 |
+
- Circule el número que mejor describa la fatiga que experimentó debido a su RA durante la última semana.
|
| 39 |
+
- Escala: 0 = Sin fatiga, 10 = Totalmente exhausto.
|
| 40 |
+
4. Sueño:
|
| 41 |
+
- Circule el número que mejor describa las dificultades para dormir que experimentó durante la última semana.
|
| 42 |
+
- Escala: 0 = Sin dificultad, 10 = Dificultad extrema.
|
| 43 |
+
5. Bienestar Físico:
|
| 44 |
+
- Circule el número que mejor describa su nivel de bienestar físico en relación a su RA durante la última semana.
|
| 45 |
+
- Escala: 0 = Muy bueno, 10 = Muy malo.
|
| 46 |
+
6. Bienestar Emocional:
|
| 47 |
+
- Circule el número que mejor describa su nivel de bienestar emocional en relación a su RA durante la última semana.
|
| 48 |
+
- Escala: 0 = Muy bueno, 10 = Muy malo.
|
| 49 |
+
7. Afronte:
|
| 50 |
+
- Circule el número que mejor describa cómo enfrentó o se adaptó a su enfermedad durante la última semana.
|
| 51 |
+
- Escala: 0 = Muy bien, 10 = Muy mal.
|
| 52 |
+
|
| 53 |
+
Utiliza los siguientes pesos para calcular el valor final del RAID:
|
| 54 |
+
{weights}
|
| 55 |
|
|
|
|
|
|
|
| 56 |
|
| 57 |
+
La fórmula de cálculo es:
|
| 58 |
+
RAID final = (Dolor × 0.21) + (Discapacidad Funcional × 0.16) + (Fatiga × 0.15) + (Bienestar Físico × 0.12) + (Sueño × 0.12) + (Bienestar Emocional × 0.12) + (Afronte × 0.12)
|
| 59 |
|
| 60 |
+
El valor final estará en el rango de 0 a 10, donde valores más altos indican un peor estado.
|
| 61 |
+
|
| 62 |
+
Por favor, responde únicamente con un JSON válido que incluya:
|
| 63 |
+
- "raid_scores": un objeto que contenga las puntuaciones asignadas para cada categoría.
|
| 64 |
+
- "raid_total": el valor final calculado.
|
| 65 |
+
Si falta información para alguna categoría, asigna 0 a esa categoría y añade una clave "nota" con un mensaje indicando que la información es parcial.
|
| 66 |
|
| 67 |
+
Ejemplo de respuesta JSON:
|
| 68 |
{{
|
| 69 |
"raid_scores": {{
|
| 70 |
"Dolor": 8,
|
|
|
|
| 77 |
}},
|
| 78 |
"raid_total": 6.45
|
| 79 |
}}
|
| 80 |
+
|
| 81 |
+
Texto del paciente:
|
| 82 |
+
{patient_text}
|
| 83 |
+
|
| 84 |
+
Registro clínico:
|
| 85 |
+
{clinical_record}
|
| 86 |
"""
|
| 87 |
|
| 88 |
+
|
| 89 |
def evaluate_raid(patient_text, clinical_record):
|
| 90 |
"""Evalúa el RAID score basado en el texto del paciente y registro clínico.
|
| 91 |
Si la respuesta es parcial, se asigna 0 a las categorías faltantes y se añade
|