davinci_plan_net_test_kit 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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