Sha256: 183fceff5fad7a2ab1f638d6e62c12d38ef573cb3a9176bcaa4e5b4d74d88fc3

Contents?: true

Size: 1.63 KB

Versions: 15

Compression:

Stored size: 1.63 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/problems"

module Renalware
  module Problems
    class Problem < ApplicationRecord
      include PatientScope
      include Accountable
      include Sortable

      acts_as_paranoid

      has_paper_trail(
        versions: { class_name: "Renalware::Problems::Version" },
        on: [:create, :update, :destroy]
      )

      belongs_to :patient, touch: true
      has_many :notes, -> { ordered }, dependent: :destroy

      scope :ordered, -> { order(position: :asc) }
      scope :with_notes, -> { eager_load(:notes).merge(Renalware::Problems::Note.ordered) }
      scope :with_patient, -> { includes(:patient) }
      scope :with_versions, -> { includes(versions: :item) }

      # This scope is called by Sortable concern
      scope :position_sorting_scope, ->(problem) { where(patient_id: problem.patient.id) }

      validates :patient, presence: true
      validates :description, presence: true

      def self.with_archived
        with_deleted
      end

      def self.current
        all.with_notes
      end

      def self.archived
        only_deleted.with_notes
      end

      def archived?
        deleted?
      end

      def archived_at
        deleted_at
      end

      def archived_on
        deleted_at.to_date
      end

      def created_on
        created_at.to_date
      end

      def updated_on
        updated_at.to_date
      end

      def self.reject_if_proc
        proc { |attrs| attrs[:description].blank? }
      end

      def full_description
        description
      end

      def formatted
        "#{full_description}, #{date}"
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/models/renalware/problems/problem.rb
renalware-core-2.1.0 app/models/renalware/problems/problem.rb
renalware-core-2.0.167 app/models/renalware/problems/problem.rb
renalware-core-2.0.166 app/models/renalware/problems/problem.rb
renalware-core-2.0.165 app/models/renalware/problems/problem.rb
renalware-core-2.0.164 app/models/renalware/problems/problem.rb
renalware-core-2.0.163 app/models/renalware/problems/problem.rb
renalware-core-2.0.162 app/models/renalware/problems/problem.rb
renalware-core-2.0.161 app/models/renalware/problems/problem.rb
renalware-core-2.0.160 app/models/renalware/problems/problem.rb
renalware-core-2.0.159 app/models/renalware/problems/problem.rb
renalware-core-2.0.158 app/models/renalware/problems/problem.rb
renalware-core-2.0.157 app/models/renalware/problems/problem.rb
renalware-core-2.0.156 app/models/renalware/problems/problem.rb
renalware-core-2.0.155 app/models/renalware/problems/problem.rb