Class: Paciente

Inherits:
Individuo show all
Defined in:
lib/nutricion/icc.rb

Overview

Clase Paciente (Individuo que ademas tiene un peso, altura y medias de tricipital, bicipital, subescapular, suprailiaco, brazo, cintura y cadera)

Instance Attribute Summary collapse

Attributes inherited from Individuo

#edad, #nombre, #sexo

Instance Method Summary collapse

Constructor Details

#initialize(nombre, peso, altura, edad, sexo, tricipital, bicipital, subescapular, suprailiaco, brazo, cintura, cadera, actividad) ⇒ Paciente

Inicializar los valores



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
# File 'lib/nutricion/icc.rb', line 46

def initialize(nombre, peso, altura, edad, sexo, tricipital, bicipital, subescapular, suprailiaco, brazo, cintura, cadera, actividad)
     
    super(nombre, edad, sexo)
     
    @peso = peso
    @altura = altura
    @tricipital = tricipital
    @bicipital = bicipital
    @subescapular = subescapular
    @suprailiaco = suprailiaco
    @brazo = brazo
    @cintura = cintura
    @cadera = cadera
    @actividad = actividad
    
    
    calcular_imc(peso,altura)
    clasificacion_imc(imc)
    descripcion_popular(imc)
    calculo_grasa(imc,edad,sexo)
    calculo_pliegues_cutaneos(tricipital, bicipital, subescapular, suprailiaco)
    calcular_circunferencias(brazo,cintura,cadera)
    calcular_rcc(cintura, cadera, sexo)
    
    
    obtener_peso_ideal()
    obtener_gasto_ener_basal_paciente()
    obtener_efec_termogeno()
    obtener_gasto_fisico()
    obtener_gasto_total()
    
end

Instance Attribute Details

#actividadObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def actividad
  @actividad
end

#alturaObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def altura
  @altura
end

#bicipitalObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def bicipital
  @bicipital
end

#brazoObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def brazo
  @brazo
end

#caderaObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def cadera
  @cadera
end

#cinturaObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def cintura
  @cintura
end

#descripcionObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def descripcion
  @descripcion
end

#efecto_termogenoObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def efecto_termogeno
  @efecto_termogeno
end

#gasto_actObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def gasto_act
  @gasto_act
end

#gasto_energetico_basalObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def gasto_energetico_basal
  @gasto_energetico_basal
end

#gasto_energetico_totalObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def gasto_energetico_total
  @gasto_energetico_total
end

#grasaObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def grasa
  @grasa
end

#imcObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def imc
  @imc
end

#omsObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def oms
  @oms
end

#pesoObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def peso
  @peso
end

#peso_t_iObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def peso_t_i
  @peso_t_i
end

#rcc_totalObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def rcc_total
  @rcc_total
end

#subescapularObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def subescapular
  @subescapular
end

#suprailiacoObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def suprailiaco
  @suprailiaco
end

#tricipitalObject (readonly)

Getters



43
44
45
# File 'lib/nutricion/icc.rb', line 43

def tricipital
  @tricipital
end

Instance Method Details

#<=>(other) ⇒ Object

Método para que la clase sea Comparable



271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
# File 'lib/nutricion/icc.rb', line 271

def  <=>(other)
    
    return nil unless other.instance_of?Paciente
        # @peso <=> other.peso
        # @altura <=> other.altura
        # @tricipital <=> other.tricipital
        # @bicipital <=> other.bicipital
        # @subescapular <=> other.subescapular
        # @suprailiaco <=> other.suprailiaco
        # @brazo <=> other.brazo
        # @cintura <=> other.cintura
        # @cadera <=> other.cadera
        
        @gasto_energetico_total <=> other.gasto_energetico_total
end

#calcular_circunferencias(brazo, cintura, cadera) ⇒ Object

Método para calcular las medias



182
183
184
185
186
187
188
189
190
# File 'lib/nutricion/icc.rb', line 182

def calcular_circunferencias(brazo, cintura, cadera)
    
    @brazo = media_vector(brazo)
    
    @cintura = media_vector(cintura)

    @cadera = media_vector(cadera)
    
end

#calcular_imc(peso, altura) ⇒ Object

