DavidSB commited on
Commit
7b94e9b
·
verified ·
1 Parent(s): 930f3c0

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +195 -0
app.py ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ import gradio as gr
3
+
4
+ # Função para avaliação de gordura corporal
5
+ def imc(nome, idade, avaliador, confea,
6
+ peso, altura, peso_alvo, perc_g_alvo,
7
+ pantur_d, coxa_d, braço_d,
8
+ pantur_e, coxa_e, braço_e,
9
+ quadril, abdomem, cintura, tórax,
10
+ d_tríceps, d_peito, d_sub_axilar, d_subescapular, d_abdominal, d_supra_ilíaca, d_coxa,
11
+ a_flex, a_post, conc):
12
+
13
+ # Converter os valores para float
14
+ peso = float(peso)
15
+ altura = float(altura)
16
+ peso_alvo = float(peso_alvo)
17
+ perc_g_alvo = float(perc_g_alvo)
18
+ pantur_d = float(pantur_d)
19
+ coxa_d = float(coxa_d)
20
+ braço_d = float(braço_d)
21
+ pantur_e = float(pantur_e)
22
+ coxa_e = float(coxa_e)
23
+ braço_e = float(braço_e)
24
+ quadril = float(quadril)
25
+ abdomem = float(abdomem)
26
+ cintura = float(cintura)
27
+ tórax = float(tórax)
28
+
29
+ # Converter os valores de dobras cutâneas para inteiros
30
+ d_tríceps = int(d_tríceps)
31
+ d_peito = int(d_peito)
32
+ d_sub_axilar = int(d_sub_axilar)
33
+ d_subescapular = int(d_subescapular)
34
+ d_abdominal = int(d_abdominal)
35
+ d_supra_ilíaca = int(d_supra_ilíaca)
36
+ d_coxa = int(d_coxa)
37
+
38
+ # Índice de massa corporal
39
+ imc = peso * 10000 / (altura * altura)
40
+
41
+ # Índice de massa corporal
42
+ imc_alvo = peso_alvo * 10000 / (altura * altura)
43
+
44
+ # Soma das dobras
45
+ soma_dob = d_tríceps + d_peito + d_sub_axilar + d_subescapular + d_abdominal + d_supra_ilíaca + d_coxa
46
+
47
+ # Percentual de gordura
48
+ perc_g = (495 / (1.10938 - (0.0008267 * soma_dob) + (0.0000016 * soma_dob * soma_dob) - (0.0002574 * idade))) - 450
49
+
50
+ # Peso gordo e peso magro
51
+ peso_g = peso * (perc_g / 100)
52
+ peso_m = peso - peso_g
53
+
54
+ # Gasto calórico basal
55
+ gcb = 66 + (13.7 * peso) + (5 * altura) - (6.9 * idade)
56
+
57
+ # Ingesta calórica de equilíbrio
58
+ ice = (gcb * 0.2) + gcb
59
+
60
+ #
61
+ obs ="Os cálculos deste laudo baseiam-se em fórmulas contidas em: Foss,ML e Keteyian,SJ. FOX-Bases fisiológicas do exercício e do esporte. 6a Ed., 2000."
62
+
63
+
64
+ # criação de strings para os relatórios da interface e do pdf
65
+
66
+ Informações_resultados = f"""
67
+ Informações_gerais
68
+ Nome: {nome}
69
+ Idade: {idade}
70
+ Avaliador: {avaliador}
71
+ Nº Registro: {confea}
72
+
73
+ Controle_biométrico
74
+ Peso (kg): {peso:.2f}
75
+ Altura (cm): {altura:.2f}
76
+ IMC: {imc:.2f}
77
+ Soma das dobras (mm): {soma_dob}
78
+ Percentual de gordura (%): {perc_g:.2f}
79
+ Peso gordo (kg): {peso_g:.2f}
80
+ Peso magro (kg): {peso_m:.2f}
81
+
82
+ > Objetivos:
83
+ Peso alvo (kg): {peso_alvo:.2f}
84
+ Percentual de gordura alvo (%): {perc_g_alvo:.2f}
85
+ IMC alvo: {imc_alvo:.2f}
86
+
87
+ Avaliação de flexibilidade (sit-and-reach): {a_flex}
88
+
89
+ Avaliação postural: {a_post}
90
+
91
+ Gasto calórico basal: {gcb:.2f}
92
+
93
+ Ingesta calórica de equilíbrio: {ice:.2f}
94
+ """
95
+ Conclusão = f"""
96
+ Conclusão da avaliação: {conc}
97
+ Obs: {obs}
98
+ """
99
+
100
+ # OUTPUTS
101
+ return (
102
+ Informações_resultados,
103
+ Conclusão,
104
+ )
105
+
106
+ # Interface Gradio
107
+ with gr.Blocks(theme=gr.themes.Base()) as interface:
108
+ with gr.Tab("IMC"):
109
+ with gr.Row():
110
+ with gr.Column():
111
+ with gr.Row():
112
+ nome = gr.Textbox(label="Nome", scale=2)
113
+ idade = gr.Number(label="Idade", value=42, scale=0.5)
114
+ with gr.Row():
115
+ avaliador = gr.Textbox(label="Avaliador físico", value="Mariana Casa Nova")
116
+ confea = gr.Textbox(label="Registro conselho", value="-")
117
+ # Controle biométrico
118
+ with gr.Group():
119
+ with gr.Row():
120
+ peso = gr.Slider(0, 150, label="Peso (kg)", value=92.8, step=0.1)
121
+ altura = gr.Slider(100, 210, label="Altura (cm)", value=161, step=1)
122
+ with gr.Row():
123
+ peso_alvo = gr.Slider(0, 150, label="Peso alvo (kg)", value=70, step=0.1)
124
+ perc_g_alvo = gr.Slider(0, 100, label="% gordura alvo", value=28, step=0.1)
125
+
126
+ # Perímetros
127
+ with gr.Group():
128
+ with gr.Row():
129
+ pantur_d = gr.Slider(0, 100, label="Panturrilha direita (cm)", value=0, step=0.1)
130
+ pantur_e = gr.Slider(0, 100, label="Panturrilha esquerda (cm)", value=0, step=0.1)
131
+ with gr.Row():
132
+ coxa_e = gr.Slider(0, 100, label="Coxa esquerda (cm)", value=0, step=0.1)
133
+ coxa_d = gr.Slider(0, 100, label="Coxa direita (cm)", value=0, step=0.1)
134
+ with gr.Row():
135
+ braço_d = gr.Slider(0, 100, label="Braço direito (cm)", value=0, step=0.1)
136
+ braço_e = gr.Slider(0, 100, label="Braço esquerdo (cm)", value=0, step=0.1)
137
+ with gr.Row():
138
+ quadril = gr.Slider(0, 200, label="Quadril (cm)", value=0, step=0.1)
139
+ cintura = gr.Slider(0, 200, label="Cintura (cm)", value=0, step=0.1)
140
+ with gr.Row():
141
+ abdomem = gr.Slider(0, 200, label="Abdômen (cm)", value=0, step=0.1)
142
+ tórax = gr.Slider(0, 200, label="Tórax (cm)", value=0, step=0.1)
143
+
144
+ # Dobras cutâneas
145
+ with gr.Group():
146
+ with gr.Row():
147
+ d_tríceps = gr.Slider(0, 100, label="Tríceps (mm)", value=36, step=1)
148
+ d_peito = gr.Slider(0, 100, label="Peito", value=0, step=1)
149
+ with gr.Row():
150
+ d_sub_axilar = gr.Slider(0, 100, label="Sub-axilar (mm)", value=0, step=1)
151
+ d_subescapular = gr.Slider(0, 100, label="Subescapular (mm)", value=0, step=1)
152
+ with gr.Row():
153
+ d_abdominal = gr.Slider(0, 100, label="Abdominal (mm)", value=0, step=1)
154
+ d_supra_ilíaca = gr.Slider(0, 100, label="Supra-ilíaca (mm)", value=31, step=1)
155
+ with gr.Row():
156
+ d_coxa = gr.Slider(0, 100, label="Coxa (mm)", value=53, step=1)
157
+
158
+ # Avaliações
159
+ with gr.Group():
160
+ with gr.Row():
161
+ # Avaliação de flexibilidade
162
+ a_flex = gr.Radio(["Realizado", "Não realizado"], label="Avaliação de flexibilidade", value="Não realizado")
163
+ # Avaliação postural
164
+ a_post = gr.Radio(["Realizado", "Não realizado"], label="Avaliação postural", value="Não realizado")
165
+ # Conclusão
166
+ with gr.Group():
167
+ conc = gr.Textbox(label ="Conclusão da avaliação")
168
+
169
+
170
+ button_1 = gr.Button("Calcular")
171
+
172
+ with gr.Column():
173
+ Informações_resultados = gr.Textbox(label="Informações e resultados")
174
+ Conclusão = gr.Textbox(label="Conclusão da avaliação")
175
+
176
+
177
+ inputs = [
178
+ nome, idade, avaliador, confea,
179
+ peso, altura, peso_alvo, perc_g_alvo,
180
+ pantur_d, coxa_d, braço_d,
181
+ pantur_e, coxa_e, braço_e,
182
+ quadril, abdomem, cintura, tórax,
183
+ d_tríceps, d_peito, d_sub_axilar, d_subescapular, d_abdominal, d_supra_ilíaca, d_coxa,
184
+ a_flex, a_post, conc
185
+ ]
186
+
187
+ outputs = [
188
+ Informações_resultados,
189
+ Conclusão,
190
+ ]
191
+
192
+ button_1.click(imc, inputs=inputs, outputs=outputs)
193
+
194
+ if __name__ == "__main__":
195
+ interface.launch(debug=True)