Sha256: 1b482efaa2899f0885deb70985033a67d1172f283dce7c27aadbead1b9d9b89b

Contents?: true

Size: 778 Bytes

Versions: 5

Compression:

Stored size: 778 Bytes

Contents

# frozen_string_literal: true

require_dependency "renalware/clinics"

module Renalware
  module Renal
    class AKIAlertQuery
      DEFAULT_SORT = "aki_date desc"
      attr_reader :query

      def initialize(query = nil)
        @query = query || {}
        @query[:s] = DEFAULT_SORT if @query[:s].blank?
      end

      def self.call(query)
        new(query).call
      end

      def call
        search.result
      end

      def search
        @search ||= begin
          AKIAlert
            .joins(:patient) # required for PatientsRansackHelper - see Admission
            .includes(:patient, :updated_by, :action, hospital_ward: :hospital_unit)
            .public_send(query[:named_filter].to_s)
            .ransack(query)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
renalware-core-2.0.18 app/models/renalware/renal/aki_alert_query.rb
renalware-core-2.0.17 app/models/renalware/renal/aki_alert_query.rb
renalware-core-2.0.16 app/models/renalware/renal/aki_alert_query.rb
renalware-core-2.0.15 app/models/renalware/renal/aki_alert_query.rb
renalware-core-2.0.14 app/models/renalware/renal/aki_alert_query.rb