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