davinci_plan_net_test_kit 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/lib/davinci_plan_net_test_kit/custom_groups/capability_statement/conformance_support_test.rb +41 -0
  4. data/lib/davinci_plan_net_test_kit/custom_groups/capability_statement/fhir_version_test.rb +15 -0
  5. data/lib/davinci_plan_net_test_kit/custom_groups/capability_statement/instantiate_test.rb +19 -0
  6. data/lib/davinci_plan_net_test_kit/custom_groups/capability_statement/json_support_test.rb +39 -0
  7. data/lib/davinci_plan_net_test_kit/custom_groups/capability_statement/profile_support_test.rb +38 -0
  8. data/lib/davinci_plan_net_test_kit/custom_groups/combination_searches/examples.json +40 -0
  9. data/lib/davinci_plan_net_test_kit/custom_groups/data_absent_reason_group.rb +59 -0
  10. data/lib/davinci_plan_net_test_kit/custom_groups/reverse_chain_tests/examples.json +60 -0
  11. data/lib/davinci_plan_net_test_kit/custom_groups/v1.1.0/capability_statement_group.rb +75 -0
  12. data/lib/davinci_plan_net_test_kit/date_search_validation.rb +108 -0
  13. data/lib/davinci_plan_net_test_kit/fhir_resource_navigation.rb +75 -0
  14. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/davinci_plan_net_test_suite.rb +231 -0
  15. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_forward_chain_organization_address_search_test.rb +55 -0
  16. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_forward_chain_organization_name_search_test.rb +55 -0
  17. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_forward_chain_organization_partof_search_test.rb +55 -0
  18. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_forward_chain_organization_type_search_test.rb +55 -0
  19. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_id_search_test.rb +41 -0
  20. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_include_endpoint_organization_search_test.rb +52 -0
  21. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_lastupdated_search_test.rb +43 -0
  22. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_must_support_test.rb +47 -0
  23. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_no_params_search_test.rb +49 -0
  24. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_organization_search_test.rb +41 -0
  25. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_read_test.rb +26 -0
  26. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_reference_resolution_test.rb +42 -0
  27. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_validation_test.rb +40 -0
  28. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/metadata.yml +171 -0
  29. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint_group.rb +168 -0
  30. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_combination_list_specialty_covered_by_network_search_test.rb +55 -0
  31. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_coverage_area_search_test.rb +41 -0
  32. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_endpoint_search_test.rb +41 -0
  33. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_endpoint_organization_search_test.rb +55 -0
  34. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_address_city_search_test.rb +55 -0
  35. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_address_postalcode_search_test.rb +55 -0
  36. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_address_search_test.rb +55 -0
  37. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_address_state_search_test.rb +55 -0
  38. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_organization_search_test.rb +55 -0
  39. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_type_search_test.rb +55 -0
  40. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_organization_address_search_test.rb +55 -0
  41. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_organization_name_search_test.rb +55 -0
  42. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_organization_partof_search_test.rb +55 -0
  43. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_organization_type_search_test.rb +55 -0
  44. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_id_search_test.rb +41 -0
  45. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_include_healthcare_service_coverage_area_search_test.rb +52 -0
  46. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_include_healthcare_service_endpoint_search_test.rb +52 -0
  47. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_include_healthcare_service_location_search_test.rb +52 -0
  48. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_include_healthcare_service_organization_search_test.rb +52 -0
  49. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_lastupdated_search_test.rb +43 -0
  50. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_location_search_test.rb +41 -0
  51. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_must_support_test.rb +65 -0
  52. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_name_search_test.rb +41 -0
  53. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_no_params_search_test.rb +49 -0
  54. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_organization_search_test.rb +41 -0
  55. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_read_test.rb +26 -0
  56. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_reference_resolution_test.rb +45 -0
  57. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_revinclude_organization_affiliation_service_search_test.rb +60 -0
  58. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_revinclude_practitioner_role_service_search_test.rb +60 -0
  59. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_service_category_search_test.rb +42 -0
  60. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_service_type_search_test.rb +42 -0
  61. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_specialty_search_test.rb +42 -0
  62. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_validation_test.rb +40 -0
  63. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/metadata.yml +1377 -0
  64. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service_group.rb +240 -0
  65. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_administered_by_search_test.rb +41 -0
  66. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_coverage_area_search_test.rb +41 -0
  67. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_forward_chain_administered_by_name_search_test.rb +55 -0
  68. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_forward_chain_administered_by_partof_search_test.rb +55 -0
  69. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_forward_chain_owned_by_name_search_test.rb +55 -0
  70. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_forward_chain_owned_by_partof_search_test.rb +55 -0
  71. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_id_search_test.rb +41 -0
  72. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_identifier_search_test.rb +44 -0
  73. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_include_insurance_plan_administered_by_search_test.rb +52 -0
  74. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_include_insurance_plan_coverage_area_search_test.rb +52 -0
  75. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_include_insurance_plan_owned_by_search_test.rb +52 -0
  76. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_lastupdated_search_test.rb +43 -0
  77. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_must_support_test.rb +57 -0
  78. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_name_search_test.rb +41 -0
  79. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_no_params_search_test.rb +49 -0
  80. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_owned_by_search_test.rb +41 -0
  81. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_plan_type_search_test.rb +42 -0
  82. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_read_test.rb +26 -0
  83. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_reference_resolution_test.rb +48 -0
  84. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_type_search_test.rb +42 -0
  85. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_validation_test.rb +40 -0
  86. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/metadata.yml +368 -0
  87. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan_group.rb +193 -0
  88. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_address_city_search_test.rb +41 -0
  89. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_address_postalcode_search_test.rb +41 -0
  90. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_address_search_test.rb +41 -0
  91. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_address_state_search_test.rb +41 -0
  92. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_endpoint_search_test.rb +41 -0
  93. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_endpoint_organization_search_test.rb +55 -0
  94. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_organization_address_search_test.rb +55 -0
  95. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_organization_name_search_test.rb +55 -0
  96. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_organization_partof_search_test.rb +55 -0
  97. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_organization_type_search_test.rb +55 -0
  98. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_partof_address_search_test.rb +55 -0
  99. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_partof_organization_search_test.rb +55 -0
  100. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_partof_type_search_test.rb +55 -0
  101. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_id_search_test.rb +41 -0
  102. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_include_location_endpoint_search_test.rb +52 -0
  103. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_include_location_organization_search_test.rb +52 -0
  104. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_include_location_partof_search_test.rb +52 -0
  105. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_lastupdated_search_test.rb +43 -0
  106. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_must_support_test.rb +66 -0
  107. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_no_params_search_test.rb +49 -0
  108. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_organization_search_test.rb +41 -0
  109. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_partof_search_test.rb +41 -0
  110. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_read_test.rb +26 -0
  111. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_reference_resolution_test.rb +44 -0
  112. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_reverse_chain_insurance_plan_coverage_area_owned_by_search_test.rb +62 -0
  113. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_revinclude_healthcare_service_location_search_test.rb +60 -0
  114. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_revinclude_insurance_plan_coverage_area_search_test.rb +60 -0
  115. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_revinclude_organization_affiliation_location_search_test.rb +60 -0
  116. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_revinclude_practitioner_role_location_search_test.rb +60 -0
  117. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_type_search_test.rb +42 -0
  118. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_validation_test.rb +40 -0
  119. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/metadata.yml +395 -0
  120. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location_group.rb +262 -0
  121. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/metadata.yml +5214 -0
  122. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/metadata.yml +304 -0
  123. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_address_search_test.rb +41 -0
  124. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_coverage_area_search_test.rb +41 -0
  125. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_endpoint_search_test.rb +41 -0
  126. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_forward_chain_endpoint_organization_search_test.rb +55 -0
  127. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_forward_chain_partof_address_search_test.rb +55 -0
  128. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_forward_chain_partof_name_search_test.rb +55 -0
  129. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_forward_chain_partof_type_search_test.rb +55 -0
  130. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_id_search_test.rb +41 -0
  131. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_include_organization_coverage_area_search_test.rb +52 -0
  132. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_include_organization_endpoint_search_test.rb +52 -0
  133. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_include_organization_partof_search_test.rb +52 -0
  134. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_lastupdated_search_test.rb +43 -0
  135. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_must_support_test.rb +58 -0
  136. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_name_search_test.rb +41 -0
  137. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_no_params_search_test.rb +49 -0
  138. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_partof_search_test.rb +41 -0
  139. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_read_test.rb +26 -0
  140. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_reference_resolution_test.rb +43 -0
  141. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_reverse_chain_practitioner_role_network_location_search_test.rb +62 -0
  142. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_revinclude_practitioner_role_network_search_test.rb +60 -0
  143. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_type_search_test.rb +42 -0
  144. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_validation_test.rb +40 -0
  145. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network_group.rb +238 -0
  146. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/metadata.yml +1296 -0
  147. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_endpoint_search_test.rb +41 -0
  148. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_endpoint_organization_search_test.rb +55 -0
  149. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_address_city_search_test.rb +55 -0
  150. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_address_postalcode_search_test.rb +55 -0
  151. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_address_search_test.rb +55 -0
  152. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_address_state_search_test.rb +55 -0
  153. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_organization_search_test.rb +55 -0
  154. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_type_search_test.rb +55 -0
  155. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_network_name_search_test.rb +55 -0
  156. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_network_partof_search_test.rb +55 -0
  157. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_participating_organization_address_search_test.rb +55 -0
  158. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_participating_organization_name_search_test.rb +55 -0
  159. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_participating_organization_partof_search_test.rb +55 -0
  160. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_participating_organization_type_search_test.rb +55 -0
  161. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_primary_organization_address_search_test.rb +55 -0
  162. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_primary_organization_name_search_test.rb +55 -0
  163. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_primary_organization_partof_search_test.rb +55 -0
  164. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_primary_organization_type_search_test.rb +55 -0
  165. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_service_location_search_test.rb +55 -0
  166. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_service_organization_search_test.rb +55 -0
  167. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_service_service_category_search_test.rb +55 -0
  168. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_id_search_test.rb +41 -0
  169. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_endpoint_search_test.rb +52 -0
  170. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_location_search_test.rb +52 -0
  171. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_network_search_test.rb +52 -0
  172. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_participating_organization_search_test.rb +52 -0
  173. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_primary_organization_search_test.rb +52 -0
  174. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_service_search_test.rb +52 -0
  175. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_lastupdated_search_test.rb +43 -0
  176. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_location_search_test.rb +41 -0
  177. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_must_support_test.rb +52 -0
  178. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_network_search_test.rb +41 -0
  179. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_no_params_search_test.rb +49 -0
  180. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_participating_organization_search_test.rb +41 -0
  181. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_primary_organization_search_test.rb +41 -0
  182. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_read_test.rb +26 -0
  183. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_reference_resolution_test.rb +47 -0
  184. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_role_search_test.rb +42 -0
  185. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_service_search_test.rb +41 -0
  186. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_specialty_search_test.rb +42 -0
  187. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_validation_test.rb +40 -0
  188. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil_group.rb +241 -0
  189. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/metadata.yml +384 -0
  190. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_address_search_test.rb +41 -0
  191. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_coverage_area_search_test.rb +43 -0
  192. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_endpoint_search_test.rb +41 -0
  193. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_forward_chain_endpoint_organization_search_test.rb +55 -0
  194. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_forward_chain_partof_address_search_test.rb +55 -0
  195. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_forward_chain_partof_name_search_test.rb +55 -0
  196. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_forward_chain_partof_type_search_test.rb +55 -0
  197. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_id_search_test.rb +41 -0
  198. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_include_organization_coverage_area_search_test.rb +52 -0
  199. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_include_organization_endpoint_search_test.rb +52 -0
  200. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_include_organization_partof_search_test.rb +52 -0
  201. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_lastupdated_search_test.rb +43 -0
  202. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_must_support_test.rb +68 -0
  203. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_name_search_test.rb +41 -0
  204. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_no_params_search_test.rb +49 -0
  205. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_partof_search_test.rb +41 -0
  206. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_read_test.rb +26 -0
  207. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_reference_resolution_test.rb +43 -0
  208. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_reverse_chain_insurance_plan_owned_by_coverage_area_search_test.rb +62 -0
  209. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_reverse_chain_org_affil_participating_organization_location_search_test.rb +62 -0
  210. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_reverse_chain_org_affil_participating_organization_network_search_test.rb +62 -0
  211. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_reverse_chain_org_affil_participating_organization_specialty_search_test.rb +62 -0
  212. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_endpoint_organization_search_test.rb +60 -0
  213. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_healthcare_service_organization_search_test.rb +60 -0
  214. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_insurance_plan_administered_by_search_test.rb +60 -0
  215. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_insurance_plan_owned_by_search_test.rb +60 -0
  216. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_organization_affiliation_participating_organization_search_test.rb +60 -0
  217. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_organization_affiliation_primary_organization_search_test.rb +60 -0
  218. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_practitioner_role_organization_search_test.rb +60 -0
  219. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_type_search_test.rb +42 -0
  220. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_validation_test.rb +40 -0
  221. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization_group.rb +265 -0
  222. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/metadata.yml +253 -0
  223. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_family_search_test.rb +41 -0
  224. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_given_search_test.rb +41 -0
  225. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_id_search_test.rb +41 -0
  226. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_lastupdated_search_test.rb +43 -0
  227. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_must_support_test.rb +57 -0
  228. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_name_search_test.rb +41 -0
  229. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_no_params_search_test.rb +49 -0
  230. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_read_test.rb +26 -0
  231. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_reference_resolution_test.rb +42 -0
  232. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_reverse_chain_practitioner_role_practitioner_location_search_test.rb +62 -0
  233. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_reverse_chain_practitioner_role_practitioner_network_search_test.rb +62 -0
  234. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_reverse_chain_practitioner_role_practitioner_role_search_test.rb +62 -0
  235. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_reverse_chain_practitioner_role_practitioner_specialty_search_test.rb +62 -0
  236. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_revinclude_practitioner_role_practitioner_search_test.rb +60 -0
  237. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_validation_test.rb +40 -0
  238. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_group.rb +188 -0
  239. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/metadata.yml +1198 -0
  240. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_combination_list_practitioners_with_specialty_and_location_search_test.rb +50 -0
  241. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_endpoint_search_test.rb +41 -0
  242. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_endpoint_organization_search_test.rb +55 -0
  243. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_address_city_search_test.rb +55 -0
  244. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_address_postalcode_search_test.rb +55 -0
  245. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_address_search_test.rb +55 -0
  246. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_address_state_search_test.rb +55 -0
  247. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_organization_search_test.rb +55 -0
  248. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_type_search_test.rb +55 -0
  249. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_network_address_search_test.rb +55 -0
  250. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_network_name_search_test.rb +55 -0
  251. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_network_partof_search_test.rb +55 -0
  252. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_network_type_search_test.rb +55 -0
  253. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_organization_address_search_test.rb +55 -0
  254. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_organization_name_search_test.rb +55 -0
  255. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_organization_partof_search_test.rb +55 -0
  256. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_organization_type_search_test.rb +55 -0
  257. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_practitioner_name_search_test.rb +55 -0
  258. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_service_location_search_test.rb +55 -0
  259. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_service_organization_search_test.rb +55 -0
  260. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_service_service_category_search_test.rb +55 -0
  261. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_id_search_test.rb +41 -0
  262. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_endpoint_search_test.rb +52 -0
  263. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_location_search_test.rb +52 -0
  264. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_network_search_test.rb +52 -0
  265. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_organization_search_test.rb +52 -0
  266. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_practitioner_search_test.rb +52 -0
  267. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_service_search_test.rb +52 -0
  268. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_lastupdated_search_test.rb +43 -0
  269. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_location_search_test.rb +41 -0
  270. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_must_support_test.rb +70 -0
  271. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_network_search_test.rb +41 -0
  272. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_no_params_search_test.rb +49 -0
  273. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_organization_search_test.rb +41 -0
  274. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_practitioner_search_test.rb +41 -0
  275. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_read_test.rb +26 -0
  276. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_reference_resolution_test.rb +46 -0
  277. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_role_search_test.rb +42 -0
  278. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_service_search_test.rb +41 -0
  279. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_specialty_search_test.rb +42 -0
  280. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_validation_test.rb +40 -0
  281. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role_group.rb +241 -0
  282. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/resource_list.rb +16 -0
  283. data/lib/davinci_plan_net_test_kit/generator/combination_search_test_generator.rb +215 -0
  284. data/lib/davinci_plan_net_test_kit/generator/forward_chain_test_generator.rb +198 -0
  285. data/lib/davinci_plan_net_test_kit/generator/group_generator.rb +377 -0
  286. data/lib/davinci_plan_net_test_kit/generator/group_metadata.rb +77 -0
  287. data/lib/davinci_plan_net_test_kit/generator/group_metadata_extractor.rb +268 -0
  288. data/lib/davinci_plan_net_test_kit/generator/ig_loader.rb +76 -0
  289. data/lib/davinci_plan_net_test_kit/generator/ig_metadata.rb +52 -0
  290. data/lib/davinci_plan_net_test_kit/generator/ig_metadata_extractor.rb +57 -0
  291. data/lib/davinci_plan_net_test_kit/generator/ig_resources.rb +64 -0
  292. data/lib/davinci_plan_net_test_kit/generator/include_search_test_generator.rb +205 -0
  293. data/lib/davinci_plan_net_test_kit/generator/must_support_metadata_extractor.rb +337 -0
  294. data/lib/davinci_plan_net_test_kit/generator/must_support_metadata_extractor_us_core_3.rb +25 -0
  295. data/lib/davinci_plan_net_test_kit/generator/must_support_test_generator.rb +116 -0
  296. data/lib/davinci_plan_net_test_kit/generator/naming.rb +34 -0
  297. data/lib/davinci_plan_net_test_kit/generator/read_test_generator.rb +86 -0
  298. data/lib/davinci_plan_net_test_kit/generator/reference_resolution_test_generator.rb +92 -0
  299. data/lib/davinci_plan_net_test_kit/generator/resource_list_generator.rb +42 -0
  300. data/lib/davinci_plan_net_test_kit/generator/reverse_chain_search_test_generator.rb +194 -0
  301. data/lib/davinci_plan_net_test_kit/generator/revinclude_search_test_generator.rb +204 -0
  302. data/lib/davinci_plan_net_test_kit/generator/search_definition_metadata_extractor.rb +193 -0
  303. data/lib/davinci_plan_net_test_kit/generator/search_metadata_extractor.rb +74 -0
  304. data/lib/davinci_plan_net_test_kit/generator/search_no_params_test_generator.rb +124 -0
  305. data/lib/davinci_plan_net_test_kit/generator/search_test_generator.rb +276 -0
  306. data/lib/davinci_plan_net_test_kit/generator/special_cases.rb +92 -0
  307. data/lib/davinci_plan_net_test_kit/generator/suite_generator.rb +93 -0
  308. data/lib/davinci_plan_net_test_kit/generator/terminology_binding_metadata_extractor.rb +120 -0
  309. data/lib/davinci_plan_net_test_kit/generator/validation_test_generator.rb +140 -0
  310. data/lib/davinci_plan_net_test_kit/generator/value_extractor.rb +117 -0
  311. data/lib/davinci_plan_net_test_kit/generator.rb +143 -0
  312. data/lib/davinci_plan_net_test_kit/igs/package/SearchParameter-Resource-id.json +1 -0
  313. data/lib/davinci_plan_net_test_kit/igs/package/SearchParameter-Resource-lastUpdated.json +1 -0
  314. data/lib/davinci_plan_net_test_kit/igs/package.tgz +0 -0
  315. data/lib/davinci_plan_net_test_kit/must_support_test.rb +211 -0
  316. data/lib/davinci_plan_net_test_kit/provenance_validator.rb +37 -0
  317. data/lib/davinci_plan_net_test_kit/read_test.rb +62 -0
  318. data/lib/davinci_plan_net_test_kit/reference_resolution_test.rb +179 -0
  319. data/lib/davinci_plan_net_test_kit/request_logger.rb +46 -0
  320. data/lib/davinci_plan_net_test_kit/search_test.rb +1252 -0
  321. data/lib/davinci_plan_net_test_kit/search_test_properties.rb +66 -0
  322. data/lib/davinci_plan_net_test_kit/validation_test.rb +56 -0
  323. data/lib/davinci_plan_net_test_kit/version.rb +5 -0
  324. data/lib/davinci_plan_net_test_kit.rb +1 -0
  325. metadata +452 -0
