Alejo760 commited on
Commit
a84d70c
·
verified ·
1 Parent(s): 91bcf04

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -19
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
- Asigna un puntaje de 0 a 10 para cada categoría del RAID según la escala proporcionada.
26
- La respuesta DEBE ser SOLO un JSON válido con los puntajes y el cálculo final.
27
-
28
- Escalas:
29
- 1. Dolor (0 = Ninguno, 10 = Extremo)
30
- 2. Discapacidad Funcional (0 = Sin dificultad, 10 = Dificultad extrema)
31
- 3. Fatiga (0 = Sin fatiga, 10 = Totalmente exhausto)
32
- 4. Sueño (0 = Sin dificultad, 10 = Dificultad extrema)
33
- 5. Bienestar Físico (0 = Muy bueno, 10 = Muy malo)
34
- 6. Bienestar Emocional (0 = Muy bueno, 10 = Muy malo)
35
- 7. Afronte (0 = Muy bien, 10 = Muy mal)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
- Texto del paciente:
38
- {patient_text}
39
 
40
- Registro clínico relevante:
41
- {clinical_record}
42
 
43
- Calcula el puntaje total usando estos pesos:
44
- {weights}
 
 
 
 
45
 
46
- Respuesta JSON (ejemplo):
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