carin_for_blue_button_test_kit 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +201 -0
- data/lib/carin_for_blue_button_test_kit/capability_statement/capability_statement_group.rb +45 -0
- data/lib/carin_for_blue_button_test_kit/capability_statement/tests/conformance_support_test.rb +41 -0
- data/lib/carin_for_blue_button_test_kit/capability_statement/tests/fhir_version_test.rb +15 -0
- data/lib/carin_for_blue_button_test_kit/capability_statement/tests/instantiates_test.rb +32 -0
- data/lib/carin_for_blue_button_test_kit/capability_statement/tests/json_support_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/capability_statement/tests/profile_support_test.rb +32 -0
- data/lib/carin_for_blue_button_test_kit/carin_search_test.rb +227 -0
- data/lib/carin_for_blue_button_test_kit/date_search_validator.rb +109 -0
- data/lib/carin_for_blue_button_test_kit/fhir_resource_navigation.rb +73 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/c4bb_test_suite.rb +106 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/coverage/coverage_must_support_test.rb +53 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/coverage/coverage_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/coverage/coverage_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/coverage_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_must_support_test.rb +72 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_group.rb +110 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_must_support_test.rb +120 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_must_support_test.rb +112 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_must_support_test.rb +103 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_must_support_test.rb +97 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/organization/organization_must_support_test.rb +55 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/organization/organization_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/organization/organization_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/organization_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/patient/patient_must_support_test.rb +69 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/patient/patient_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/patient/patient_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/patient_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/practitioner/practitioner_must_support_test.rb +46 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/practitioner/practitioner_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/practitioner/practitioner_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/practitioner_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/resource_list.rb +17 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/c4bb_test_suite.rb +110 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_coverage_payor_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_must_support_test.rb +53 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage_group.rb +87 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_billable_period_start_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_payee_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_must_support_test.rb +73 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_service_start_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_group.rb +118 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_billable_period_start_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_payee_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_must_support_test.rb +121 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_service_start_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_billable_period_start_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_payee_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_must_support_test.rb +112 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_service_start_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_billable_period_start_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_payee_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_must_support_test.rb +114 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_service_start_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_billable_period_start_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_payee_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_must_support_test.rb +109 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_service_start_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_billable_period_start_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_all_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_careteam_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_coverage_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_insurer_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_patient_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_payee_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_provider_search_test.rb +38 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_id_search_test.rb +59 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_identifier_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_lastupdated_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_must_support_test.rb +108 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_patient_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_service_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_service_start_date_search_test.rb +48 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_type_search_test.rb +49 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician_group.rb +58 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/organization/organization_must_support_test.rb +55 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/organization/organization_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/organization/organization_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/organization_group.rb +81 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/patient/patient_must_support_test.rb +68 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/patient/patient_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/patient/patient_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/patient_group.rb +81 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/practitioner/practitioner_must_support_test.rb +46 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/practitioner/practitioner_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/practitioner/practitioner_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/practitioner_group.rb +81 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/related_person/related_person_must_support_test.rb +47 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/related_person/related_person_read_test.rb +39 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/related_person/related_person_validation_test.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/related_person_group.rb +81 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/resource_list.rb +19 -0
- data/lib/carin_for_blue_button_test_kit/generator/group_generator.rb +210 -0
- data/lib/carin_for_blue_button_test_kit/generator/group_metadata.rb +87 -0
- data/lib/carin_for_blue_button_test_kit/generator/group_metadata_extractor.rb +240 -0
- data/lib/carin_for_blue_button_test_kit/generator/ig_loader.rb +76 -0
- data/lib/carin_for_blue_button_test_kit/generator/ig_metadata.rb +50 -0
- data/lib/carin_for_blue_button_test_kit/generator/ig_metadata_extractor.rb +40 -0
- data/lib/carin_for_blue_button_test_kit/generator/ig_resources.rb +50 -0
- data/lib/carin_for_blue_button_test_kit/generator/include_search_test_generator.rb +105 -0
- data/lib/carin_for_blue_button_test_kit/generator/must_support_metadata_extractor.rb +326 -0
- data/lib/carin_for_blue_button_test_kit/generator/must_support_test_generator.rb +131 -0
- data/lib/carin_for_blue_button_test_kit/generator/naming.rb +36 -0
- data/lib/carin_for_blue_button_test_kit/generator/read_test_generator.rb +109 -0
- data/lib/carin_for_blue_button_test_kit/generator/resource_list_generator.rb +43 -0
- data/lib/carin_for_blue_button_test_kit/generator/search_definition_metadata_extractor.rb +207 -0
- data/lib/carin_for_blue_button_test_kit/generator/search_metadata_extractor.rb +74 -0
- data/lib/carin_for_blue_button_test_kit/generator/search_test_generator.rb +299 -0
- data/lib/carin_for_blue_button_test_kit/generator/special_cases.rb +21 -0
- data/lib/carin_for_blue_button_test_kit/generator/suite_generator.rb +94 -0
- data/lib/carin_for_blue_button_test_kit/generator/terminology_binding_metadata_extractor.rb +109 -0
- data/lib/carin_for_blue_button_test_kit/generator/validation_test_generator.rb +137 -0
- data/lib/carin_for_blue_button_test_kit/generator/value_extractor.rb +50 -0
- data/lib/carin_for_blue_button_test_kit/generator.rb +90 -0
- data/lib/carin_for_blue_button_test_kit/must_support_test.rb +211 -0
- data/lib/carin_for_blue_button_test_kit/read_test.rb +51 -0
- data/lib/carin_for_blue_button_test_kit/search_test.rb +781 -0
- data/lib/carin_for_blue_button_test_kit/search_test_properties.rb +57 -0
- data/lib/carin_for_blue_button_test_kit/validation_test.rb +57 -0
- data/lib/carin_for_blue_button_test_kit/version.rb +5 -0
- data/lib/carin_for_blue_button_test_kit.rb +2 -0
- metadata +405 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require_relative 'practitioner/practitioner_read_test'
|
|
2
|
+
require_relative 'practitioner/practitioner_validation_test'
|
|
3
|
+
require_relative 'practitioner/practitioner_must_support_test'
|
|
4
|
+
|
|
5
|
+
module CarinForBlueButtonTestKit
|
|
6
|
+
module CARIN4BBV200
|
|
7
|
+
class PractitionerGroup < Inferno::TestGroup
|
|
8
|
+
title 'Practitioner Tests'
|
|
9
|
+
short_description 'Verify support for the server capabilities required by the C4BB Practitioner.'
|
|
10
|
+
description %(
|
|
11
|
+
# Background
|
|
12
|
+
|
|
13
|
+
The CARIN for Blue Button Practitioner sequence verifies that the system under test is
|
|
14
|
+
able to provide correct responses for Practitioner queries. These queries
|
|
15
|
+
must contain resources conforming to the C4BB Practitioner as
|
|
16
|
+
specified in the CARIN for Blue Button v2.0.0 Implementation Guide.
|
|
17
|
+
|
|
18
|
+
# Testing Methodology
|
|
19
|
+
## Searching
|
|
20
|
+
This test sequence will first perform each required search associated
|
|
21
|
+
with this resource. This sequence will perform searches with the
|
|
22
|
+
following parameters:
|
|
23
|
+
|
|
24
|
+
* _id
|
|
25
|
+
|
|
26
|
+
### Search Parameters
|
|
27
|
+
The first search uses the selected patient(s) from the prior launch
|
|
28
|
+
sequence. Any subsequent searches will look for its parameter values
|
|
29
|
+
from the results of the first search. For example, the `identifier`
|
|
30
|
+
search in the patient sequence is performed by looking for an existing
|
|
31
|
+
`Patient.identifier` from any of the resources returned in the `_id`
|
|
32
|
+
search. If a value cannot be found this way, the search is skipped.
|
|
33
|
+
|
|
34
|
+
### Search Validation
|
|
35
|
+
Inferno will retrieve up to the first 20 bundle pages of the reply for
|
|
36
|
+
Practitioner resources and save them for subsequent tests.
|
|
37
|
+
Each resource is then checked to see if it matches the searched
|
|
38
|
+
parameters in accordance with [FHIR search
|
|
39
|
+
guidelines](https://www.hl7.org/fhir/search.html). The test will fail,
|
|
40
|
+
for example, if a Patient search for `gender=male` returns a `female`
|
|
41
|
+
patient.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Must Support
|
|
45
|
+
Each profile contains elements marked as "must support". This test
|
|
46
|
+
sequence expects to see each of these elements at least once. If at
|
|
47
|
+
least one cannot be found, the test will fail. The test will look
|
|
48
|
+
through the Practitioner resources found in the first test for these
|
|
49
|
+
elements.
|
|
50
|
+
|
|
51
|
+
## Profile Validation
|
|
52
|
+
Each resource returned from the first search is expected to conform to
|
|
53
|
+
the [C4BB Practitioner](http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Practitioner). Each element is checked against
|
|
54
|
+
terminology binding and cardinality requirements.
|
|
55
|
+
|
|
56
|
+
Elements with a required binding are validated against their bound
|
|
57
|
+
ValueSet. If the code/system in the element is not part of the ValueSet,
|
|
58
|
+
then the test will fail.
|
|
59
|
+
|
|
60
|
+
## Reference Validation
|
|
61
|
+
At least one instance of each external reference in elements marked as
|
|
62
|
+
"must support" within the resources provided by the system must resolve.
|
|
63
|
+
The test will attempt to read each reference found and will fail if no
|
|
64
|
+
read succeeds.
|
|
65
|
+
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
id :c4bb_v200_practitioner
|
|
69
|
+
run_as_group
|
|
70
|
+
|
|
71
|
+
def self.metadata
|
|
72
|
+
@metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'practitioner', 'metadata.yml'), aliases: true))
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
test from: :c4bb_v200_practitioner_read_test
|
|
76
|
+
test from: :c4bb_v200_practitioner_validation_test
|
|
77
|
+
test from: :c4bb_v200_practitioner_must_support_test
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require_relative '../../../must_support_test'
|
|
2
|
+
require_relative './related_person_read_test'
|
|
3
|
+
require_relative '../../../generator/group_metadata'
|
|
4
|
+
|
|
5
|
+
module CarinForBlueButtonTestKit
|
|
6
|
+
module CARIN4BBV200
|
|
7
|
+
class RelatedPersonMustSupportTest < Inferno::Test
|
|
8
|
+
include CarinForBlueButtonTestKit::MustSupportTest
|
|
9
|
+
include CarinForBlueButtonTestKit::CARIN4BBV200
|
|
10
|
+
|
|
11
|
+
title 'All must support elements are provided in the RelatedPerson resources returned'
|
|
12
|
+
description %(
|
|
13
|
+
CARIN for Blue Button Responders SHALL be capable of populating all data elements as
|
|
14
|
+
part of the query results as specified by the CARIN for Blue Button Capability
|
|
15
|
+
Statement. This test will look through the RelatedPerson resources
|
|
16
|
+
found previously for the following must support elements:
|
|
17
|
+
|
|
18
|
+
* RelatedPerson.active
|
|
19
|
+
* RelatedPerson.address
|
|
20
|
+
* RelatedPerson.meta
|
|
21
|
+
* RelatedPerson.meta.lastUpdated
|
|
22
|
+
* RelatedPerson.name
|
|
23
|
+
* RelatedPerson.patient
|
|
24
|
+
* RelatedPerson.relationship
|
|
25
|
+
* RelatedPerson.telecom
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
id :c4bb_v200_related_person_must_support_test
|
|
29
|
+
|
|
30
|
+
def resource_type
|
|
31
|
+
'RelatedPerson'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.metadata
|
|
35
|
+
@metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def scratch_resources
|
|
39
|
+
scratch[:related_person_resources] ||= {}
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
run do
|
|
43
|
+
perform_must_support_test(all_scratch_resources)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/related_person/related_person_read_test.rb
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require_relative '../../../read_test'
|
|
2
|
+
require 'json'
|
|
3
|
+
|
|
4
|
+
module CarinForBlueButtonTestKit
|
|
5
|
+
module CARIN4BBV200
|
|
6
|
+
class RelatedPersonReadTest < Inferno::Test
|
|
7
|
+
include CarinForBlueButtonTestKit::ReadTest
|
|
8
|
+
|
|
9
|
+
title 'Server returns correct RelatedPerson resource from RelatedPerson read interaction'
|
|
10
|
+
description 'A server SHALL support the RelatedPerson read interaction.'
|
|
11
|
+
|
|
12
|
+
id :c4bb_v200_related_person_read_test
|
|
13
|
+
|
|
14
|
+
input :related_person_ids,
|
|
15
|
+
title: "related_person IDs",
|
|
16
|
+
type: 'text',
|
|
17
|
+
description: "related_person Resource ID"
|
|
18
|
+
|
|
19
|
+
input_order :url, :smart_credentials, :related_person_ids
|
|
20
|
+
|
|
21
|
+
def resource_type
|
|
22
|
+
'RelatedPerson'
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def scratch_resources
|
|
26
|
+
scratch[:related_person_resources] ||= {}
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def related_person_id_list
|
|
30
|
+
return [nil] unless respond_to? :related_person_ids
|
|
31
|
+
related_person_ids.split(',').map(&:strip)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
run do
|
|
35
|
+
perform_read_test(related_person_id_list)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require_relative '../../../validation_test'
|
|
2
|
+
require_relative './related_person_read_test'
|
|
3
|
+
|
|
4
|
+
module CarinForBlueButtonTestKit
|
|
5
|
+
module CARIN4BBV200
|
|
6
|
+
class RelatedPersonValidationTest < Inferno::Test
|
|
7
|
+
include CarinForBlueButtonTestKit::ValidationTest
|
|
8
|
+
include CarinForBlueButtonTestKit::CARIN4BBV200
|
|
9
|
+
|
|
10
|
+
id :c4bb_v200_related_person_validation_test
|
|
11
|
+
title 'RelatedPerson resources returned during previous tests conform to the C4BB RelatedPerson'
|
|
12
|
+
description %(
|
|
13
|
+
This test verifies resources returned from the first search conform to
|
|
14
|
+
the [C4BB RelatedPerson](http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-RelatedPerson).
|
|
15
|
+
Systems must demonstrate at least one valid example in order to pass this test.
|
|
16
|
+
|
|
17
|
+
It verifies the presence of mandatory elements and that elements with
|
|
18
|
+
required bindings contain appropriate values. CodeableConcept element
|
|
19
|
+
bindings will fail if none of their codings have a code/system belonging
|
|
20
|
+
to the bound ValueSet. Quantity, Coding, and code element bindings will
|
|
21
|
+
fail if their code/system are not found in the valueset.
|
|
22
|
+
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
output :dar_code_found, :dar_extension_found
|
|
26
|
+
|
|
27
|
+
def resource_type
|
|
28
|
+
'RelatedPerson'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def scratch_resources
|
|
32
|
+
scratch[:related_person_resources] ||= {}
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
run do
|
|
36
|
+
perform_validation_test(scratch_resources[:all] || [],
|
|
37
|
+
'http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-RelatedPerson',
|
|
38
|
+
'2.0.0',
|
|
39
|
+
skip_if_empty: true)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
require_relative 'related_person/related_person_read_test'
|
|
2
|
+
require_relative 'related_person/related_person_validation_test'
|
|
3
|
+
require_relative 'related_person/related_person_must_support_test'
|
|
4
|
+
|
|
5
|
+
module CarinForBlueButtonTestKit
|
|
6
|
+
module CARIN4BBV200
|
|
7
|
+
class RelatedPersonGroup < Inferno::TestGroup
|
|
8
|
+
title 'RelatedPerson Tests'
|
|
9
|
+
short_description 'Verify support for the server capabilities required by the C4BB RelatedPerson.'
|
|
10
|
+
description %(
|
|
11
|
+
# Background
|
|
12
|
+
|
|
13
|
+
The CARIN for Blue Button RelatedPerson sequence verifies that the system under test is
|
|
14
|
+
able to provide correct responses for RelatedPerson queries. These queries
|
|
15
|
+
must contain resources conforming to the C4BB RelatedPerson as
|
|
16
|
+
specified in the CARIN for Blue Button v2.0.0 Implementation Guide.
|
|
17
|
+
|
|
18
|
+
# Testing Methodology
|
|
19
|
+
## Searching
|
|
20
|
+
This test sequence will first perform each required search associated
|
|
21
|
+
with this resource. This sequence will perform searches with the
|
|
22
|
+
following parameters:
|
|
23
|
+
|
|
24
|
+
* _id
|
|
25
|
+
|
|
26
|
+
### Search Parameters
|
|
27
|
+
The first search uses the selected patient(s) from the prior launch
|
|
28
|
+
sequence. Any subsequent searches will look for its parameter values
|
|
29
|
+
from the results of the first search. For example, the `identifier`
|
|
30
|
+
search in the patient sequence is performed by looking for an existing
|
|
31
|
+
`Patient.identifier` from any of the resources returned in the `_id`
|
|
32
|
+
search. If a value cannot be found this way, the search is skipped.
|
|
33
|
+
|
|
34
|
+
### Search Validation
|
|
35
|
+
Inferno will retrieve up to the first 20 bundle pages of the reply for
|
|
36
|
+
RelatedPerson resources and save them for subsequent tests.
|
|
37
|
+
Each resource is then checked to see if it matches the searched
|
|
38
|
+
parameters in accordance with [FHIR search
|
|
39
|
+
guidelines](https://www.hl7.org/fhir/search.html). The test will fail,
|
|
40
|
+
for example, if a Patient search for `gender=male` returns a `female`
|
|
41
|
+
patient.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Must Support
|
|
45
|
+
Each profile contains elements marked as "must support". This test
|
|
46
|
+
sequence expects to see each of these elements at least once. If at
|
|
47
|
+
least one cannot be found, the test will fail. The test will look
|
|
48
|
+
through the RelatedPerson resources found in the first test for these
|
|
49
|
+
elements.
|
|
50
|
+
|
|
51
|
+
## Profile Validation
|
|
52
|
+
Each resource returned from the first search is expected to conform to
|
|
53
|
+
the [C4BB RelatedPerson](http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-RelatedPerson). Each element is checked against
|
|
54
|
+
terminology binding and cardinality requirements.
|
|
55
|
+
|
|
56
|
+
Elements with a required binding are validated against their bound
|
|
57
|
+
ValueSet. If the code/system in the element is not part of the ValueSet,
|
|
58
|
+
then the test will fail.
|
|
59
|
+
|
|
60
|
+
## Reference Validation
|
|
61
|
+
At least one instance of each external reference in elements marked as
|
|
62
|
+
"must support" within the resources provided by the system must resolve.
|
|
63
|
+
The test will attempt to read each reference found and will fail if no
|
|
64
|
+
read succeeds.
|
|
65
|
+
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
id :c4bb_v200_related_person
|
|
69
|
+
run_as_group
|
|
70
|
+
|
|
71
|
+
def self.metadata
|
|
72
|
+
@metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'related_person', 'metadata.yml'), aliases: true))
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
test from: :c4bb_v200_related_person_read_test
|
|
76
|
+
test from: :c4bb_v200_related_person_validation_test
|
|
77
|
+
test from: :c4bb_v200_related_person_must_support_test
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module CarinForBlueButtonTestKit
|
|
2
|
+
module CARIN4BBV200
|
|
3
|
+
module ResourceList
|
|
4
|
+
RESOURCE_LIST = [
|
|
5
|
+
'Coverage',
|
|
6
|
+
'Explanation Of Benefit',
|
|
7
|
+
'ExplanationOfBenefit Inpatient Institutional',
|
|
8
|
+
'ExplanationOfBenefit Outpatient Institutional',
|
|
9
|
+
'ExplanationOfBenefit Oral',
|
|
10
|
+
'ExplanationOfBenefit Pharmacy',
|
|
11
|
+
'ExplanationOfBenefit Professional NonClinician',
|
|
12
|
+
'Organization',
|
|
13
|
+
'Patient',
|
|
14
|
+
'Practitioner',
|
|
15
|
+
'RelatedPerson'
|
|
16
|
+
].freeze
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
require_relative 'naming'
|
|
2
|
+
|
|
3
|
+
module CarinForBlueButtonTestKit
|
|
4
|
+
class Generator
|
|
5
|
+
class GroupGenerator
|
|
6
|
+
class << self
|
|
7
|
+
def generate(ig_metadata, base_output_dir)
|
|
8
|
+
ig_metadata.ordered_groups
|
|
9
|
+
.each { |group| new(group, base_output_dir).generate }
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
attr_accessor :group_metadata, :base_output_dir
|
|
14
|
+
|
|
15
|
+
def initialize(group_metadata, base_output_dir)
|
|
16
|
+
self.group_metadata = group_metadata
|
|
17
|
+
self.base_output_dir = base_output_dir
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def template
|
|
21
|
+
@template ||= File.read(File.join(__dir__, 'templates', 'group.rb.erb'))
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def output
|
|
25
|
+
@output ||= ERB.new(template).result(binding)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def base_output_file_name
|
|
29
|
+
"#{class_name.underscore}.rb"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def base_metadata_file_name
|
|
33
|
+
"metadata.yml"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def class_name
|
|
37
|
+
"#{Naming.upper_camel_case_for_profile(group_metadata)}Group"
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def module_name
|
|
41
|
+
"CARIN4BB#{group_metadata.reformatted_version.upcase}"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def title
|
|
45
|
+
group_metadata.title
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def short_description
|
|
49
|
+
group_metadata.short_description
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def output_file_name
|
|
53
|
+
File.join(base_output_dir, base_output_file_name)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def metadata_file_name
|
|
57
|
+
File.join(base_output_dir, profile_identifier, base_metadata_file_name)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def profile_identifier
|
|
61
|
+
Naming.snake_case_for_profile(group_metadata)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def group_id
|
|
65
|
+
"c4bb_#{group_metadata.reformatted_version}_#{profile_identifier}"
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def resource_type
|
|
69
|
+
group_metadata.resource
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def search_validation_resource_type
|
|
73
|
+
text = "#{resource_type} resources"
|
|
74
|
+
text
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def profile_name
|
|
78
|
+
group_metadata.profile_name
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def profile_url
|
|
82
|
+
group_metadata.profile_url
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def optional?
|
|
87
|
+
resource_type == 'QuestionnaireResponse'
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def generate
|
|
91
|
+
File.open(output_file_name, 'w') { |f| f.write(output) }
|
|
92
|
+
group_metadata.id = group_id
|
|
93
|
+
group_metadata.file_name = base_output_file_name
|
|
94
|
+
File.open(metadata_file_name, 'w') { |f| f.write(YAML.dump(group_metadata.to_hash)) }
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def test_id_list
|
|
98
|
+
@test_id_list ||=
|
|
99
|
+
group_metadata.tests.map { |test| test[:id] }
|
|
100
|
+
|
|
101
|
+
# Remove calls to search tests for EOB subgroups (all subgroup search tests handled in EOB root tests)
|
|
102
|
+
if is_eob_subgroup?
|
|
103
|
+
@test_id_list = @test_id_list.select { |test_name| !test_name.include?("search_test") }
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
@test_id_list
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def test_file_list
|
|
110
|
+
@test_file_list ||=
|
|
111
|
+
group_metadata.tests.map do |test|
|
|
112
|
+
name_without_suffix = test[:file_name].delete_suffix('.rb')
|
|
113
|
+
name_without_suffix.start_with?('..') ? name_without_suffix : "#{profile_identifier}/#{name_without_suffix}"
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Remove calls to search tests for EOB subgroups (all subgroup search tests handled in EOB root tests)
|
|
117
|
+
if is_eob_subgroup?
|
|
118
|
+
@test_file_list = @test_file_list.select { |test_name| !test_name.include?("search_test") }
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
@test_file_list
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def required_searches
|
|
125
|
+
if !group_metadata.searches.nil? && !is_eob_subgroup?
|
|
126
|
+
group_metadata.searches.select { |search| search[:expectation] == 'SHALL' }
|
|
127
|
+
else
|
|
128
|
+
[]
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def search_param_name_string
|
|
133
|
+
required_searches
|
|
134
|
+
.map { |search| search[:names].join(' + ') }
|
|
135
|
+
.map { |names| "* #{names}" }
|
|
136
|
+
.join("\n")
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
def search_description
|
|
140
|
+
return '' if required_searches.blank?
|
|
141
|
+
|
|
142
|
+
<<~SEARCH_DESCRIPTION
|
|
143
|
+
## Searching
|
|
144
|
+
This test sequence will first perform each required search associated
|
|
145
|
+
with this resource. This sequence will perform searches with the
|
|
146
|
+
following parameters:
|
|
147
|
+
|
|
148
|
+
#{search_param_name_string}
|
|
149
|
+
|
|
150
|
+
### Search Parameters
|
|
151
|
+
The first search uses the selected patient(s) from the prior launch
|
|
152
|
+
sequence. Any subsequent searches will look for its parameter values
|
|
153
|
+
from the results of the first search. For example, the `identifier`
|
|
154
|
+
search in the patient sequence is performed by looking for an existing
|
|
155
|
+
`Patient.identifier` from any of the resources returned in the `_id`
|
|
156
|
+
search. If a value cannot be found this way, the search is skipped.
|
|
157
|
+
|
|
158
|
+
### Search Validation
|
|
159
|
+
Inferno will retrieve up to the first 20 bundle pages of the reply for
|
|
160
|
+
#{search_validation_resource_type} and save them for subsequent tests.
|
|
161
|
+
Each resource is then checked to see if it matches the searched
|
|
162
|
+
parameters in accordance with [FHIR search
|
|
163
|
+
guidelines](https://www.hl7.org/fhir/search.html). The test will fail,
|
|
164
|
+
for example, if a Patient search for `gender=male` returns a `female`
|
|
165
|
+
patient.
|
|
166
|
+
SEARCH_DESCRIPTION
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def description
|
|
170
|
+
<<~DESCRIPTION
|
|
171
|
+
# Background
|
|
172
|
+
|
|
173
|
+
The CARIN for Blue Button #{title} sequence verifies that the system under test is
|
|
174
|
+
able to provide correct responses for #{resource_type} queries. These queries
|
|
175
|
+
must contain resources conforming to the #{profile_name} as
|
|
176
|
+
specified in the CARIN for Blue Button #{group_metadata.version} Implementation Guide.
|
|
177
|
+
|
|
178
|
+
# Testing Methodology
|
|
179
|
+
#{search_description}
|
|
180
|
+
|
|
181
|
+
## Must Support
|
|
182
|
+
Each profile contains elements marked as "must support". This test
|
|
183
|
+
sequence expects to see each of these elements at least once. If at
|
|
184
|
+
least one cannot be found, the test will fail. The test will look
|
|
185
|
+
through the #{resource_type} resources found in the first test for these
|
|
186
|
+
elements.
|
|
187
|
+
|
|
188
|
+
## Profile Validation
|
|
189
|
+
Each resource returned from the first search is expected to conform to
|
|
190
|
+
the [#{profile_name}](#{profile_url}). Each element is checked against
|
|
191
|
+
terminology binding and cardinality requirements.
|
|
192
|
+
|
|
193
|
+
Elements with a required binding are validated against their bound
|
|
194
|
+
ValueSet. If the code/system in the element is not part of the ValueSet,
|
|
195
|
+
then the test will fail.
|
|
196
|
+
|
|
197
|
+
## Reference Validation
|
|
198
|
+
At least one instance of each external reference in elements marked as
|
|
199
|
+
"must support" within the resources provided by the system must resolve.
|
|
200
|
+
The test will attempt to read each reference found and will fail if no
|
|
201
|
+
read succeeds.
|
|
202
|
+
DESCRIPTION
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
def is_eob_subgroup?
|
|
206
|
+
base_output_file_name.match(/benefit_.+_group/)
|
|
207
|
+
end
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
module CarinForBlueButtonTestKit
|
|
2
|
+
class Generator
|
|
3
|
+
class GroupMetadata
|
|
4
|
+
ATTRIBUTES = [
|
|
5
|
+
:name,
|
|
6
|
+
:class_name,
|
|
7
|
+
:version,
|
|
8
|
+
:reformatted_version,
|
|
9
|
+
:resource,
|
|
10
|
+
:profile_url,
|
|
11
|
+
:profile_name,
|
|
12
|
+
:profile_version,
|
|
13
|
+
:title,
|
|
14
|
+
:short_description,
|
|
15
|
+
:interactions,
|
|
16
|
+
:operations,
|
|
17
|
+
:searches,
|
|
18
|
+
:search_definitions,
|
|
19
|
+
:include_params,
|
|
20
|
+
:revincludes,
|
|
21
|
+
:required_concepts,
|
|
22
|
+
:must_supports,
|
|
23
|
+
:mandatory_elements,
|
|
24
|
+
:bindings,
|
|
25
|
+
:references,
|
|
26
|
+
:tests,
|
|
27
|
+
:id,
|
|
28
|
+
:file_name,
|
|
29
|
+
:delayed_references
|
|
30
|
+
].freeze
|
|
31
|
+
|
|
32
|
+
ATTRIBUTES.each { |name| attr_accessor name }
|
|
33
|
+
|
|
34
|
+
def initialize(metadata)
|
|
35
|
+
metadata.each do |key, value|
|
|
36
|
+
raise "Unknown attribute #{key}" unless ATTRIBUTES.include? key
|
|
37
|
+
|
|
38
|
+
instance_variable_set(:"@#{key}", value)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def delayed?
|
|
43
|
+
return false if resource == 'Patient'
|
|
44
|
+
|
|
45
|
+
true
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def no_patient_searches?
|
|
49
|
+
searches.none? { |search| search[:names].include? 'patient' }
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def add_test(id:, file_name:)
|
|
53
|
+
self.tests ||= []
|
|
54
|
+
|
|
55
|
+
test_metadata = {
|
|
56
|
+
id: id,
|
|
57
|
+
file_name: file_name
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if delayed? && id.include?('read')
|
|
61
|
+
self.tests.unshift(test_metadata)
|
|
62
|
+
else
|
|
63
|
+
self.tests << test_metadata
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def to_hash
|
|
68
|
+
ATTRIBUTES.each_with_object({}) { |key, hash| hash[key] = send(key) unless send(key).nil? }
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def add_delayed_references(delayed_profiles, ig_resources)
|
|
72
|
+
self.delayed_references =
|
|
73
|
+
references
|
|
74
|
+
.select { |reference| (reference[:profiles] & delayed_profiles).present? }
|
|
75
|
+
.map do |reference|
|
|
76
|
+
profile_urls = (reference[:profiles] & delayed_profiles)
|
|
77
|
+
delayed_resources = profile_urls.map { |url| ig_resources.resource_for_profile(url) }
|
|
78
|
+
{
|
|
79
|
+
path: reference[:path].gsub("#{resource}.", ''),
|
|
80
|
+
resources: delayed_resources
|
|
81
|
+
}
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|