Class: Paciente
- Includes:
- Comparable
- Defined in:
- lib/InformacionNutricional/paciente.rb
Overview
Esta clase permite ver los datos de un paciente Es una subclase de la clase Persona Se ha incluido el mixin Comparable
Instance Attribute Summary collapse
-
#age ⇒ Object
readonly
Getters de las variables de instancia.
-
#brazo ⇒ Object
readonly
Getters de las variables de instancia.
-
#fat ⇒ Object
readonly
Getters de las variables de instancia.
-
#get ⇒ Object
readonly
Getters de las variables de instancia.
-
#height ⇒ Object
readonly
Getters de las variables de instancia.
-
#hip ⇒ Object
readonly
Getters de las variables de instancia.
-
#imc ⇒ Object
readonly
Getters de las variables de instancia.
-
#media_brazo ⇒ Object
readonly
Getters de las variables de instancia.
-
#media_hip ⇒ Object
readonly
Getters de las variables de instancia.
-
#media_waist ⇒ Object
readonly
Getters de las variables de instancia.
-
#medias ⇒ Object
readonly
Getters de las variables de instancia.
-
#name ⇒ Object
readonly
Getters de las variables de instancia.
-
#nivel_act_fis ⇒ Object
readonly
Getters de las variables de instancia.
-
#pliegues ⇒ Object
readonly
Getters de las variables de instancia.
-
#rcc ⇒ Object
readonly
Getters de las variables de instancia.
-
#waist ⇒ Object
readonly
Getters de las variables de instancia.
-
#weight ⇒ Object
readonly
Getters de las variables de instancia.
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Se define para incluir el mixin Comparable Se toma como valor para la comparación el imc de los pacientes (Valor que devuelve la función calculo_imc).
-
#==(other) ⇒ Object
Override del == Se toman para considerar iguales: nombre, imc y rcc.
-
#calculo_imc ⇒ Object
Devuelve el imc del paciente.
-
#calculo_pliegues ⇒ Object
Devuelve las medidas de los pliegues del paciente.
-
#calculo_rcc ⇒ Object
Devuelve el RCC del paciente.
-
#gasto_energetico ⇒ Object
Devuelve el gasto energético total.
-
#initialize(name, age, sexo, weight, height, waist, hip, tricipital, bicipital, subescapular, suprailiaco, brazo, nivel_act_fis) ⇒ Paciente
constructor
Se genera el objeto con los datos proporcionados.
-
#nivel_actividad ⇒ Object
Devuelve el nivel de actividad física.
-
#porcentaje_fat ⇒ Object
Devuelve el porcentaje de grasa del paciente.
-
#to_s ⇒ Object
Override del to_s.
Methods inherited from Persona
Constructor Details
#initialize(name, age, sexo, weight, height, waist, hip, tricipital, bicipital, subescapular, suprailiaco, brazo, nivel_act_fis) ⇒ Paciente
Se genera el objeto con los datos proporcionados
19 20 21 22 23 24 |
# File 'lib/InformacionNutricional/paciente.rb', line 19 def initialize(name, age, sexo, weight, height, waist, hip, tricipital, bicipital, subescapular, suprailiaco, brazo, nivel_act_fis) super(name, age, sexo) @weight, @height, @waist, @hip = weight, height, waist, hip @pliegues = [tricipital, bicipital, subescapular, suprailiaco] @brazo, @nivel_act_fis = brazo, nivel_act_fis end |
Instance Attribute Details
#age ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def age @age end |
#brazo ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def brazo @brazo end |
#fat ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def fat @fat end |
#get ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def get @get end |
#height ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def height @height end |
#hip ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def hip @hip end |
#imc ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def imc @imc end |
#media_brazo ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def media_brazo @media_brazo end |
#media_hip ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def media_hip @media_hip end |
#media_waist ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def media_waist @media_waist end |
#medias ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def medias @medias end |
#name ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def name @name end |
#nivel_act_fis ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def nivel_act_fis @nivel_act_fis end |
#pliegues ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def pliegues @pliegues end |
#rcc ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def rcc @rcc end |
#waist ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def waist @waist end |
#weight ⇒ Object (readonly)
Getters de las variables de instancia
16 17 18 |
# File 'lib/InformacionNutricional/paciente.rb', line 16 def weight @weight end |
Instance Method Details
#<=>(other) ⇒ Object
Se define para incluir el mixin Comparable Se toma como valor para la comparación el imc de los pacientes (Valor que devuelve la función calculo_imc)
106 107 108 109 |
# File 'lib/InformacionNutricional/paciente.rb', line 106 def <=> (other) return nil unless other.is_a?Paciente gasto_energetico <=> other.gasto_energetico end |
#==(other) ⇒ Object
Override del == Se toman para considerar iguales: nombre, imc y rcc
113 114 115 116 |
# File 'lib/InformacionNutricional/paciente.rb', line 113 def == (other) return nil unless other.is_a?Paciente (@name == other.name) && (calculo_imc == other.calculo_imc) && (calculo_rcc == other.calculo_rcc) end |
#calculo_imc ⇒ Object
Devuelve el imc del paciente
27 28 29 |
# File 'lib/InformacionNutricional/paciente.rb', line 27 def calculo_imc @imc = (@weight/@height**2).round(2) end |
#calculo_pliegues ⇒ Object
Devuelve las medidas de los pliegues del paciente
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/InformacionNutricional/paciente.rb', line 37 def calculo_pliegues @medias = [] @pliegues.each do |pliegue| suma = 0 pliegue.each do |elemento| suma += elemento end @medias << (suma/pliegue.length).round(2) end suma_brazo = 0 @brazo.each do |elemento| suma_brazo += elemento end @media_brazo = (suma_brazo/@brazo.length).round(2) end |
#calculo_rcc ⇒ Object
Devuelve el RCC del paciente
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/InformacionNutricional/paciente.rb', line 56 def calculo_rcc suma = 0 @waist.each do |elemento| suma += elemento end @media_waist = suma/@waist.length suma = 0 @hip.each do |elemento| suma += elemento end @media_hip = suma/@hip.length @rcc = (@media_waist/@media_hip).round(2) end |
#gasto_energetico ⇒ Object
Devuelve el gasto energético total
85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/InformacionNutricional/paciente.rb', line 85 def gasto_energetico basal = (10 * @weight) + (6.25 * @height) - (5 * @age) if sex == 0 basal -= 161 else basal += 5 end termogeno = basal * 0.10 actividad = basal * @nivel_act_fis @get = (basal + termogeno + actividad).round(2) end |
#nivel_actividad ⇒ Object
Devuelve el nivel de actividad física
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/InformacionNutricional/paciente.rb', line 71 def nivel_actividad case @nivel_act_fis when 1 @nivel_act_fis = 0.0 when 2 @nivel_act_fis = 0.12 when 3 @nivel_act_fis = 0.27 when 4 @nivel_act_fis = 0.54 end end |
#porcentaje_fat ⇒ Object
Devuelve el porcentaje de grasa del paciente
32 33 34 |
# File 'lib/InformacionNutricional/paciente.rb', line 32 def porcentaje_fat @fat = (1.2 * @imc + 0.23 * @age - 10.8 * @sex - 5.4).round(2) end |
#to_s ⇒ Object
Override del to_s
98 99 100 101 |
# File 'lib/InformacionNutricional/paciente.rb', line 98 def to_s array = super() array += ", IMC: #{@imc}, Grasa: #{@fat}%, Tricipital: #{@medias[0]}, Bicipital: #{@medias[1]}, Subescapular: #{@medias[2]}, Suprailíaco: #{@medias[3]}, Brazo: #{@media_brazo}, RCC: #{@rcc}" end |