Module: USCoreTestKit::ValidationTest

Included in:
USCoreV311::AllergyIntoleranceValidationTest, USCoreV311::BodyheightValidationTest, USCoreV311::BodytempValidationTest, USCoreV311::BodyweightValidationTest, USCoreV311::BpValidationTest, USCoreV311::CarePlanValidationTest, USCoreV311::CareTeamValidationTest, USCoreV311::ConditionValidationTest, USCoreV311::DeviceValidationTest, USCoreV311::DiagnosticReportLabValidationTest, USCoreV311::DiagnosticReportNoteValidationTest, USCoreV311::DocumentReferenceValidationTest, USCoreV311::EncounterValidationTest, USCoreV311::GoalValidationTest, USCoreV311::HeadCircumferenceValidationTest, USCoreV311::HeartrateValidationTest, USCoreV311::ImmunizationValidationTest, USCoreV311::MedicationRequestValidationTest, USCoreV311::MedicationValidationTest, USCoreV311::ObservationLabValidationTest, USCoreV311::OrganizationValidationTest, USCoreV311::PatientValidationTest, USCoreV311::PediatricBmiForAgeValidationTest, USCoreV311::PediatricWeightForHeightValidationTest, USCoreV311::PractitionerValidationTest, USCoreV311::ProcedureValidationTest, USCoreV311::ProvenanceValidationTest, USCoreV311::PulseOximetryValidationTest, USCoreV311::ResprateValidationTest, USCoreV311::SmokingstatusValidationTest, USCoreV400::AllergyIntoleranceValidationTest, USCoreV400::BloodPressureValidationTest, USCoreV400::BmiValidationTest, USCoreV400::BodyHeightValidationTest, USCoreV400::BodyTemperatureValidationTest, USCoreV400::BodyWeightValidationTest, USCoreV400::CarePlanValidationTest, USCoreV400::CareTeamValidationTest, USCoreV400::ConditionValidationTest, USCoreV400::DeviceValidationTest, USCoreV400::DiagnosticReportLabValidationTest, USCoreV400::DiagnosticReportNoteValidationTest, USCoreV400::DocumentReferenceValidationTest, USCoreV400::EncounterValidationTest, USCoreV400::GoalValidationTest, USCoreV400::HeadCircumferencePercentileValidationTest, USCoreV400::HeadCircumferenceValidationTest, USCoreV400::HeartRateValidationTest, USCoreV400::ImmunizationValidationTest, USCoreV400::MedicationRequestValidationTest, USCoreV400::MedicationValidationTest, USCoreV400::ObservationLabValidationTest, USCoreV400::OrganizationValidationTest, USCoreV400::PatientValidationTest, USCoreV400::PediatricBmiForAgeValidationTest, USCoreV400::PediatricWeightForHeightValidationTest, USCoreV400::PractitionerValidationTest, USCoreV400::ProcedureValidationTest, USCoreV400::ProvenanceValidationTest, USCoreV400::PulseOximetryValidationTest, USCoreV400::RespiratoryRateValidationTest, USCoreV400::SmokingstatusValidationTest, USCoreV501::AllergyIntoleranceValidationTest, USCoreV501::BloodPressureValidationTest, USCoreV501::BmiValidationTest, USCoreV501::BodyHeightValidationTest, USCoreV501::BodyTemperatureValidationTest, USCoreV501::BodyWeightValidationTest, USCoreV501::CarePlanValidationTest, USCoreV501::CareTeamValidationTest, USCoreV501::ConditionEncounterDiagnosisValidationTest, USCoreV501::ConditionProblemsHealthConcernsValidationTest, USCoreV501::DeviceValidationTest, USCoreV501::DiagnosticReportLabValidationTest, USCoreV501::DiagnosticReportNoteValidationTest, USCoreV501::DocumentReferenceValidationTest, USCoreV501::EncounterValidationTest, USCoreV501::GoalValidationTest, USCoreV501::HeadCircumferencePercentileValidationTest, USCoreV501::HeadCircumferenceValidationTest, USCoreV501::HeartRateValidationTest, USCoreV501::ImmunizationValidationTest, USCoreV501::MedicationRequestValidationTest, USCoreV501::MedicationValidationTest, USCoreV501::ObservationClinicalTestValidationTest, USCoreV501::ObservationImagingValidationTest, USCoreV501::ObservationLabValidationTest, USCoreV501::ObservationSdohAssessmentValidationTest, USCoreV501::ObservationSexualOrientationValidationTest, USCoreV501::ObservationSocialHistoryValidationTest, USCoreV501::OrganizationValidationTest, USCoreV501::PatientValidationTest, USCoreV501::PediatricBmiForAgeValidationTest, USCoreV501::PediatricWeightForHeightValidationTest, USCoreV501::PractitionerRoleValidationTest, USCoreV501::PractitionerValidationTest, USCoreV501::ProcedureValidationTest, USCoreV501::ProvenanceValidationTest, USCoreV501::PulseOximetryValidationTest, USCoreV501::QuestionnaireResponseValidationTest, USCoreV501::RelatedPersonValidationTest, USCoreV501::RespiratoryRateValidationTest, USCoreV501::ServiceRequestValidationTest, USCoreV501::SmokingstatusValidationTest, USCoreV610::AllergyIntoleranceValidationTest, USCoreV610::BloodPressureValidationTest, USCoreV610::BmiValidationTest, USCoreV610::BodyHeightValidationTest, USCoreV610::BodyTemperatureValidationTest, USCoreV610::BodyWeightValidationTest, USCoreV610::CarePlanValidationTest, USCoreV610::CareTeamValidationTest, USCoreV610::ConditionEncounterDiagnosisValidationTest, USCoreV610::ConditionProblemsHealthConcernsValidationTest, USCoreV610::CoverageValidationTest, USCoreV610::DeviceValidationTest, USCoreV610::DiagnosticReportLabValidationTest, USCoreV610::DiagnosticReportNoteValidationTest, USCoreV610::DocumentReferenceValidationTest, USCoreV610::EncounterValidationTest, USCoreV610::GoalValidationTest, USCoreV610::HeadCircumferencePercentileValidationTest, USCoreV610::HeadCircumferenceValidationTest, USCoreV610::HeartRateValidationTest, USCoreV610::ImmunizationValidationTest, USCoreV610::MedicationDispenseValidationTest, USCoreV610::MedicationRequestValidationTest, USCoreV610::MedicationValidationTest, USCoreV610::ObservationClinicalResultValidationTest, USCoreV610::ObservationLabValidationTest, USCoreV610::ObservationOccupationValidationTest, USCoreV610::ObservationPregnancyintentValidationTest, USCoreV610::ObservationPregnancystatusValidationTest, USCoreV610::ObservationScreeningAssessmentValidationTest, USCoreV610::ObservationSexualOrientationValidationTest, USCoreV610::OrganizationValidationTest, USCoreV610::PatientValidationTest, USCoreV610::PediatricBmiForAgeValidationTest, USCoreV610::PediatricWeightForHeightValidationTest, USCoreV610::PractitionerRoleValidationTest, USCoreV610::PractitionerValidationTest, USCoreV610::ProcedureValidationTest, USCoreV610::ProvenanceValidationTest, USCoreV610::PulseOximetryValidationTest, USCoreV610::QuestionnaireResponseValidationTest, USCoreV610::RelatedPersonValidationTest, USCoreV610::RespiratoryRateValidationTest, USCoreV610::ServiceRequestValidationTest, USCoreV610::SimpleObservationValidationTest, USCoreV610::SmokingstatusValidationTest, USCoreV610::SpecimenValidationTest, USCoreV700::AllergyIntoleranceValidationTest, USCoreV700::AverageBloodPressureValidationTest, USCoreV700::BloodPressureValidationTest, USCoreV700::BmiValidationTest, USCoreV700::BodyHeightValidationTest, USCoreV700::BodyTemperatureValidationTest, USCoreV700::BodyWeightValidationTest, USCoreV700::CareExperiencePreferenceValidationTest, USCoreV700::CarePlanValidationTest, USCoreV700::CareTeamValidationTest, USCoreV700::ConditionEncounterDiagnosisValidationTest, USCoreV700::ConditionProblemsHealthConcernsValidationTest, USCoreV700::CoverageValidationTest, USCoreV700::DeviceValidationTest, USCoreV700::DiagnosticReportLabValidationTest, USCoreV700::DiagnosticReportNoteValidationTest, USCoreV700::DocumentReferenceValidationTest, USCoreV700::EncounterValidationTest, USCoreV700::GoalValidationTest, USCoreV700::HeadCircumferencePercentileValidationTest, USCoreV700::HeadCircumferenceValidationTest, USCoreV700::HeartRateValidationTest, USCoreV700::ImmunizationValidationTest, USCoreV700::LocationValidationTest, USCoreV700::MedicationDispenseValidationTest, USCoreV700::MedicationRequestValidationTest, USCoreV700::MedicationValidationTest, USCoreV700::ObservationClinicalResultValidationTest, USCoreV700::ObservationLabValidationTest, USCoreV700::ObservationOccupationValidationTest, USCoreV700::ObservationPregnancyintentValidationTest, USCoreV700::ObservationPregnancystatusValidationTest, USCoreV700::ObservationScreeningAssessmentValidationTest, USCoreV700::ObservationSexualOrientationValidationTest, USCoreV700::OrganizationValidationTest, USCoreV700::PatientValidationTest, USCoreV700::PediatricBmiForAgeValidationTest, USCoreV700::PediatricWeightForHeightValidationTest, USCoreV700::PractitionerRoleValidationTest, USCoreV700::PractitionerValidationTest, USCoreV700::ProcedureValidationTest, USCoreV700::ProvenanceValidationTest, USCoreV700::PulseOximetryValidationTest, USCoreV700::QuestionnaireResponseValidationTest, USCoreV700::RelatedPersonValidationTest, USCoreV700::RespiratoryRateValidationTest, USCoreV700::ServiceRequestValidationTest, USCoreV700::SimpleObservationValidationTest, USCoreV700::SmokingstatusValidationTest, USCoreV700::SpecimenValidationTest, USCoreV700::TreatmentInterventionPreferenceValidationTest, USCoreV800::AdiDocumentReferenceValidationTest, USCoreV800::AllergyIntoleranceValidationTest, USCoreV800::AverageBloodPressureValidationTest, USCoreV800::BloodPressureValidationTest, USCoreV800::BmiValidationTest, USCoreV800::BodyHeightValidationTest, USCoreV800::BodyTemperatureValidationTest, USCoreV800::BodyWeightValidationTest, USCoreV800::CareExperiencePreferenceValidationTest, USCoreV800::CarePlanValidationTest, USCoreV800::CareTeamValidationTest, USCoreV800::ConditionEncounterDiagnosisValidationTest, USCoreV800::ConditionProblemsHealthConcernsValidationTest, USCoreV800::CoverageValidationTest, USCoreV800::DeviceValidationTest, USCoreV800::DiagnosticReportLabValidationTest, USCoreV800::DiagnosticReportNoteValidationTest, USCoreV800::DocumentReferenceValidationTest, USCoreV800::EncounterValidationTest, USCoreV800::GoalValidationTest, USCoreV800::HeadCircumferencePercentileValidationTest, USCoreV800::HeadCircumferenceValidationTest, USCoreV800::HeartRateValidationTest, USCoreV800::ImmunizationValidationTest, USCoreV800::LocationValidationTest, USCoreV800::MedicationDispenseValidationTest, USCoreV800::MedicationRequestValidationTest, USCoreV800::MedicationValidationTest, USCoreV800::ObservationAdiDocumentationValidationTest, USCoreV800::ObservationClinicalResultValidationTest, USCoreV800::ObservationLabValidationTest, USCoreV800::ObservationOccupationValidationTest, USCoreV800::ObservationPregnancyintentValidationTest, USCoreV800::ObservationPregnancystatusValidationTest, USCoreV800::ObservationScreeningAssessmentValidationTest, USCoreV800::ObservationSexualOrientationValidationTest, USCoreV800::OrganizationValidationTest, USCoreV800::PatientValidationTest, USCoreV800::PediatricBmiForAgeValidationTest, USCoreV800::PediatricWeightForHeightValidationTest, USCoreV800::PractitionerRoleValidationTest, USCoreV800::PractitionerValidationTest, USCoreV800::ProcedureValidationTest, USCoreV800::ProvenanceValidationTest, USCoreV800::PulseOximetryValidationTest, USCoreV800::QuestionnaireResponseValidationTest, USCoreV800::RelatedPersonValidationTest, USCoreV800::RespiratoryRateValidationTest, USCoreV800::ServiceRequestValidationTest, USCoreV800::SimpleObservationValidationTest, USCoreV800::SmokingstatusValidationTest, USCoreV800::SpecimenValidationTest, USCoreV800::TreatmentInterventionPreferenceValidationTest
Defined in:
lib/us_core_test_kit/validation_test.rb

Constant Summary collapse

DAR_CODE_SYSTEM_URL =
'http://terminology.hl7.org/CodeSystem/data-absent-reason'.freeze
DAR_EXTENSION_URL =
'http://hl7.org/fhir/StructureDefinition/data-absent-reason'.freeze

Instance Method Summary collapse

Instance Method Details

#check_for_dar(resource) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/us_core_test_kit/validation_test.rb', line 28

def check_for_dar(resource)
  unless scratch[:dar_code_found]
    resource.each_element do |element, meta, _path|
      next unless element.is_a?(FHIR::Coding)

      check_for_dar_code(element)
    end
  end

  unless scratch[:dar_extension_found]
    check_for_dar_extension(resource)
  end
end

#check_for_dar_code(coding) ⇒ Object



42
43
44
45
46
47
# File 'lib/us_core_test_kit/validation_test.rb', line 42

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



49
50
51
52
53
54
# File 'lib/us_core_test_kit/validation_test.rb', line 49

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



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/us_core_test_kit/validation_test.rb', line 6

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 = messages.any? { |message| message[:type] == 'error' }

  assert !errors_found, "Resource does not conform to the profile #{profile_with_version}"
end