C2MV commited on
Commit
31efb8e
·
verified ·
1 Parent(s): e90cabe

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +102 -127
app.py CHANGED
@@ -257,142 +257,117 @@ def update_image(image_url):
257
  else:
258
  return None
259
 
260
- # Gradio layout setup
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
261
  with gr.Blocks() as demo:
262
  with gr.Row():
263
- with gr.Column(scale=1):
264
  chatbot_input = gr.Textbox(label="Tu mensaje")
265
  chatbot_output = gr.Chatbot(label="ChatBot")
266
  chatbot_history = gr.State(value=[])
267
  image_url = gr.State(value=None)
268
  submit_button = gr.Button("Enviar")
269
 
270
- # Main accordion for categories
271
- with gr.Accordion("Categorías de Preguntas", open=True):
272
-
273
- # Diagnósticos Accordion
274
- with gr.Accordion("Diagnósticos", open=False):
275
-
276
- # Subaccordion for Diagnósticos Comunes
277
- with gr.Accordion("Diagnósticos Comunes", open=False):
278
- button_1 = gr.Button("¿Cuál es el diagnóstico más común registrado en el dataset?")
279
- button_2 = gr.Button("¿Cuáles son los diagnósticos más frecuentes que requieren hospitalización prolongada?")
280
- button_3 = gr.Button("¿Qué tan frecuentes son los diagnósticos relacionados con nacimientos prematuros?")
281
- button_4 = gr.Button("¿Cuáles son los diagnósticos menos comunes en el dataset?")
282
-
283
- # Subaccordion for Diagnósticos Críticos
284
- with gr.Accordion("Diagnósticos Críticos", open=False):
285
- button_5 = gr.Button("¿Cuál es la incidencia de diagnósticos graves como el 'Síndrome de Dificultad Respiratoria' (P220)?")
286
- button_6 = gr.Button("¿Cuál es la tasa de mortalidad asociada a estos diagnósticos graves?")
287
- button_7 = gr.Button("¿Qué porcentaje de neonatos con sepsis requiere cuidados intensivos?")
288
-
289
- # Subaccordion for Codificación y Clasificación
290
- with gr.Accordion("Codificación y Clasificación", open=False):
291
- button_8 = gr.Button("¿Cuáles son los códigos CIE-10 relacionados con infecciones neonatales?")
292
- button_9 = gr.Button("¿Qué diagnósticos están clasificados bajo el código P00-P96 en neonatos?")
293
-
294
- # Tratamientos Accordion
295
- with gr.Accordion("Tratamientos", open=False):
296
-
297
- # Subaccordion for Medicamentos Comunes
298
- with gr.Accordion("Medicamentos Comunes", open=False):
299
- button_10 = gr.Button("¿Qué medicamentos son más usados en neonatos?")
300
- button_11 = gr.Button("¿Cuál es el medicamento más usado para infecciones neonatales?")
301
- button_12 = gr.Button("¿Cuáles son los efectos secundarios más comunes de estos medicamentos?")
302
-
303
- # Subaccordion for Intervenciones Médicas
304
- with gr.Accordion("Intervenciones Médicas", open=False):
305
- button_13 = gr.Button("¿Cuál es la proporción de diagnósticos que requieren intervención quirúrgica?")
306
- button_14 = gr.Button("¿Cuáles son las complicaciones más frecuentes durante las intervenciones quirúrgicas en neonatos?")
307
- button_15 = gr.Button("¿Cuál es la tasa de éxito de las intervenciones quirúrgicas en neonatos?")
308
-
309
- # Estadísticas y Frecuencia Accordion
310
- with gr.Accordion("Estadísticas y Frecuencia", open=False):
311
-
312
- # Subaccordion for Estadísticas Generales
313
- with gr.Accordion("Estadísticas Generales", open=False):
314
- button_16 = gr.Button("¿Qué porcentaje del total de registros corresponde al diagnóstico 'Nacido Vivo Único' (Z370)?")
315
- button_17 = gr.Button("¿Cuál es la distribución por edad gestacional de los neonatos en el dataset?")
316
- button_18 = gr.Button("¿Cuál es la tasa de readmisión hospitalaria en neonatos?")
317
-
318
- # Subaccordion for Diferencias Geográficas
319
- with gr.Accordion("Diferencias Geográficas", open=False):
320
- button_19 = gr.Button("¿Cómo varía el acceso a medicamentos entre regiones?")
321
- button_20 = gr.Button("¿Existen diferencias significativas en las tasas de diagnóstico entre diferentes regiones?")
322
- button_21 = gr.Button("¿Cómo varía la mortalidad neonatal entre diferentes departamentos?")
323
-
324
- # Subaccordion for Análisis Temporal
325
- with gr.Accordion("Análisis Temporal", open=False):
326
- button_22 = gr.Button("¿Hay patrones estacionales en la administración de medicamentos?")
327
- button_23 = gr.Button("¿Cómo han cambiado las tasas de mortalidad neonatal a lo largo de los años?")
328
- button_24 = gr.Button("¿Existen variaciones en la incidencia de diagnósticos críticos a lo largo del año?")
329
-
330
- # Impacto y Calidad de Datos Accordion
331
- with gr.Accordion("Impacto y Calidad de Datos", open=False):
332
-
333
- # Subaccordion for Impacto en la Salud Neonatal
334
- with gr.Accordion("Impacto en la Salud Neonatal", open=False):
335
- button_25 = gr.Button("¿Cómo impacta el uso de antibióticos en la recuperación neonatal?")
336
- button_26 = gr.Button("¿Qué mejoras se pueden implementar en la atención neonatal?")
337
- button_27 = gr.Button("¿Cuál es la efectividad de las medidas preventivas en la reducción de infecciones neonatales?")
338
-
339
- # Subaccordion for Calidad de Datos
340
- with gr.Accordion("Calidad de Datos", open=False):
341
- button_28 = gr.Button("¿Cuáles son las limitaciones de los datos sobre salud neonatal?")
342
- button_29 = gr.Button("¿Qué tan completos y precisos son los registros de diagnóstico?")
343
- button_30 = gr.Button("¿Cómo afecta la calidad de los datos a la investigación y atención neonatal?")
344
-
345
  with gr.Column(scale=1):
