Sha256: 8bf98afdd9898942dda53f482f22cb422f03160c9427f79e8447e76e13ef705d

Contents?: true

Size: 1.4 KB

Versions: 11

Compression:

Stored size: 1.4 KB

Contents

require_dependency "renalware/patients"

module Renalware
  module Patients
    # Represents a Primary Care Physician (PCP). The PCP could either be:
    # - a UK-based General Practitioner (GP)
    # - a foreign PCP or other referring physician
    #
    class PrimaryCarePhysician < ApplicationRecord
      include ActiveModel::Validations
      include Personable
      acts_as_paranoid

      has_one :address, as: :addressable
      has_many :patients
      has_many :practice_memberships
      has_many :practices, through: :practice_memberships

      accepts_nested_attributes_for :address, reject_if: Address.reject_if_blank

      validates_with PrimaryCarePhysicians::AddressValidator
      validates :code, uniqueness: true
      validates :practitioner_type, presence: true
      validates :name, presence: true
      alias_attribute :family_name, :name

      def full_name
        :name
      end

      def given_name
        ""
      end

      def skip_given_name_validation?
        true
      end

      scope :ordered, -> { order(name: :asc) }

      def title
        "Dr"
      end

      def salutation
        [title, name].join(" ")
      end

      def current_address
        address || practice_address
      end

      def practice_address
        address = practices.first.try(:address)
        address.name = "#{title} #{name}".strip if address.present?
        address
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
renalware-core-2.0.1 app/models/renalware/patients/primary_care_physician.rb
renalware-core-2.0.0 app/models/renalware/patients/primary_care_physician.rb
renalware-core-2.0.0.pre.rc13 app/models/renalware/patients/primary_care_physician.rb
renalware-core-2.0.0.pre.rc11 app/models/renalware/patients/primary_care_physician.rb
renalware-core-2.0.0.pre.rc10 app/models/renalware/patients/primary_care_physician.rb
renalware-core-2.0.0.pre.rc9 app/models/renalware/patients/primary_care_physician.rb
renalware-core-2.0.0.pre.rc8 app/models/renalware/patients/primary_care_physician.rb
renalware-core-2.0.0.pre.rc7 app/models/renalware/patients/primary_care_physician.rb
renalware-core-2.0.0.pre.rc6 app/models/renalware/patients/primary_care_physician.rb
renalware-core-2.0.0.pre.rc5 app/models/renalware/patients/primary_care_physician.rb
renalware-core-2.0.0.pre.rc4 app/models/renalware/patients/primary_care_physician.rb