Module: AUCoreTestKit::ValidationTest
- Includes:
- AssertHelpers, ValidatorHelpers
- Included in:
- AUCoreV100::AllergyIntoleranceValidationTest, AUCoreV100::BloodpressureValidationTest, AUCoreV100::BodyheightValidationTest, AUCoreV100::BodytempValidationTest, AUCoreV100::BodyweightValidationTest, AUCoreV100::ConditionValidationTest, AUCoreV100::DiagnosticresultPathValidationTest, AUCoreV100::DiagnosticresultValidationTest, AUCoreV100::EncounterValidationTest, AUCoreV100::HeartrateValidationTest, AUCoreV100::ImmunizationValidationTest, AUCoreV100::LocationValidationTest, AUCoreV100::MedicationRequestValidationTest, AUCoreV100::MedicationValidationTest, AUCoreV100::OrganizationValidationTest, AUCoreV100::PatientValidationTest, AUCoreV100::PractitionerRoleValidationTest, AUCoreV100::PractitionerValidationTest, AUCoreV100::ProcedureValidationTest, AUCoreV100::ResprateValidationTest, AUCoreV100::SmokingstatusValidationTest, AUCoreV100::WaistcircumValidationTest
- Defined in:
- lib/au_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'
ValidatorHelpers::DEFAULT_VALUE, ValidatorHelpers::RESPONSE_KEYS, ValidatorHelpers::RESPONSE_VALIDATOR_KEY, ValidatorHelpers::RESPONSE_WRAPPER_KEY, ValidatorHelpers::VALIDATOR_KEY, ValidatorHelpers::WRAPPER_KEY
Instance Method Summary
collapse
#show_validator_version
#act_if_with_message, #act_with_message, #conditional_skip_with_msg, #skip_with_msg
Instance Method Details
#check_for_dar(resource) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/au_core_test_kit/validation_test.rb', line 37
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
return if scratch[:dar_extension_found]
check_for_dar_extension(resource)
end
|
#check_for_dar_code(coding) ⇒ Object
51
52
53
54
55
56
|
# File 'lib/au_core_test_kit/validation_test.rb', line 51
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
58
59
60
61
62
63
|
# File 'lib/au_core_test_kit/validation_test.rb', line 58
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
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/au_core_test_kit/validation_test.rb', line 14
def perform_validation_test(resources,
profile_url,
profile_version,
skip_if_empty: true)
conditional_skip_with_msg 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"
show_validator_version
profile_with_version = "#{profile_url}|#{profile_version}"
resources.each do |resource|
resource_is_valid?(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
|