346
  image_output = gr.Image(label="Imagen asociada")
347
 
348
- def process_input(message, history):
349
- full_response, image = chat_function(message, history)
350
- history.append((message, full_response))
351
- return history, history, image
352
-
353
- # Function to update chatbot input with preset question
354
- def send_preset_question(question, history):
355
- return process_input(question, history)
356
-
357
- # Assign the buttons to send the respective categorized questions
358
- button_assignments = [
359
- (button_1, "¿Cuál es el diagnóstico más común registrado en el dataset?"),
360
- (button_2, "¿Cuáles son los diagnósticos más frecuentes que requieren hospitalización prolongada?"),
361
- (button_3, "¿Qué tan frecuentes son los diagnósticos relacionados con nacimientos prematuros?"),
362
- (button_4, "¿Cuáles son los diagnósticos menos comunes en el dataset?"),
363
- (button_5, "¿Cuál es la incidencia de diagnósticos graves como el 'Síndrome de Dificultad Respiratoria' (P220)?"),
364
- (button_6, "¿Cuál es la tasa de mortalidad asociada a estos diagnósticos graves?"),
365
- (button_7, "¿Qué porcentaje de neonatos con sepsis requiere cuidados intensivos?"),
366
- (button_8, "¿Cuáles son los códigos CIE-10 relacionados con infecciones neonatales?"),
367
- (button_9, "¿Qué diagnósticos están clasificados bajo el código P00-P96 en neonatos?"),
368
- (button_10, "¿Qué medicamentos son más usados en neonatos?"),
369
- (button_11, "¿Cuál es el medicamento más usado para infecciones neonatales?"),
370
- (button_12, "¿Cuáles son los efectos secundarios más comunes de estos medicamentos?"),
371
- (button_13, "¿Cuál es la proporción de diagnósticos que requieren intervención quirúrgica?"),
372
- (button_14, "¿Cuáles son las complicaciones más frecuentes durante las intervenciones quirúrgicas en neonatos?"),
373
- (button_15, "¿Cuál es la tasa de éxito de las intervenciones quirúrgicas en neonatos?"),
374
- (button_16, "¿Qué porcentaje del total de registros corresponde al diagnóstico 'Nacido Vivo Único' (Z370)?"),
375
- (button_17, "¿Cuál es la distribución por edad gestacional de los neonatos en el dataset?"),
376
- (button_18, "¿Cuál es la tasa de readmisión hospitalaria en neonatos?"),
377
- (button_19, "¿Cómo varía el acceso a medicamentos entre regiones?"),
378
- (button_20, "¿Existen diferencias significativas en las tasas de diagnóstico entre diferentes regiones?"),
379
- (button_21, "¿Cómo varía la mortalidad neonatal entre diferentes departamentos?"),
380
- (button_22, "¿Hay patrones estacionales en la administración de medicamentos?"),
381
- (button_23, "¿Cómo han cambiado las tasas de mortalidad neonatal a lo largo de los años?"),
382
- (button_24, "¿Existen variaciones en la incidencia de diagnósticos críticos a lo largo del año?"),
383
- (button_25, "¿Cómo impacta el uso de antibióticos en la recuperación neonatal?"),
384
- (button_26, "¿Qué mejoras se pueden implementar en la atención neonatal?"),
385
- (button_27, "¿Cuál es la efectividad de las medidas preventivas en la reducción de infecciones neonatales?"),
386
- (button_28, "¿Cuáles son las limitaciones de los datos sobre salud neonatal?"),
387
- (button_29, "¿Qué tan completos y precisos son los registros de diagnóstico?"),
388
- (button_30, "¿Cómo afecta la calidad de los datos a la investigación y atención neonatal?"),
389
- ]
390
-
391
- for button, question in button_assignments:
392
- button.click(send_preset_question, inputs=[gr.State(value=question), chatbot_history], outputs=[chatbot_output, chatbot_history, image_url])
393
-
394
- submit_button.click(process_input, inputs=[chatbot_input, chatbot_history], outputs=[chatbot_output, chatbot_history, image_url])
395
- image_url.change(fn=update_image, inputs=image_url, outputs=image_output)
396
-
397
- # Launch the interface
398
  demo.launch(debug=True)
 
