Class: Renalware::HD::Sessions::AuditableSessionCollection
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Renalware::HD::Sessions::AuditableSessionCollection
show all
- Defined in:
- app/models/renalware/hd/sessions/auditable_session_collection.rb
Defined Under Namespace
Classes: MeanValueStrategy
Constant Summary
collapse
- AUDITABLE_ATTRIBUTES =
%i(
number_of_missed_sessions
dialysis_minutes_shortfall
dialysis_minutes_shortfall_percentage
pre_mean_systolic_blood_pressure
pre_mean_diastolic_blood_pressure
post_mean_systolic_blood_pressure
post_mean_diastolic_blood_pressure
lowest_systolic_blood_pressure
highest_systolic_blood_pressure
mean_fluid_removal
mean_weight_loss
mean_weight_loss_as_percentage_of_body_weight
mean_machine_ktv
mean_blood_flow
mean_litres_processed
mean_ufr
number_of_sessions_with_dialysis_minutes_shortfall_gt_5_pct
).freeze
Instance Method Summary
collapse
Constructor Details
Returns a new instance of AuditableSessionCollection.
43
44
45
46
47
48
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 43
def initialize(sessions)
@sessions = Array(sessions).map do |session|
Renalware::HD::Sessions::AuditableSession.new(session)
end
super(@sessions)
end
|
Instance Method Details
#dialysis_minutes_shortfall ⇒ Object
85
86
87
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 85
def dialysis_minutes_shortfall
sessions.sum(&:dialysis_minutes_shortfall)
end
|
#dialysis_minutes_shortfall_percentage ⇒ Object
89
90
91
92
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 89
def dialysis_minutes_shortfall_percentage
selector = ->(session) { session.dialysis_minutes_shortfall_percentage }
MeanValueStrategy.new(sessions: closed_sessions, selector: selector).call.round(2)
end
|
#highest_systolic_blood_pressure ⇒ Object
81
82
83
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 81
def highest_systolic_blood_pressure
all_systolic_blood_pressure_measurements.max_by(&:systolic)
end
|
#lowest_systolic_blood_pressure ⇒ Object
77
78
79
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 77
def lowest_systolic_blood_pressure
all_systolic_blood_pressure_measurements.min_by(&:systolic)
end
|
#mean_blood_flow ⇒ Object
123
124
125
126
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 123
def mean_blood_flow
selector = ->(session) { session.document.dialysis.blood_flow }
MeanValueStrategy.new(sessions: closed_sessions, selector: selector).call
end
|
#mean_fluid_removal ⇒ Object
103
104
105
106
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 103
def mean_fluid_removal
selector = ->(session) { session.document.dialysis.fluid_removed }
MeanValueStrategy.new(sessions: closed_sessions, selector: selector).call
end
|
#mean_litres_processed ⇒ Object
128
129
130
131
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 128
def mean_litres_processed
selector = ->(session) { session.document.dialysis.litres_processed }
MeanValueStrategy.new(sessions: closed_sessions, selector: selector).call
end
|
#mean_machine_ktv ⇒ Object
118
119
120
121
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 118
def mean_machine_ktv
selector = ->(session) { session.document.dialysis.machine_ktv }
MeanValueStrategy.new(sessions: closed_sessions, selector: selector).call
end
|
#mean_ufr ⇒ Object
98
99
100
101
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 98
def mean_ufr
selector = ->(session) { session.ufr }
MeanValueStrategy.new(sessions: closed_sessions, selector: selector).call
end
|
#mean_weight_loss ⇒ Object
108
109
110
111
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 108
def mean_weight_loss
selector = ->(session) { session.weight_loss }
MeanValueStrategy.new(sessions: closed_sessions, selector: selector).call
end
|
#mean_weight_loss_as_percentage_of_body_weight ⇒ Object
113
114
115
116
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 113
def mean_weight_loss_as_percentage_of_body_weight
selector = ->(session) { session.weight_loss_as_percentage_of_body_weight }
MeanValueStrategy.new(sessions: closed_sessions, selector: selector).call
end
|
#number_of_missed_sessions ⇒ Object
57
58
59
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 57
def number_of_missed_sessions
sessions.count(&:dna?)
end
|
#number_of_sessions_with_dialysis_minutes_shortfall_gt_5_pct ⇒ Object
94
95
96
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 94
def number_of_sessions_with_dialysis_minutes_shortfall_gt_5_pct
sessions.count(&:dialysis_minutes_shortfall_gt_5_pct?)
end
|
#post_mean_diastolic_blood_pressure ⇒ Object
73
74
75
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 73
def post_mean_diastolic_blood_pressure
mean_blood_pressure(:observations_after, :diastolic)
end
|
#post_mean_systolic_blood_pressure ⇒ Object
69
70
71
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 69
def post_mean_systolic_blood_pressure
mean_blood_pressure(:observations_after, :systolic)
end
|
#pre_mean_diastolic_blood_pressure ⇒ Object
65
66
67
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 65
def pre_mean_diastolic_blood_pressure
mean_blood_pressure(:observations_before, :diastolic)
end
|
#pre_mean_systolic_blood_pressure ⇒ Object
61
62
63
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 61
def pre_mean_systolic_blood_pressure
mean_blood_pressure(:observations_before, :systolic)
end
|
#to_h ⇒ Object
50
51
52
53
54
55
|
# File 'app/models/renalware/hd/sessions/auditable_session_collection.rb', line 50
def to_h
AUDITABLE_ATTRIBUTES.each_with_object({}) do |sym, hash|
hash[sym] = public_send(sym)
hash
end
end
|