Sha256: 7ab30486f0e8d91b5ff63aa812f1736bad7e7eaedc3453a0a01c4195257068b6
Contents?: true
Size: 1.49 KB
Versions: 8
Compression:
Stored size: 1.49 KB
Contents
require "study_engine/config" module StudyEngine class ScreenResults < Struct.new(:groups) def each &block block.call header body block end private def header fields = ["Study ID"] StudyEngine.events.each do |event| fields += ["#{event} incomplete", "#{event} timestamp", "#{event} method", "#{event} coordinator", "#{event} note"] fields += ["#{event} set"] if StudyEngine.groups[event].present? end fields.flatten end def body block groups.each do |group| group.max_count.times do |count| col = [group.study_id.to_s] col = group.each_with_index.inject(col) do |col, (assessments, index)| col + assessment_segment(assessments[count], index) end block.call col end end end def assessment_segment assessment, index assessment ? existing_assessment(assessment) : empty_assessment(index) end def existing_assessment assessment summary = assessment.incomplete? && !assessment.by_mail? ? assessment.results_summary : "" col = [summary, assessment.assessment_updated_at.to_s, assessment.method_applied, assessment.coordinator.try(:email), assessment.notes.to_s] col << assessment.group_index_name if assessment.group_index col end def empty_assessment index col = ["", "", "", "", ""] event = StudyEngine.events[index] col << "" if StudyEngine.groups[event].present? col end end end
Version data entries
8 entries across 8 versions & 1 rubygems