ipa_test_kit 0.2.0 → 0.3.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 +4 -4
- data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/conformance_support_test.rb +43 -0
- data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/fhir_version_test.rb +17 -0
- data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/instantiates_ig_test.rb +22 -0
- data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/json_support_test.rb +41 -0
- data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/profile_support_test.rb +65 -0
- data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement_group.rb +73 -0
- data/lib/ipa_test_kit/custom_groups/v1.0.0/ipa_smart_launch_group.rb +108 -0
- data/lib/ipa_test_kit/fhir_resource_navigation.rb +12 -3
- data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_must_support_test.rb +46 -0
- data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_patient_clinical_status_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_patient_search_test.rb +63 -0
- data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_provenance_revinclude_search_test.rb +51 -0
- data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +42 -0
- data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/{allergy_intolerance → v1.0.0/allergy_intolerance}/metadata.yml +88 -58
- data/lib/ipa_test_kit/generated/{allergy_intolerance_group.rb → v1.0.0/allergy_intolerance_group.rb} +31 -24
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_must_support_test.rb +47 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_category_clinical_status_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_category_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_clinical_status_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_code_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_onset_date_search_test.rb +49 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_search_test.rb +63 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_provenance_revinclude_search_test.rb +51 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_reference_resolution_test.rb +42 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/v1.0.0/condition/metadata.yml +290 -0
- data/lib/ipa_test_kit/generated/{condition_group.rb → v1.0.0/condition_group.rb} +38 -29
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_id_search_test.rb +43 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_must_support_test.rb +56 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_category_date_search_test.rb +48 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_category_search_test.rb +48 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_contenttype_search_test.rb +49 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_search_test.rb +64 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_status_search_test.rb +49 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_type_date_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_type_period_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_type_search_test.rb +48 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_provenance_revinclude_search_test.rb +51 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_reference_resolution_test.rb +44 -0
- data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/{document_reference → v1.0.0/document_reference}/metadata.yml +197 -188
- data/lib/ipa_test_kit/generated/{document_reference_group.rb → v1.0.0/document_reference_group.rb} +45 -34
- data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_must_support_test.rb +47 -0
- data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_patient_date_search_test.rb +49 -0
- data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_patient_search_test.rb +63 -0
- data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_patient_status_search_test.rb +49 -0
- data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_provenance_revinclude_search_test.rb +51 -0
- data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_reference_resolution_test.rb +42 -0
- data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/v1.0.0/immunization/metadata.yml +245 -0
- data/lib/ipa_test_kit/generated/{immunization_group.rb → v1.0.0/immunization_group.rb} +32 -25
- data/lib/ipa_test_kit/generated/v1.0.0/ipa_test_suite.rb +113 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication/medication_must_support_test.rb +43 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication/medication_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication/medication_validation_test.rb +39 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication/metadata.yml +52 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_group.rb +61 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_category_search_test.rb +51 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_code_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_must_support_test.rb +52 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_patient_intent_authoredon_search_test.rb +54 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_patient_intent_search_test.rb +54 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_patient_intent_status_search_test.rb +54 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_patient_search_test.rb +69 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_provenance_revinclude_search_test.rb +51 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_reference_resolution_test.rb +46 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_validation_test.rb +39 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_request/metadata.yml +370 -0
- data/lib/ipa_test_kit/generated/{medication_request_group.rb → v1.0.0/medication_request_group.rb} +39 -31
- data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_must_support_test.rb +51 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_patient_search_test.rb +64 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_patient_status_search_test.rb +49 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_provenance_revinclude_search_test.rb +51 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_reference_resolution_test.rb +45 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/metadata.yml +222 -0
- data/lib/ipa_test_kit/generated/{medication_statement_group.rb → v1.0.0/medication_statement_group.rb} +31 -31
- data/lib/ipa_test_kit/generated/v1.0.0/metadata.yml +2846 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/metadata.yml +341 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_must_support_test.rb +49 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_patient_category_date_search_test.rb +48 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_patient_category_search_test.rb +65 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_patient_category_status_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_patient_code_date_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_patient_code_search_test.rb +48 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_provenance_revinclude_search_test.rb +52 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_reference_resolution_test.rb +42 -0
- data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/{observation_group.rb → v1.0.0/observation_group.rb} +40 -29
- data/lib/ipa_test_kit/generated/v1.0.0/patient/metadata.yml +260 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_birthdate_family_search_test.rb +45 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_birthdate_name_search_test.rb +45 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_birthdate_search_test.rb +45 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_family_gender_search_test.rb +45 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_family_search_test.rb +45 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_gender_name_search_test.rb +45 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_gender_search_test.rb +45 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_given_search_test.rb +45 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_id_search_test.rb +57 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_identifier_search_test.rb +44 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_must_support_test.rb +49 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_name_search_test.rb +45 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_provenance_revinclude_search_test.rb +51 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/{patient_group.rb → v1.0.0/patient_group.rb} +44 -34
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner/metadata.yml +48 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner/practitioner_must_support_test.rb +43 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner/practitioner_provenance_revinclude_search_test.rb +0 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner/practitioner_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner/practitioner_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner_group.rb +61 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role/metadata.yml +68 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role/practitioner_role_must_support_test.rb +43 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role/practitioner_role_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role/practitioner_role_reference_resolution_test.rb +42 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role/practitioner_role_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role_group.rb +63 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/metadata.yml +299 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_must_support_test.rb +48 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_category_clinical_status_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_category_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_clinical_status_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_code_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_onset_date_search_test.rb +49 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_search_test.rb +63 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_provenance_revinclude_search_test.rb +51 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_reference_resolution_test.rb +42 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item_group.rb +100 -0
- data/lib/ipa_test_kit/generated/{resource_list.rb → v1.0.0/resource_list.rb} +7 -6
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/metadata.yml +370 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_must_support_test.rb +57 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_patient_category_date_search_test.rb +48 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_patient_category_search_test.rb +65 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_patient_category_status_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_patient_code_date_search_test.rb +50 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_patient_code_search_test.rb +48 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_provenance_revinclude_search_test.rb +52 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_read_test.rb +26 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_reference_resolution_test.rb +42 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_validation_test.rb +40 -0
- data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns_group.rb +100 -0
- data/lib/ipa_test_kit/generator/group_generator.rb +56 -14
- data/lib/ipa_test_kit/generator/group_metadata.rb +5 -17
- data/lib/ipa_test_kit/generator/group_metadata_extractor.rb +45 -31
- data/lib/ipa_test_kit/generator/ig_loader.rb +15 -2
- data/lib/ipa_test_kit/generator/ig_metadata.rb +2 -2
- data/lib/ipa_test_kit/generator/ig_metadata_extractor.rb +18 -15
- data/lib/ipa_test_kit/generator/ig_resources.rb +3 -2
- data/lib/ipa_test_kit/generator/must_support_metadata_extractor.rb +245 -35
- data/lib/ipa_test_kit/generator/must_support_test_generator.rb +32 -11
- data/lib/ipa_test_kit/generator/naming.rb +31 -17
- data/lib/ipa_test_kit/generator/provenance_revinclude_search_test_generator.rb +14 -12
- data/lib/ipa_test_kit/generator/read_test_generator.rb +12 -7
- data/lib/ipa_test_kit/generator/reference_resolution_test_generator.rb +27 -7
- data/lib/ipa_test_kit/generator/resource_list_generator.rb +8 -12
- data/lib/ipa_test_kit/generator/search_definition_metadata_extractor.rb +36 -74
- data/lib/ipa_test_kit/generator/search_metadata_extractor.rb +4 -3
- data/lib/ipa_test_kit/generator/search_test_generator.rb +33 -38
- data/lib/ipa_test_kit/generator/special_cases.rb +8 -4
- data/lib/ipa_test_kit/generator/suite_generator.rb +41 -8
- data/lib/ipa_test_kit/generator/terminology_binding_metadata_extractor.rb +18 -3
- data/lib/ipa_test_kit/generator/validation_test_generator.rb +29 -17
- data/lib/ipa_test_kit/generator/value_extractor.rb +101 -0
- data/lib/ipa_test_kit/generator.rb +48 -14
- data/lib/ipa_test_kit/igs/ipa_v100/search-parameters.json +65408 -0
- data/lib/ipa_test_kit/igs/ipa_v100/vitalsigns.profile.json +3122 -0
- data/lib/ipa_test_kit/igs/ipa_v100.tgz +0 -0
- data/lib/ipa_test_kit/must_support_test.rb +50 -1
- data/lib/ipa_test_kit/provenance_validator.rb +38 -0
- data/lib/ipa_test_kit/read_test.rb +1 -1
- data/lib/ipa_test_kit/reference_resolution_test.rb +139 -70
- data/lib/ipa_test_kit/search_test.rb +253 -224
- data/lib/ipa_test_kit/search_test_properties.rb +3 -13
- data/lib/ipa_test_kit/validation_test.rb +13 -5
- data/lib/ipa_test_kit/version.rb +1 -1
- data/lib/ipa_test_kit.rb +3 -2
- metadata +173 -236
- data/lib/ipa_test_kit/custom_groups/capability_statement/conformance_support_test.rb +0 -41
- data/lib/ipa_test_kit/custom_groups/capability_statement/fhir_version_test.rb +0 -15
- data/lib/ipa_test_kit/custom_groups/capability_statement/json_support_test.rb +0 -39
- data/lib/ipa_test_kit/custom_groups/capability_statement/profile_support_test.rb +0 -76
- data/lib/ipa_test_kit/custom_groups/capability_statement_group.rb +0 -64
- data/lib/ipa_test_kit/ext/fhir_models.rb +0 -59
- data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_must_support_test.rb +0 -40
- data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_patient_clinical_status_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_patient_search_test.rb +0 -60
- data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_provenance_revinclude_search_test.rb +0 -49
- data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/bmi/bmi_must_support_test.rb +0 -49
- data/lib/ipa_test_kit/generated/bmi/bmi_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/bmi/bmi_patient_category_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/bmi/bmi_patient_category_status_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/bmi/bmi_patient_code_date_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/bmi/bmi_patient_code_search_test.rb +0 -62
- data/lib/ipa_test_kit/generated/bmi/bmi_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/bmi/bmi_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/bmi/bmi_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/bmi/bmi_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/bmi/metadata.yml +0 -322
- data/lib/ipa_test_kit/generated/bmi_group.rb +0 -93
- data/lib/ipa_test_kit/generated/bodyheight/bodyheight_must_support_test.rb +0 -49
- data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_category_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_category_status_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_code_date_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_code_search_test.rb +0 -62
- data/lib/ipa_test_kit/generated/bodyheight/bodyheight_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/bodyheight/bodyheight_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/bodyheight/bodyheight_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/bodyheight/bodyheight_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/bodyheight/metadata.yml +0 -328
- data/lib/ipa_test_kit/generated/bodyheight_group.rb +0 -93
- data/lib/ipa_test_kit/generated/bodytemp/bodytemp_must_support_test.rb +0 -49
- data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_category_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_category_status_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_code_date_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_code_search_test.rb +0 -62
- data/lib/ipa_test_kit/generated/bodytemp/bodytemp_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/bodytemp/bodytemp_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/bodytemp/bodytemp_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/bodytemp/bodytemp_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/bodytemp/metadata.yml +0 -328
- data/lib/ipa_test_kit/generated/bodytemp_group.rb +0 -93
- data/lib/ipa_test_kit/generated/bodyweight/bodyweight_must_support_test.rb +0 -49
- data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_category_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_category_status_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_code_date_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_code_search_test.rb +0 -62
- data/lib/ipa_test_kit/generated/bodyweight/bodyweight_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/bodyweight/bodyweight_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/bodyweight/bodyweight_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/bodyweight/bodyweight_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/bodyweight/metadata.yml +0 -328
- data/lib/ipa_test_kit/generated/bodyweight_group.rb +0 -93
- data/lib/ipa_test_kit/generated/bp/bp_must_support_test.rb +0 -52
- data/lib/ipa_test_kit/generated/bp/bp_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/bp/bp_patient_category_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/bp/bp_patient_category_status_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/bp/bp_patient_code_date_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/bp/bp_patient_code_search_test.rb +0 -62
- data/lib/ipa_test_kit/generated/bp/bp_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/bp/bp_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/bp/bp_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/bp/bp_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/bp/metadata.yml +0 -379
- data/lib/ipa_test_kit/generated/bp_group.rb +0 -93
- data/lib/ipa_test_kit/generated/condition/condition_must_support_test.rb +0 -39
- data/lib/ipa_test_kit/generated/condition/condition_patient_category_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/condition/condition_patient_clinical_status_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/condition/condition_patient_code_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/condition/condition_patient_onset_date_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/condition/condition_patient_search_test.rb +0 -60
- data/lib/ipa_test_kit/generated/condition/condition_provenance_revinclude_search_test.rb +0 -49
- data/lib/ipa_test_kit/generated/condition/condition_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/condition/condition_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/condition/condition_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/condition/metadata.yml +0 -231
- data/lib/ipa_test_kit/generated/document_reference/document_reference_id_search_test.rb +0 -40
- data/lib/ipa_test_kit/generated/document_reference/document_reference_must_support_test.rb +0 -49
- data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_category_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_search_test.rb +0 -61
- data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_status_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_type_period_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_type_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/document_reference/document_reference_provenance_revinclude_search_test.rb +0 -50
- data/lib/ipa_test_kit/generated/document_reference/document_reference_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/document_reference/document_reference_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/document_reference/document_reference_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/head_circumference/head_circumference_must_support_test.rb +0 -49
- data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_category_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_category_status_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_code_date_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_code_search_test.rb +0 -62
- data/lib/ipa_test_kit/generated/head_circumference/head_circumference_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/head_circumference/head_circumference_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/head_circumference/head_circumference_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/head_circumference/head_circumference_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/head_circumference/metadata.yml +0 -324
- data/lib/ipa_test_kit/generated/head_circumference_group.rb +0 -93
- data/lib/ipa_test_kit/generated/heartrate/heartrate_must_support_test.rb +0 -49
- data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_category_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_category_status_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_code_date_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_code_search_test.rb +0 -62
- data/lib/ipa_test_kit/generated/heartrate/heartrate_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/heartrate/heartrate_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/heartrate/heartrate_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/heartrate/heartrate_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/heartrate/metadata.yml +0 -325
- data/lib/ipa_test_kit/generated/heartrate_group.rb +0 -93
- data/lib/ipa_test_kit/generated/immunization/immunization_must_support_test.rb +0 -40
- data/lib/ipa_test_kit/generated/immunization/immunization_patient_date_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/immunization/immunization_patient_search_test.rb +0 -60
- data/lib/ipa_test_kit/generated/immunization/immunization_patient_status_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/immunization/immunization_provenance_revinclude_search_test.rb +0 -50
- data/lib/ipa_test_kit/generated/immunization/immunization_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/immunization/immunization_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/immunization/immunization_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/immunization/metadata.yml +0 -210
- data/lib/ipa_test_kit/generated/ipa_test_suite.rb +0 -88
- data/lib/ipa_test_kit/generated/medication_request/medication_request_must_support_test.rb +0 -44
- data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_authoredon_search_test.rb +0 -53
- data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_encounter_search_test.rb +0 -52
- data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_search_test.rb +0 -68
- data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_status_search_test.rb +0 -49
- data/lib/ipa_test_kit/generated/medication_request/medication_request_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/medication_request/medication_request_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/medication_request/medication_request_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/medication_request/medication_request_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/medication_request/medication_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/medication_request/metadata.yml +0 -307
- data/lib/ipa_test_kit/generated/medication_statement/medication_statement_must_support_test.rb +0 -43
- data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_context_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_effective_search_test.rb +0 -52
- data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_search_test.rb +0 -68
- data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_status_search_test.rb +0 -49
- data/lib/ipa_test_kit/generated/medication_statement/medication_statement_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/medication_statement/medication_statement_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/medication_statement/medication_statement_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/medication_statement/medication_statement_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/medication_statement/medication_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/medication_statement/metadata.yml +0 -230
- data/lib/ipa_test_kit/generated/metadata.yml +0 -6230
- data/lib/ipa_test_kit/generated/observation/metadata.yml +0 -1280
- data/lib/ipa_test_kit/generated/observation/observation_must_support_test.rb +0 -41
- data/lib/ipa_test_kit/generated/observation/observation_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/observation/observation_patient_category_search_test.rb +0 -62
- data/lib/ipa_test_kit/generated/observation/observation_patient_category_status_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/observation/observation_patient_code_date_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/observation/observation_patient_code_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/observation/observation_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/observation/observation_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/observation/observation_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/observation/observation_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/oxygensat/metadata.yml +0 -366
- data/lib/ipa_test_kit/generated/oxygensat/oxygensat_must_support_test.rb +0 -65
- data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_category_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_category_status_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_code_date_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_code_search_test.rb +0 -62
- data/lib/ipa_test_kit/generated/oxygensat/oxygensat_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/oxygensat/oxygensat_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/oxygensat/oxygensat_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/oxygensat/oxygensat_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/oxygensat_group.rb +0 -93
- data/lib/ipa_test_kit/generated/patient/metadata.yml +0 -320
- data/lib/ipa_test_kit/generated/patient/patient_birthdate_family_search_test.rb +0 -41
- data/lib/ipa_test_kit/generated/patient/patient_birthdate_name_search_test.rb +0 -39
- data/lib/ipa_test_kit/generated/patient/patient_family_gender_search_test.rb +0 -41
- data/lib/ipa_test_kit/generated/patient/patient_gender_name_search_test.rb +0 -39
- data/lib/ipa_test_kit/generated/patient/patient_id_search_test.rb +0 -53
- data/lib/ipa_test_kit/generated/patient/patient_identifier_search_test.rb +0 -40
- data/lib/ipa_test_kit/generated/patient/patient_must_support_test.rb +0 -57
- data/lib/ipa_test_kit/generated/patient/patient_name_search_test.rb +0 -39
- data/lib/ipa_test_kit/generated/patient/patient_provenance_revinclude_search_test.rb +0 -49
- data/lib/ipa_test_kit/generated/patient/patient_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/patient/patient_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/patient/patient_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/practitioner/metadata.yml +0 -124
- data/lib/ipa_test_kit/generated/practitioner/practitioner_identifier_search_test.rb +0 -40
- data/lib/ipa_test_kit/generated/practitioner/practitioner_must_support_test.rb +0 -40
- data/lib/ipa_test_kit/generated/practitioner/practitioner_name_search_test.rb +0 -49
- data/lib/ipa_test_kit/generated/practitioner/practitioner_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/practitioner/practitioner_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/practitioner/practitioner_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/practitioner_group.rb +0 -84
- data/lib/ipa_test_kit/generated/practitioner_role/metadata.yml +0 -141
- data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_identifier_search_test.rb +0 -40
- data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_must_support_test.rb +0 -40
- data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_practitioner_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/practitioner_role_group.rb +0 -84
- data/lib/ipa_test_kit/generated/provenance/metadata.yml +0 -114
- data/lib/ipa_test_kit/generated/provenance/provenance_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/provenance/provenance_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/provenance/provenance_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/provenance_group.rb +0 -53
- data/lib/ipa_test_kit/generated/resprate/metadata.yml +0 -325
- data/lib/ipa_test_kit/generated/resprate/resprate_must_support_test.rb +0 -49
- data/lib/ipa_test_kit/generated/resprate/resprate_patient_category_date_search_test.rb +0 -46
- data/lib/ipa_test_kit/generated/resprate/resprate_patient_category_search_test.rb +0 -45
- data/lib/ipa_test_kit/generated/resprate/resprate_patient_category_status_search_test.rb +0 -47
- data/lib/ipa_test_kit/generated/resprate/resprate_patient_code_date_search_test.rb +0 -48
- data/lib/ipa_test_kit/generated/resprate/resprate_patient_code_search_test.rb +0 -62
- data/lib/ipa_test_kit/generated/resprate/resprate_provenance_revinclude_search_test.rb +0 -51
- data/lib/ipa_test_kit/generated/resprate/resprate_read_test.rb +0 -24
- data/lib/ipa_test_kit/generated/resprate/resprate_reference_resolution_test.rb +0 -28
- data/lib/ipa_test_kit/generated/resprate/resprate_validation_test.rb +0 -34
- data/lib/ipa_test_kit/generated/resprate_group.rb +0 -93
- data/lib/ipa_test_kit/igs/package.tgz +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e6c810542f53d1c988b36fb0ea71c09eb5727a1811bf435bacb6c949ef35fb7e
|
|
4
|
+
data.tar.gz: b270518e8bc6b69430ae152c846a2896cbae826bc9cfe4eff6a4dd63a5b69f59
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a233b070feb0ace389398e773df6cf053aba721902c97b180b4e1867d714d1d833f9bf1756469bb4af0ba84ce2c9a019f6437939d12b62675234cf1027a748c5
|
|
7
|
+
data.tar.gz: d38ed58edf9f6593e88197c0ec0d22f03a40b33642601b7906473f724a86652483f1cd43daba6f55561959b604a7d1288d19581b2dc85e7f9c626e770ac6d80f
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module IpaTestKit
|
|
2
|
+
module IpaV100
|
|
3
|
+
class ConformanceSupportTest < Inferno::Test
|
|
4
|
+
id :ipa_100_conformance_support
|
|
5
|
+
title 'FHIR Server supports the conformance interaction'
|
|
6
|
+
description %(
|
|
7
|
+
The conformance 'whole system' interaction provides a method to get the
|
|
8
|
+
CapabilityStatement for the FHIR server. This test checks that the
|
|
9
|
+
server responds to a `GET` request at the following endpoint:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
GET [base]/metadata
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This test checks the following SHALL requirement:
|
|
16
|
+
|
|
17
|
+
> Applications SHALL return a resource that describes the functionality
|
|
18
|
+
of the server end-point.
|
|
19
|
+
|
|
20
|
+
[http://hl7.org/fhir/R4/http.html#capabilities](http://hl7.org/fhir/R4/http.html#capabilities)
|
|
21
|
+
|
|
22
|
+
It does this by checking that the server responds with an HTTP OK 200
|
|
23
|
+
status code and that the body of the response contains a valid
|
|
24
|
+
[CapabilityStatement
|
|
25
|
+
resource](http://hl7.org/fhir/R4/capabilitystatement.html). This test
|
|
26
|
+
does not inspect the content of the CapabilityStatement to see if it
|
|
27
|
+
contains the required information. It only checks to see if the RESTful
|
|
28
|
+
interaction is supported and returns a valid CapabilityStatement
|
|
29
|
+
resource.
|
|
30
|
+
)
|
|
31
|
+
makes_request :capability_statement
|
|
32
|
+
|
|
33
|
+
run do
|
|
34
|
+
fhir_client.set_no_auth
|
|
35
|
+
fhir_get_capability_statement(name: :capability_statement)
|
|
36
|
+
|
|
37
|
+
assert_response_status(200)
|
|
38
|
+
assert_resource_type(:capability_statement)
|
|
39
|
+
assert_valid_resource
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module IpaTestKit
|
|
2
|
+
module IpaV100
|
|
3
|
+
class FHIRVersionTest < Inferno::Test
|
|
4
|
+
id :ipa_100_fhir_version
|
|
5
|
+
title 'Server is using FHIR R4'
|
|
6
|
+
description %(
|
|
7
|
+
This test inspects the CapabilityStatement returned by the server to
|
|
8
|
+
verify that the server is using FHIR R4.
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
run do
|
|
12
|
+
server_version = fhir_client.detect_version.to_s.upcase
|
|
13
|
+
assert server_version == 'R4', "Server is using FHIR version #{server_version} rather than R4"
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module IpaTestKit
|
|
2
|
+
module IpaV100
|
|
3
|
+
class InstantiatesIGTest < Inferno::Test
|
|
4
|
+
id :ipa_100_instantiates_ig
|
|
5
|
+
title 'FHIR server advertises support for the IPA IG'
|
|
6
|
+
description %(
|
|
7
|
+
The server declares that IPA is supported using
|
|
8
|
+
`CapabilityStatement.instantiates`
|
|
9
|
+
)
|
|
10
|
+
uses_request :capability_statement
|
|
11
|
+
|
|
12
|
+
run do
|
|
13
|
+
assert_resource_type(:capability_statement)
|
|
14
|
+
|
|
15
|
+
ig_url = 'http://hl7.org/fhir/uv/ipa/CapabilityStatement/ipa'
|
|
16
|
+
|
|
17
|
+
assert resource.instantiates.include?(ig_url),
|
|
18
|
+
"The server does not advertise support for the IPA IG by including `#{ig_url}` in the `instantiates` field"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module IpaTestKit
|
|
2
|
+
module IpaV100
|
|
3
|
+
class JSONSupportTest < Inferno::Test
|
|
4
|
+
id :ipa_100_json_support
|
|
5
|
+
title 'FHIR server capability states JSON support'
|
|
6
|
+
description %(
|
|
7
|
+
FHIR provides multiple [representation
|
|
8
|
+
formats](https://www.hl7.org/fhir/formats.html) for resources, including
|
|
9
|
+
JSON and XML. IPA profiles require servers to use the [JSON
|
|
10
|
+
representation](https://www.hl7.org/fhir/json.html):
|
|
11
|
+
|
|
12
|
+
[```The IPA Server **SHALL** Support json source formats for all IPA
|
|
13
|
+
interactions.```](http://hl7.org/fhir/uv/ipa/CapabilityStatement-ipa-server.html#behavior)
|
|
14
|
+
|
|
15
|
+
The FHIR conformance interaction require servers to describe which
|
|
16
|
+
formats are available for clients to use. The server must explicitly
|
|
17
|
+
state that JSON is supported. This is located in the [format
|
|
18
|
+
element](https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.format)
|
|
19
|
+
of the CapabilityStatement Resource.
|
|
20
|
+
|
|
21
|
+
This test checks that one of the following values are located in the
|
|
22
|
+
format field.
|
|
23
|
+
|
|
24
|
+
* json
|
|
25
|
+
* application/json
|
|
26
|
+
* application/fhir+json
|
|
27
|
+
)
|
|
28
|
+
uses_request :capability_statement
|
|
29
|
+
|
|
30
|
+
run do
|
|
31
|
+
assert_resource_type(:capability_statement)
|
|
32
|
+
|
|
33
|
+
json_formats = ['json', 'application/json', 'application/fhir+json']
|
|
34
|
+
server_formats = resource.format
|
|
35
|
+
|
|
36
|
+
assert server_formats.any? { |format| json_formats.include? format },
|
|
37
|
+
'CapabilityStatement does not state support for JSON'
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
module IpaTestKit
|
|
2
|
+
module IpaV100
|
|
3
|
+
class ProfileSupportTest < Inferno::Test
|
|
4
|
+
id :ipa_100_profile_support
|
|
5
|
+
title 'Capability Statement lists support for required IPA Profiles'
|
|
6
|
+
description %(
|
|
7
|
+
The IPA Implementation Guide states:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
The IPA Server SHALL:
|
|
11
|
+
1. Support the IPA Patient resource profile.
|
|
12
|
+
2. Support at least one additional resource profile from the list of IPA
|
|
13
|
+
Profiles.
|
|
14
|
+
```
|
|
15
|
+
)
|
|
16
|
+
uses_request :capability_statement
|
|
17
|
+
|
|
18
|
+
PROFILES = {
|
|
19
|
+
'AllergyIntolerance' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-allergyintolerance'].freeze,
|
|
20
|
+
'Condition' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-condition'].freeze,
|
|
21
|
+
'DocumentReference' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-documentreference'].freeze,
|
|
22
|
+
'Immunization' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-immunization'].freeze,
|
|
23
|
+
# 'Medication' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-medication'].freeze,
|
|
24
|
+
'MedicationRequest' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-medicationrequest'].freeze,
|
|
25
|
+
'MedicationStatement' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-medicationstatement'].freeze,
|
|
26
|
+
'Observation' => [
|
|
27
|
+
'http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-observation'
|
|
28
|
+
].freeze,
|
|
29
|
+
'Patient' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient'].freeze,
|
|
30
|
+
'Practitioner' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-practitioner'].freeze,
|
|
31
|
+
'PractitionerRole' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-practitionerrole'].freeze
|
|
32
|
+
}.freeze
|
|
33
|
+
|
|
34
|
+
run do
|
|
35
|
+
assert_resource_type(:capability_statement)
|
|
36
|
+
capability_statement = resource
|
|
37
|
+
|
|
38
|
+
supported_resources =
|
|
39
|
+
capability_statement.rest
|
|
40
|
+
&.each_with_object([]) do |rest, resources|
|
|
41
|
+
rest.resource.each { |resource| resources << resource.type }
|
|
42
|
+
end.uniq
|
|
43
|
+
supported_profiles =
|
|
44
|
+
capability_statement.rest
|
|
45
|
+
&.flat_map(&:resource)
|
|
46
|
+
&.flat_map { |resource| resource.supportedProfile + [resource.profile] }
|
|
47
|
+
&.compact || []
|
|
48
|
+
supported_profiles.map! { |profile_url| profile_url.split('|').first }
|
|
49
|
+
|
|
50
|
+
assert supported_resources.include?('Patient'), 'IPA Patient profile not supported'
|
|
51
|
+
|
|
52
|
+
other_resources = PROFILES.keys.reject { |resource_type| resource_type == 'Patient' }
|
|
53
|
+
other_resources_supported = other_resources.any? { |resource| supported_resources.include? resource }
|
|
54
|
+
assert other_resources_supported, 'No IPA resources other than Patient are supported'
|
|
55
|
+
|
|
56
|
+
required_profiles = PROFILES.slice(*supported_resources).values.flatten
|
|
57
|
+
|
|
58
|
+
missing_profiles = required_profiles - supported_profiles
|
|
59
|
+
|
|
60
|
+
assert missing_profiles.blank?,
|
|
61
|
+
"CapabilityStatement does not claim support for the following IPA profiles: \n* #{missing_profiles.join("\n* ")}"
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
require 'tls_test_kit'
|
|
2
|
+
require_relative 'capability_statement/conformance_support_test'
|
|
3
|
+
require_relative 'capability_statement/fhir_version_test'
|
|
4
|
+
require_relative 'capability_statement/instantiates_ig_test'
|
|
5
|
+
require_relative 'capability_statement/json_support_test'
|
|
6
|
+
require_relative 'capability_statement/profile_support_test'
|
|
7
|
+
|
|
8
|
+
module IpaTestKit
|
|
9
|
+
module IpaV100
|
|
10
|
+
class CapabilityStatementGroup < Inferno::TestGroup
|
|
11
|
+
id :ipa_v100_capability_statement
|
|
12
|
+
title 'Capability Statement'
|
|
13
|
+
short_description 'Retrieve information about supported server functionality using the FHIR capabilties interaction.'
|
|
14
|
+
description %(
|
|
15
|
+
# Background
|
|
16
|
+
The #{title} Sequence tests a FHIR server's ability to formally describe
|
|
17
|
+
features supported by the API by using the [Capability
|
|
18
|
+
Statement](https://www.hl7.org/fhir/capabilitystatement.html) resource.
|
|
19
|
+
The features described in the Capability Statement must be consistent with
|
|
20
|
+
the required capabilities of a IPA server. The Capability Statement
|
|
21
|
+
must also advertise the location of the required SMART on FHIR endpoints
|
|
22
|
+
that enable authenticated access to the FHIR server resources.
|
|
23
|
+
|
|
24
|
+
The Capability Statement resource allows clients to determine which
|
|
25
|
+
resources are supported by a FHIR Server. Not all servers are expected to
|
|
26
|
+
implement all possible queries and data elements described in the IPA
|
|
27
|
+
API. For example, the IPA Implementation Guide requires that the
|
|
28
|
+
Patient resource and only one additional resource profile from the IPA
|
|
29
|
+
Profiles.
|
|
30
|
+
|
|
31
|
+
# Test Methodology
|
|
32
|
+
|
|
33
|
+
This test sequence accesses the server endpoint at `/metadata` using a
|
|
34
|
+
`GET` request. It parses the Capability Statement and verifies that:
|
|
35
|
+
|
|
36
|
+
* The endpoint is secured by an appropriate cryptographic protocol
|
|
37
|
+
* The resource matches the expected FHIR version defined by the tests
|
|
38
|
+
* The resource is a valid FHIR resource
|
|
39
|
+
* The server claims support for JSON encoding of resources
|
|
40
|
+
* The server claims support for the Patient resource and one other
|
|
41
|
+
resource
|
|
42
|
+
|
|
43
|
+
It collects the following information that is saved in the testing session
|
|
44
|
+
for use by later tests:
|
|
45
|
+
|
|
46
|
+
* List of resources supported
|
|
47
|
+
* List of queries parameters supported
|
|
48
|
+
)
|
|
49
|
+
run_as_group
|
|
50
|
+
|
|
51
|
+
input :standalone_smart_credentials,
|
|
52
|
+
title: 'SMART App Launch Credentials',
|
|
53
|
+
optional: true,
|
|
54
|
+
type: 'oauth_credentials'
|
|
55
|
+
|
|
56
|
+
test from: :tls_version_test,
|
|
57
|
+
id: :standalone_auth_tls,
|
|
58
|
+
title: 'FHIR server secured by transport layer security',
|
|
59
|
+
description: %(
|
|
60
|
+
Systems **SHALL** use TLS version 1.2 or higher for all transmissions
|
|
61
|
+
not taking place over a secure network connection.
|
|
62
|
+
),
|
|
63
|
+
config: {
|
|
64
|
+
options: { minimum_allowed_version: OpenSSL::SSL::TLS1_2_VERSION }
|
|
65
|
+
}
|
|
66
|
+
test from: :ipa_100_conformance_support
|
|
67
|
+
test from: :ipa_100_fhir_version
|
|
68
|
+
test from: :ipa_100_json_support
|
|
69
|
+
test from: :ipa_100_instantiates_ig
|
|
70
|
+
test from: :ipa_100_profile_support
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
module IpaTestKit
|
|
2
|
+
module IpaV100
|
|
3
|
+
class IPASMARTLaunchGroup < Inferno::TestGroup
|
|
4
|
+
id :ipa_v100_smart_launch
|
|
5
|
+
title 'SMART App Launch'
|
|
6
|
+
description %(
|
|
7
|
+
# Background
|
|
8
|
+
Applications authorize to gain access to a patient record using the
|
|
9
|
+
[SMART App Launch
|
|
10
|
+
Protocol](http://hl7.org/fhir/smart-app-launch/STU2/)'s standalone
|
|
11
|
+
launch sequence.
|
|
12
|
+
|
|
13
|
+
# Testing Methodology
|
|
14
|
+
These tests first access the server's SMART discovery endpoints and
|
|
15
|
+
verify that they are available and that the server advertises support
|
|
16
|
+
for the required SMART capabilities. They then perform a public
|
|
17
|
+
standalone launch to obtain an access token which can be used by the
|
|
18
|
+
remaining tests to access patient data.
|
|
19
|
+
|
|
20
|
+
This group does not yet test launching with asymmetric client
|
|
21
|
+
credentials, which is also required.
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
group from: :smart_discovery_stu2 do
|
|
25
|
+
run_as_group
|
|
26
|
+
|
|
27
|
+
test do
|
|
28
|
+
id :ipa_smart_capabilities
|
|
29
|
+
title 'Server supports required SMART capabilities'
|
|
30
|
+
description %(
|
|
31
|
+
Servers SHALL support the following [SMART on FHIR
|
|
32
|
+
capabilities](http://hl7.org/fhir/smart-app-launch/STU2/conformance.html#capabilities):
|
|
33
|
+
|
|
34
|
+
* `launch-standalone`
|
|
35
|
+
* `context-standalone-patient`
|
|
36
|
+
* `permission-patient`
|
|
37
|
+
* `permission-offline`
|
|
38
|
+
* `sso-openid-connect`
|
|
39
|
+
* `client-public`
|
|
40
|
+
* `client-confidential-asymmetric`
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
input :well_known_configuration
|
|
44
|
+
|
|
45
|
+
run do
|
|
46
|
+
skip_if well_known_configuration.blank?, "No SMART well-known configuration received"
|
|
47
|
+
|
|
48
|
+
assert_valid_json(well_known_configuration)
|
|
49
|
+
|
|
50
|
+
config = JSON.parse(well_known_configuration)
|
|
51
|
+
advertised_capabilities = config['capabilities'] || []
|
|
52
|
+
|
|
53
|
+
assert advertised_capabilities.is_a?(Array),
|
|
54
|
+
"Expected `capabilities` field to be an Array, but found #{advertised_capabilities.class.name}"
|
|
55
|
+
|
|
56
|
+
required_capabilities = [
|
|
57
|
+
'launch-standalone',
|
|
58
|
+
'context-standalone-patient',
|
|
59
|
+
'permission-patient',
|
|
60
|
+
'permission-offline',
|
|
61
|
+
'sso-openid-connect',
|
|
62
|
+
'client-public',
|
|
63
|
+
'client-confidential-asymmetric'
|
|
64
|
+
]
|
|
65
|
+
|
|
66
|
+
missing_capabilities = required_capabilities - advertised_capabilities
|
|
67
|
+
|
|
68
|
+
missing_capabilities_string =
|
|
69
|
+
missing_capabilities
|
|
70
|
+
.map { |capability| "\n* `#{capability}`" }
|
|
71
|
+
.join
|
|
72
|
+
|
|
73
|
+
assert missing_capabilities.empty?,
|
|
74
|
+
"Server did not advertise support for the following required capabilities: #{missing_capabilities_string}"
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
group from: :smart_standalone_launch_stu2,
|
|
80
|
+
run_as_group: true,
|
|
81
|
+
title: 'SMART Public Standalone Launch',
|
|
82
|
+
config: {
|
|
83
|
+
inputs: {
|
|
84
|
+
client_secret: {
|
|
85
|
+
default: nil,
|
|
86
|
+
locked: true,
|
|
87
|
+
optional: true
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
group do
|
|
93
|
+
title 'SMART Asymmetric Standalone Launch'
|
|
94
|
+
description %(
|
|
95
|
+
Not yet implemented
|
|
96
|
+
)
|
|
97
|
+
run_as_group
|
|
98
|
+
|
|
99
|
+
test do
|
|
100
|
+
title 'Not yet implemented'
|
|
101
|
+
run do
|
|
102
|
+
omit 'Not yet implemented'
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
module IpaTestKit
|
|
2
2
|
module FHIRResourceNavigation
|
|
3
|
+
DAR_EXTENSION_URL = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason'.freeze
|
|
4
|
+
|
|
3
5
|
def resolve_path(elements, path)
|
|
4
6
|
elements = Array.wrap(elements)
|
|
5
7
|
return elements if path.blank?
|
|
6
8
|
|
|
7
9
|
paths = path.split('.')
|
|
8
10
|
segment = paths.first
|
|
11
|
+
segment.delete_suffix! '[x]'
|
|
9
12
|
remaining_path = paths.drop(1).join('.')
|
|
10
13
|
|
|
11
14
|
elements.flat_map do |element|
|
|
@@ -14,12 +17,18 @@ module IpaTestKit
|
|
|
14
17
|
end.compact
|
|
15
18
|
end
|
|
16
19
|
|
|
17
|
-
def find_a_value_at(element, path)
|
|
20
|
+
def find_a_value_at(element, path, include_dar: false)
|
|
18
21
|
return nil if element.nil?
|
|
19
22
|
|
|
20
23
|
elements = Array.wrap(element)
|
|
21
24
|
|
|
22
25
|
if path.empty?
|
|
26
|
+
unless include_dar
|
|
27
|
+
elements = elements.reject do |el|
|
|
28
|
+
el.respond_to?(:extension) && el.extension.any? { |ext| ext.url == DAR_EXTENSION_URL}
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
23
32
|
return elements.find { |el| yield(el) } if block_given?
|
|
24
33
|
|
|
25
34
|
return elements.first
|
|
@@ -43,9 +52,9 @@ module IpaTestKit
|
|
|
43
52
|
child = get_next_value(element, segment)
|
|
44
53
|
element_found =
|
|
45
54
|
if block_given?
|
|
46
|
-
find_a_value_at(child, remaining_path) { |value_found| yield(value_found) }
|
|
55
|
+
find_a_value_at(child, remaining_path, include_dar: include_dar) { |value_found| yield(value_found) }
|
|
47
56
|
else
|
|
48
|
-
find_a_value_at(child, remaining_path)
|
|
57
|
+
find_a_value_at(child, remaining_path, include_dar: include_dar)
|
|
49
58
|
end
|
|
50
59
|
|
|
51
60
|
return element_found if element_found.present? || element_found == false
|
data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_must_support_test.rb
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require_relative '../../../must_support_test'
|
|
2
|
+
|
|
3
|
+
module IpaTestKit
|
|
4
|
+
module IpaV100
|
|
5
|
+
class AllergyIntoleranceMustSupportTest < Inferno::Test
|
|
6
|
+
include IpaTestKit::MustSupportTest
|
|
7
|
+
|
|
8
|
+
title 'All must support elements are provided in the AllergyIntolerance resources returned'
|
|
9
|
+
description %(
|
|
10
|
+
Responders conforming to a profile in IPA SHALL return a Must Support
|
|
11
|
+
element if that element is available. This test will look through the
|
|
12
|
+
AllergyIntolerance resources found previously for the following must
|
|
13
|
+
support elements:
|
|
14
|
+
|
|
15
|
+
* AllergyIntolerance.clinicalStatus
|
|
16
|
+
* AllergyIntolerance.code
|
|
17
|
+
* AllergyIntolerance.patient
|
|
18
|
+
* AllergyIntolerance.verificationStatus
|
|
19
|
+
|
|
20
|
+
Note: Responders who cannot store or return a data element tagged as
|
|
21
|
+
Supported in IPA profiles can still claim conformance to the IPA
|
|
22
|
+
profiles per the IPA conformance resources.
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
id :ipa_v100_allergy_intolerance_must_support_test
|
|
26
|
+
|
|
27
|
+
optional
|
|
28
|
+
|
|
29
|
+
def resource_type
|
|
30
|
+
'AllergyIntolerance'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def self.metadata
|
|
34
|
+
@metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def scratch_resources
|
|
38
|
+
scratch[:allergy_intolerance_resources] ||= {}
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
run do
|
|
42
|
+
perform_must_support_test(all_scratch_resources)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require_relative '../../../search_test'
|
|
2
|
+
require_relative '../../../generator/group_metadata'
|
|
3
|
+
|
|
4
|
+
module IpaTestKit
|
|
5
|
+
module IpaV100
|
|
6
|
+
class AllergyIntolerancePatientClinicalStatusSearchTest < Inferno::Test
|
|
7
|
+
include IpaTestKit::SearchTest
|
|
8
|
+
|
|
9
|
+
title 'Server returns valid results for AllergyIntolerance search by patient + clinical-status'
|
|
10
|
+
description %(
|
|
11
|
+
A server SHOULD support searching by
|
|
12
|
+
patient + clinical-status on the AllergyIntolerance resource. This test
|
|
13
|
+
will pass if resources are returned and match the search criteria. If
|
|
14
|
+
none are returned, the test is skipped.
|
|
15
|
+
|
|
16
|
+
# TODO: Fix this
|
|
17
|
+
# [US Core Server CapabilityStatement](http://hl7.org/fhir/us/core//CapabilityStatement-us-core-server.html)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
id :ipa_v100_allergy_intolerance_patient_clinical_status_search_test
|
|
23
|
+
optional
|
|
24
|
+
|
|
25
|
+
input :patient_ids,
|
|
26
|
+
title: 'Patient IDs',
|
|
27
|
+
description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
|
|
28
|
+
|
|
29
|
+
def self.properties
|
|
30
|
+
@properties ||= SearchTestProperties.new(
|
|
31
|
+
resource_type: 'AllergyIntolerance',
|
|
32
|
+
search_param_names: ['patient', 'clinical-status'],
|
|
33
|
+
token_search_params: ['clinical-status']
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def self.metadata
|
|
38
|
+
@metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def scratch_resources
|
|
42
|
+
scratch[:allergy_intolerance_resources] ||= {}
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
run do
|
|
46
|
+
run_search_test
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
require_relative '../../../search_test'
|
|
2
|
+
require_relative '../../../generator/group_metadata'
|
|
3
|
+
|
|
4
|
+
module IpaTestKit
|
|
5
|
+
module IpaV100
|
|
6
|
+
class AllergyIntolerancePatientSearchTest < Inferno::Test
|
|
7
|
+
include IpaTestKit::SearchTest
|
|
8
|
+
|
|
9
|
+
title 'Server returns valid results for AllergyIntolerance search by patient'
|
|
10
|
+
description %(
|
|
11
|
+
A server SHALL support searching by
|
|
12
|
+
patient on the AllergyIntolerance resource. This test
|
|
13
|
+
will pass if resources are returned and match the search criteria. If
|
|
14
|
+
none are returned, the test is skipped.
|
|
15
|
+
|
|
16
|
+
This test verifies that the server supports searching by reference using
|
|
17
|
+
the form `patient=[id]` as well as `patient=Patient/[id]`. The two
|
|
18
|
+
different forms are expected to return the same number of results. IPA
|
|
19
|
+
requires that both forms are supported by IPA Core responders.
|
|
20
|
+
|
|
21
|
+
Because this is the first search of the sequence, resources in the
|
|
22
|
+
response will be used for subsequent tests.
|
|
23
|
+
|
|
24
|
+
Additionally, this test will check that GET and POST search methods
|
|
25
|
+
return the same number of results. Search by POST is required by the
|
|
26
|
+
FHIR R4 specification, and these tests interpret search by GET as a
|
|
27
|
+
requirement of IPA v1.0.0.
|
|
28
|
+
|
|
29
|
+
# TODO: Fix this
|
|
30
|
+
# [US Core Server CapabilityStatement](http://hl7.org/fhir/us/core//CapabilityStatement-us-core-server.html)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
id :ipa_v100_allergy_intolerance_patient_search_test
|
|
36
|
+
input :patient_ids,
|
|
37
|
+
title: 'Patient IDs',
|
|
38
|
+
description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
|
|
39
|
+
|
|
40
|
+
def self.properties
|
|
41
|
+
@properties ||= SearchTestProperties.new(
|
|
42
|
+
first_search: true,
|
|
43
|
+
resource_type: 'AllergyIntolerance',
|
|
44
|
+
search_param_names: ['patient'],
|
|
45
|
+
test_reference_variants: true,
|
|
46
|
+
test_post_search: true
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def self.metadata
|
|
51
|
+
@metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def scratch_resources
|
|
55
|
+
scratch[:allergy_intolerance_resources] ||= {}
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
run do
|
|
59
|
+
run_search_test
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require_relative '../../../search_test'
|
|
2
|
+
require_relative '../../../generator/group_metadata'
|
|
3
|
+
|
|
4
|
+
module IpaTestKit
|
|
5
|
+
module IpaV100
|
|
6
|
+
class AllergyIntoleranceProvenanceRevincludeSearchTest < Inferno::Test
|
|
7
|
+
include IpaTestKit::SearchTest
|
|
8
|
+
|
|
9
|
+
title 'Server returns Provenance resources from AllergyIntolerance search by patient + revInclude:Provenance:target'
|
|
10
|
+
description %(
|
|
11
|
+
A server SHALL be capable of supporting _revIncludes:Provenance:target.
|
|
12
|
+
|
|
13
|
+
This test will perform a search by patient + revInclude:Provenance:target and
|
|
14
|
+
will pass if a Provenance resource is found in the response.
|
|
15
|
+
%)
|
|
16
|
+
|
|
17
|
+
id :ipa_v100_allergy_intolerance_provenance_revinclude_search_test
|
|
18
|
+
|
|
19
|
+
input :patient_ids,
|
|
20
|
+
title: 'Patient IDs',
|
|
21
|
+
description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
|
|
22
|
+
|
|
23
|
+
def properties
|
|
24
|
+
@properties ||= SearchTestProperties.new(
|
|
25
|
+
resource_type: 'AllergyIntolerance',
|
|
26
|
+
search_param_names: ['patient']
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.metadata
|
|
31
|
+
@metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.provenance_metadata
|
|
35
|
+
# @provenance_metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, '..', 'provenance', 'metadata.yml'), aliases: true))
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def scratch_resources
|
|
39
|
+
scratch[:allergy_intolerance_resources] ||= {}
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def scratch_provenance_resources
|
|
43
|
+
scratch[:provenance_resources] ||= {}
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
run do
|
|
47
|
+
run_provenance_revinclude_search_test
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require_relative '../../../read_test'
|
|
2
|
+
|
|
3
|
+
module IpaTestKit
|
|
4
|
+
module IpaV100
|
|
5
|
+
class AllergyIntoleranceReadTest < Inferno::Test
|
|
6
|
+
include IpaTestKit::ReadTest
|
|
7
|
+
|
|
8
|
+
title 'Server returns correct AllergyIntolerance resource from AllergyIntolerance read interaction'
|
|
9
|
+
description 'A server SHALL support the AllergyIntolerance read interaction.'
|
|
10
|
+
|
|
11
|
+
id :ipa_v100_allergy_intolerance_read_test
|
|
12
|
+
|
|
13
|
+
def resource_type
|
|
14
|
+
'AllergyIntolerance'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def scratch_resources
|
|
18
|
+
scratch[:allergy_intolerance_resources] ||= {}
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
run do
|
|
22
|
+
perform_read_test(all_scratch_resources)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|