Class: ConceptQL::QueryModifiers::PoSQueryModifier
- Inherits:
-
QueryModifier
- Object
- QueryModifier
- ConceptQL::QueryModifiers::PoSQueryModifier
- Defined in:
- lib/conceptql/query_modifiers/pos_query_modifier.rb
Instance Attribute Summary collapse
-
#column ⇒ Object
readonly
Returns the value of attribute column.
-
#join_id ⇒ Object
readonly
Returns the value of attribute join_id.
-
#source_column ⇒ Object
readonly
Returns the value of attribute source_column.
-
#table ⇒ Object
readonly
Returns the value of attribute table.
Attributes inherited from QueryModifier
Instance Method Summary collapse
-
#initialize(*args) ⇒ PoSQueryModifier
constructor
A new instance of PoSQueryModifier.
- #modified_query ⇒ Object
Constructor Details
#initialize(*args) ⇒ PoSQueryModifier
Returns a new instance of PoSQueryModifier.
8 9 10 11 12 13 14 |
# 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 |
Instance Attribute Details
#column ⇒ Object (readonly)
Returns the value of attribute column.
6 7 8 |
# File 'lib/conceptql/query_modifiers/pos_query_modifier.rb', line 6 def column @column end |
#join_id ⇒ Object (readonly)
Returns the value of attribute join_id.
6 7 8 |
# File 'lib/conceptql/query_modifiers/pos_query_modifier.rb', line 6 def join_id @join_id end |
#source_column ⇒ Object (readonly)
Returns the value of attribute source_column.
6 7 8 |
# File 'lib/conceptql/query_modifiers/pos_query_modifier.rb', line 6 def source_column @source_column end |
#table ⇒ Object (readonly)
Returns the value of attribute table.
6 7 8 |
# File 'lib/conceptql/query_modifiers/pos_query_modifier.rb', line 6 def table @table end |
Instance Method Details
#modified_query ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# 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 |