Module: Measures::HQMFMeasureLoader
- Defined in:
- lib/measure-loader/hqmf_measure_loader.rb
Class Method Summary collapse
- .add_fields_from_hqmf_model_hash(measure, hqmf_model_hash) ⇒ Object
- .extract_fields(hqmf_xml) ⇒ Object
Class Method Details
.add_fields_from_hqmf_model_hash(measure, hqmf_model_hash) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/measure-loader/hqmf_measure_loader.rb', line 33 def add_fields_from_hqmf_model_hash(measure, hqmf_model_hash) measure.measure_attributes = hqmf_model_hash[:attributes] measure.measure_period = hqmf_model_hash[:measure_period] measure.population_criteria = hqmf_model_hash[:population_criteria] # add observation info, note population_sets needs to have been added to the measure by now (hqmf_model_hash[:observations] || []).each do |observation| observation = CQM::Observation.new( hqmf_id: observation[:function_hqmf_oid], aggregation_type: observation[:function_aggregation_type], observation_function: CQM::StatementReference.new( library_name: hqmf_model_hash[:cql_measure_library], statement_name: observation[:function_name], hqmf_id: observation[:function_hqmf_oid] ), observation_parameter: CQM::StatementReference.new( library_name: hqmf_model_hash[:cql_measure_library], statement_name: observation[:parameter], hqmf_id: observation[:function_hqmf_oid] ) ) # add observation to each population set measure.population_sets.each { |population_set| population_set.observations << observation } end end |
.extract_fields(hqmf_xml) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/measure-loader/hqmf_measure_loader.rb', line 7 def extract_fields(hqmf_xml) qmd = hqmf_xml.at_css('/QualityMeasureDocument') hqmf_id = qmd.at_css('/id')['root'].upcase hqmf_set_id = qmd.at_css('/setId')['root'].upcase title = qmd.at_css('/title')['value'] description = qmd.at_css('/text')['value'] cms_identifier = extract_cms_identifier(qmd) hqmf_version_number = qmd.at_css('/versionNumber')['value'] cms_id = "CMS#{cms_identifier}v#{hqmf_version_number.to_i}" main_cql_library = qmd.at_css('/component/populationCriteriaSection/component/initialPopulationCriteria/*/*/id')['extension'].split('.').first measure_scoring = extract_measure_scoring(qmd) population_sets = extract_population_set_models(qmd, measure_scoring) return { hqmf_id: hqmf_id, hqmf_set_id: hqmf_set_id, title: title, description: description, main_cql_library: main_cql_library, hqmf_version_number: hqmf_version_number, cms_id: cms_id, measure_scoring: measure_scoring, population_sets: population_sets } end |