Sha256: 92b0baa86370f817415724c8ddb080b2835287a49de19fdce5235049182066ff

Contents?: true

Size: 1.09 KB

Versions: 9

Compression:

Stored size: 1.09 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 Personable
      include ActiveModel::Validations

      has_one :address, as: :addressable
      has_and_belongs_to_many :practices
      has_many :patients

      accepts_nested_attributes_for :address, reject_if: Address.reject_if_blank

      validates_with PrimaryCarePhysicians::AddressValidator
      validates :email, email: true, allow_blank: true
      validates_uniqueness_of :code
      validates_presence_of :practitioner_type

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

      def title
        "Dr"
      end

      def current_address
        address || practice_address
      end

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

Version data entries

9 entries across 9 versions & 1 rubygems

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