Sha256: 69da89a073083a8404078bebb19f4ce20f002bdb8c19e076d164bd69a2798937

Contents?: true

Size: 1.37 KB

Versions: 28

Compression:

Stored size: 1.37 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/pathology"

module Renalware
  module Pathology
    class Patient < ActiveType::Record[Renalware::Patient]
      has_many :observation_requests
      has_many :observations, through: :observation_requests
      has_many :current_observations, class_name: "Pathology::CurrentObservation"
      has_many :rules, class_name: "Requests::PatientRule"
      has_many :requests, class_name: "Requests::Request"

      def last_request_for_patient_rule(patient_rule)
        requests
          .includes(:patient_rules)
          .where(
            pathology_requests_patient_rules: { id: [patient_rule] }
          )
          .first
      end

      def required_observation_requests(clinic)
        Requests::GlobalAlgorithm.new(
          self, clinic, date: date_for_algorithms
        ).determine_required_request_descriptions
      end

      def required_patient_pathology
        Requests::PatientAlgorithm.new(
          self, date: date_for_algorithms
        ).determine_required_tests
      end

      def high_risk?
        Requests::HighRiskAlgorithm.new(self).patient_is_high_risk?
      end

      def fetch_current_observation_set
        current_observation_set || build_current_observation_set
      end

      private

      def date_for_algorithms
        @date_for_algorithms ||= Date.current
      end
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
renalware-core-2.0.39 app/models/renalware/pathology/patient.rb
renalware-core-2.0.38 app/models/renalware/pathology/patient.rb
renalware-core-2.0.37 app/models/renalware/pathology/patient.rb
renalware-core-2.0.36 app/models/renalware/pathology/patient.rb
renalware-core-2.0.35 app/models/renalware/pathology/patient.rb
renalware-core-2.0.34 app/models/renalware/pathology/patient.rb
renalware-core-2.0.33 app/models/renalware/pathology/patient.rb
renalware-core-2.0.32 app/models/renalware/pathology/patient.rb
renalware-core-2.0.31 app/models/renalware/pathology/patient.rb
renalware-core-2.0.30 app/models/renalware/pathology/patient.rb
renalware-core-2.0.28 app/models/renalware/pathology/patient.rb
renalware-core-2.0.27 app/models/renalware/pathology/patient.rb
renalware-core-2.0.26 app/models/renalware/pathology/patient.rb
renalware-core-2.0.25 app/models/renalware/pathology/patient.rb
renalware-core-2.0.24 app/models/renalware/pathology/patient.rb
renalware-core-2.0.23 app/models/renalware/pathology/patient.rb
renalware-core-2.0.22 app/models/renalware/pathology/patient.rb
renalware-core-2.0.21 app/models/renalware/pathology/patient.rb
renalware-core-2.0.20 app/models/renalware/pathology/patient.rb
renalware-core-2.0.18 app/models/renalware/pathology/patient.rb