Sha256: 1b0d7421feaeec10e4ce9f6bc472dcc3b23ad2e67f1a9890ef1a8873b1f7b224

Contents?: true

Size: 904 Bytes

Versions: 8

Compression:

Stored size: 904 Bytes

Contents

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") if cc_patient?
        counterpart_css << build_recipient("primary_care_physician") if cc_primary_care_physican?
        counterpart_css
      end

      private

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

      def cc_patient?
        patient.cc_on_letter?(self)
      end

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

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
renalware-core-2.0.0.pre.beta11 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.0.pre.beta10 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.0.pre.beta9 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.0.pre.beta8 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.0.pre.beta7 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.0.pre.beta6 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.0.pre.beta5 app/models/renalware/letters/determine_counterpart_ccs.rb
renalware-core-2.0.0.pre.beta4 app/models/renalware/letters/determine_counterpart_ccs.rb