class Spout::Models::Graphables::NumericVsChoices

Public Instance Methods

categories() click to toggle source
# File lib/spout/models/graphables/numeric_vs_choices.rb, line 9
def categories
  categories_result = []
  @stratification_variable.domain.options.each do |option|
    visit_subjects = @subjects.select{ |s| s._visit == option.value and s.send(@variable.id) != nil } rescue visit_subjects = []
    if visit_subjects.count > 0
      categories_result << option.display_name
    end
  end
  categories_result
end
series() click to toggle source
# File lib/spout/models/graphables/numeric_vs_choices.rb, line 24
def series
  data = []

  @stratification_variable.domain.options.each do |option|
    visit_subjects = @subjects.select{ |s| s._visit == option.value and s.send(@variable.id) != nil } rescue visit_subjects = []
    if visit_subjects.count > 0
      filtered_domain_options(@chart_variable).each_with_index do |filtered_option, index|
        values = visit_subjects.select{|s| s.send(@chart_variable.id) == filtered_option.value }.collect(&@variable.id.to_sym)
        data[index] ||= []
        data[index] << (values.mean.round(2) rescue 0.0)
      end
    end
  end

  filtered_domain_options(@chart_variable).each_with_index.collect do |option, index|
    { name: option.display_name, data: data[index] }
  end
end
units() click to toggle source
# File lib/spout/models/graphables/numeric_vs_choices.rb, line 20
def units
  @variable.units
end