class ConceptQL::QueryModifiers::PoSQueryModifier
Attributes
join_id[RW]
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/conceptql/query_modifiers/pos_query_modifier.rb, line 8 def initialize(*args) super @column = :place_of_service_concept_id @join_id = :visit_occurrence_id @table = :visit_occurrence @source_column = :visit_source_concept_id end
Public Instance Methods
modified_query()
click to toggle source
# File lib/conceptql/query_modifiers/pos_query_modifier.rb, line 16 def modified_query return query unless op.query_cols.include?(join_id) left_alias = "tab1".to_sym right_alias = "tab2".to_sym extra_table = query.db.from(table).select(Sequel.as(source_column, column), join_id) ds = query.from_self(alias: left_alias) ds.left_join(extra_table.as(right_alias), Sequel.qualify(left_alias, join_id) => Sequel.qualify(right_alias, join_id)) .select_all(left_alias) .select_append(Sequel.qualify(right_alias, column).as(column)) .from_self end