Sha256: 740dbaa715bc906ac0585a5f9ee6e7d94537cfabf63694074da164e4be32dc45

Contents?: true

Size: 1.18 KB

Versions: 24

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/admissions"

module Renalware
  module Admissions
    class ConsultQuery
      attr_reader :query

      def initialize(query = nil)
        @query = query || {}
        @query[:ended_on_null] ||= true
        @query[:s] ||= "hospital_ward_name"
      end

      def call
        search.result
      end

      # Note we *MUST* join onto patients for PatientsRansackHelper.identity_match to work.
      # It might be better to refactor PatientsRansackHelper so we can include where required
      # eg below using .extending(PatientsRansackHelper) rather than relying on it being in
      # included in the model file.
      # note that adding .includes(:created_by) her creates an ambigous column
      # 'family_name' error
      def search
        @search ||= begin
          Consult
            .joins(:patient)
            .eager_load(patient: [current_modality: :description])
            .includes(
              :consult_site,
              :hospital_ward,
              patient: { current_modality: :description }
            )
            .order(created_at: :desc)
            .ransack(query)
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
renalware-core-2.0.51 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.50 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.48 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.47 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.46 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.45 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.44 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.43 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.42 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.41 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.40 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.39 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.38 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.37 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.36 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.35 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.34 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.33 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.32 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.31 app/models/renalware/admissions/consult_query.rb