File size: 7,538 Bytes
7b945e6
78b9561
5db4e41
d600704
 
5dc4c33
d600704
5dc4c33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7d708d8
5dc4c33
7d708d8
5dc4c33
7d708d8
5dc4c33
 
 
 
 
 
 
 
 
 
 
 
 
7d708d8
5dc4c33
d600704
5dc4c33
d600704
5dc4c33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d600704
5dc4c33
d600704
5dc4c33
d600704
5dc4c33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d600704
5dc4c33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d600704
5dc4c33
 
7d708d8
5dc4c33
 
7d708d8
d600704
 
5dc4c33
 
 
 
 
 
 
 
 
 
d600704
 
5dc4c33
 
 
 
d600704
 
5dc4c33
d600704
5dc4c33
7d708d8
5dc4c33
7d708d8
5dc4c33
 
 
 
7d708d8
5dc4c33
d600704
5dc4c33
d600704
5dc4c33
 
 
 
d600704
7d708d8
5dc4c33
 
 
 
d600704
 
5dc4c33
a75511c
7b945e6
5dc4c33
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
import gradio as gr
import cv2
import numpy as np
from PIL import Image
import io
from collections import defaultdict

def analisar_condicoes(regiao, dados):
    """
    Analisa e sumariza as condições encontradas para cada região
    """
    condicoes = defaultdict(int)
    for dado in dados:
        for linha in dado.split('\n'):
            if f'Região: {regiao}' in linha:
                if 'congestão/inflamação' in linha:
                    condicoes['congestao_inflamacao'] += 1
                if 'deficiência/hipofunção' in linha:
                    condicoes['deficiencia_hipofuncao'] += 1
                if 'atrofia/degeneração' in linha:
                    condicoes['atrofia_degeneracao'] += 1
                if 'irritação/estresse' in linha:
                    condicoes['irritacao_estresse'] += 1
    return condicoes

def gerar_diagnostico(regiao, condicoes, total_ocorrencias):
    """
    Gera um diagnóstico baseado na frequência das condições
    """
    diagnostico = []
    limiar = total_ocorrencias * 0.3  # 30% de ocorrências como limiar
    
    if condicoes['congestao_inflamacao'] > limiar:
        diagnostico.append("Processo inflamatório crônico")
    if condicoes['deficiencia_hipofuncao'] > limiar:
        diagnostico.append("Função reduzida ou comprometida")
    if condicoes['atrofia_degeneracao'] > limiar:
        diagnostico.append("Sinais de desgaste tecidual")
    if condicoes['irritacao_estresse'] > limiar:
        diagnostico.append("Sobrecarga funcional")
    
    return diagnostico

def processar_analise_iridologica(dados_analise):
    """
    Processa os dados da análise iridológica e gera um relatório estruturado
    """
    # Identificar todas as regiões únicas
    regioes = set()
    for linha in dados_analise.split('\n'):
        if linha.startswith('Região: '):
            regiao = linha.split('Região: ')[1].strip()
            regioes.add(regiao)
    
    # Analisar cada região
    resultados = {}
    for regiao in regioes:
        condicoes = analisar_condicoes(regiao, [dados_analise])
        diagnostico = gerar_diagnostico(regiao, condicoes, len(dados_analise.split('\n')))
        if diagnostico:
            resultados[regiao] = diagnostico
    
    return resultados

def gerar_recomendacoes(diagnostico):
    """
    Gera recomendações baseadas no diagnóstico
    """
    recomendacoes = {
        "Processo inflamatório crônico": [
            "Avaliação médica específica para a região",
            "Considerar anti-inflamatórios naturais",
            "Reduzir alimentos inflamatórios",
            "Aumentar consumo de água"
        ],
        "Função reduzida ou comprometida": [
            "Suplementação nutricional específica",
            "Avaliação de deficiências nutricionais",
            "Ajuste na dieta para suporte funcional",
            "Exercícios apropriados para estimulação"
        ],
        "Sinais de desgaste tecidual": [
            "Suporte nutricional para regeneração",
            "Redução de fatores estressantes",
            "Avaliação de minerais e vitaminas",
            "Considerar terapias regenerativas"
        ],
        "Sobrecarga funcional": [
            "Técnicas de gerenciamento de estresse",
            "Adequação do ritmo de atividades",
            "Suporte adaptogênico",
            "Melhoria da qualidade do sono"
        ]
    }
    return recomendacoes

def criar_interface():
    """
    Cria a interface do usuário com Gradio
    """
    def analisar(texto_analise):
        resultados = processar_analise_iridologica(texto_analise)
        recomendacoes = gerar_recomendacoes(resultados)
        
        # Formatar saída
        saida = "ANÁLISE IRIDOLÓGICA DETALHADA\n\n"
        
        # Agrupar por sistemas
        sistemas = {
            "Sistema Nervoso": ["Cerebro", "Sistema Nervoso"],
            "Sistema Digestivo": ["Estomago", "Figado", "Vesicula", "Pancreas", "Sistema Digestivo", 
                                "Intestino Grosso", "Intestino Delgado", "Apendice"],
            "Sistema Circulatório": ["Coracao"],
            "Sistema Urinário": ["Rim Direito", "Rim Esquerdo", "Bexiga"],
            "Sistema Endócrino": ["Tireoide"],
            "Sistema Respiratório": ["Pulmao", "Bronquios"],
            "Sistema Reprodutor": ["Sistema Reprodutor"]
        }
        
        for sistema, orgaos in sistemas.items():
            saida += f"\n{sistema.upper()}:\n"
            encontrado = False
            for orgao in orgaos:
                if orgao in resultados:
                    encontrado = True
                    saida += f"\n• {orgao}:\n"
                    for diagnostico in resultados[orgao]:
                        saida += f"  - {diagnostico}\n"
                        if diagnostico in recomendacoes:
                            saida += "    Recomendações:\n"
                            for rec in recomendacoes[diagnostico]:
                                saida += f"    * {rec}\n"
            if not encontrado:
                saida += "  Sem alterações significativas\n"
        
        return saida

    # Interface
    with gr.Blocks(title="Análise Iridológica Avançada") as interface:
        gr.Markdown("""
        # Sistema de Análise Iridológica Avançada
        Este sistema analisa os dados iridológicos e fornece um relatório detalhado com recomendações.
        """)
        
        with gr.Tabs():
            with gr.Tab("Análise Completa"):
                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 Dados", variant="primary")
                output_text = gr.Textbox(
                    label="Relatório de Análise",
                    lines=30
                )
                
                analysis_btn.click(
                    fn=analisar,
                    inputs=[input_text],
                    outputs=[output_text]
                )
            
            with gr.Tab("Informações"):
                gr.Markdown("""
                ## Sobre a Análise Iridológica Avançada
                
                Este sistema utiliza algoritmos avançados para:
                
                1. Analisar padrões nas observações iridológicas
                2. Identificar tendências e correlações
                3. Gerar recomendações personalizadas
                4. Agrupar resultados por sistemas corporais
                
                ### Interpretação dos Resultados
                
                O sistema considera quatro principais categorias de alterações:
                
                * Processos inflamatórios crônicos
                * Funções reduzidas ou comprometidas
                * Sinais de desgaste tecidual
                * Sobrecargas funcionais
                
                ### Observações Importantes
                
                * Os resultados são baseados em análise estatística das observações
                * As recomendações são gerais e devem ser personalizadas por profissional
                * Este é um sistema de suporte à decisão, não um diagnóstico definitivo
                """)
    
    return interface

if __name__ == "__main__":
    interface = criar_interface()
    interface.launch(share=True)