257
  else:
258
  return None
259
 
260
+ # Función para procesar la entrada del chatbot
261
+ def process_input(message, history):
262
+ # Implementa tu lógica de procesamiento aquí
263
+ response = f"Procesando: {message}"
264
+ history.append((message, response))
265
+ return history, history, None
266
+
267
+ # Función para enviar una pregunta preestablecida
268
+ def send_preset_question(question, history):
269
+ return process_input(question, history)
270
+
271
+ # Lista ampliada de categorías y preguntas
272
+ categories = [
273
+ ("Diagnósticos", [
274
+ "¿Cuál es el diagnóstico más común registrado en el dataset?",
275
+ "¿Cuáles son los diagnósticos más frecuentes que requieren hospitalización prolongada?",
276
+ "¿Qué tan frecuentes son los diagnósticos relacionados con nacimientos prematuros?",
277
+ "¿Cuál es la incidencia de diagnósticos graves como el 'Síndrome de Dificultad Respiratoria' (P220)?",
278
+ "¿Cuáles son los códigos CIE-10 relacionados con infecciones neonatales?",
279
+ "¿Qué diagnósticos están clasificados bajo el código P00-P96 en neonatos?",
280
+ "¿Cuáles son los diagnósticos menos comunes en el dataset?",
281
+ "¿Cómo se distribuyen los diagnósticos entre pacientes masculinos y femeninos?",
282
+ "¿Existen diferencias significativas en los diagnósticos entre diferentes departamentos?"
283
+ ]),
284
+ ("Medicamentos", [
285
+ "¿Qué medicamentos son más usados en neonatos?",
286
+ "¿Cuál es el medicamento más usado para infecciones neonatales?",
287
+ "¿Qué tipo de forma farmacéutica es la más utilizada en neonatos?",
288
+ "¿Cuáles son los medicamentos más costosos administrados a recién nacidos?",
289
+ "¿Qué proporción de medicamentos administrados son antibióticos?",
290
+ "¿Qué porcentaje del total de medicamentos administrados corresponde a la Tetraciclina Clorhidrato?",
291
+ "¿Qué medicamentos se utilizan con mayor frecuencia en los departamentos con menos recursos?",
292
+ "¿Cuáles son los medicamentos menos comunes administrados en el dataset?",
293
+ "¿Qué relación existe entre el tipo de medicamento y el diagnóstico principal?"
294
+ ]),
295
+ ("Estadísticas y Frecuencia", [
296
+ "¿Qué porcentaje del total de registros corresponde al diagnóstico 'Nacido Vivo Único' (Z370)?",
297
+ "¿Cuál es la distribución por edad gestacional de los neonatos en el dataset?",
298
+ "¿Cuál es la tasa de readmisión hospitalaria en neonatos?",
299
+ "¿Cómo varía la mortalidad neonatal entre diferentes departamentos?",
300
+ "¿Hay patrones estacionales en la administración de medicamentos?",
301
+ "¿Cuál es la duración promedio de la hospitalización para los recién nacidos?",
302
+ "¿Qué proporción de recién nacidos es hospitalizada por más de 7 días?",
303
+ "¿Cómo varía la duración de la hospitalización entre los diferentes departamentos?",
304
+ "¿Qué diagnósticos están asociados con hospitalizaciones de corta duración?"
305
+ ]),
306
+ ("Impacto y Calidad de Datos", [
307
+ "¿Cómo impacta el uso de antibióticos en la recuperación neonatal?",
308
+ "¿Qué mejoras se pueden implementar en la atención neonatal?",
309
+ "¿Cuál es la efectividad de las medidas preventivas en la reducción de infecciones neonatales?",
310
+ "¿Cuáles son las limitaciones de los datos sobre salud neonatal?",
311
+ "¿Qué tan completos y precisos son los registros de diagnóstico?",
312
+ "¿Cómo se manejaron los valores faltantes en la variable de peso (PESO)?",
313
+ "¿Qué método se utilizó para imputar valores faltantes en la variable de días de hospitalización?",
314
+ "¿Cómo se gestionaron los outliers en la variable de peso por género?",
315
+ "¿Qué recomendaciones se hicieron para mejorar la calidad de los datos en futuros estudios?"
316
+ ]),
317
+ ("Análisis Geográfico", [
318
+ "¿Cuál es el departamento con el mayor número de registros de administración de medicamentos?",
319
+ "¿Qué departamentos tienen los menores registros de administración de medicamentos?",
320
+ "¿Cuál es la diferencia en la administración de medicamentos entre Lima y La Libertad?",
321
+ "¿Cómo se distribuyen los registros de administración de medicamentos en áreas urbanas versus rurales?",
322
+ "¿Qué departamento muestra la mayor variedad de medicamentos administrados?",
323
+ "¿Existen diferencias en el costo de los medicamentos entre diferentes provincias dentro de un mismo departamento?",
324
+ "¿Qué provincia tiene el menor registro de administración de medicamentos?",
325
+ "¿Cómo varía la administración de medicamentos en los distritos más poblados versus los menos poblados?"
326
+ ]),
327
+ ("Análisis Temporal", [
328
+ "¿Cuál es el rango de fechas de administración de medicamentos registrado en el dataset?",
329
+ "¿En qué meses se registra la mayor cantidad de administración de medicamentos?",
330
+ "¿Cuál es la distribución de la administración de medicamentos a lo largo de los días de la semana?",
331
+ "¿Existen picos en la administración de medicamentos durante períodos específicos?",
332
+ "¿Cómo ha evolucionado la administración de medicamentos desde 2022 hasta 2023?",
333
+ "¿Qué impacto tienen las estaciones del año en la administración de medicamentos?",
334
+ "¿Cómo varía la administración de medicamentos durante días festivos o feriados?",
335
+ "¿Qué variación se observa en la administración de medicamentos al comparar el primer y el último trimestre de 2023?"
336
+ ])
337
+ ]
338
+
339
+ # Configuración de la interfaz de Gradio
340
  with gr.Blocks() as demo:
