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

Version Path
study_engine-0.3.1 app/models/study_engine/screen_results.rb
study_engine-0.3.0 app/models/study_engine/screen_results.rb
study_engine-0.2.2 app/models/study_engine/screen_results.rb
study_engine-0.2.1 app/models/study_engine/screen_results.rb
study_engine-0.2.0 app/models/study_engine/screen_results.rb
study_engine-0.1.1 app/models/study_engine/screen_results.rb
study_engine-0.1.0 app/models/study_engine/screen_results.rb
study_engine-0.0.2 app/models/study_engine/screen_results.rb