ipa_test_kit 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -1,49 +1,31 @@
|
|
1
|
+
require_relative 'value_extractor'
|
2
|
+
|
1
3
|
module IpaTestKit
|
2
4
|
class Generator
|
3
5
|
class MustSupportMetadataExtractor
|
4
|
-
attr_accessor :profile_elements, :profile, :resource
|
6
|
+
attr_accessor :profile_elements, :profile, :resource, :ig_resources
|
5
7
|
|
6
|
-
def initialize(profile_elements, profile, resource)
|
8
|
+
def initialize(profile_elements, profile, resource, ig_resources)
|
7
9
|
self.profile_elements = profile_elements
|
8
10
|
self.profile = profile
|
9
11
|
self.resource = resource
|
12
|
+
self.ig_resources = ig_resources
|
10
13
|
end
|
11
14
|
|
12
15
|
def must_supports
|
13
|
-
{
|
16
|
+
@must_supports = {
|
14
17
|
extensions: must_support_extensions,
|
15
18
|
slices: must_support_slices,
|
16
19
|
elements: must_support_elements
|
17
20
|
}
|
18
|
-
end
|
19
|
-
|
20
|
-
# exclude component from vital sign profiles except observation-bp and observation-pulse-ox
|
21
|
-
# observation-bp is excluded by profile.name != 'observation-bp'
|
22
|
-
# observation-plux-ox is excluded by profile.baseDefinition == 'http://hl7.org/fhir/StructureDefinition/vitalsigns'
|
23
|
-
def vital_signs_component?(element)
|
24
|
-
profile.baseDefinition == 'http://hl7.org/fhir/StructureDefinition/vitalsigns' &&
|
25
|
-
profile.name != 'observation-bp' &&
|
26
|
-
element.path.include?('component')
|
27
|
-
end
|
28
21
|
|
29
|
-
|
30
|
-
profile.name == 'observation-bp' && element.path.include?('Observation.value[x]')
|
31
|
-
end
|
22
|
+
handle_special_cases
|
32
23
|
|
33
|
-
|
34
|
-
# are not required to demonstrate Health IT Module support for "dataAbsentReason" elements.
|
35
|
-
# Remove MS check for dataAbsentReason and component.dataAbsentReason from vital sign profiles
|
36
|
-
def data_absent_reason?(element)
|
37
|
-
profile.type == 'Observation' && ['Observation.dataAbsentReason', 'Observation.component.dataAbsentReason'].include?(element.path)
|
24
|
+
@must_supports
|
38
25
|
end
|
39
26
|
|
40
27
|
def all_must_support_elements
|
41
|
-
profile_elements
|
42
|
-
.select { |element| element.mustSupport }
|
43
|
-
.reject do |element|
|
44
|
-
# TODO: Can special cases be moved out of here?
|
45
|
-
vital_signs_component?(element) || blood_pressure_value?(element) || data_absent_reason?(element)
|
46
|
-
end
|
28
|
+
profile_elements.select { |element| element.mustSupport }
|
47
29
|
end
|
48
30
|
|
49
31
|
def must_support_extension_elements
|
@@ -101,12 +83,32 @@ module IpaTestKit
|
|
101
83
|
code: pattern_element.patternCodeableConcept.coding.first.code,
|
102
84
|
system: pattern_element.patternCodeableConcept.coding.first.system
|
103
85
|
}
|
86
|
+
elsif pattern_element.patternCoding.present?
|
87
|
+
{
|
88
|
+
type: 'patternCoding',
|
89
|
+
path: discriminator_path,
|
90
|
+
code: pattern_element.patternCoding.code,
|
91
|
+
system: pattern_element.patternCoding.system
|
92
|
+
}
|
104
93
|
elsif pattern_element.patternIdentifier.present?
|
105
94
|
{
|
106
95
|
type: 'patternIdentifier',
|
107
96
|
path: discriminator_path,
|
108
97
|
system: pattern_element.patternIdentifier.system
|
109
98
|
}
|
99
|
+
elsif pattern_element.binding&.strength == 'required' &&
|
100
|
+
pattern_element.binding&.valueSet.present?
|
101
|
+
|
102
|
+
value_extractor = ValueExactor.new(ig_resources, resource, profile_elements)
|
103
|
+
|
104
|
+
values = value_extractor.values_from_value_set_binding(pattern_element).presence ||
|
105
|
+
value_extractor.values_from_resource_metadata([metadata[:path]]).presence || []
|
106
|
+
|
107
|
+
{
|
108
|
+
type: 'requiredBinding',
|
109
|
+
path: discriminator_path,
|
110
|
+
values: values
|
111
|
+
}
|
110
112
|
else
|
111
113
|
raise StandardError, 'Unsupported discriminator pattern type'
|
112
114
|
end
|
@@ -166,7 +168,6 @@ module IpaTestKit
|
|
166
168
|
element.path == "#{current_element.path}.#{discriminator.path}"
|
167
169
|
end
|
168
170
|
|
169
|
-
binding.pry if fixed_element.nil?
|
170
171
|
{
|
171
172
|
path: discriminator.path,
|
172
173
|
value: fixed_element.fixedUri || fixed_element.fixedCode
|
@@ -198,24 +199,233 @@ module IpaTestKit
|
|
198
199
|
end
|
199
200
|
end
|
200
201
|
|
202
|
+
def type_must_support_extension?(extensions)
|
203
|
+
extensions&.any? do |extension|
|
204
|
+
extension.url == 'http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support' &&
|
205
|
+
extension.valueBoolean
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
def save_type_code?(type)
|
210
|
+
'Reference' == type.code
|
211
|
+
end
|
212
|
+
|
213
|
+
def get_type_must_support_metadata(current_metadata, current_element)
|
214
|
+
current_element.type.map do |type|
|
215
|
+
if type_must_support_extension?(type.extension)
|
216
|
+
metadata =
|
217
|
+
{
|
218
|
+
path: "#{current_metadata[:path].delete_suffix('[x]')}#{type.code.upcase_first}",
|
219
|
+
original_path: current_metadata[:path]
|
220
|
+
}
|
221
|
+
metadata[:type] = [type.code] if save_type_code?(type)
|
222
|
+
handle_type_must_support_target_profiles(type, metadata) if type.code == 'Reference'
|
223
|
+
|
224
|
+
metadata
|
225
|
+
end
|
226
|
+
end.compact
|
227
|
+
end
|
228
|
+
|
229
|
+
def handle_type_must_support_target_profiles(type, metadata)
|
230
|
+
index = 0
|
231
|
+
target_profiles = []
|
232
|
+
|
233
|
+
type.source_hash['_targetProfile']&.each do |hash|
|
234
|
+
if hash.present?
|
235
|
+
element = FHIR::Element.new(hash)
|
236
|
+
target_profiles << type.targetProfile[index] if type_must_support_extension?(element.extension)
|
237
|
+
end
|
238
|
+
index += 1
|
239
|
+
end
|
240
|
+
|
241
|
+
metadata[:target_profiles] = target_profiles if target_profiles.present?
|
242
|
+
end
|
243
|
+
|
244
|
+
def handle_choice_type_in_sliced_element(current_metadata, must_support_elements_metadata)
|
245
|
+
choice_element_metadata = must_support_elements_metadata.find do |metadata|
|
246
|
+
metadata[:original_path].present? &&
|
247
|
+
current_metadata[:path].include?( metadata[:original_path] )
|
248
|
+
end
|
249
|
+
|
250
|
+
if choice_element_metadata.present?
|
251
|
+
current_metadata[:original_path] = current_metadata[:path]
|
252
|
+
current_metadata[:path] = current_metadata[:path].sub(choice_element_metadata[:original_path], choice_element_metadata[:path])
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
201
256
|
def must_support_elements
|
202
257
|
plain_must_support_elements.each_with_object([]) do |current_element, must_support_elements_metadata|
|
203
258
|
{
|
204
259
|
path: current_element.path.gsub("#{resource}.", '')
|
205
260
|
}.tap do |current_metadata|
|
206
|
-
|
207
|
-
current_metadata[:path] = path
|
261
|
+
type_must_support_metadata = get_type_must_support_metadata(current_metadata, current_element)
|
208
262
|
|
209
|
-
|
263
|
+
if type_must_support_metadata.any?
|
264
|
+
must_support_elements_metadata.concat(type_must_support_metadata)
|
265
|
+
else
|
266
|
+
handle_choice_type_in_sliced_element(current_metadata, must_support_elements_metadata)
|
210
267
|
|
211
|
-
|
212
|
-
|
213
|
-
|
268
|
+
supported_types = current_element.type.select { |type| save_type_code?(type) }.map { |type| type.code }
|
269
|
+
current_metadata[:types] = supported_types if supported_types.present?
|
270
|
+
|
271
|
+
handle_type_must_support_target_profiles(current_element.type.first, current_metadata) if current_element.type.first&.code == 'Reference'
|
272
|
+
|
273
|
+
handle_fixed_values(current_metadata, current_element)
|
274
|
+
|
275
|
+
must_support_elements_metadata.delete_if do |metadata|
|
276
|
+
metadata[:path] == current_metadata[:path] && metadata[:fixed_value].blank?
|
277
|
+
end
|
214
278
|
|
215
|
-
|
279
|
+
must_support_elements_metadata << current_metadata
|
280
|
+
end
|
216
281
|
end
|
217
282
|
end.uniq
|
218
283
|
end
|
284
|
+
|
285
|
+
#### SPECIAL CASE ####
|
286
|
+
|
287
|
+
def handle_special_cases
|
288
|
+
remove_vital_sign_component
|
289
|
+
remove_blood_pressure_value
|
290
|
+
add_must_support_choices
|
291
|
+
|
292
|
+
case profile.version
|
293
|
+
when '3.1.1'
|
294
|
+
remove_document_reference_custodian
|
295
|
+
when '4.0.0'
|
296
|
+
add_device_distinct_identifier
|
297
|
+
when '5.0.1'
|
298
|
+
add_document_reference_category_values
|
299
|
+
remove_survey_questionnaire_response
|
300
|
+
end
|
301
|
+
end
|
302
|
+
|
303
|
+
def is_vital_sign?
|
304
|
+
[
|
305
|
+
'http://hl7.org/fhir/StructureDefinition/vitalsigns',
|
306
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-vital-signs'
|
307
|
+
].include?(profile.baseDefinition)
|
308
|
+
end
|
309
|
+
|
310
|
+
def is_blood_pressure?
|
311
|
+
['observation-bp', 'IpaBloodPressureProfile'].include?(profile.name)
|
312
|
+
end
|
313
|
+
|
314
|
+
# Exclude Observation.component from vital sign profiles except observation-bp and observation-pulse-ox
|
315
|
+
def remove_vital_sign_component
|
316
|
+
if is_vital_sign? && !is_blood_pressure? && profile.name != 'IpaPulseOximetryProfile'
|
317
|
+
@must_supports[:elements].delete_if do |element|
|
318
|
+
element[:path].start_with?('component')
|
319
|
+
end
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
# Exclude Observation.value[x] from observation-bp
|
324
|
+
def remove_blood_pressure_value
|
325
|
+
if is_blood_pressure?
|
326
|
+
@must_supports[:elements].delete_if do |element|
|
327
|
+
element[:path].start_with?('value[x]') || element[:original_path]&.start_with?('value[x]')
|
328
|
+
end
|
329
|
+
@must_supports[:slices].delete_if do |slice|
|
330
|
+
slice[:path].start_with?('value[x]')
|
331
|
+
end
|
332
|
+
end
|
333
|
+
end
|
334
|
+
|
335
|
+
def remove_device_carrier
|
336
|
+
if profile.type == 'Device'
|
337
|
+
@must_supports[:elements].delete_if do |element|
|
338
|
+
['udiCarrier.carrierAIDC', 'udiCarrier.carrierHRF'].include?(element[:path])
|
339
|
+
end
|
340
|
+
end
|
341
|
+
end
|
342
|
+
|
343
|
+
# US Core clarified that server implmentation is not required to support DocumentReference.custodian (FHIR-28393)
|
344
|
+
def remove_document_reference_custodian
|
345
|
+
if profile.type == 'DocumentReference'
|
346
|
+
@must_supports[:elements].delete_if do |element|
|
347
|
+
element[:path] == 'custodian'
|
348
|
+
end
|
349
|
+
end
|
350
|
+
end
|
351
|
+
|
352
|
+
def remove_document_reference_attachment_data_url
|
353
|
+
if profile.type == 'DocumentReference'
|
354
|
+
@must_supports[:elements].delete_if do |element|
|
355
|
+
['content.attachment.data', 'content.attachment.url'].include?(element[:path])
|
356
|
+
end
|
357
|
+
end
|
358
|
+
end
|
359
|
+
|
360
|
+
def add_must_support_choices
|
361
|
+
choices = []
|
362
|
+
|
363
|
+
choices << { paths: ['content.attachment.data', 'content.attachment.url'] } if profile.type == 'DocumentReference'
|
364
|
+
|
365
|
+
case profile.version
|
366
|
+
when '3.1.1'
|
367
|
+
choices << { paths: ['udiCarrier.carrierAIDC', 'udiCarrier.carrierHRF'] } if profile.type == 'Device'
|
368
|
+
when '4.0.0'
|
369
|
+
case profile.type
|
370
|
+
when 'Encounter'
|
371
|
+
choices << { paths: ['reasonCode', 'reasonReference'] }
|
372
|
+
choices << { paths: ['location.location', 'serviceProvider'] }
|
373
|
+
when 'MedicationRequest'
|
374
|
+
choices << { paths: ['reportedBoolean', 'reportedReference'] }
|
375
|
+
end
|
376
|
+
when '5.0.1'
|
377
|
+
case profile.type
|
378
|
+
when 'CareTeam'
|
379
|
+
choices << {
|
380
|
+
target_profiles: [
|
381
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner',
|
382
|
+
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole'
|
383
|
+
]
|
384
|
+
}
|
385
|
+
when 'Condition'
|
386
|
+
choices << {
|
387
|
+
paths: ['onsetDateTime'],
|
388
|
+
extension_ids: ['Condition.extension:assertedDate']
|
389
|
+
}
|
390
|
+
when 'Encounter'
|
391
|
+
choices << { paths: ['reasonCode', 'reasonReference'] }
|
392
|
+
choices << { paths: ['location.location', 'serviceProvider'] }
|
393
|
+
when 'MedicationRequest'
|
394
|
+
choices << { paths: ['reportedBoolean', 'reportedReference'] }
|
395
|
+
end
|
396
|
+
end
|
397
|
+
|
398
|
+
@must_supports[:choices] = choices if choices.present?
|
399
|
+
end
|
400
|
+
|
401
|
+
def add_device_distinct_identifier
|
402
|
+
if profile.type == 'Device'
|
403
|
+
# FHIR-36303 US Core 4.0.0 mistakenly removed MS from Device.distinctIdentifier
|
404
|
+
# This will be fixed in US Core 5.0.0
|
405
|
+
@must_supports[:elements] << {
|
406
|
+
path: 'distinctIdentifier'
|
407
|
+
}
|
408
|
+
end
|
409
|
+
end
|
410
|
+
|
411
|
+
def add_document_reference_category_values
|
412
|
+
return unless profile.type == 'DocumentReference'
|
413
|
+
|
414
|
+
slice = @must_supports[:slices].find{|slice| slice[:path] == 'category'}
|
415
|
+
|
416
|
+
slice[:discriminator][:values] = ['clinical-note'] if slice.present?
|
417
|
+
end
|
418
|
+
|
419
|
+
# FHIR-37794 Server systems are not required to support US Core QuestionnaireResponse
|
420
|
+
def remove_survey_questionnaire_response
|
421
|
+
return unless profile.type == 'Observation' &&
|
422
|
+
['us-core-observation-survey', 'us-core-observation-sdoh-assessment'].include?(profile.id)
|
423
|
+
|
424
|
+
element = @must_supports[:elements].find { |element| element[:path] == 'derivedFrom' }
|
425
|
+
element[:target_profiles].delete_if do |url|
|
426
|
+
url == 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-questionnaireresponse'
|
427
|
+
end
|
428
|
+
end
|
219
429
|
end
|
220
430
|
end
|
221
431
|
end
|
@@ -5,17 +5,18 @@ module IpaTestKit
|
|
5
5
|
class Generator
|
6
6
|
class MustSupportTestGenerator
|
7
7
|
class << self
|
8
|
-
def generate(ig_metadata)
|
8
|
+
def generate(ig_metadata, base_output_dir)
|
9
9
|
ig_metadata.groups
|
10
|
-
.reject { |group| SpecialCases.
|
11
|
-
.each { |group| new(group).generate }
|
10
|
+
.reject { |group| SpecialCases.exclude_group? group }
|
11
|
+
.each { |group| new(group, base_output_dir).generate }
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
attr_accessor :group_metadata
|
15
|
+
attr_accessor :group_metadata, :base_output_dir
|
16
16
|
|
17
|
-
def initialize(group_metadata)
|
17
|
+
def initialize(group_metadata, base_output_dir)
|
18
18
|
self.group_metadata = group_metadata
|
19
|
+
self.base_output_dir = base_output_dir
|
19
20
|
end
|
20
21
|
|
21
22
|
def template
|
@@ -31,7 +32,7 @@ module IpaTestKit
|
|
31
32
|
end
|
32
33
|
|
33
34
|
def output_file_directory
|
34
|
-
File.join(
|
35
|
+
File.join(base_output_dir, profile_identifier)
|
35
36
|
end
|
36
37
|
|
37
38
|
def output_file_name
|
@@ -47,13 +48,17 @@ module IpaTestKit
|
|
47
48
|
end
|
48
49
|
|
49
50
|
def test_id
|
50
|
-
"
|
51
|
+
"ipa_#{group_metadata.reformatted_version}_#{profile_identifier}_must_support_test"
|
51
52
|
end
|
52
53
|
|
53
54
|
def class_name
|
54
55
|
"#{Naming.upper_camel_case_for_profile(group_metadata)}MustSupportTest"
|
55
56
|
end
|
56
57
|
|
58
|
+
def module_name
|
59
|
+
"Ipa#{group_metadata.reformatted_version.upcase}"
|
60
|
+
end
|
61
|
+
|
57
62
|
def resource_type
|
58
63
|
group_metadata.resource
|
59
64
|
end
|
@@ -63,12 +68,28 @@ module IpaTestKit
|
|
63
68
|
end
|
64
69
|
|
65
70
|
def must_support_list_string
|
66
|
-
|
67
|
-
|
68
|
-
|
71
|
+
build_must_support_list_string
|
72
|
+
end
|
73
|
+
|
74
|
+
def build_must_support_list_string
|
75
|
+
slice_names = group_metadata.must_supports[:slices]
|
76
|
+
.map { |slice| slice[:name] }
|
77
|
+
|
78
|
+
element_names = group_metadata.must_supports[:elements]
|
79
|
+
.map { |element| "#{resource_type}.#{element[:path]}" }
|
80
|
+
|
81
|
+
extension_names = group_metadata.must_supports[:extensions]
|
82
|
+
.map { |extension| extension[:id] }
|
83
|
+
|
84
|
+
group_metadata.must_supports[:choices]&.each do |choice|
|
85
|
+
choice[:paths].each { |path| element_names.delete("#{resource_type}.#{path}") }
|
86
|
+
element_names << choice[:paths].map { |path| "#{resource_type}.#{path}" }.join(' or ')
|
87
|
+
end
|
88
|
+
|
69
89
|
(slice_names + element_names + extension_names)
|
90
|
+
.uniq
|
70
91
|
.sort
|
71
|
-
.map { |name| "
|
92
|
+
.map { |name| "#{' ' * 8}* #{name}" }
|
72
93
|
.join("\n")
|
73
94
|
end
|
74
95
|
|
@@ -1,25 +1,36 @@
|
|
1
1
|
module IpaTestKit
|
2
2
|
class Generator
|
3
3
|
module Naming
|
4
|
-
ALLERGY_INTOLERANCE = 'http://hl7.org/fhir/
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
4
|
+
ALLERGY_INTOLERANCE = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-allergyintolerance'
|
5
|
+
CARE_PLAN = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-careplan'
|
6
|
+
CARE_TEAM = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-careteam'
|
7
|
+
CONDITION = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition'
|
8
|
+
IMPLANTABLE_DEVICE = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-implantable-device'
|
9
|
+
DIAGNOSTIC_REPORT_NOTE = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note'
|
10
|
+
DIAGNOSTIC_REPORT_LAB = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-lab'
|
11
|
+
DOCUMENT_REFERENCE = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-documentreference'
|
12
|
+
ENCOUNTER = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter'
|
13
|
+
GOAL = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-goal'
|
14
|
+
IMMUNIZATION = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-immunization'
|
15
|
+
LOCATION = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-location'
|
16
|
+
MEDICATION = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medication'
|
17
|
+
MEDICATION_REQUEST = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationrequest'
|
18
|
+
SMOKING_STATUS = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus'
|
19
|
+
PEDIATRIC_WEIGHT_FOR_HEIGHT = 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height'
|
20
|
+
OBSERVATION_LAB = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab'
|
21
|
+
PEDIATRIC_BMI_FOR_AGE = 'http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age'
|
22
|
+
PULSE_OXIMETRY = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry'
|
23
|
+
HEAD_CIRCUMFERENCE = 'http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile'
|
24
|
+
ORGANIZATION = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-organization'
|
25
|
+
PATIENT = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient'
|
26
|
+
PRACTITIONER = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner'
|
27
|
+
PRACTITIONER_ROLE = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole'
|
28
|
+
PROCEDURE = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure'
|
29
|
+
PROVENANCE = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance'
|
19
30
|
|
20
31
|
class << self
|
21
32
|
def resources_with_multiple_profiles
|
22
|
-
['Observation']
|
33
|
+
['Condition', 'DiagnosticReport', 'Observation']
|
23
34
|
end
|
24
35
|
|
25
36
|
def resource_has_multiple_profiles?(resource)
|
@@ -30,10 +41,13 @@ module IpaTestKit
|
|
30
41
|
resource = group_metadata.resource
|
31
42
|
return resource.underscore unless resource_has_multiple_profiles?(resource)
|
32
43
|
|
33
|
-
|
44
|
+
if group_metadata.profile_url == HEAD_CIRCUMFERENCE
|
45
|
+
return group_metadata.reformatted_version == 'v311' ? 'head_circumference' : 'head_circumference_percentile'
|
46
|
+
end
|
34
47
|
|
35
48
|
group_metadata.name
|
36
49
|
.delete_prefix('ipa_')
|
50
|
+
.gsub('diagnosticreport', 'diagnostic_report')
|
37
51
|
.underscore
|
38
52
|
end
|
39
53
|
|
@@ -5,19 +5,21 @@ module IpaTestKit
|
|
5
5
|
class Generator
|
6
6
|
class ProvenanceRevincludeSearchTestGenerator
|
7
7
|
class << self
|
8
|
-
def generate(ig_metadata)
|
8
|
+
def generate(ig_metadata, base_output_dir)
|
9
9
|
ig_metadata.groups
|
10
|
-
.reject { |group| SpecialCases.
|
10
|
+
.reject { |group| SpecialCases.exclude_group? group }
|
11
11
|
.select { |group| group.revincludes.include? 'Provenance:target' }
|
12
|
-
.
|
12
|
+
.select { |group| group.searches.any? }
|
13
|
+
.each { |group| new(group, group.searches.first, base_output_dir).generate }
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
16
|
-
attr_accessor :group_metadata, :search_metadata
|
17
|
+
attr_accessor :group_metadata, :search_metadata, :base_output_dir
|
17
18
|
|
18
|
-
def initialize(group_metadata, search_metadata)
|
19
|
+
def initialize(group_metadata, search_metadata, base_output_dir)
|
19
20
|
self.group_metadata = group_metadata
|
20
21
|
self.search_metadata = search_metadata
|
22
|
+
self.base_output_dir = base_output_dir
|
21
23
|
end
|
22
24
|
|
23
25
|
def template
|
@@ -33,7 +35,7 @@ module IpaTestKit
|
|
33
35
|
end
|
34
36
|
|
35
37
|
def output_file_directory
|
36
|
-
File.join(
|
38
|
+
File.join(base_output_dir, profile_identifier)
|
37
39
|
end
|
38
40
|
|
39
41
|
def output_file_name
|
@@ -45,7 +47,7 @@ module IpaTestKit
|
|
45
47
|
end
|
46
48
|
|
47
49
|
def test_id
|
48
|
-
"
|
50
|
+
"ipa_#{group_metadata.reformatted_version}_#{profile_identifier}_#{search_identifier}_search_test"
|
49
51
|
end
|
50
52
|
|
51
53
|
def search_identifier
|
@@ -60,6 +62,10 @@ module IpaTestKit
|
|
60
62
|
"#{Naming.upper_camel_case_for_profile(group_metadata)}#{search_title}SearchTest"
|
61
63
|
end
|
62
64
|
|
65
|
+
def module_name
|
66
|
+
"Ipa#{group_metadata.reformatted_version.upcase}"
|
67
|
+
end
|
68
|
+
|
63
69
|
def resource_type
|
64
70
|
group_metadata.resource
|
65
71
|
end
|
@@ -88,6 +94,7 @@ module IpaTestKit
|
|
88
94
|
end
|
89
95
|
|
90
96
|
def search_param_name_string
|
97
|
+
binding.pry if search_metadata.nil?
|
91
98
|
search_metadata[:names].join(' + ') + ' + revInclude:Provenance:target'
|
92
99
|
end
|
93
100
|
|
@@ -133,10 +140,6 @@ module IpaTestKit
|
|
133
140
|
first_search? && group_metadata.delayed_references.present?
|
134
141
|
end
|
135
142
|
|
136
|
-
def possible_status_search?
|
137
|
-
!search_metadata[:names].include?('status') && group_metadata.search_definitions.key?(:status)
|
138
|
-
end
|
139
|
-
|
140
143
|
def token_search_params
|
141
144
|
@token_search_params ||=
|
142
145
|
search_param_names.select do |name|
|
@@ -162,7 +165,6 @@ module IpaTestKit
|
|
162
165
|
properties[:fixed_value_search] = 'true' if fixed_value_search?
|
163
166
|
properties[:resource_type] = "'#{resource_type}'"
|
164
167
|
properties[:search_param_names] = search_param_names_array
|
165
|
-
properties[:possible_status_search] = 'true' if possible_status_search?
|
166
168
|
end
|
167
169
|
end
|
168
170
|
|
@@ -5,11 +5,11 @@ module IpaTestKit
|
|
5
5
|
class Generator
|
6
6
|
class ReadTestGenerator
|
7
7
|
class << self
|
8
|
-
def generate(ig_metadata)
|
8
|
+
def generate(ig_metadata, base_output_dir)
|
9
9
|
ig_metadata.groups
|
10
|
-
.reject { |group| SpecialCases.
|
10
|
+
.reject { |group| SpecialCases.exclude_group? group }
|
11
11
|
.select { |group| read_interaction(group).present? }
|
12
|
-
.each { |group| new(group).generate }
|
12
|
+
.each { |group| new(group, base_output_dir).generate }
|
13
13
|
end
|
14
14
|
|
15
15
|
def read_interaction(group_metadata)
|
@@ -17,10 +17,11 @@ module IpaTestKit
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
attr_accessor :group_metadata
|
20
|
+
attr_accessor :group_metadata, :base_output_dir
|
21
21
|
|
22
|
-
def initialize(group_metadata)
|
22
|
+
def initialize(group_metadata, base_output_dir)
|
23
23
|
self.group_metadata = group_metadata
|
24
|
+
self.base_output_dir = base_output_dir
|
24
25
|
end
|
25
26
|
|
26
27
|
def template
|
@@ -36,7 +37,7 @@ module IpaTestKit
|
|
36
37
|
end
|
37
38
|
|
38
39
|
def output_file_directory
|
39
|
-
File.join(
|
40
|
+
File.join(base_output_dir, profile_identifier)
|
40
41
|
end
|
41
42
|
|
42
43
|
def output_file_name
|
@@ -52,13 +53,17 @@ module IpaTestKit
|
|
52
53
|
end
|
53
54
|
|
54
55
|
def test_id
|
55
|
-
"
|
56
|
+
"ipa_#{group_metadata.reformatted_version}_#{profile_identifier}_read_test"
|
56
57
|
end
|
57
58
|
|
58
59
|
def class_name
|
59
60
|
"#{Naming.upper_camel_case_for_profile(group_metadata)}ReadTest"
|
60
61
|
end
|
61
62
|
|
63
|
+
def module_name
|
64
|
+
"Ipa#{group_metadata.reformatted_version.upcase}"
|
65
|
+
end
|
66
|
+
|
62
67
|
def resource_type
|
63
68
|
group_metadata.resource
|
64
69
|
end
|