Module: CancerRegistryReportingTestKit::ValidationTest
- Included in:
- HDEAV100::AllergyIntoleranceValidationTest, HDEAV100::AuthorValidationTest, HDEAV100::CarePlanValidationTest, HDEAV100::CcrrContentBundleParseAndValidationTest, HDEAV100::CentralCancerRegistryPrimaryCancerConditionValidationTest, HDEAV100::CompositionValidationTest, HDEAV100::ConditionValidationTest, HDEAV100::DiagnosticReportLabValidationTest, HDEAV100::DiagnosticReportNoteValidationTest, HDEAV100::DocumentReferenceValidationTest, HDEAV100::EncounterValidationTest, HDEAV100::McodeRadiotherapyCourseSummaryValidationTest, HDEAV100::McodeSecondaryCancerConditionValidationTest, HDEAV100::McodeTnmStageGroupValidationTest, HDEAV100::MedicationAdministrationValidationTest, HDEAV100::MedicationRequestValidationTest, HDEAV100::MedicationStatementValidationTest, HDEAV100::MedicationValidationTest, HDEAV100::ObservationLabValidationTest, HDEAV100::ObservationValidationTest, HDEAV100::OdhUsualWorkValidationTest, HDEAV100::OrganizationValidationTest, HDEAV100::PatientValidationTest, HDEAV100::PractitionerRoleValidationTest, HDEAV100::PractitionerValidationTest, HDEAV100::ProcedureValidationTest, HDEAV100::ServiceRequestValidationTest, HDEAV100::SmokingstatusValidationTest, MedicationAdministrationValidationTest, MedicationRequestValidationTest, PrimaryCancerConditionValidationTest, RadiotherapyProcedureValidationTest, SecondaryCancerConditionValidationTest, TNMDistantMetastasesCategoryValidationTest, TNMPrimaryTumorCategoryValidationTest, TNMRegionalNodesCategoryValidationTest, TNMStageGroupValidationTest
- Defined in:
- lib/cancer_registry_reporting_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
- #find_validation_errors(resourceType = resource_type, resources, profile_url, profile_version, skip_if_empty: true) ⇒ Object
- #perform_validation_test(resourceType = resource_type, resources, profile_url, profile_version, skip_if_empty: true) ⇒ Object
Instance Method Details
#check_for_dar(resource) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/cancer_registry_reporting_test_kit/validation_test.rb', line 40 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
54 55 56 57 58 59 |
# File 'lib/cancer_registry_reporting_test_kit/validation_test.rb', line 54 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
61 62 63 64 65 66 |
# File 'lib/cancer_registry_reporting_test_kit/validation_test.rb', line 61 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 |
#find_validation_errors(resourceType = resource_type, resources, profile_url, profile_version, skip_if_empty: true) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/cancer_registry_reporting_test_kit/validation_test.rb', line 20 def find_validation_errors(resourceType = resource_type, resources, profile_url, profile_version, skip_if_empty: true) skip_if skip_if_empty && resources.blank?, "No #{resourceType} resources conforming to the #{profile_url} profile were returned" omit_if resources.blank?, "No #{resourceType} 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) # DAR checks are a SHOULD requirement in CCRR 1.0.1 # check_for_dar(resource) end end |
#perform_validation_test(resourceType = resource_type, resources, profile_url, profile_version, skip_if_empty: true) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/cancer_registry_reporting_test_kit/validation_test.rb', line 8 def perform_validation_test(resourceType = resource_type, resources, profile_url, profile_version, skip_if_empty: true) find_validation_errors(resourceType, resources, profile_url, profile_version, skip_if_empty: ) errors_found = .any? { || [:type] == 'error' } profile_with_version = "#{profile_url}|#{profile_version}" assert !errors_found, "Resource does not conform to the profile #{profile_with_version}" end |