Spaces:
Running
Running
import gradio as gr | |
import cv2 | |
import numpy as np | |
from PIL import Image | |
import io | |
from collections import defaultdict | |
# Mapeamento detalhado de sinais para doenças específicas | |
SINAIS_DOENÇAS = { | |
"congestao_inflamacao": { | |
"Doenças Autoimunes": { | |
"Artrite Reumatoide": { | |
"prob": 0.75, | |
"sinais_adicionais": ["simetria", "anéis de tensão"], | |
"exames": ["Fator Reumatóide", "Anti-CCP", "PCR", "VHS"], | |
"tratamentos": ["Imunossupressores", "Anti-inflamatórios", "Fisioterapia"] | |
}, | |
"Lúpus": { | |
"prob": 0.70, | |
"sinais_adicionais": ["manchas em borboleta", "lacunas"], | |
"exames": ["FAN", "Anti-DNA", "Complemento"], | |
"tratamentos": ["Corticoides", "Antimaláricos", "Protetor Solar"] | |
} | |
}, | |
"Doenças Inflamatórias": { | |
"Doença de Crohn": { | |
"prob": 0.65, | |
"sinais_adicionais": ["radiais intestinais", "hiperpigmentação"], | |
"exames": ["Calprotectina", "Colonoscopia", "PCR"], | |
"tratamentos": ["Imunomoduladores", "Biológicos", "Dieta"] | |
} | |
} | |
}, | |
"deficiencia_hipofuncao": { | |
"Doenças Endócrinas": { | |
"Hipotireoidismo": { | |
"prob": 0.80, | |
"sinais_adicionais": ["anéis nervosos", "pigmentação clara"], | |
"exames": ["TSH", "T4 livre", "Anti-TPO"], | |
"tratamentos": ["Levotiroxina", "Suplementação de Iodo", "Selenium"] | |
}, | |
"Diabetes": { | |
"prob": 0.75, | |
"sinais_adicionais": ["radiais pancreáticos", "manchas açúcar"], | |
"exames": ["Glicemia", "HbA1c", "Peptídeo C"], | |
"tratamentos": ["Insulina", "Metformina", "Dieta"] | |
} | |
} | |
}, | |
"atrofia_degeneracao": { | |
"Doenças Neurológicas": { | |
"Alzheimer": { | |
"prob": 0.70, | |
"sinais_adicionais": ["lesões cerebrais", "manchas escuras"], | |
"exames": ["Mini-Mental", "Ressonância", "Beta Amilóide"], | |
"tratamentos": ["Inibidores Colinesterase", "Memantina", "Estimulação"] | |
} | |
}, | |
"Doenças Ósseas": { | |
"Osteoporose": { | |
"prob": 0.75, | |
"sinais_adicionais": ["anéis cálcio", "lacunas ósseas"], | |
"exames": ["Densitometria", "Vitamina D", "CTX"], | |
"tratamentos": ["Bisfosfonatos", "Cálcio", "Exercícios"] | |
} | |
} | |
}, | |
"irritacao_estresse": { | |
"Doenças Psiquiátricas": { | |
"Ansiedade Generalizada": { | |
"prob": 0.85, | |
"sinais_adicionais": ["anéis nervosos", "manchas adrenal"], | |
"exames": ["Cortisol", "ACTH", "Neurotransmissores"], | |
"tratamentos": ["Ansiolíticos", "Psicoterapia", "Meditação"] | |
}, | |
"Depressão": { | |
"prob": 0.80, | |
"sinais_adicionais": ["manchas escuras", "anéis profundos"], | |
"exames": ["Serotonina", "Cortisol", "BDNF"], | |
"tratamentos": ["Antidepressivos", "Psicoterapia", "Exercícios"] | |
} | |
} | |
} | |
} | |
# Correlações entre regiões da íris e sistemas corporais | |
CORRELAÇÕES_SISTEMAS = { | |
"Cerebro": { | |
"sistema": "Sistema Nervoso Central", | |
"doenças_associadas": [ | |
"Enxaqueca", "Epilepsia", "Parkinson", | |
"Esclerose Múltipla", "Alzheimer" | |
] | |
}, | |
"Sistema Nervoso": { | |
"sistema": "Sistema Nervoso Periférico", | |
"doenças_associadas": [ | |
"Neuropatia Diabética", "Síndrome do Túnel do Carpo", | |
"Neuralgia do Trigêmeo" | |
] | |
}, | |
"Pulmao": { | |
"sistema": "Sistema Respiratório", | |
"doenças_associadas": [ | |
"Asma", "DPOC", "Bronquite Crônica", | |
"Fibrose Pulmonar", "Enfisema" | |
] | |
} | |
} | |
def analisar_doencas(dados_analise): | |
""" | |
Analisa os dados para identificar possíveis doenças | |
""" | |
resultados = defaultdict(list) | |
padroes = defaultdict(int) | |
# Análise por região | |
regiao_atual = None | |
sinais_atuais = set() | |
for linha in dados_analise.split('\n'): | |
if 'Região:' in linha: | |
if regiao_atual and sinais_atuais: | |
# Processar região anterior | |
for sinal in sinais_atuais: | |
if sinal in SINAIS_DOENÇAS: | |
for categoria, doenças in SINAIS_DOENÇAS[sinal].items(): | |
for doença, info in doenças.items(): | |
resultados[regiao_atual].append({ | |
'doença': doença, | |
'categoria': categoria, | |
'probabilidade': info['prob'], | |
'exames': info['exames'], | |
'tratamentos': info['tratamentos'] | |
}) | |
regiao_atual = linha.split('Região:')[1].strip() | |
sinais_atuais = set() | |
if regiao_atual: | |
if 'congestão/inflamação' in linha: | |
sinais_atuais.add('congestao_inflamacao') | |
if 'deficiência/hipofunção' in linha: | |
sinais_atuais.add('deficiencia_hipofuncao') | |
if 'atrofia/degeneração' in linha: | |
sinais_atuais.add('atrofia_degeneracao') | |
if 'irritação/estresse' in linha: | |
sinais_atuais.add('irritacao_estresse') | |
return dict(resultados) | |
def criar_interface(): | |
""" | |
Cria a interface moderna do Gradio com tema verde piscina | |
""" | |
def analisar(texto_analise): | |
resultados = analisar_doencas(texto_analise) | |
# Gerar relatório estruturado | |
saida = "ANÁLISE DETALHADA DE DOENÇAS POR IRIDOLOGIA\n\n" | |
# Agrupar por sistemas | |
sistemas = { | |
"Sistema Nervoso": ["Cerebro", "Sistema Nervoso"], | |
"Sistema Digestivo": ["Estomago", "Figado", "Vesicula", "Pancreas", | |
"Sistema Digestivo", "Intestino Grosso", "Intestino Delgado"], | |
"Sistema Circulatório": ["Coracao"], | |
"Sistema Respiratório": ["Pulmao", "Bronquios"], | |
"Sistema Endócrino": ["Tireoide"], | |
"Sistema Urinário": ["Rim Direito", "Rim Esquerdo", "Bexiga"] | |
} | |
for sistema, orgaos in sistemas.items(): | |
saida += f"\n{sistema.upper()}\n{'='*len(sistema)}\n" | |
doenças_sistema = [] | |
for orgao in orgaos: | |
if orgao in resultados: | |
for resultado in resultados[orgao]: | |
doenças_sistema.append({ | |
'orgao': orgao, | |
**resultado | |
}) | |
if doenças_sistema: | |
# Ordenar por probabilidade | |
doenças_sistema.sort(key=lambda x: x['probabilidade'], reverse=True) | |
for doença in doenças_sistema: | |
prob_percent = doença['probabilidade'] * 100 | |
saida += f"\n• {doença['doença']} ({doença['categoria']})\n" | |
saida += f" Órgão: {doença['orgao']}\n" | |
saida += f" Probabilidade: {prob_percent:.1f}%\n" | |
saida += f" Exames Recomendados: {', '.join(doença['exames'])}\n" | |
saida += f" Tratamentos Sugeridos: {', '.join(doença['tratamentos'])}\n" | |
else: | |
saida += " Sem alterações significativas\n" | |
return saida | |
# Tema personalizado verde piscina | |
theme = gr.themes.Soft( | |
primary_hue="teal", | |
secondary_hue="green", | |
).set( | |
body_text_color="#2A9D8F", | |
block_title_text_color="#264653", | |
block_label_text_color="#2A9D8F", | |
input_background_fill="#E9F5F3", | |
button_primary_background_fill="#2A9D8F", | |
button_primary_background_fill_dark="#264653", | |
button_primary_text_color="#FFFFFF", | |
button_primary_text_color_dark="#FFFFFF", | |
) | |
# Interface com abas | |
with gr.Blocks(theme=theme, title="Análise Avançada de Doenças por Iridologia") as interface: | |
gr.Markdown(""" | |
# Sistema Avançado de Análise de Doenças por Iridologia | |
### Análise detalhada com probabilidades e recomendações específicas | |
""") | |
with gr.Tabs(): | |
# Aba de Análise Principal | |
with gr.Tab("Análise de Doenças"): | |
input_text = gr.Textbox( | |
label="Dados da Análise Iridológica", | |
lines=10, | |
placeholder="Cole os dados da análise aqui..." | |
) | |
analysis_btn = gr.Button("Analisar Doenças", variant="primary") | |
output_text = gr.Textbox( | |
label="Relatório de Doenças", | |
lines=30 | |
) | |
analysis_btn.click( | |
fn=analisar, | |
inputs=[input_text], | |
outputs=[output_text] | |
) | |
# Aba de Interpretação | |
with gr.Tab("Guia de Interpretação"): | |
gr.Markdown(""" | |
## Interpretação dos Resultados | |
### Níveis de Probabilidade | |
- **>80%**: Alta probabilidade - Investigação prioritária | |
- **60-80%**: Probabilidade moderada - Investigação recomendada | |
- **40-60%**: Probabilidade média - Monitoramento | |
- **<40%**: Baixa probabilidade - Observação | |
### Categorias de Doenças Analisadas | |
1. **Doenças Autoimunes** | |
- Artrite Reumatoide | |
- Lúpus | |
- Esclerose Múltipla | |
2. **Doenças Endócrinas** | |
- Hipotireoidismo | |
- Diabetes | |
- Doença de Addison | |
3. **Doenças Degenerativas** | |
- Alzheimer | |
- Parkinson | |
- Osteoporose | |
4. **Doenças Inflamatórias** | |
- Doença de Crohn | |
- Colite Ulcerativa | |
- Artrite | |
""") | |
# Aba de Recomendações | |
with gr.Tab("Recomendações"): | |
gr.Markdown(""" | |
## Recomendações Gerais | |
### Exames Complementares | |
- Exames laboratoriais específicos | |
- Exames de imagem | |
- Avaliações funcionais | |
### Abordagens Terapêuticas | |
1. **Convencionais** | |
- Medicamentos específicos | |
- Acompanhamento médico | |
- Fisioterapia | |
2. **Complementares** | |
- Fitoterapia | |
- Acupuntura | |
- Homeopatia | |
3. **Mudanças de Estilo de Vida** | |
- Alimentação | |
- Exercícios | |
- Gestão do estresse | |
""") | |
return interface | |
if __name__ == "__main__": | |
interface = criar_interface() | |
interface.launch(share=True) |