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.84 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.83 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.82 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.81 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.80 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.79 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.78 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.77 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.76 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.75 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.74 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.73 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.72 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.71 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.70 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.69 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.68 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.67 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.64 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.63 app/models/renalware/letters/determine_counterpart_ccs.rb