Sha256: 46d92a617e0f9868cb8fb1ddb22b21c232a26b6ba08d0318b3662a3255313167

Contents?: true

Size: 1.33 KB

Versions: 20

Compression:

Stored size: 1.33 KB

Contents

# frozen_string_literal: true

require_dependency "renalware"

module Renalware
  module Clinical
    class ProfilePresenter
      attr_reader :patient, :params
      delegate :allergies, to: :patient
      delegate :diagnosis, :diagnosed_on, to: :diabetes, prefix: true

      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
        patient.document.history || NullObject.instance
      end

      def diabetes
        patient.document.diabetes || NullObject.instance
      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

20 entries across 20 versions & 1 rubygems

Version Path
renalware-core-2.0.21 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.20 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.18 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.17 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.16 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.15 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.14 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.13 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.12 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.11 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.9 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.8 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.7 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.5 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.4 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.3 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.2 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.1 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.0 app/presenters/renalware/clinical/profile_presenter.rb
renalware-core-2.0.0.pre.rc13 app/presenters/renalware/clinical/profile_presenter.rb