Sha256: 83961902a2f46aa7cec52a6eeb9ac5c0e9719afa0ea73c37f0390a77fc87f2a9

Contents?: true

Size: 1.36 KB

Versions: 86

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

require_dependency "renalware"

module Renalware
  module Clinical
    class ProfilePresenter
      attr_reader :patient, :params
      delegate :allergies, :document, to: :patient

      def initialize(patient:, params:)
        @params = params
        @patient = Clinical.cast_patient(patient)
      end

      def swabs
        @swabs ||= Renalware::Events::Swab.for_patient(patient)
                                          .ordered
                                          .page(params[:page])
                                          .per(params.fetch(:per_page, 10))
      end

      def smoking_history
        history.smoking || NullObject.instance
      end

      def alcohol_history
        history.alcohol || NullObject.instance
      end

      def history
        document.history || NullObject.instance
      end

      %i(diabetes).each do |document_attribute|
        define_method(document_attribute) do
          document.send(document_attribute) || NullObject.instance
        end
      end

      def dry_weights
        @dry_weights ||= DryWeight.for_patient(patient).ordered
      end

      def body_compositions
        @body_compositions ||= begin
          BodyComposition
            .for_patient(patient)
            .includes([:modality_description, :assessor])
            .ordered
        end
      end
    end
  end
end

Version data entries

86 entries across 86 versions & 1 rubygems

Version Path
renalware-core-2.0.48 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.47 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.46 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.45 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.44 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.43 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.42 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.41 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.40 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.39 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.38 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.37 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.36 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.35 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.34 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.33 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.32 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.31 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.30 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.28 app/presenters/renalware/clinical/profile_presenter.rb