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