Class: Renalware::Patients::MDMPatientsQuery

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Renalware::PatientPathologyScopes

extended, pathology_date_sort_predicate, pathology_result_sort_predicate, #with_current_pathology

Methods included from ModalityScopes

#with_current_modality_matching, #with_current_modality_of_class

Constructor Details

#initialize(relation: Patient.all, q:, modality_names:) ⇒ MDMPatientsQuery

modality_names: eg “HD” or “PD”



11
12
13
14
15
# File 'app/models/renalware/patients/mdm_patients_query.rb', line 11

def initialize(relation: Patient.all, q:, modality_names:)
  @modality_names = modality_names
  @q = q
  @relation = relation
end

Instance Attribute Details

#modality_namesObject (readonly)

Returns the value of attribute modality_names.



8
9
10
# File 'app/models/renalware/patients/mdm_patients_query.rb', line 8

def modality_names
  @modality_names
end

#qObject (readonly)

Returns the value of attribute q.



8
9
10
# File 'app/models/renalware/patients/mdm_patients_query.rb', line 8

def q
  @q
end

#relationObject (readonly)

Returns the value of attribute relation.



8
9
10
# File 'app/models/renalware/patients/mdm_patients_query.rb', line 8

def relation
  @relation
end

Instance Method Details

#callObject



17
18
19
# File 'app/models/renalware/patients/mdm_patients_query.rb', line 17

def call
  search.result
end

#searchObject



21
22
23
24
25
26
27
28
29
30
# File 'app/models/renalware/patients/mdm_patients_query.rb', line 21

def search
  @search ||= begin
    relation
      .extending(ModalityScopes)
      .extending(PatientPathologyScopes)
      .with_current_pathology
      .with_current_modality_matching(modality_names)
      .search(q)
  end
end