@@ -0,0 +1,41 @@
1
+ require_relative '../../../search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module DaVinciPlanNetTestKit
5
+ module DaVinciPlanNetV110
6
+ class PractitionerRoleServiceSearchTest < Inferno::Test
7
+ include DaVinciPlanNetTestKit::SearchTest
8
+
9
+ title 'Server returns valid results for PractitionerRole search by service'
10
+ description %(
11
+ A server SHALL support searching by
12
+ service on the PractitionerRole 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
+ [Plan Net Server CapabilityStatement](http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement/plan-net)
17
+
18
+ )
19
+
20
+ id :davinci_plan_net_v110_practitioner_role_service_search_test
21
+ def self.properties
22
+ @properties ||= SearchTestProperties.new(
23
+ resource_type: 'PractitionerRole',
24
+ search_param_names: ['service']
25
+ )
26
+ end
27
+
28
+ def self.metadata
29
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
30
+ end
31
+
32
+ def scratch_resources
33
+ scratch[:practitioner_role_resources] ||= {}
34
+ end
35
+
36
+ run do
37
+ run_search_test
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,42 @@
1
+ require_relative '../../../search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module DaVinciPlanNetTestKit
5
+ module DaVinciPlanNetV110
6
+ class PractitionerRoleSpecialtySearchTest < Inferno::Test
7
+ include DaVinciPlanNetTestKit::SearchTest
8
+
9
+ title 'Server returns valid results for PractitionerRole search by specialty'
10
+ description %(
11
+ A server SHALL support searching by
12
+ specialty on the PractitionerRole 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
+ [Plan Net Server CapabilityStatement](http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement/plan-net)
17
+
18
+ )
19
+
20
+ id :davinci_plan_net_v110_practitioner_role_specialty_search_test
21
+ def self.properties
22
+ @properties ||= SearchTestProperties.new(
23
+ resource_type: 'PractitionerRole',
24
+ search_param_names: ['specialty'],
25
+ token_search_params: ['specialty']
26
+ )
27
+ end
28
+
29
+ def self.metadata
30
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
31
+ end
32
+
33
+ def scratch_resources
34
+ scratch[:practitioner_role_resources] ||= {}
35
+ end
36
+
37
+ run do
38
+ run_search_test
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,40 @@
1
+ require_relative '../../../validation_test'
2
+
3
+ module DaVinciPlanNetTestKit
4
+ module DaVinciPlanNetV110
5
+ class PractitionerRoleValidationTest < Inferno::Test
6
+ include DaVinciPlanNetTestKit::ValidationTest
7
+
8
+ id :davinci_plan_net_v110_practitioner_role_validation_test
9
+ title 'PractitionerRole resources returned during previous tests conform to the Plan-Net PractitionerRole'
10
+ description %(
11
+ This test verifies resources returned from the first search conform to
12
+ the [Plan-Net PractitionerRole](http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/StructureDefinition/plannet-PractitionerRole).
13
+ Systems must demonstrate at least one valid example in order to pass this test.
14
+
15
+ It verifies the presence of mandatory elements and that elements with
16
+ required bindings contain appropriate values. CodeableConcept element
17
+ bindings will fail if none of their codings have a code/system belonging
18
+ to the bound ValueSet. Quantity, Coding, and code element bindings will
19
+ fail if their code/system are not found in the valueset.
20
+
21
+ )
22
+ output :dar_code_found, :dar_extension_found
23
+
24
+ def resource_type
25
+ 'PractitionerRole'
26
+ end
27
+
28
+ def scratch_resources
29
+ scratch[:practitioner_role_resources] ||= {}
30
+ end
31
+
32
+ run do
33
+ perform_validation_test(scratch_resources[:all] || [],
34
+ 'http://hl7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/plannet-PractitionerRole',
35
+ '1.1.0',
36
+ skip_if_empty: true)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,241 @@
1
+ require_relative 'practitioner_role/practitioner_role_no_params_search_test'
2
+ require_relative 'practitioner_role/practitioner_role_read_test'
3
+ require_relative 'practitioner_role/practitioner_role_practitioner_search_test'
4
+ require_relative 'practitioner_role/practitioner_role_organization_search_test'
5
+ require_relative 'practitioner_role/practitioner_role_location_search_test'
6
+ require_relative 'practitioner_role/practitioner_role_service_search_test'
7
+ require_relative 'practitioner_role/practitioner_role_network_search_test'
8
+ require_relative 'practitioner_role/practitioner_role_endpoint_search_test'
9
+ require_relative 'practitioner_role/practitioner_role_role_search_test'
10
+ require_relative 'practitioner_role/practitioner_role_specialty_search_test'
11
+ require_relative 'practitioner_role/practitioner_role_id_search_test'
12
+ require_relative 'practitioner_role/practitioner_role_lastupdated_search_test'
13
+ require_relative 'practitioner_role/practitioner_role_include_practitioner_role_practitioner_search_test'
14
+ require_relative 'practitioner_role/practitioner_role_include_practitioner_role_organization_search_test'
15
+ require_relative 'practitioner_role/practitioner_role_include_practitioner_role_location_search_test'
16
+ require_relative 'practitioner_role/practitioner_role_include_practitioner_role_service_search_test'
17
+ require_relative 'practitioner_role/practitioner_role_include_practitioner_role_network_search_test'
18
+ require_relative 'practitioner_role/practitioner_role_include_practitioner_role_endpoint_search_test'
19
+ require_relative 'practitioner_role/practitioner_role_forward_chain_practitioner_name_search_test'
20
+ require_relative 'practitioner_role/practitioner_role_forward_chain_organization_name_search_test'
21
+ require_relative 'practitioner_role/practitioner_role_forward_chain_organization_address_search_test'
22
+ require_relative 'practitioner_role/practitioner_role_forward_chain_organization_partof_search_test'
23
+ require_relative 'practitioner_role/practitioner_role_forward_chain_organization_type_search_test'
24
+ require_relative 'practitioner_role/practitioner_role_forward_chain_location_address_search_test'
25
+ require_relative 'practitioner_role/practitioner_role_forward_chain_location_address_postalcode_search_test'
26
+ require_relative 'practitioner_role/practitioner_role_forward_chain_location_address_city_search_test'
27
+ require_relative 'practitioner_role/practitioner_role_forward_chain_location_address_state_search_test'
28
+ require_relative 'practitioner_role/practitioner_role_forward_chain_location_organization_search_test'
29
+ require_relative 'practitioner_role/practitioner_role_forward_chain_location_type_search_test'
30
+ require_relative 'practitioner_role/practitioner_role_forward_chain_service_service_category_search_test'
31
+ require_relative 'practitioner_role/practitioner_role_forward_chain_service_organization_search_test'
32
+ require_relative 'practitioner_role/practitioner_role_forward_chain_service_location_search_test'
33
+ require_relative 'practitioner_role/practitioner_role_forward_chain_network_name_search_test'
34
+ require_relative 'practitioner_role/practitioner_role_forward_chain_network_address_search_test'
35
+ require_relative 'practitioner_role/practitioner_role_forward_chain_network_partof_search_test'
36
+ require_relative 'practitioner_role/practitioner_role_forward_chain_network_type_search_test'
37
+ require_relative 'practitioner_role/practitioner_role_forward_chain_endpoint_organization_search_test'
38
+ require_relative 'practitioner_role/practitioner_role_combination_list_practitioners_with_specialty_and_location_search_test'
39
+ require_relative 'practitioner_role/practitioner_role_validation_test'
40
+ require_relative 'practitioner_role/practitioner_role_must_support_test'
41
+ require_relative 'practitioner_role/practitioner_role_reference_resolution_test'
42
+
43
+ module DaVinciPlanNetTestKit
44
+ module DaVinciPlanNetV110
45
+ class PractitionerRoleGroup < Inferno::TestGroup
46
+ title 'Plan-Net PractitionerRole Tests'
47
+ short_description 'Verify support for the server capabilities required by the Plan-Net PractitionerRole.'
48
+ description %(
49
+ # Background
50
+
51
+ The Plan-Net PractitionerRole sequence verifies that the system under test is
52
+ able to provide correct responses for PractitionerRole queries. These queries
53
+ must return resources conforming to the Plan-Net PractitionerRole profile as
54
+ specified in the Plan Net v1.1.0 Implementation Guide.
55
+
56
+ # Testing Methodology
57
+
58
+ ## Instance Gathering
59
+
60
+ Inferno will first identify and obtain a set of instances to use for the rest
61
+ of the tests, requiring at least one instance to be identified for the test to pass.
62
+ Instances to gather are indentified in two ways. One or both will be used,
63
+ depending on user input.
64
+
65
+ ### Parameterless searches
66
+ Instances can be gathered using a query requesting all instances of PractitionerRole
67
+ (e.g., `GET [FHIR Endpoint]/PractitionerRole`).
68
+ Gathering through this method is controlled by the following inputs (used for all profiles):
69
+ - "Use parameterless searches to identify instances?":
70
+ parameterless searches can be disabled using this input if, for example,
71
+ the server under test does not support them, or not all instances on the server
72
+ should be expected to conform to Plan Net profiles. In this case the user **MUST**
73
+ provide specific instance ids to gather.
74
+ - "Maximum number of instances to gather using parameterless searches": sets an upper
75
+ bound on the number of instances Inferno will gather from parameterless searches.
76
+ - "Maximum pages of results to consider when using parameterless searches": sets an upper bound
77
+ on the number of pages of search results Inferno will load when gathering instances
78
+ using parameterless searches.
79
+
80
+ ### User-provided instance ids
81
+
82
+ If ids are listed in the "ids of Plan-Net PractitionerRole instances" optional input,
83
+ they will be read and included at the start of the set of gathered instances.
84
+
85
+
86
+ ## Searching
87
+ This test sequence will perform a search with each required search parameter
88
+ associated with this resource individually. Searches with the
89
+ following parameters will be performed:
90
+
91
+ * practitioner
92
+ * organization
93
+ * location
94
+ * service
95
+ * network
96
+ * endpoint
97
+ * role
98
+ * specialty
99
+ * _id
100
+ * _lastUpdated
101
+
102
+ ### Search Parameters
103
+ Each search will look for its parameter values
104
+ from the results of the instance gathering step. For example, for a search using
105
+ the `identifier` search parameter, the test searches the gathered instances
106
+ for one with the `identifier` element populated and then uses that value
107
+ as the queried `identifier` value. If a value cannot be found this way,
108
+ the search test is skipped for that search parameter.
109
+
110
+ ### Search Validation
111
+ Inferno will retrieve all bundle pages of the reply for
112
+ PractitionerRole resources. Each of the returned instances
113
+ is then checked to see if it matches the searched
114
+ parameters in accordance with [FHIR search
115
+ guidelines](https://www.hl7.org/fhir/search.html). The test will fail,
116
+ for example, if a Plan-Net PractitionerRole search for `practitioner=X`
117
+ returns a Plan-Net PractitionerRole instance where `practitioner!=X`
118
+
119
+
120
+ ## _include Requirement Testing
121
+ This test sequence will perform a search with each required _include search
122
+ parameter associated with this profile. This sequence will perform searches with the
123
+ following includes:
124
+
125
+ * PractitionerRole:practitioner
126
+ * PractitionerRole:organization
127
+ * PractitionerRole:location
128
+ * PractitionerRole:service
129
+ * PractitionerRole:network
130
+ * PractitionerRole:endpoint
131
+
132
+ Each _include search will look for a candidate id that has the target reference element
133
+ populated from the results of instance gathering. Each search will use the identified
134
+ Plan-Net PractitionerRole id and the include parameter.
135
+ The returned instances are checked to ensure that any instances of the included
136
+ type are referenced by returned instances of the searched resource type.
137
+
138
+
139
+
140
+ ## Forward Chaining Requirement Testing
141
+ This test sequence will perform a search with each required combination of forward chaining
142
+ search parameters. This sequence will perform searches with the following chaining parameters:
143
+
144
+ | Search Parameters | Chain Requirements |
145
+ | :---: | :---: |
146
+ | practitioner | name |
147
+ | organization | name, address, partof, type |
148
+ | location | address, address-postalcode, address-city, address-state, organization, type |
149
+ | service | service-category, organization, location |
150
+ | network | name, address, partof, type |
151
+ | endpoint | organization |
152
+
153
+
154
+ All forward chain searches will look for candidate instances of the resource being chained through
155
+ from the results of previously run _include tests. Candidates are chosen from previously returned
156
+ instances that have the chain parameter element filled. Each search test will use one of these values
157
+ to build the requests for the test. The test will be skipped if no candidates can be found.
158
+
159
+ The test will first create and execute the forward chaining request.
160
+ The test will then perform a basic search test on the resource being chained through,
161
+ using the same value in the previous request. Each resource returned in the first
162
+ request will then be checked, validating that the element being chained through is populated by
163
+ the id of _any_ of the resources returned by the second request.
164
+
165
+
166
+
167
+
168
+ ## Profile Validation
169
+ Each resource identified during instance gathering and other queries run during this test sequence
170
+ is expected to conform to the [Plan-Net PractitionerRole](http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/StructureDefinition/plannet-PractitionerRole). Each element is checked
171
+ by the HL7 Validator against terminology binding and cardinality requirements. Elements with a
172
+ required binding are validated against their bound ValueSet. If the code/system in the element
173
+ is not part of the ValueSet, then the test will fail.
174
+
175
+ ## Must Support
176
+ Each profile contains elements marked as "must support". This test
177
+ sequence expects to see each of these elements populated at least once.
178
+ The test will look through the Plan-Net PractitionerRole instances identified
179
+ during instance gathering and other queries run during this test sequence.
180
+ If no populated instance can be found for any must support element, the test
181
+ will fail.
182
+
183
+ ## Reference Validation
184
+ At least one instance of each external reference in elements marked as
185
+ "must support" within the resources provided by the system must resolve.
186
+ The test will attempt to read each reference found and will fail if no
187
+ read succeeds.
188
+
189
+ )
190
+
191
+ id :davinci_plan_net_v110_practitioner_role
192
+ run_as_group
193
+
194
+ def self.metadata
195
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'practitioner_role', 'metadata.yml'), aliases: true))
196
+ end
197
+
198
+ test from: :davinci_plan_net_v110_practitioner_role_no_params_search_test
199
+ test from: :davinci_plan_net_v110_practitioner_role_read_test
200
+ test from: :davinci_plan_net_v110_practitioner_role_practitioner_search_test
201
+ test from: :davinci_plan_net_v110_practitioner_role_organization_search_test
202
+ test from: :davinci_plan_net_v110_practitioner_role_location_search_test
203
+ test from: :davinci_plan_net_v110_practitioner_role_service_search_test
204
+ test from: :davinci_plan_net_v110_practitioner_role_network_search_test
205
+ test from: :davinci_plan_net_v110_practitioner_role_endpoint_search_test
206
+ test from: :davinci_plan_net_v110_practitioner_role_role_search_test
207
+ test from: :davinci_plan_net_v110_practitioner_role_specialty_search_test
208
+ test from: :davinci_plan_net_v110_practitioner_role__id_search_test
209
+ test from: :davinci_plan_net_v110_practitioner_role__lastUpdated_search_test
210
+ test from: :davinci_plan_net_v110_include_practitioner_role_practitioner_role_practitioner_search_test
211
+ test from: :davinci_plan_net_v110_include_practitioner_role_practitioner_role_organization_search_test
212
+ test from: :davinci_plan_net_v110_include_practitioner_role_practitioner_role_location_search_test
213
+ test from: :davinci_plan_net_v110_include_practitioner_role_practitioner_role_service_search_test
214
+ test from: :davinci_plan_net_v110_include_practitioner_role_practitioner_role_network_search_test
215
+ test from: :davinci_plan_net_v110_include_practitioner_role_practitioner_role_endpoint_search_test
216
+ test from: :davinci_plan_net_v110_forward_chain_practitioner_name_search_test
217
+ test from: :davinci_plan_net_v110_forward_chain_organization_name_search_test
218
+ test from: :davinci_plan_net_v110_forward_chain_organization_address_search_test
219
+ test from: :davinci_plan_net_v110_forward_chain_organization_partof_search_test
220
+ test from: :davinci_plan_net_v110_forward_chain_organization_type_search_test
221
+ test from: :davinci_plan_net_v110_forward_chain_location_address_search_test
222
+ test from: :davinci_plan_net_v110_forward_chain_location_address_postalcode_search_test
223
+ test from: :davinci_plan_net_v110_forward_chain_location_address_city_search_test
224
+ test from: :davinci_plan_net_v110_forward_chain_location_address_state_search_test
225
+ test from: :davinci_plan_net_v110_forward_chain_location_organization_search_test
226
+ test from: :davinci_plan_net_v110_forward_chain_location_type_search_test
227
+ test from: :davinci_plan_net_v110_forward_chain_service_service_category_search_test
228
+ test from: :davinci_plan_net_v110_forward_chain_service_organization_search_test
229
+ test from: :davinci_plan_net_v110_forward_chain_service_location_search_test
230
+ test from: :davinci_plan_net_v110_forward_chain_network_name_search_test
231
+ test from: :davinci_plan_net_v110_forward_chain_network_address_search_test
232
+ test from: :davinci_plan_net_v110_forward_chain_network_partof_search_test
233
+ test from: :davinci_plan_net_v110_forward_chain_network_type_search_test
234
+ test from: :davinci_plan_net_v110_forward_chain_endpoint_organization_search_test
235
+ test from: :davinci_plan_net_v110_practitioner_role_combination_list_practitioners_with_specialty_and_location_search_test
236
+ test from: :davinci_plan_net_v110_practitioner_role_validation_test
237
+ test from: :davinci_plan_net_v110_practitioner_role_must_support_test
238
+ test from: :davinci_plan_net_v110_practitioner_role_reference_resolution_test
239
+ end
240
+ end
241
+ end
@@ -0,0 +1,16 @@
1
+ module DaVinciPlanNetTestKit
2
+ module DaVinciPlanNetV110
3
+ module ResourceList
4
+ RESOURCE_LIST = [
5
+ 'Endpoint',
6
+ 'HealthcareService',
7
+ 'InsurancePlan',
8
+ 'Location',
9
+ 'Organization',
10
+ 'OrganizationAffiliation',
11
+ 'Practitioner',
12
+ 'PractitionerRole'
13
+ ].freeze
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,215 @@
1
+ require_relative 'naming'
2
+ require_relative 'special_cases'
3
+
4
+ module DaVinciPlanNetTestKit
5
+ class Generator
6
+ class CombinationSearchTestGenerator
7
+ class << self
8
+ def generate(ig_metadata, examples_hash, base_output_dir)
9
+ examples_hash.keys.each do |group|
10
+ examples_hash[group].each do |combination_example|
11
+ group_to_add_to = ig_metadata.groups.find { |ig_meta_group| ig_meta_group.name == "plannet_#{group}"}
12
+ new(group_to_add_to, group_to_add_to.searches.first, base_output_dir, combination_example).generate
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+ attr_accessor :group_metadata, :search_metadata, :base_output_dir, :test_data
19
+
20
+ def initialize(group_metadata, search_metadata, base_output_dir, combination_example)
21
+ self.group_metadata = group_metadata
22
+ self.search_metadata = search_metadata
23
+ self.base_output_dir = base_output_dir
24
+ self.test_data = combination_example
25
+ end
26
+
27
+ def template
28
+ @template ||= File.read(File.join(__dir__, 'templates', 'combination_search_test.rb.erb'))
29
+ end
30
+
31
+ def output
32
+ @output ||= ERB.new(template).result(binding)
33
+ end
34
+
35
+ def base_output_file_name
36
+ "#{class_name.underscore}.rb"
37
+ end
38
+
39
+ def output_file_directory
40
+ File.join(base_output_dir, profile_identifier.downcase)
41
+ end
42
+
43
+ def output_file_name
44
+ File.join(output_file_directory, base_output_file_name)
45
+ end
46
+
47
+ def profile_identifier
48
+ Naming.snake_case_for_profile(group_metadata)
49
+ end
50
+
51
+ def test_id
52
+ "davinci_plan_net_#{group_metadata.reformatted_version}_#{profile_identifier}_#{search_identifier}_search_test"
53
+ end
54
+
55
+ def search_identifier
56
+ test_data['name'].gsub(/[-:]/, '_').underscore.gsub("organization_affiliation", "org_affil")
57
+ end
58
+
59
+ def search_title
60
+ search_identifier.camelize
61
+ end
62
+
63
+ def class_name
64
+ "#{Naming.upper_camel_case_for_profile(group_metadata)}#{search_title}SearchTest"
65
+ end
66
+
67
+ def module_name
68
+ "DaVinciPlanNet#{group_metadata.reformatted_version.upcase}"
69
+ end
70
+
71
+ def resource_type
72
+ group_metadata.resource
73
+ end
74
+
75
+ def additional_resource_type
76
+ test_data['additional_resource_type']
77
+ end
78
+
79
+ def test_description
80
+ test_data['description']
81
+ end
82
+
83
+ def test_goal
84
+ test_data['goal']
85
+ end
86
+
87
+ def search_params
88
+ @search_params ||=
89
+ test_data['base_search_params'].map do |name|
90
+ {
91
+ name: name,
92
+ path: search_definition(name)[:path]
93
+ }
94
+ end
95
+ end
96
+
97
+ def first_search?
98
+ group_metadata.searches.first == search_metadata
99
+ end
100
+
101
+ def fixed_value_search?
102
+ #TODO
103
+ false
104
+ end
105
+
106
+ def fixed_value_search_param_name
107
+ #TODO
108
+ end
109
+
110
+ def a_or_an(name)
111
+ ['a','e','i','o','u'].include?(name.first.downcase) ? "an #{name}" : "a #{name}"
112
+ end
113
+
114
+ def search_param_names
115
+ search_params.map { |param| param[:name] }
116
+ end
117
+
118
+ def search_param_names_array
119
+ array_of_strings(search_param_names)
120
+ end
121
+
122
+ def path_for_value(path)
123
+ path == 'class' ? 'local_class' : path
124
+ end
125
+
126
+ def required_comparators_for_param(name)
127
+ search_definition(name)[:comparators].select { |_comparator, expectation| expectation == 'SHALL' }
128
+ end
129
+
130
+ def required_comparators
131
+ @required_comparators ||=
132
+ search_param_names.each_with_object({}) do |name, comparators|
133
+ required_comparators = required_comparators_for_param(name)
134
+ comparators[name] = required_comparators if required_comparators.present?
135
+ end
136
+ end
137
+
138
+ def search_definition(name)
139
+ group_metadata.search_definitions[name.to_sym]
140
+ end
141
+
142
+ def saves_delayed_references?
143
+ first_search? && group_metadata.delayed_references.present?
144
+ end
145
+
146
+ def possible_status_search?
147
+ !search_metadata[:names].include?('status') && group_metadata.search_definitions.key?(:status)
148
+ end
149
+
150
+ def token_search_params
151
+ @token_search_params ||=
152
+ search_param_names.select do |name|
153
+ ['Identifier', 'CodeableConcept', 'Coding'].include? group_metadata.search_definitions[name.to_sym][:type]
154
+ end
155
+ end
156
+
157
+ def token_search_params_string
158
+ array_of_strings(token_search_params)
159
+ end
160
+
161
+ def required_comparators_string
162
+ array_of_strings(required_comparators.keys)
163
+ end
164
+
165
+ def array_of_strings(array)
166
+ quoted_strings = array.map { |element| "'#{element}'" }
167
+ "[#{quoted_strings.join(', ')}]"
168
+ end
169
+
170
+ def input_name
171
+ "#{search_identifier}_input"
172
+ end
173
+
174
+ def optional_input?
175
+ test_data['optional_input']
176
+ end
177
+
178
+ def input_description
179
+ test_data['input_description']
180
+ end
181
+
182
+ def search_properties
183
+ {}.tap do |properties|
184
+ properties[:fixed_value_search] = 'true' if fixed_value_search?
185
+ properties[:resource_type] = "'#{resource_type}'"
186
+ properties[:search_param_names] = search_param_names_array
187
+ properties[:input_name] = "'#{input_name}'"
188
+ properties[:include_param] ="'#{test_data['include_param']}'" if !test_data['include_param'].empty?
189
+ properties[:inc_param_sp] ="'#{test_data['inc_param_sp']}'" if !test_data['inc_param_sp'].empty?
190
+ properties[:reverse_chain_param] = "'#{test_data['reverse_chain_param']}'" if !test_data['reverse_chain_param'].empty?
191
+ properties[:reverse_chain_target] = "'#{test_data['reverse_chain_target']}'" if !test_data['reverse_chain_target'].empty?
192
+ properties[:possible_status_search] = 'true' if possible_status_search?
193
+ properties[:additional_resource_type] = "'#{additional_resource_type}'"
194
+ properties[:combination_search] = 'true'
195
+ end
196
+ end
197
+
198
+ def search_test_properties_string
199
+ search_properties
200
+ .map { |key, value| "#{' ' * 10}#{key}: #{value}" }
201
+ .join(",\n")
202
+ end
203
+
204
+ def generate
205
+ FileUtils.mkdir_p(output_file_directory)
206
+ File.open(output_file_name, 'w') { |f| f.write(output) }
207
+
208
+ group_metadata.add_test(
209
+ id: test_id,
210
+ file_name: base_output_file_name
211
+ )
212
+ end
213
+ end
214
+ end
215
+ end