341
  with gr.Row():
342
+ with gr.Column(scale=2):
343
  chatbot_input = gr.Textbox(label="Tu mensaje")
344
  chatbot_output = gr.Chatbot(label="ChatBot")
345
  chatbot_history = gr.State(value=[])
346
  image_url = gr.State(value=None)
347
  submit_button = gr.Button("Enviar")
348
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
349
  with gr.Column(scale=1):
350
  image_output = gr.Image(label="Imagen asociada")
351
 
352
+ # Crear filas de categorías
353
+ for i in range(0, len(categories), 3):
354
+ with gr.Row():
355
+ for category, questions in categories[i:i+3]:
356
+ with gr.Column():
357
+ with gr.Accordion(category):
358
+ for question in questions:
359
+ button = gr.Button(question)
360
+ button.click(
361
+ send_preset_question,
362
+ inputs=[gr.State(value=question), chatbot_history],
363
+ outputs=[chatbot_output, chatbot_history, image_url]
364
+ )
365
+
366
+ submit_button.click(
367
+ process_input,
368
+ inputs=[chatbot_input, chatbot_history],
369
+ outputs=[chatbot_output, chatbot_history, image_url]
370
+ )
371
+
372
+ # Lanzar la interfaz
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
373
  demo.launch(debug=True)