Class: Renalware::Transplants::MDMPatientsQuery

Inherits:
Object
  • Object
show all
Includes:
ModalityScopes, PatientPathologyScopes
Defined in:
app/models/renalware/transplants/mdm_patients_query.rb

Overview

a list of everyone whose Modality is Transplant and the sort should

be based on date of latest creatinine result descending (most recent
at the top) - the default sort order should be same for all of the
different filter groups

Defined Under Namespace

Modules: NamedFilterScopes

Constant Summary collapse

DEFAULT_SEARCH_PREDICATE =
"hgb_date DESC"

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from PatientPathologyScopes

extended, pathology_date_sort_predicate, pathology_result_sort_predicate, sanitize, #with_current_pathology

Methods included from ModalityScopes

#with_current_modality_matching, #with_current_modality_of_class

Constructor Details

#initialize(relation: Transplants::Patient.all, named_filter: nil, q: nil) ⇒ MDMPatientsQuery

Returns a new instance of MDMPatientsQuery.



15
16
17
18
19
20
# File 'app/models/renalware/transplants/mdm_patients_query.rb', line 15

def initialize(relation: Transplants::Patient.all, named_filter: nil, q: nil)
  @q = q || {}
  @q[:s] = DEFAULT_SEARCH_PREDICATE if @q[:s].blank?
  @relation = relation
  @named_filter = named_filter || :none
end

Instance Attribute Details

#named_filterObject (readonly)

Returns the value of attribute named_filter.



13
14
15
# File 'app/models/renalware/transplants/mdm_patients_query.rb', line 13

def named_filter
  @named_filter
end

#qObject (readonly)

Returns the value of attribute q.



13
14
15
# File 'app/models/renalware/transplants/mdm_patients_query.rb', line 13

def q
  @q
end

#relationObject (readonly)

Returns the value of attribute relation.



13
14
15
# File 'app/models/renalware/transplants/mdm_patients_query.rb', line 13

def relation
  @relation
end

Instance Method Details

#callObject



22
23
24
25
# File 'app/models/renalware/transplants/mdm_patients_query.rb', line 22

def call
  search.sorts = %w(given_name)
  search.result
end

#searchObject



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/models/renalware/transplants/mdm_patients_query.rb', line 27

def search
  @search ||= begin
    relation
      .extending(ModalityScopes)
      .extending(PatientPathologyScopes)
      .extending(NamedFilterScopes)
      .with_current_modality_of_class(Transplants::RecipientModalityDescription)
      .with_current_pathology
      .left_outer_joins(:current_observation_set)
      .public_send(named_filter.to_s)
      .ransack(q)
  end
end