Método para realizar el calculo del IMC (Índice de Masa Corporal)



81
82
83
84
85
86
# File 'lib/nutricion/icc.rb', line 81

def calcular_imc(peso, altura)
    
    imc = peso / (altura * altura)
    @imc = imc.round(2)

end

#calcular_rcc(cintura, cadera, sexo) ⇒ Object

Método para calcular el RCC



203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# File 'lib/nutricion/icc.rb', line 203

def  calcular_rcc(cintura,cadera,sexo)

    @cintura = media_vector(cintura)
    
    @cadera = media_vector(cadera)
    
    rcc = (@cintura/@cadera).round(2)
    
    @rcc = " \nRelación cintura/cadera: #{rcc}"
    
    @rcc_total = rcc
    
    
    #Caso de clasificacion de los hombre
    if (sexo == 1)
    
        case rcc

            when (0 .. 0.82)
                 @descripcion_rcc = " parece que los datos obtenidos son demasiado bajos." 
                
        
            when (0.83 .. 0.88) 
                @descripcion_rcc = " y se considera Bajo."
                
            when (0.89 .. 0.95)  
                @descripcion_rcc = " y se considera Moderado." 
            
            when (0.96 .. 1.01) 
                @descripcion_rcc = " y se considera Alto." 
                
            else
                @descripcion_rcc = " y se considera Muy alto." 
            
        end
        
 
        
    end

    
    #Caso de clasificacion de las mujeres
    if (sexo == 0)
    
        case rcc
        
            when 0 .. 0.71
                 @descripcion_rcc = " parece que los datos obtenidos son demasiado bajos." 
    
            when 0.72 .. 0.75
                @descripcion_rcc = " y se considera Bajo."
                
            when 0.76 .. 0.78
                @descripcion_rcc = " y se considera Bajo-Moderado." 
            
            when 0.78 .. 0.82 
                @descripcionn_rcc = " y se considera Moderado." 
            
            else
                @descripcion_rcc = " y se considera Alto."
            
        end   
    end
    
    
end

#calculo_grasa(imc, edad, sexo) ⇒ Object

Método para calcular la cantidad de grasa



144
145
146
147
148
149
150
151
152
153
154
# File 'lib/nutricion/icc.rb', line 144

def calculo_grasa(imc, edad, sexo)
    
    constante = 1.2
    constante2 = 0.23
    constante3 = 10.8
    constante4 = 5.4
    
    grasa = (constante*imc)+(constante2*edad)-(constante3*sexo)-constante4
    @grasa = "\nEl porcentaje de grasa es: #{grasa.round(2)}"
    
end

#calculo_imc(peso, talla) ⇒ Object

Metodo para el calculo del imc



194
195
196
197
198
199
# File 'lib/nutricion/icc.rb', line 194

def calculo_imc(peso, talla)
    
    imc = peso/(talla*talla)
    @imc = imc.round(2)

end

#calculo_pliegues_cutaneos(tricipital, bicipital, subescapular, suprailiaco) ⇒ Object

Método para calcular el conjunto de pliegues



158
159
160
161
162
163
164
165
166
167
168
# File 'lib/nutricion/icc.rb', line 158

def calculo_pliegues_cutaneos(tricipital, bicipital, subescapular, suprailiaco)
   
    @tricipital = media_vector(tricipital)
    
    @bicipital = media_vector(bicipital)
    
    @subescapular = media_vector(subescapular)
    
    @suprailiaco = media_vector(suprailiaco)

end

#clasificacion_imc(imc) ⇒ Object

Método para clasificar el individuo según el imc que obtengamos



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/nutricion/icc.rb', line 90

def clasificacion_imc(imc)
    
    case @imc
    
    when 0 .. 18.49
        @oms = ", se clasifica como Bajo peso"
        
    when 18.5 .. 24.9
        @oms = ", se clasifica como Adecuado"

    when 25.0 .. 29.9
        @oms = ", se clasifica como Sobrepeso"
        
    when 30.0 .. 34.9
        @oms = ", se clasifica como Obesidad grado 1"

    when 35.0 .. 39.9
        @oms = ", se clasifica como Obesidad grado 2"
              
    else
        @oms = ", se clasifica como Obesidad grado 3"
    end

