Spaces:
Configuration error
Configuration error
| import gradio as gr | |
| from datetime import datetime | |
| import cv2 | |
| import numpy as np | |
| # Simulaci贸n de progresi贸n tisular con Fibonacci | |
| def simulador_fibonacci(n: int): | |
| if n <= 0: | |
| return [0] | |
| elif n == 1: | |
| return [0, 1] | |
| secuencia = [0, 1] | |
| for i in range(2, n): | |
| secuencia.append(secuencia[i - 1] + secuencia[i - 2]) | |
| return f"Secuencia generada: {secuencia}" | |
| # Procesamiento y vista previa de imagen | |
| def mostrar_imagen(imagen): | |
| return imagen | |
| # An谩lisis facial simple: detecci贸n de rostros | |
| def analisis_facial(imagen): | |
| img = np.array(imagen) | |
| gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) | |
| detector = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml") | |
| faces = detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5) | |
| for (x, y, w, h) in faces: | |
| cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2) | |
| if len(faces) == 0: | |
| return img, "No se detectaron rostros." | |
| else: | |
| return img, f"Se detectaron {len(faces)} rostro(s)." | |
| # Consentimiento informado (demo) | |
| def consentimiento(): | |
| return "Consentimiento informado aceptado." | |
| # Encuesta de satisfacci贸n | |
| opciones_satisfaccion = ["Excelente", "Buena", "Regular", "Mala"] | |
| def registrar_satisfaccion(seleccion, comentario): | |
| return f"Gracias por su opini贸n: {seleccion}. Comentario: {comentario}" | |
| # Interfaz Gradio | |
| with gr.Blocks(title="Panacea 脥cono - Plataforma Tecnol贸gica en Salud") as demo: | |
| gr.Markdown("## 馃 Plataforma Panacea 脥cono S.A. - Tecnolog铆a en Salud, Blockchain y Simulaci贸n") | |
| with gr.Tabs(): | |
| with gr.TabItem("馃攣 Simulador M茅dico-Quir煤rgico"): | |
| iteraciones = gr.Slider(1, 20, step=1, label="Iteraciones quir煤rgicas") | |
| resultado_simulacion = gr.Textbox(label="Resultado de la simulaci贸n") | |
| gr.Button("Ejecutar simulaci贸n").click(fn=simulador_fibonacci, inputs=iteraciones, outputs=resultado_simulacion) | |
| with gr.TabItem("馃摲 Subida de Im谩genes Cl铆nicas"): | |
| imagen_subida = gr.Image(type="pil", label="Imagen m茅dica") | |
| imagen_preview = gr.Image(label="Vista previa") | |
| imagen_subida.change(fn=mostrar_imagen, inputs=imagen_subida, outputs=imagen_preview) | |
| with gr.TabItem("馃 An谩lisis Facial M茅dico"): | |
| imagen_facial = gr.Image(type="pil", label="Foto frontal") | |
| imagen_analizada = gr.Image(label="Detecci贸n facial") | |
| resultado_rostros = gr.Textbox(label="Resultado del an谩lisis facial") | |
| imagen_facial.change(fn=analisis_facial, inputs=imagen_facial, outputs=[imagen_analizada, resultado_rostros]) | |
| with gr.TabItem("馃Ь Consentimiento Informado"): | |
| gr.Markdown("Revise y acepte el consentimiento para procedimientos m茅dicos.") | |
| gr.Button("Aceptar consentimiento").click(fn=consentimiento, outputs=gr.Textbox()) | |
| with gr.TabItem("馃搳 Encuesta de Satisfacci贸n"): | |
| seleccion = gr.Radio(opciones_satisfaccion, label="驴C贸mo califica su experiencia?") | |
| comentario = gr.Textbox(label="Comentarios adicionales") | |
| resultado_encuesta = gr.Textbox(label="Resultado del registro") | |
| gr.Button("Enviar opini贸n").click(fn=registrar_satisfaccion, inputs=[seleccion, comentario], outputs=resultado_encuesta) | |
| if __name__ == "__main__": | |
| demo.launch(server_port=7862) | |