Class: Renalware::PD::AdequacyCalculatedAttributes
- Inherits:
-
Object
- Object
- Renalware::PD::AdequacyCalculatedAttributes
- Defined in:
- app/models/renalware/pd/adequacy_calculated_attributes.rb
Instance Method Summary collapse
- #body_surface_area ⇒ Object
-
#dietry_protein_intake ⇒ Object
rubocop:disable Metrics/MethodLength,Metrics/AbcSize.
- #pertitoneal_creatinine_clearance ⇒ Object
- #pertitoneal_ktv ⇒ Object
- #renal_creatinine_clearance ⇒ Object
-
#renal_ktv ⇒ Object
rubocop:enable Metrics/MethodLength,Metrics/AbcSize.
- #renal_urine_clearance ⇒ Object
- #residual_renal_function ⇒ Object
- #to_h ⇒ Object
- #total_body_water ⇒ Object
- #total_creatinine_clearance ⇒ Object
- #total_ktv ⇒ Object
Instance Method Details
#body_surface_area ⇒ Object
143 144 145 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 143 def body_surface_area Clinics::BodySurfaceArea.calculate(weight: weight, height: height) end |
#dietry_protein_intake ⇒ Object
rubocop:disable Metrics/MethodLength,Metrics/AbcSize
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 88 def dietry_protein_intake return if urine_24_missing || dial_24_missing return if any_are_nil_or_zero?( dialysate_urea, dial_24_vol_out, urine_urea, urine_24_vol, weight ) ( ( 19.0 + 0.272 * ( (dialysate_urea * dial_24_vol_out / 1000.0) + (urine_urea * urine_24_vol / 1000.0) ) ) / weight ).round(2) end |
#pertitoneal_creatinine_clearance ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 66 def pertitoneal_creatinine_clearance return if dial_24_missing return if any_are_nil_or_zero?( dial_24_vol_out, serum_creatinine, dialysate_creatinine, body_surface_area ) ( (dialysate_creatinine * dial_24_vol_out / 1000.0) / serum_creatinine * 7.0 * 1.72 / body_surface_area ).to_i end |
#pertitoneal_ktv ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 123 def pertitoneal_ktv return if dial_24_missing return if any_are_nil_or_zero?( serum_urea, dialysate_urea, dial_24_vol_out, total_body_water ) ( (dialysate_urea / serum_urea * dial_24_vol_out / 1000.0 * 7.0) / total_body_water.to_f ).round(2) end |
#renal_creatinine_clearance ⇒ Object
45 46 47 48 49 50 51 52 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 45 def renal_creatinine_clearance return if urine_24_missing return if any_are_nil_or_zero?(urine_creatinine, serum_creatinine, urine_24_vol) ( (urine_creatinine * urine_24_vol) / serum_creatinine * 7.0 ).round(2) end |
#renal_ktv ⇒ Object
rubocop:enable Metrics/MethodLength,Metrics/AbcSize
109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 109 def renal_ktv return if urine_24_missing return if any_are_nil_or_zero?( urine_urea, serum_urea, urine_24_vol, total_body_water ) ( (urine_urea / serum_urea * urine_24_vol / 1000.0 * 7.0) / total_body_water.to_f ).round(2) end |
#renal_urine_clearance ⇒ Object
38 39 40 41 42 43 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 38 def renal_urine_clearance return if urine_24_missing return if any_are_nil_or_zero?(urine_urea, serum_urea, urine_24_vol) (urine_urea * urine_24_vol / 1000.0) / serum_urea * 7.0 end |
#residual_renal_function ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 54 def residual_renal_function return if any_are_nil_or_zero?( body_surface_area, renal_creatinine_clearance, renal_urine_clearance ) ( (renal_creatinine_clearance + renal_urine_clearance) / (2.0 * body_surface_area) * 1.72 ).to_i end |
#to_h ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 24 def to_h return {} unless adequacy { total_creatinine_clearance: total_creatinine_clearance, pertitoneal_creatinine_clearance: pertitoneal_creatinine_clearance, renal_creatinine_clearance: renal_creatinine_clearance, total_ktv: total_ktv, pertitoneal_ktv: pertitoneal_ktv, renal_ktv: renal_ktv, dietry_protein_intake: dietry_protein_intake } end |
#total_body_water ⇒ Object
147 148 149 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 147 def total_body_water Clinics::TotalBodyWater.calculate(height: height, weight: weight, age: age, sex: sex) end |
#total_creatinine_clearance ⇒ Object
81 82 83 84 85 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 81 def total_creatinine_clearance return if any_are_nil_or_zero?(residual_renal_function, pertitoneal_creatinine_clearance) residual_renal_function + pertitoneal_creatinine_clearance end |
#total_ktv ⇒ Object
137 138 139 140 141 |
# File 'app/models/renalware/pd/adequacy_calculated_attributes.rb', line 137 def total_ktv return if any_are_nil_or_zero?(renal_ktv, pertitoneal_ktv) (renal_ktv + pertitoneal_ktv).round(2) end |