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)