Class: Paciente
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
-
#actividad ⇒ Object
readonly
Getters.
-
#altura ⇒ Object
readonly
Getters.
-
#bicipital ⇒ Object
readonly
Getters.
-
#brazo ⇒ Object
readonly
Getters.
-
#cadera ⇒ Object
readonly
Getters.
-
#cintura ⇒ Object
readonly
Getters.
-
#descripcion ⇒ Object
readonly
Getters.
-
#efecto_termogeno ⇒ Object
readonly
Getters.
-
#gasto_act ⇒ Object
readonly
Getters.
-
#gasto_energetico_basal ⇒ Object
readonly
Getters.
-
#gasto_energetico_total ⇒ Object
readonly
Getters.
-
#grasa ⇒ Object
readonly
Getters.
-
#imc ⇒ Object
readonly
Getters.
-
#oms ⇒ Object
readonly
Getters.
-
#peso ⇒ Object
readonly
Getters.
-
#peso_t_i ⇒ Object
readonly
Getters.
-
#rcc_total ⇒ Object
readonly
Getters.
-
#subescapular ⇒ Object
readonly
Getters.
-
#suprailiaco ⇒ Object
readonly
Getters.
-
#tricipital ⇒ Object
readonly
Getters.
Attributes inherited from Individuo
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Método para que la clase sea Comparable.
-
#calcular_circunferencias(brazo, cintura, cadera) ⇒ Object
Método para calcular las medias.
-
#calcular_imc(peso, altura) ⇒ Object
Método para realizar el calculo del IMC (Índice de Masa Corporal).
-
#calcular_rcc(cintura, cadera, sexo) ⇒ Object
Método para calcular el RCC.
-
#calculo_grasa(imc, edad, sexo) ⇒ Object
Método para calcular la cantidad de grasa.
-
#calculo_imc(peso, talla) ⇒ Object
Metodo para el calculo del imc.
-
#calculo_pliegues_cutaneos(tricipital, bicipital, subescapular, suprailiaco) ⇒ Object
Método para calcular el conjunto de pliegues.
-
#clasificacion_imc(imc) ⇒ Object
Método para clasificar el individuo según el imc que obtengamos.
-
#descripcion_popular(imc) ⇒ Object
Método para clasificar el individuo según el IMC que obtengamos.
-
#initialize(nombre, peso, altura, edad, sexo, tricipital, bicipital, subescapular, suprailiaco, brazo, cintura, cadera, actividad) ⇒ Paciente
constructor
Inicializar los valores.
-
#media_vector(vector) ⇒ Object
Método para calcular las medias de los vectores.
-
#obtener_efec_termogeno ⇒ Object
Método para obtener el cálculo del efecto termógeno (gasto energético que necesita el paciente para procesar los alimentos).
-
#obtener_gasto_ener_basal_paciente ⇒ Object
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).
-
#obtener_gasto_fisico ⇒ Object
Método para obtener el cálculo del gasto que tiene la persona según la actividad física que realice.
-
#obtener_gasto_total ⇒ Object
Método para obtener el gasto total del individuo (basal + ejercicio + termógeno).
-
#obtener_peso_ideal ⇒ Object
Método para obtener el peso ideal que debería tener el paciente.
-
#to_s ⇒ Object
Método para mostrar los resultados.
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
#actividad ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def actividad @actividad end |
#altura ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def altura @altura end |
#bicipital ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def bicipital @bicipital end |
#brazo ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def brazo @brazo end |
#cadera ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def cadera @cadera end |
#cintura ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def cintura @cintura end |
#descripcion ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def descripcion @descripcion end |
#efecto_termogeno ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def efecto_termogeno @efecto_termogeno end |
#gasto_act ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def gasto_act @gasto_act end |
#gasto_energetico_basal ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def gasto_energetico_basal @gasto_energetico_basal end |
#gasto_energetico_total ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def gasto_energetico_total @gasto_energetico_total end |
#grasa ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def grasa @grasa end |
#imc ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def imc @imc end |
#oms ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def oms @oms end |
#peso ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def peso @peso end |
#peso_t_i ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def peso_t_i @peso_t_i end |
#rcc_total ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def rcc_total @rcc_total end |
#subescapular ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def subescapular @subescapular end |
#suprailiaco ⇒ Object (readonly)
Getters
43 44 45 |
# File 'lib/nutricion/icc.rb', line 43 def suprailiaco @suprailiaco end |
#tricipital ⇒ Object (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 |
#descripcion_popular(imc) ⇒ Object
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_termogeno ⇒ Object
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_paciente ⇒ Object
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_fisico ⇒ Object
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_total ⇒ Object
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_ideal ⇒ Object
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_s ⇒ Object
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 |