Module: USQualityCoreTestKit::ValidationTest
- Included in:
- USQualityCoreV050::AdverseEventValidationTest, USQualityCoreV050::AllergyIntoleranceValidationTest, USQualityCoreV050::CarePlanValidationTest, USQualityCoreV050::CareTeamValidationTest, USQualityCoreV050::ConditionEncounterDiagnosisValidationTest, USQualityCoreV050::ConditionProblemsHealthConcernsValidationTest, USQualityCoreV050::CoverageValidationTest, USQualityCoreV050::DevicenotrequestedValidationTest, USQualityCoreV050::DevicerequestValidationTest, USQualityCoreV050::DiagnosticReportLabValidationTest, USQualityCoreV050::DiagnosticReportNoteValidationTest, USQualityCoreV050::DocumentReferenceValidationTest, USQualityCoreV050::EncounterValidationTest, USQualityCoreV050::FamilyMemberHistoryValidationTest, USQualityCoreV050::GoalValidationTest, USQualityCoreV050::HeadOccipitalFrontalCircumferencePercentileValidationTest, USQualityCoreV050::ImmunizationValidationTest, USQualityCoreV050::ImmunizationnotdoneValidationTest, USQualityCoreV050::LocationValidationTest, USQualityCoreV050::MedicationadministrationValidationTest, USQualityCoreV050::MedicationadministrationnotdoneValidationTest, USQualityCoreV050::MedicationdispenseValidationTest, USQualityCoreV050::MedicationdispensedeclinedValidationTest, USQualityCoreV050::MedicationnotrequestedValidationTest, USQualityCoreV050::MedicationrequestValidationTest, USQualityCoreV050::ObservationClinicalResultValidationTest, USQualityCoreV050::ObservationLabValidationTest, USQualityCoreV050::ObservationScreeningAssessmentValidationTest, USQualityCoreV050::ObservationcancelledValidationTest, USQualityCoreV050::OrganizationValidationTest, USQualityCoreV050::PatientValidationTest, USQualityCoreV050::PediatricBmiForAgeValidationTest, USQualityCoreV050::PediatricWeightForHeightValidationTest, USQualityCoreV050::PractitionerRoleValidationTest, USQualityCoreV050::PractitionerValidationTest, USQualityCoreV050::ProcedureValidationTest, USQualityCoreV050::ProcedurenotdoneValidationTest, USQualityCoreV050::ProvenanceValidationTest, USQualityCoreV050::RelatedPersonValidationTest, USQualityCoreV050::ServicenotrequestedValidationTest, USQualityCoreV050::ServicerequestValidationTest, USQualityCoreV050::SimpleObservationValidationTest, USQualityCoreV050::SpecimenValidationTest, USQualityCoreV050::TaskValidationTest, USQualityCoreV050::TaskrejectedValidationTest, USQualityCoreV050::UsCoreBloodPressureValidationTest, USQualityCoreV050::UsCoreBmiValidationTest, USQualityCoreV050::UsCoreBodyHeightValidationTest, USQualityCoreV050::UsCoreBodyTemperatureValidationTest, USQualityCoreV050::UsCoreBodyWeightValidationTest, USQualityCoreV050::UsCoreHeartRateValidationTest, USQualityCoreV050::UsCoreObservationOccupationValidationTest, USQualityCoreV050::UsCoreObservationPregnancyintentValidationTest, USQualityCoreV050::UsCoreObservationPregnancystatusValidationTest, USQualityCoreV050::UsCorePulseOximetryValidationTest, USQualityCoreV050::UsCoreRespiratoryRateValidationTest, USQualityCoreV050::UsCoreSmokingstatusValidationTest
- Defined in:
- lib/us_quality_core_test_kit/validation_test.rb
Constant Summary collapse
- DAR_CODE_SYSTEM_URL =
'http://terminology.hl7.org/CodeSystem/data-absent-reason'- DAR_EXTENSION_URL =
'http://hl7.org/fhir/StructureDefinition/data-absent-reason'
Instance Method Summary collapse
- #check_for_dar(resource) ⇒ Object
- #check_for_dar_code(coding) ⇒ Object
- #check_for_dar_extension(resource) ⇒ Object
- #perform_validation_test(resources, profile_url, profile_version, skip_if_empty: true) ⇒ Object
Instance Method Details
#check_for_dar(resource) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/us_quality_core_test_kit/validation_test.rb', line 29 def check_for_dar(resource) unless scratch[:dar_code_found] resource.each_element do |element, , _path| next unless element.is_a?(FHIR::Coding) check_for_dar_code(element) end end return if scratch[:dar_extension_found] check_for_dar_extension(resource) end |
#check_for_dar_code(coding) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/us_quality_core_test_kit/validation_test.rb', line 43 def check_for_dar_code(coding) return unless coding.code == 'unknown' && coding.system == DAR_CODE_SYSTEM_URL scratch[:dar_code_found] = true output dar_code_found: 'true' end |
#check_for_dar_extension(resource) ⇒ Object
50 51 52 53 54 55 |
# File 'lib/us_quality_core_test_kit/validation_test.rb', line 50 def check_for_dar_extension(resource) return unless resource.source_contents&.include? DAR_EXTENSION_URL scratch[:dar_extension_found] = true output dar_extension_found: 'true' end |
#perform_validation_test(resources, profile_url, profile_version, skip_if_empty: true) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/us_quality_core_test_kit/validation_test.rb', line 8 def perform_validation_test(resources, profile_url, profile_version, skip_if_empty: true) skip_if skip_if_empty && resources.blank?, "No #{resource_type} resources conforming to the #{profile_url} profile were returned" omit_if resources.blank?, "No #{resource_type} resources provided so the #{profile_url} profile does not apply" profile_with_version = "#{profile_url}|#{profile_version}" resources.each do |resource| resource_is_valid?(resource: resource, profile_url: profile_with_version) check_for_dar(resource) end errors_found = .any? { || [:type] == 'error' } assert !errors_found, "Resource does not conform to the profile #{profile_with_version}" end |