Class: Renalware::UKRDC::Outgoing::Rendering::HDSessionObservations

Inherits:
Observation
  • Object
show all
Defined in:
app/models/renalware/ukrdc/outgoing/rendering/hd_session_observations.rb

Instance Method Summary collapse

Methods inherited from Observation

#xml

Instance Method Details

#create_observation_nodes_under(parent_element) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/models/renalware/ukrdc/outgoing/rendering/hd_session_observations.rb', line 10

def create_observation_nodes_under(parent_element)
  pre_and_post_observations.each do |pre_or_post, observations|
    measurements_for(observations).each do |i18n_key, value|
      parent_element << Rendering::Observation.new(
        observed_at: observation_times[pre_or_post].iso8601,
        measurement: value.to_s[0, 19].strip,
        i18n_key: i18n_key,
        pre_post: pre_or_post.to_s.upcase # eg PRE or POST
      ).xml
    end
  end
end

#measurements_for(observations) ⇒ Object



40
41
42
43
44
45
46
# File 'app/models/renalware/ukrdc/outgoing/rendering/hd_session_observations.rb', line 40

def measurements_for(observations)
  {
    "blood_pressure.systolic" => observations.blood_pressure&.systolic,
    "blood_pressure.diastolic" => observations.blood_pressure&.diastolic,
    "weight" => coerce_to_float(observations.weight)
  }
end

#observation_timesObject



23
24
25
26
27
28
29
30
31
# File 'app/models/renalware/ukrdc/outgoing/rendering/hd_session_observations.rb', line 23

def observation_times
  @observation_times ||= begin
    performed_on = session.performed_on.to_datetime
    {
      pre: performed_on + session.start_time.seconds_since_midnight.seconds,
      post: performed_on + session.end_time.seconds_since_midnight.seconds
    }
  end
end

#pre_and_post_observationsObject



33
34
35
36
37
38
# File 'app/models/renalware/ukrdc/outgoing/rendering/hd_session_observations.rb', line 33

def pre_and_post_observations
  {
    pre: session.document.observations_before,
    post: session.document.observations_after
  }
end