FIBONACCI_APP / app-panacea.py
DRDELATV's picture
fix: ajustes de dependencias, puertos y compatibilidad para entorno de desarrollo
6f89cdc
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)