Class: Paciente
Overview
Clase Paciente que hereda de Individuo
Instance Attribute Summary collapse
-
#actividad ⇒ Object
readonly
Returns the value of attribute actividad.
-
#bicipital ⇒ Object
readonly
Returns the value of attribute bicipital.
-
#brazo ⇒ Object
readonly
Returns the value of attribute brazo.
-
#cadera ⇒ Object
readonly
Returns the value of attribute cadera.
-
#cintura ⇒ Object
readonly
Returns the value of attribute cintura.
-
#descripcion ⇒ Object
readonly
Returns the value of attribute descripcion.
-
#descripcion_rcc ⇒ Object
readonly
Returns the value of attribute descripcion_rcc.
-
#edad ⇒ Object
readonly
Returns the value of attribute edad.
-
#efecto_termogeno ⇒ Object
readonly
Returns the value of attribute efecto_termogeno.
-
#gasto_actividad ⇒ Object
readonly
Returns the value of attribute gasto_actividad.
-
#gasto_energ_basal ⇒ Object
readonly
Returns the value of attribute gasto_energ_basal.
-
#gasto_energ_total ⇒ Object
readonly
Returns the value of attribute gasto_energ_total.
-
#grasa ⇒ Object
readonly
Returns the value of attribute grasa.
-
#imc ⇒ Object
readonly
Returns the value of attribute imc.
-
#nombre ⇒ Object
readonly
Returns the value of attribute nombre.
-
#oms ⇒ Object
readonly
Returns the value of attribute oms.
-
#peso ⇒ Object
readonly
Returns the value of attribute peso.
-
#peso_t_i ⇒ Object
readonly
Returns the value of attribute peso_t_i.
-
#rcc ⇒ Object
readonly
Returns the value of attribute rcc.
-
#sexo ⇒ Object
readonly
Returns the value of attribute sexo.
-
#subescapular ⇒ Object
readonly
Returns the value of attribute subescapular.
-
#suprailiaco ⇒ Object
readonly
Returns the value of attribute suprailiaco.
-
#talla ⇒ Object
readonly
Returns the value of attribute talla.
-
#tricipital ⇒ Object
readonly
Returns the value of attribute tricipital.
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Método comparable.
-
#calculo_circunferencia_brazo(brazo) ⇒ Object
Método para calcular la circunferencia del brazo que faltaba por calcular:.
-
#calculo_efecto_termogeno ⇒ Object
Método que calcula el efecto termógeno del paciente.
-
#calculo_gasto_actividad_fisica ⇒ Object
Método que calcula el gasto de actividad física del paciente, en función a su actividad.
-
#calculo_gasto_energ_total ⇒ Object
Método que calcula el gasto energético total del paciente.
-
#calculo_gasto_energetico_basal ⇒ Object
Método que calcula el gasto energético basal según el sexo del paciente.
-
#calculo_grasa(imc, edad, sexo) ⇒ Object
Método para calcular el porcentaje de grasa según el valor del imc, edad y sexo de la persona.
-
#calculo_imc(peso, talla) ⇒ Object
Método para calcular el valor de imc dado el peso y altura de la persona:.
-
#calculo_media_pliegues(tricipital, bicipital, subescapular, suprailiaco) ⇒ Object
Método para calcular la media de cada uno de los pliegues:.
-
#calculo_peso_teorico_ideal ⇒ Object
Método que calcula el peso teórico ideal del paciente.
-
#calculo_rcc(cintura, cadera, sexo) ⇒ Object
Método para calcular la relación cadera-cintura dado las medias de estas y el sexo de la persona:.
-
#clasificar_imc(imc) ⇒ Object
Método para clasificar el imc según la tabla:.
-
#descripcion_popular(imc) ⇒ Object
Método para clasificar el imc según la descripción popular:.
-
#initialize(nombre, peso, talla, edad, sexo, cintura, cadera, brazo, tricipital, bicipital, subescapular, suprailiaco, actividad) ⇒ Paciente
constructor
Método initialize:.
-
#to_s ⇒ Object
Método para poder ver los valores que toman nuestras variables de instancia y así poder verificar la veracidad de los datos con respecto a los resultados de las pruebas:.
Constructor Details
#initialize(nombre, peso, talla, edad, sexo, cintura, cadera, brazo, tricipital, bicipital, subescapular, suprailiaco, actividad) ⇒ Paciente
Método initialize:
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 |
# File 'lib/InforNutricional/icc.rb', line 39 def initialize(nombre, peso, talla, edad, sexo, cintura, cadera, brazo, tricipital, bicipital, subescapular, suprailiaco, actividad) # Heredando datos básicos de Individuo super(nombre, edad, sexo) #Variables de instancia: @peso = peso @talla = talla @cintura = cintura @cadera = cadera @brazo = brazo @tricipital = tricipital @bicipital = bicipital @subescapular = subescapular @suprailiaco = suprailiaco @actividad = actividad #Metodos: calculo_imc(peso, talla) clasificar_imc(imc) descripcion_popular(imc) calculo_grasa(imc, edad, sexo) calculo_rcc(cintura, cadera, sexo) calculo_circunferencia_brazo(brazo) calculo_media_pliegues(tricipital, bicipital, subescapular, suprailiaco) calculo_peso_teorico_ideal() calculo_gasto_energetico_basal() calculo_efecto_termogeno() calculo_gasto_actividad_fisica() calculo_gasto_energ_total() end |
Instance Attribute Details
#actividad ⇒ Object (readonly)
Returns the value of attribute actividad.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def actividad @actividad end |
#bicipital ⇒ Object (readonly)
Returns the value of attribute bicipital.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def bicipital @bicipital end |
#brazo ⇒ Object (readonly)
Returns the value of attribute brazo.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def brazo @brazo end |
#cadera ⇒ Object (readonly)
Returns the value of attribute cadera.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def cadera @cadera end |
#cintura ⇒ Object (readonly)
Returns the value of attribute cintura.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def cintura @cintura end |
#descripcion ⇒ Object (readonly)
Returns the value of attribute descripcion.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def descripcion @descripcion end |
#descripcion_rcc ⇒ Object (readonly)
Returns the value of attribute descripcion_rcc.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def descripcion_rcc @descripcion_rcc end |
#edad ⇒ Object (readonly)
Returns the value of attribute edad.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def edad @edad end |
#efecto_termogeno ⇒ Object (readonly)
Returns the value of attribute efecto_termogeno.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def efecto_termogeno @efecto_termogeno end |
#gasto_actividad ⇒ Object (readonly)
Returns the value of attribute gasto_actividad.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def gasto_actividad @gasto_actividad end |
#gasto_energ_basal ⇒ Object (readonly)
Returns the value of attribute gasto_energ_basal.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def gasto_energ_basal @gasto_energ_basal end |
#gasto_energ_total ⇒ Object (readonly)
Returns the value of attribute gasto_energ_total.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def gasto_energ_total @gasto_energ_total end |
#grasa ⇒ Object (readonly)
Returns the value of attribute grasa.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def grasa @grasa end |
#imc ⇒ Object (readonly)
Returns the value of attribute imc.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def imc @imc end |
#nombre ⇒ Object (readonly)
Returns the value of attribute nombre.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def nombre @nombre end |
#oms ⇒ Object (readonly)
Returns the value of attribute oms.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def oms @oms end |
#peso ⇒ Object (readonly)
Returns the value of attribute peso.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def peso @peso end |
#peso_t_i ⇒ Object (readonly)
Returns the value of attribute peso_t_i.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def peso_t_i @peso_t_i end |
#rcc ⇒ Object (readonly)
Returns the value of attribute rcc.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def rcc @rcc end |
#sexo ⇒ Object (readonly)
Returns the value of attribute sexo.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def sexo @sexo end |
#subescapular ⇒ Object (readonly)
Returns the value of attribute subescapular.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def subescapular @subescapular end |
#suprailiaco ⇒ Object (readonly)
Returns the value of attribute suprailiaco.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def suprailiaco @suprailiaco end |
#talla ⇒ Object (readonly)
Returns the value of attribute talla.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def talla @talla end |
#tricipital ⇒ Object (readonly)
Returns the value of attribute tricipital.
35 36 37 |
# File 'lib/InforNutricional/icc.rb', line 35 def tricipital @tricipital end |
Instance Method Details
#<=>(other) ⇒ Object
Método comparable
122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/InforNutricional/icc.rb', line 122 def <=>(other) return nil unless other.instance_of?Paciente # @peso <=> other.peso # @talla <=> other.talla # @cintura <=> other.cintura # @cadera <=> other.cadera # @brazo <=> other.brazo # @tricipital <=> other.tricipital # @bicipital <=> other.bicipital # @subescapular <=> other.subescapular # @suprailiaco <=> other.suprailiaco @gasto_energ_total <=> other.gasto_energ_total end |
#calculo_circunferencia_brazo(brazo) ⇒ Object
Método para calcular la circunferencia del brazo que faltaba por calcular:
273 274 275 276 277 278 279 |
# File 'lib/InforNutricional/icc.rb', line 273 def calculo_circunferencia_brazo(brazo) suma = 0 brazo.each { |num| suma += num } @brazo = (suma/brazo.length).round(2) end |
#calculo_efecto_termogeno ⇒ Object
Método que calcula el efecto termógeno del paciente.
89 90 91 92 93 94 95 96 97 |
# File 'lib/InforNutricional/icc.rb', line 89 def calculo_efecto_termogeno() if (@sexo == 0) @efecto_termogeno = @gasto_energ_basal*0.10 else @efecto_termogeno = @gasto_energ_basal*0.10 end @efecto_termogeno = @efecto_termogeno.round(3) end |
#calculo_gasto_actividad_fisica ⇒ Object
Método que calcula el gasto de actividad física del paciente, en función a su actividad.
100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/InforNutricional/icc.rb', line 100 def calculo_gasto_actividad_fisica() case @actividad when "reposo" @factor_act = 0.0 when "ligera" @factor_act = 0.12 when "moderada" @factor_act = 0.27 else @factor_act = 0.54 end @gasto_actividad = @gasto_energ_basal * @factor_act @gasto_actividad = @gasto_actividad.round(4) end |
#calculo_gasto_energ_total ⇒ Object
Método que calcula el gasto energético total del paciente
116 117 118 119 |
# File 'lib/InforNutricional/icc.rb', line 116 def calculo_gasto_energ_total() @gasto_energ_total = @gasto_energ_basal + @efecto_termogeno + @gasto_actividad @gasto_energ_total.round(3) end |
#calculo_gasto_energetico_basal ⇒ Object
Método que calcula el gasto energético basal según el sexo del paciente.
79 80 81 82 83 84 85 86 |
# File 'lib/InforNutricional/icc.rb', line 79 def calculo_gasto_energetico_basal() if (@sexo == 0) @gasto_energ_basal = (10.0*@peso) + (6.25 * @talla) - (5.0*@edad) - 161.0 else @gasto_energ_basal = (10.0*@peso) + (6.25 * @talla) - (5.0*@edad) + 5.0 end @gasto_energ_basal.round(3) end |
#calculo_grasa(imc, edad, sexo) ⇒ Object
Método para calcular el porcentaje de grasa según el valor del imc, edad y sexo de la persona. Son necesarios datos auxiliares para realizar el cálculo:
202 203 204 205 206 207 208 209 210 211 |
# File 'lib/InforNutricional/icc.rb', line 202 def calculo_grasa(imc, edad, sexo) aux1 = 1.2 aux2 = 0.23 aux3 = 10.8 aux4 = 5.4 grasa = (aux1*imc) + (aux2*edad) - (aux3*sexo) - aux4 @grasa = grasa.round(2) end |
#calculo_imc(peso, talla) ⇒ Object
Método para calcular el valor de imc dado el peso y altura de la persona:
137 138 139 140 |
# File 'lib/InforNutricional/icc.rb', line 137 def calculo_imc(peso, talla) imc = peso/(talla*talla) @imc = imc.round(2) end |
#calculo_media_pliegues(tricipital, bicipital, subescapular, suprailiaco) ⇒ Object
Método para calcular la media de cada uno de los pliegues:
283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 |
# File 'lib/InforNutricional/icc.rb', line 283 def calculo_media_pliegues(tricipital, bicipital, subescapular, suprailiaco) suma = 0 tricipital.each { |num| suma += num } @tricipital = (suma/tricipital.length).round(2) suma = 0 bicipital.each { |num| suma += num } @bicipital = (suma/bicipital.length).round(2) suma = 0 subescapular.each { |num| suma += num } @subescapular = (suma/subescapular.length).round(2) suma = 0 suprailiaco.each { |num| suma += num } @suprailiaco = (suma/suprailiaco.length).round(2) end |
#calculo_peso_teorico_ideal ⇒ Object
Método que calcula el peso teórico ideal del paciente
72 73 74 75 76 |
# File 'lib/InforNutricional/icc.rb', line 72 def calculo_peso_teorico_ideal() @peso_t_i = (@talla - 1.50) * 0.75 + 50 @peso_t_i.round(3) end |
#calculo_rcc(cintura, cadera, sexo) ⇒ Object
Método para calcular la relación cadera-cintura dado las medias de estas y el sexo de la persona:
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 269 |
# File 'lib/InforNutricional/icc.rb', line 214 def calculo_rcc(cintura, cadera, sexo) #Necesito calcular las medias de cintura suma = 0 cintura.each { |num| suma += num } @cintura = (suma/cintura.length).round(2) #Necesito calcular las medias de cadera suma = 0 cadera.each { |num| suma += num } @cadera = (suma/cadera.length).round(2) #Una vez tengo los datos calculo su rcc rcc = (@cintura/@cadera).round(2) @rcc = "#{rcc}" #Determinando a partir del valor del rcc, el riesgo de la persona. #Hombres if (sexo == 1) case rcc when (0 .. 0.82) @descripcion_rcc = "que los datos obtenidos son demasiado bajos." when (0.83 .. 0.88) @descripcion_rcc = "bajo." when (0.89 .. 0.95) @descripcion_rcc = "moderado." when (0.96 .. 1.01) @descripcion_rcc = "alto." else @descripcion_rcc = "muy alto." end end #Mujeres if (sexo == 0) case rcc when 0 .. 0.71 @descripcion_rcc = "que los datos obtenidos son demasiado bajos." when 0.72 .. 0.75 @descripcion_rcc = "bajo." when 0.76 .. 0.78 @descripcion_rcc = "bajo-moderado." when 0.78 .. 0.82 @descripcionn_rcc = "moderado." else @descripcion_rcc = "alto." end end end |
#clasificar_imc(imc) ⇒ Object
Método para clasificar el imc según la tabla:
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
# File 'lib/InforNutricional/icc.rb', line 160 def clasificar_imc(imc) case @imc when 0 .. 18.49 @oms = "bajo peso" when 18.5 .. 24.9 @oms = "adecuado" when 25.0 .. 29.9 @oms = "sobrepeso" when 30.0 .. 34.9 @oms = "obesidad grado 1" when 35.0 .. 39.9 @oms = "obesidad grado 2" else @oms = "obesidad grado 3" end end |
#descripcion_popular(imc) ⇒ Object
Método para clasificar el imc según la descripción popular:
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
# File 'lib/InforNutricional/icc.rb', line 181 def descripcion_popular(imc) case @imc when (0 .. 18.49) @descripcion = "delgado." when (18.5 .. 24.9) @descripcion = "aceptable." when (25.0 .. 29.9) @descripcion = "sobrepeso." when (30.0 .. 34.9) @descripcion = "obesidad." when (35.0 .. 39.9) @descripcion = "obesidad." else @descripcion = "obesidad." end end |
#to_s ⇒ Object
Método para poder ver los valores que toman nuestras variables de instancia y así poder verificar la veracidad de los datos con respecto a los resultados de las pruebas:
145 146 147 148 149 150 151 152 153 154 155 156 |
# File 'lib/InforNutricional/icc.rb', line 145 def to_s() @output = super @output << "El IMC de la persona #{@nombre} es #{@imc}. Su peso es #{@peso} y su altura es #{@talla}. \nTeniendo en cuenta el imc se clasifica como #{@oms} y se considera #{@descripcion}" + " \n#{@nombre} tiene #{@edad} años, es con sexo=#{@sexo} y tiene un porcentaje de grasa de #{@grasa}." + " \nLa media de cintura es #{@cintura} y la media de cadera es #{@cadera}, por lo tanto la relación cadera-cintura(RCC) es #{@rcc}, parece ser #{@descripcion_rcc}" + " Asimismo, la media de la circunferencia de su brazo es #{@brazo}." + " \nLa media de los pliegues cutáneos(mm) es la siguiente: Media tricipital: #{@tricipital}; Media bicipital: #{@bicipital}; Media subescapular: #{@subescapular}; Media suprailiaco: #{@suprailiaco}." end |