Sha256: 8a6044ba80d7ab3da0cd31added89612d3919a5fd0e8a6f18e4db57ab148fab4

Contents?: true

Size: 1013 Bytes

Versions: 9

Compression:

Stored size: 1013 Bytes

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
      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.
      def search
        @search ||= begin
          Consult
            .joins(:patient)
            .includes(
              :created_by,
              :consult_site,
              :hospital_ward,
              patient: { current_modality: :description }
            )
            .order(created_at: :desc)
            .ransack(query)
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
renalware-core-2.0.18 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.17 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.16 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.15 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.14 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.13 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.12 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.11 app/models/renalware/admissions/consult_query.rb
renalware-core-2.0.9 app/models/renalware/admissions/consult_query.rb