lib/conceptql/graph_nodifier.rb in conceptql-0.0.1 vs lib/conceptql/graph_nodifier.rb in conceptql-0.0.3

- old
+ new

@@ -9,14 +9,16 @@ TYPES = { # Conditions condition: :condition_occurrence, primary_diagnosis: :condition_occurrence, icd9: :condition_occurrence, + condition_type: :condition_occurrence, # Procedures procedure: :procedure_occurrence, cpt: :procedure_occurrence, + drg: :procedure_occurrence, hcpcs: :procedure_occurrence, icd9_procedure: :procedure_occurrence, procedure_cost: :procedure_cost, # Visits @@ -43,11 +45,12 @@ # Date Nodes date_range: :date, # Miscelaneous nodes - concept: :misc + concept: :misc, + vsac: :misc } attr :values, :name def initialize(name, values) @name = name.to_s @@ -76,14 +79,18 @@ end class BinaryOperatorNode < DotNode def display_name output = name - output += "\n#{options.map{|k,v| "#{k}: #{v}"}.join("\n")}" unless options.nil? || options.empty? + output += "\n#{displayable_options.map{|k,v| "#{k}: #{v}"}.join("\n")}" output end + def displayable_options + options.select{ |k,v| ![:left, :right].include?(k) } || {} + end + def left options[:left] end def right @@ -114,10 +121,12 @@ end BINARY_OPERATOR_TYPES = %w(before after meets met_by started_by starts contains during overlaps overlapped_by finished_by finishes coincides except person_filter less_than less_than_or_equal equal not_equal greater_than greater_than_or_equal filter).map { |temp| [temp, "not_#{temp}"] }.flatten.map(&:to_sym) def create(type, values) - return BinaryOperatorNode.new(type, values) if BINARY_OPERATOR_TYPES.include?(type) + if BINARY_OPERATOR_TYPES.include?(type) + return BinaryOperatorNode.new(type, values) + end DotNode.new(type, values) end end end