Sha256: d446210d4d45944be1b2797b1e91cd8623f2a38087be023ecca1814e836f98ee

Contents?: true

Size: 1.49 KB

Versions: 149

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/pathology"

module Renalware
  module Pathology
    module Requests
      class GlobalRuleSetsTable
        def initialize(request_descriptions, clinics, rule_sets)
          @request_descriptions = request_descriptions
          @clinics = clinics
          @rule_sets = rule_sets
        end

        def rows
          @request_descriptions.map do |request_description|
            Row.new(request_description, @clinics, @rule_sets)
          end
        end
      end

      class Row
        attr_reader :request_description

        def initialize(request_description, clinics, rule_sets)
          @request_description = request_description
          @clinics = clinics
          @rule_sets = rule_sets
        end

        def columns
          @clinics.map do |clinic|
            Cell.new(request_description, clinic, @rule_sets)
          end
        end
      end

      class Cell
        attr_reader :request_description, :clinic

        def initialize(request_description, clinic, rule_sets)
          @request_description = request_description
          @clinic = clinic
          @rule_sets = rule_sets
        end

        def rule_sets
          grouped_rule_sets.fetch([request_description.id, clinic.id], [])
        end

        def grouped_rule_sets
          @grouped_rule_sets ||= @rule_sets.group_by do |rule_set|
            [rule_set.request_description_id, rule_set.clinic_id]
          end
        end
      end
    end
  end
end

Version data entries

149 entries across 149 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.1.0 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.167 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.166 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.165 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.164 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.163 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.162 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.161 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.160 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.159 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.158 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.157 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.156 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.155 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.153 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.152 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.151 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.149 app/models/renalware/pathology/requests/global_rule_sets_table.rb
renalware-core-2.0.148 app/models/renalware/pathology/requests/global_rule_sets_table.rb