end

Método para clasificar el individuo según el IMC que obtengamos



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/nutricion/icc.rb', line 117

def descripcion_popular(imc)
    
    case @imc
    
    when (0 .. 18.49)
        @descripcion = " y segun la descripcion popular se considera Delgado."
        
    when (18.5 .. 24.9)
        @descripcion = " y segun la descripcion popular se considera Aceptable."

    when (25.0 .. 29.9)
        @descripcion = " y segun la descripcion popular se considera Sobrepeso."
        
    when (30.0 .. 34.9)
        @descripcion = " y segun la descripcion popular se considera Obesidad."

    when (35.0 .. 39.9)
        @descripcion = " y segun la descripcion popular se considera Obesidad."
              
    else
        @descripcion = " y segun la descripcion popular se considera Obesidad."
    end

end

#media_vector(vector) ⇒ Object

Método para calcular las medias de los vectores



172
173
174
175
176
177
178
179
# File 'lib/nutricion/icc.rb', line 172

def media_vector(vector) 
    
    suma = 0
    vector.each { |num| suma += num }
    resultado = (suma/vector.length).round(2)
    resultado
        
end

#obtener_efec_termogenoObject

Método para obtener el cálculo del efecto termógeno (gasto energético que necesita el paciente para procesar los alimentos)



306
307
308
309
310
311
312
# File 'lib/nutricion/icc.rb', line 306

def obtener_efec_termogeno()
    if (@sexo == 0)
        @efecto_termogeno = @gasto_energetico_basal * 0.10
    else
        @efecto_termogeno = @gasto_energetico_basal * 0.10
    end
end

#obtener_gasto_ener_basal_pacienteObject

Método para obtener el gasto de energía (Kcal) basal del paciente (energía que usa el cuerpo de forma natural, por estar vivo)



296
297
298
299
300
301
302
# File 'lib/nutricion/icc.rb', line 296

def obtener_gasto_ener_basal_paciente()
    if (@sexo == 0)
        @gasto_energetico_basal = (10.0*@peso) + (6.25 * @altura) - (5.0*@edad) - 161.0
    else
        @gasto_energetico_basal = (10.0*@peso) + (6.25 * @altura) - (5.0*@edad) + 5.0
    end   
end

#obtener_gasto_fisicoObject

Método para obtener el cálculo del gasto que tiene la persona según la actividad física que realice



316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
# File 'lib/nutricion/icc.rb', line 316

def obtener_gasto_fisico()
    
    case @actividad
        when "reposo"
            @factor = 0.0
        when "ligera"
            @factor = 0.12
        when "moderada"
            @factor = 0.27
        else 
            @factor = 0.54
    end

    @gasto_act = @gasto_energetico_basal * @factor
    
end

#obtener_gasto_totalObject

Método para obtener el gasto total del individuo (basal + ejercicio + termógeno)



335
336
337
338
# File 'lib/nutricion/icc.rb', line 335

def obtener_gasto_total()
    @gasto_energetico_total = @gasto_energetico_basal + @efecto_termogeno + @gasto_act
    @gasto_energetico_total.round(2)
end

#obtener_peso_idealObject

Método para obtener el peso ideal que debería tener el paciente



289
290
291
292
# File 'lib/nutricion/icc.rb', line 289

def obtener_peso_ideal()
   @peso_t_i = (@altura - 1.50) * 0.75 + 50
   @peso_t_i
end

#to_sObject

Método para mostrar los resultados



342
343
344
345
346
347
348
349
350
351
352
# File 'lib/nutricion/icc.rb', line 342

def to_s()

    @resumen = super
    @resumen <<     "El IMC del individuo #{@nombre} es #{@imc}#{@oms}#{@descripcion}#{@grasa} " + 
                    "\nPliegues cutáneos(mm) \nMedia tricipital: #{@tricipital} \nMedia bicipital: #{@bicipital} \nMedia subescapular: #{@subescapular} \nMedia suprailiaco: #{@suprailiaco} " +
                    "\nCircunferencias(mm): \nMedia cintura: #{@cintura} \nMedia cadera: #{@cadera} \nMedia brazo: #{@brazo}" +
                    "#{@rcc}#{@descripcion_rcc}"
    
    @resumen
    
end