class SimpleXml::PopulationCriteria
Represents an HQMF population criteria, also supports all the same methods as SimpleXml::Precondition
Constants
- DENEX
- DENEXCEP
- DENOM
- IPP
- MSRPOPL
- MSRPOPLEX
- NUMER
- NUMEX
- OBSERV
- STRAT
- TITLES
Attributes
aggregator[RW]
entry[R]
hqmf_id[RW]
id[RW]
preconditions[R]
title[R]
type[R]
Public Class Methods
new(entry, doc, index)
click to toggle source
Create a new population criteria from the supplied HQMF entry @param [Nokogiri::XML::Element] the HQMF entry
# File lib/model/population_criteria.rb, line 37 def initialize(entry, doc, index) @doc = doc @entry = entry @hqmf_id = attr_val('@uuid') @type = translate_type(attr_val('@type')) @title = TITLES[@type] @id = @type @id += "_#{index}" if (index > 0) @preconditions = @entry.xpath("#{Precondition::LOGICAL_OP}|#{Precondition::SUB_TREE}").collect do |precondition_def| Precondition.new(precondition_def, @doc) end @preconditions.select! {|p| !p.preconditions.empty? || p.reference} handle_negations end
Public Instance Methods
get_logic_leaves(children=nil)
click to toggle source
# File lib/model/population_criteria.rb, line 95 def get_logic_leaves(children=nil) children ||= @preconditions leaves = [] children.each do |precondition| unless (precondition.preconditions.empty?) leaves.concat get_logic_leaves(precondition.preconditions) else leaves << precondition end end leaves end
handle_negations()
click to toggle source
# File lib/model/population_criteria.rb, line 89 def handle_negations @preconditions.each do |p| p.handle_negations(self) end end
set_index(index)
click to toggle source
# File lib/model/population_criteria.rb, line 57 def set_index(index) @id = @type @id += "_#{index}" if (index > 0) end
to_model()
click to toggle source
# File lib/model/population_criteria.rb, line 108 def to_model mps = preconditions.collect {|p| p.to_model} HQMF::PopulationCriteria.new(id, hqmf_id, type, mps, title, aggregator) end
translate_type(type)
click to toggle source
# File lib/model/population_criteria.rb, line 62 def translate_type(type) case type when IPP, 'initialPopulation' HQMF::PopulationCriteria::IPP when DENOM HQMF::PopulationCriteria::DENOM when DENEX HQMF::PopulationCriteria::DENEX when DENEXCEP HQMF::PopulationCriteria::DENEXCEP when NUMER HQMF::PopulationCriteria::NUMER when MSRPOPL HQMF::PopulationCriteria::MSRPOPL when OBSERV HQMF::PopulationCriteria::OBSERV when STRAT HQMF::PopulationCriteria::STRAT when NUMEX HQMF::PopulationCriteria::NUMEX when MSRPOPLEX HQMF::PopulationCriteria::MSRPOPLEX else raise "Unknown population criteria type #{type}" end end