Class: CqmValidators::MeasureValidator
- Inherits:
-
Object
- Object
- CqmValidators::MeasureValidator
- Includes:
- BaseValidator
- Defined in:
- lib/measure_validator.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#initialize(template_oid) ⇒ MeasureValidator
constructor
A new instance of MeasureValidator.
- #validate(file, data = {}) ⇒ Object
Methods included from BaseValidator
Constructor Details
#initialize(template_oid) ⇒ MeasureValidator
Returns a new instance of MeasureValidator.
7 8 9 |
# File 'lib/measure_validator.rb', line 7 def initialize(template_oid) @template_oid = template_oid end |
Instance Method Details
#validate(file, data = {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/measure_validator.rb', line 11 def validate(file, data = {}) @errors = [] @doc = get_document(file) @doc.root.add_namespace_definition('cda', 'urn:hl7-org:v3') measure_ids = CQM::Measure.all.map(&:hqmf_id) doc_measure_ids = @doc.xpath(measure_selector).map(&:value).map(&:upcase) # list of all of the set ids in the QRDA doc_neutral_ids = @doc.xpath(neutral_measure_selector).map(&:value).map(&:upcase).sort # list of all of the setids in the QRDA that are also in the bundle, includes duplicates if code appears twice in document bundle_neutral_ids = CQM::Measure.distinct(:hqmf_set_id) doc_bundle_neutral_ids = doc_neutral_ids - (doc_neutral_ids - bundle_neutral_ids) validate_measure_ids(doc_measure_ids, measure_ids, data) validate_set_ids(doc_neutral_ids, doc_bundle_neutral_ids, data) validate_measure_ids_set_ids_usage(doc_bundle_neutral_ids, doc_measure_ids, data) if validate_no_repeating_measure_population_ids(data) @errors end |