Sha256: 101730ca3958338e52d2a159a880f4ca7012ac363816ef7bfaada19c1b063aba

Contents?: true

Size: 1.18 KB

Versions: 76

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/hospitals"

module Renalware
  module Hospitals
    class Unit < ApplicationRecord
      extend Enumerize

      UNIT_TYPE_RR8_MAP = {
        hospital: "HOSP",
        satellite: "SATL",
        home: "HOME"
      }.freeze

      belongs_to :hospital_centre, class_name: "Hospitals::Centre"
      has_many :wards,
               class_name: "Hospitals::Ward",
               foreign_key: :hospital_unit_id,
               dependent: :destroy,
               inverse_of: :hospital_unit

      validates :hospital_centre, presence: true
      validates :unit_code, presence: true
      validates :name, presence: true
      validates :renal_registry_code, presence: true
      validates :unit_type, presence: true

      enumerize :unit_type, in: %i(hospital satellite home)

      scope :ordered, -> { order(:name) }
      scope :hd_sites, -> { where(is_hd_site: true) }

      def self.policy_class
        BasePolicy
      end

      def to_s
        "#{name} (#{unit_code})"
      end

      # Map unit_type to its equivalent Renal Registry RR8 code.
      def unit_type_rr8
        UNIT_TYPE_RR8_MAP[unit_type.to_sym]
      end
    end
  end
end

Version data entries

76 entries across 76 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/models/renalware/hospitals/unit.rb
renalware-core-2.1.0 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.167 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.166 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.165 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.164 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.163 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.162 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.161 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.160 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.159 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.158 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.157 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.156 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.155 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.153 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.152 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.151 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.149 app/models/renalware/hospitals/unit.rb
renalware-core-2.0.148 app/models/renalware/hospitals/unit.rb