Sha256: 36d176a387f6345ce15cae5ef402e2250f3255f46282e6b1b7148eadf8869320

Contents?: true

Size: 1.05 KB

Versions: 103

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/letters"

# A method object initialized with an instance of Letter responsible
# for determining the "counterpart CC's". A counterpart CC can be a patient,
# primary care physician or both.
#
module Renalware
  module Letters
    class DetermineCounterpartCCs < SimpleDelegator
      def call
        counterpart_css = []
        counterpart_css << build_recipient("patient", patient) if cc_patient?
        if cc_primary_care_physican?
          counterpart_css << build_recipient("primary_care_physician", primary_care_physician)
        end
        counterpart_css
      end

      private

      def cc_primary_care_physican?
        pcp = patient.primary_care_physician
        pcp&.cc_on_letter?(self)
      end

      def cc_patient?
        patient.cc_on_letter?(self)
      end

      def build_recipient(person_role, addressee)
        Recipient.new(
          person_role: person_role,
          role: :cc,
          addressee: addressee,
          letter: __getobj__
        )
      end
    end
  end
end

Version data entries

103 entries across 103 versions & 1 rubygems

Version Path
renalware-core-2.0.127 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.126 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.125 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.124 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.123 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.121 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.120 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.119 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.118 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.117 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.116 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.115 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.113 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.112 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.111 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.110 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.109 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.108 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.106 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.105 app/models/renalware/letters/determine_counterpart_ccs.rb