davinci_plan_net_test_kit 0.11.1 → 0.12.1

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 (261) hide show
  1. checksums.yaml +4 -4
  2. data/lib/davinci_plan_net_test_kit/custom_groups/capability_statement/json_support_test.rb +3 -0
  3. data/lib/davinci_plan_net_test_kit/custom_groups/capability_statement/profile_support_test.rb +3 -0
  4. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/davinci_plan_net_test_suite.rb +54 -44
  5. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_forward_chain_organization_address_search_test.rb +2 -0
  6. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_forward_chain_organization_name_search_test.rb +2 -0
  7. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_forward_chain_organization_partof_search_test.rb +2 -0
  8. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_forward_chain_organization_type_search_test.rb +2 -0
  9. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_id_search_test.rb +2 -0
  10. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_include_endpoint_organization_search_test.rb +2 -0
  11. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_lastupdated_search_test.rb +2 -0
  12. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_must_support_test.rb +2 -0
  13. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_organization_search_test.rb +2 -0
  14. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/endpoint_read_test.rb +2 -0
  15. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint/metadata.yml +3 -0
  16. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/endpoint_group.rb +1 -0
  17. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_coverage_area_search_test.rb +2 -0
  18. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_endpoint_search_test.rb +2 -0
  19. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_endpoint_organization_search_test.rb +2 -0
  20. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_address_city_search_test.rb +2 -0
  21. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_address_postalcode_search_test.rb +2 -0
  22. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_address_search_test.rb +2 -0
  23. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_address_state_search_test.rb +2 -0
  24. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_organization_search_test.rb +2 -0
  25. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_location_type_search_test.rb +2 -0
  26. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_organization_address_search_test.rb +2 -0
  27. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_organization_name_search_test.rb +2 -0
  28. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_organization_partof_search_test.rb +2 -0
  29. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_forward_chain_organization_type_search_test.rb +2 -0
  30. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_id_search_test.rb +2 -0
  31. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_include_healthcare_service_coverage_area_search_test.rb +2 -0
  32. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_include_healthcare_service_endpoint_search_test.rb +2 -0
  33. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_include_healthcare_service_location_search_test.rb +2 -0
  34. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_include_healthcare_service_organization_search_test.rb +2 -0
  35. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_lastupdated_search_test.rb +2 -0
  36. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_location_search_test.rb +2 -0
  37. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_must_support_test.rb +2 -0
  38. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_name_search_test.rb +2 -0
  39. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_organization_search_test.rb +2 -0
  40. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_read_test.rb +2 -0
  41. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_revinclude_organization_affiliation_service_search_test.rb +4 -0
  42. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_revinclude_practitioner_role_service_search_test.rb +4 -0
  43. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_service_category_search_test.rb +2 -0
  44. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_service_type_search_test.rb +2 -0
  45. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/healthcare_service_specialty_search_test.rb +2 -0
  46. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service/metadata.yml +12 -0
  47. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/healthcare_service_group.rb +1 -0
  48. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_administered_by_search_test.rb +2 -0
  49. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_coverage_area_search_test.rb +2 -0
  50. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_forward_chain_administered_by_name_search_test.rb +2 -0
  51. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_forward_chain_administered_by_partof_search_test.rb +2 -0
  52. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_forward_chain_owned_by_name_search_test.rb +2 -0
  53. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_forward_chain_owned_by_partof_search_test.rb +2 -0
  54. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_id_search_test.rb +2 -0
  55. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_identifier_search_test.rb +2 -0
  56. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_include_insurance_plan_administered_by_search_test.rb +2 -0
  57. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_include_insurance_plan_coverage_area_search_test.rb +2 -0
  58. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_include_insurance_plan_owned_by_search_test.rb +2 -0
  59. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_lastupdated_search_test.rb +2 -0
  60. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_must_support_test.rb +2 -0
  61. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_name_search_test.rb +2 -0
  62. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_owned_by_search_test.rb +2 -0
  63. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_plan_type_search_test.rb +2 -0
  64. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_read_test.rb +2 -0
  65. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/insurance_plan_type_search_test.rb +2 -0
  66. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan/metadata.yml +12 -0
  67. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/insurance_plan_group.rb +1 -0
  68. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_address_city_search_test.rb +2 -0
  69. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_address_postalcode_search_test.rb +2 -0
  70. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_address_search_test.rb +2 -0
  71. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_address_state_search_test.rb +2 -0
  72. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_endpoint_search_test.rb +2 -0
  73. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_endpoint_organization_search_test.rb +2 -0
  74. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_organization_address_search_test.rb +2 -0
  75. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_organization_name_search_test.rb +2 -0
  76. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_organization_partof_search_test.rb +2 -0
  77. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_organization_type_search_test.rb +2 -0
  78. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_partof_address_search_test.rb +2 -0
  79. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_partof_organization_search_test.rb +2 -0
  80. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_forward_chain_partof_type_search_test.rb +2 -0
  81. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_id_search_test.rb +2 -0
  82. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_include_location_endpoint_search_test.rb +2 -0
  83. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_include_location_organization_search_test.rb +2 -0
  84. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_include_location_partof_search_test.rb +2 -0
  85. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_lastupdated_search_test.rb +2 -0
  86. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_must_support_test.rb +2 -0
  87. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_organization_search_test.rb +2 -0
  88. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_partof_search_test.rb +2 -0
  89. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_read_test.rb +2 -0
  90. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_reverse_chain_insurance_plan_coverage_area_owned_by_search_test.rb +3 -0
  91. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_revinclude_healthcare_service_location_search_test.rb +4 -0
  92. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_revinclude_insurance_plan_coverage_area_search_test.rb +4 -0
  93. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_revinclude_organization_affiliation_location_search_test.rb +4 -0
  94. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_revinclude_practitioner_role_location_search_test.rb +4 -0
  95. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/location_type_search_test.rb +2 -0
  96. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location/metadata.yml +11 -0
  97. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/location_group.rb +1 -0
  98. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/metadata.yml +91 -2
  99. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/metadata.yml +6 -0
  100. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_address_search_test.rb +2 -0
  101. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_coverage_area_search_test.rb +2 -0
  102. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_endpoint_search_test.rb +2 -0
  103. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_forward_chain_endpoint_organization_search_test.rb +2 -0
  104. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_forward_chain_partof_address_search_test.rb +2 -0
  105. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_forward_chain_partof_name_search_test.rb +2 -0
  106. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_forward_chain_partof_type_search_test.rb +2 -0
  107. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_id_search_test.rb +2 -0
  108. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_include_organization_coverage_area_search_test.rb +2 -0
  109. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_include_organization_endpoint_search_test.rb +2 -0
  110. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_include_organization_partof_search_test.rb +2 -0
  111. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_lastupdated_search_test.rb +2 -0
  112. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_must_support_test.rb +2 -0
  113. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_name_search_test.rb +2 -0
  114. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_partof_search_test.rb +2 -0
  115. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_read_test.rb +2 -0
  116. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_reverse_chain_practitioner_role_network_location_search_test.rb +3 -0
  117. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_revinclude_practitioner_role_network_search_test.rb +4 -0
  118. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network/network_type_search_test.rb +2 -0
  119. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/network_group.rb +1 -0
  120. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/metadata.yml +12 -0
  121. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_endpoint_search_test.rb +2 -0
  122. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_endpoint_organization_search_test.rb +2 -0
  123. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_address_city_search_test.rb +2 -0
  124. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_address_postalcode_search_test.rb +2 -0
  125. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_address_search_test.rb +2 -0
  126. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_address_state_search_test.rb +2 -0
  127. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_organization_search_test.rb +2 -0
  128. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_location_type_search_test.rb +2 -0
  129. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_network_name_search_test.rb +2 -0
  130. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_network_partof_search_test.rb +2 -0
  131. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_participating_organization_address_search_test.rb +2 -0
  132. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_participating_organization_name_search_test.rb +2 -0
  133. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_participating_organization_partof_search_test.rb +2 -0
  134. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_participating_organization_type_search_test.rb +2 -0
  135. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_primary_organization_address_search_test.rb +2 -0
  136. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_primary_organization_name_search_test.rb +2 -0
  137. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_primary_organization_partof_search_test.rb +2 -0
  138. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_primary_organization_type_search_test.rb +2 -0
  139. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_service_location_search_test.rb +2 -0
  140. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_service_organization_search_test.rb +2 -0
  141. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_forward_chain_service_service_category_search_test.rb +2 -0
  142. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_id_search_test.rb +2 -0
  143. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_endpoint_search_test.rb +2 -0
  144. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_location_search_test.rb +2 -0
  145. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_network_search_test.rb +2 -0
  146. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_participating_organization_search_test.rb +2 -0
  147. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_primary_organization_search_test.rb +2 -0
  148. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_include_organization_affiliation_service_search_test.rb +2 -0
  149. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_lastupdated_search_test.rb +2 -0
  150. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_location_search_test.rb +2 -0
  151. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_must_support_test.rb +2 -0
  152. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_network_search_test.rb +2 -0
  153. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_participating_organization_search_test.rb +2 -0
  154. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_primary_organization_search_test.rb +2 -0
  155. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_read_test.rb +2 -0
  156. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_role_search_test.rb +2 -0
  157. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_service_search_test.rb +2 -0
  158. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil/org_affil_specialty_search_test.rb +2 -0
  159. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/org_affil_group.rb +1 -0
  160. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/metadata.yml +9 -1
  161. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_address_search_test.rb +2 -0
  162. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_coverage_area_search_test.rb +2 -0
  163. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_endpoint_search_test.rb +2 -0
  164. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_forward_chain_endpoint_organization_search_test.rb +2 -0
  165. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_forward_chain_partof_address_search_test.rb +2 -0
  166. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_forward_chain_partof_name_search_test.rb +2 -0
  167. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_forward_chain_partof_type_search_test.rb +2 -0
  168. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_id_search_test.rb +2 -0
  169. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_include_organization_coverage_area_search_test.rb +2 -0
  170. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_include_organization_endpoint_search_test.rb +2 -0
  171. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_include_organization_partof_search_test.rb +2 -0
  172. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_lastupdated_search_test.rb +2 -0
  173. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_must_support_test.rb +2 -0
  174. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_name_search_test.rb +2 -0
  175. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_partof_search_test.rb +2 -0
  176. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_read_test.rb +2 -0
  177. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_reverse_chain_insurance_plan_owned_by_coverage_area_search_test.rb +3 -0
  178. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_reverse_chain_org_affil_participating_organization_location_search_test.rb +3 -0
  179. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_reverse_chain_org_affil_participating_organization_network_search_test.rb +3 -0
  180. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_reverse_chain_org_affil_participating_organization_specialty_search_test.rb +3 -0
  181. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_endpoint_organization_search_test.rb +4 -0
  182. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_healthcare_service_organization_search_test.rb +4 -0
  183. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_insurance_plan_administered_by_search_test.rb +4 -0
  184. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_insurance_plan_owned_by_search_test.rb +4 -0
  185. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_organization_affiliation_participating_organization_search_test.rb +4 -0
  186. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_organization_affiliation_primary_organization_search_test.rb +4 -0
  187. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_revinclude_practitioner_role_organization_search_test.rb +4 -0
  188. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization/organization_type_search_test.rb +2 -0
  189. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/organization_group.rb +1 -0
  190. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/metadata.yml +5 -1
  191. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_family_search_test.rb +2 -0
  192. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_given_search_test.rb +2 -0
  193. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_id_search_test.rb +2 -0
  194. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_lastupdated_search_test.rb +2 -0
  195. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_must_support_test.rb +2 -0
  196. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_name_search_test.rb +2 -0
  197. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_read_test.rb +2 -0
  198. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_reverse_chain_practitioner_role_practitioner_location_search_test.rb +3 -0
  199. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_reverse_chain_practitioner_role_practitioner_network_search_test.rb +3 -0
  200. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_reverse_chain_practitioner_role_practitioner_role_search_test.rb +3 -0
  201. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_reverse_chain_practitioner_role_practitioner_specialty_search_test.rb +3 -0
  202. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner/practitioner_revinclude_practitioner_role_practitioner_search_test.rb +4 -0
  203. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_group.rb +1 -0
  204. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/metadata.yml +21 -0
  205. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_endpoint_search_test.rb +2 -0
  206. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_endpoint_organization_search_test.rb +2 -0
  207. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_address_city_search_test.rb +2 -0
  208. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_address_postalcode_search_test.rb +2 -0
  209. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_address_search_test.rb +2 -0
  210. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_address_state_search_test.rb +2 -0
  211. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_organization_search_test.rb +2 -0
  212. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_location_type_search_test.rb +2 -0
  213. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_network_address_search_test.rb +2 -0
  214. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_network_name_search_test.rb +2 -0
  215. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_network_partof_search_test.rb +2 -0
  216. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_network_type_search_test.rb +2 -0
  217. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_organization_address_search_test.rb +2 -0
  218. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_organization_name_search_test.rb +2 -0
  219. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_organization_partof_search_test.rb +2 -0
  220. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_organization_type_search_test.rb +2 -0
  221. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_practitioner_name_search_test.rb +2 -0
  222. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_service_location_search_test.rb +2 -0
  223. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_service_organization_search_test.rb +2 -0
  224. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_forward_chain_service_service_category_search_test.rb +2 -0
  225. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_id_search_test.rb +2 -0
  226. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_endpoint_search_test.rb +2 -0
  227. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_location_search_test.rb +2 -0
  228. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_network_search_test.rb +2 -0
  229. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_organization_search_test.rb +2 -0
  230. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_practitioner_search_test.rb +2 -0
  231. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_include_practitioner_role_service_search_test.rb +2 -0
  232. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_lastupdated_search_test.rb +2 -0
  233. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_location_search_test.rb +2 -0
  234. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_must_support_test.rb +2 -0
  235. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_network_search_test.rb +2 -0
  236. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_organization_search_test.rb +2 -0
  237. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_practitioner_search_test.rb +2 -0
  238. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_read_test.rb +2 -0
  239. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_role_search_test.rb +2 -0
  240. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_service_search_test.rb +2 -0
  241. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role/practitioner_role_specialty_search_test.rb +2 -0
  242. data/lib/davinci_plan_net_test_kit/generated/v1.1.0/practitioner_role_group.rb +1 -0
  243. data/lib/davinci_plan_net_test_kit/generator/must_support_metadata_extractor.rb +3 -302
  244. data/lib/davinci_plan_net_test_kit/generator/must_support_test_generator.rb +1 -1
  245. data/lib/davinci_plan_net_test_kit/generator/special_cases.rb +1 -1
  246. data/lib/davinci_plan_net_test_kit/generator/templates/forward_chain_test.rb.erb +2 -0
  247. data/lib/davinci_plan_net_test_kit/generator/templates/group.rb.erb +1 -0
  248. data/lib/davinci_plan_net_test_kit/generator/templates/include_search.rb.erb +2 -0
  249. data/lib/davinci_plan_net_test_kit/generator/templates/must_support.rb.erb +2 -0
  250. data/lib/davinci_plan_net_test_kit/generator/templates/read.rb.erb +2 -0
  251. data/lib/davinci_plan_net_test_kit/generator/templates/reverse_chain_search.rb.erb +3 -0
  252. data/lib/davinci_plan_net_test_kit/generator/templates/revinclude_search.rb.erb +4 -0
  253. data/lib/davinci_plan_net_test_kit/generator/templates/search.rb.erb +2 -0
  254. data/lib/davinci_plan_net_test_kit/generator/templates/suite.rb.erb +59 -46
  255. data/lib/davinci_plan_net_test_kit/must_support_test.rb +1 -192
  256. data/lib/davinci_plan_net_test_kit/requirements/davinci_plan_net_test_kit_requirements.csv +65 -0
  257. data/lib/davinci_plan_net_test_kit/requirements/generated/davinci_plan_net_server_v110_requirements_coverage.csv +60 -0
  258. data/lib/davinci_plan_net_test_kit/requirements/hl7.fhir.us.davinci-pdex-plan-net_1.1.0_reqs.xlsx +0 -0
  259. data/lib/davinci_plan_net_test_kit/version.rb +2 -2
  260. metadata +10 -8
  261. data/lib/davinci_plan_net_test_kit/igs/Plan Net Requirements Interpretation.xlsx +0 -0
@@ -1,4 +1,3 @@
1
- require 'inferno/dsl/oauth_credentials'
2
1
  require_relative '../../version'
3
2
  require_relative '<%= capability_statement_file_name %>'
4
3
  <% group_file_list.each do |file_name| %>require_relative '<%= file_name %>'
@@ -13,15 +12,15 @@ module DaVinciPlanNetTestKit
13
12
 
14
13
  ## Scope
15
14
 
16
- These tests are a **DRAFT** intended to allow Plan Net server implementers to perform
17
- preliminary checks of their servers against Plan Net IG requirements and [provide
18
- feedback](https://github.com/inferno-framework/davinci-plan-net-test-kit/issues)
19
- to ONC on the tests. Future versions of these tests may validate other
15
+ These tests are a **DRAFT** intended to allow Plan Net server implementers to perform
16
+ preliminary checks of their servers against Plan Net IG requirements and [provide
17
+ feedback](https://github.com/inferno-framework/davinci-plan-net-test-kit/issues)
18
+ to ONC on the tests. Future versions of these tests may validate other
20
19
  requirements and may change the test validation logic.
21
20
 
22
21
  ## Test Methodology
23
22
 
24
- Inferno will act as a client and make a series of requests to the
23
+ Inferno will act as a client and make a series of requests to the
25
24
  server under test. The responses will be checked for conformance to the Plan
26
25
  Net IG requirements individually and used in aggregate to determine whether
27
26
  required features and functionality are present.
@@ -30,10 +29,10 @@ module DaVinciPlanNetTestKit
30
29
  `tx.fhir.org` as the terminology server.
31
30
 
32
31
  ## Running the Tests
33
-
32
+
34
33
  ### Quick Start
35
34
 
36
- The tests are designed to be runnable with a single input from the user:
35
+ The tests are designed to be runnable with a single input from the user:
37
36
  the base FHIR URL of the server under test. To run in this mode:
38
37
  1. Click the `RUN ALL TESTS` button in the upper right
39
38
  2. Provide the URL for the server in the first "FHIR Endpoint (required)" input
@@ -41,10 +40,10 @@ module DaVinciPlanNetTestKit
41
40
  4. Wait for Inferno to run the tests (will take several minutes)
42
41
  5. Expand tests with failures to determine the reason
43
42
 
44
- If you would like to try out the tests but don't have a Plan Net server implementation,
45
- you can use the publicly available reference implementation available at URL
43
+ If you would like to try out the tests but don't have a Plan Net server implementation,
44
+ you can use the publicly available reference implementation available at URL
46
45
  https://plan-net-ri.davinci.hl7.org/fhir. Select this endpoint by using that URL as the
47
- "FHIR Endpoint (required)" input or prepopulating it by selecting the
46
+ "FHIR Endpoint (required)" input or prepopulating it by selecting the
48
47
  `Da Vinci Plan Net Reference Server` preset in the upper left. Note that this
49
48
  system is not currently expected to pass all of the tests.
50
49
 
@@ -53,8 +52,8 @@ module DaVinciPlanNetTestKit
53
52
  - Additional data within the system under test, e.g., to demonstrate all Must Support elements.
54
53
  - Fixes to the system under test.
55
54
 
56
- Note that this mode requires that the server support parameterless searches against
57
- Plan Net resource types (e.g., `GET [FHIR Endpoint]/InsurancePlan`), which are not required
55
+ Note that this mode requires that the server support parameterless searches against
56
+ Plan Net resource types (e.g., `GET [FHIR Endpoint]/InsurancePlan`), which are not required
58
57
  by the Plan Net IG. If your server does not support these searches, or some returned instances
59
58
  will not conform to Plan Net profiles, see the *Instance Gathering* section under
60
59
  *Test Configuration Details* below for how to disable these searches and direct the tests
@@ -62,8 +61,8 @@ module DaVinciPlanNetTestKit
62
61
 
63
62
  ### Running Groups Individually
64
63
 
65
- Each test group listed on the left can be run individually using the `RUN TESTS`
66
- button in the upper right of the group page. However, note that running
64
+ Each test group listed on the left can be run individually using the `RUN TESTS`
65
+ button in the upper right of the group page. However, note that running
67
66
  them individually requires additional inputs so that Inferno can find appropriate values for searches
68
67
  (see *Determination of Search Values When Running Single Groups* below for details).
69
68
 
@@ -74,60 +73,59 @@ module DaVinciPlanNetTestKit
74
73
 
75
74
  ### Authentication
76
75
 
77
- The Plan Net IG requires that "A conformant Plan-Net service SHALL NOT
78
- require a directory mobile application to send consumer identifying information
76
+ The Plan Net IG requires that "A conformant Plan-Net service SHALL NOT
77
+ require a directory mobile application to send consumer identifying information
79
78
  in order to query content." A simple way to ensure this is to not require authentication,
80
79
  which is safe because the information in scope does not include PHI. Thus, the
81
80
  tests do not send authentication details by default.
82
81
 
83
- If a server under test requires authentication information to be sent, an access token
84
- may be provided using the "OAuth Credentials - Access Token" input. When populated,
82
+ If a server under test requires authentication information to be sent, an access token
83
+ may be provided using the "OAuth Credentials - Access Token" input. When populated,
85
84
  requests to the server will include an HTTP header of the form `Authorization: Bearer [access token]`.
86
85
 
87
86
  ### Instance Gathering
88
87
 
89
88
  Inferno needs to identify instances of each profile to use to validate conformance to
90
- structural and search API requirements. Inferno will use one or a combination of the
89
+ structural and search API requirements. Inferno will use one or a combination of the
91
90
  following two approaches as directed by the inputs.
92
91
 
93
92
  #### Parameterless searches (default)
94
-
95
- Inferno will use a search against the base resource type without any search
96
- parameters (`GET [FHIR Endpoint]/[Resource Type]`) to identify instances of each profile.
93
+
94
+ Inferno will use a search against the base resource type without any search
95
+ parameters (`GET [FHIR Endpoint]/[Resource Type]`) to identify instances of each profile.
97
96
  This behavior can be controlled using the following inputs:
98
97
  - "Use parameterless searches to identify instances?": if the server under test does not support
99
98
  parameterless searches, this can be set to `No` to disable parameterless searches.
100
- - "Maximum number of instances to gather using parameterless searches (required)" and
101
- "Maximum pages of results to consider when using parameterless searches (required)": if fewer
102
- instances (e.g., to improve performance) or more instances (e.g., to improve Must Support
99
+ - "Maximum number of instances to gather using parameterless searches (required)" and
100
+ "Maximum pages of results to consider when using parameterless searches (required)": if fewer
101
+ instances (e.g., to improve performance) or more instances (e.g., to improve Must Support
103
102
  element coverage) should be gathered, these inputs can be adjusted to tune the number
104
103
  of instances that Inferno will gather using parameterless searches.
105
-
104
+
106
105
  #### Specific instance ids
107
-
108
- Inputs of the form "ids of [profile] instances" can be used by the user to specify particular
106
+
107
+ Inputs of the form "ids of [profile] instances" can be used by the user to specify particular
109
108
  instances for Inferno to gather for use in testing. Inferno will perform a read on each provided id
110
- to gather the instances. When parameterless searches are not used, all inputs of this form must be populated.
109
+ to gather the instances. When parameterless searches are not used, all inputs of this form must be populated.
111
110
  When instance ids are provided in addition to parameterless searches, instances provided by the user
112
111
  are prioritized for use in determining search values for search tests.
113
-
112
+
114
113
  ### Determination of Search Values When Running Single Groups
115
114
 
116
- Validation of search parameters requires Inferno to identify values that are expected
117
- to return instances. By default, Inferno does this by examining gathered instances of each profile
115
+ Validation of search parameters requires Inferno to identify values that are expected
116
+ to return instances. By default, Inferno does this by examining gathered instances of each profile
118
117
  to identify search values that should return results when performed against the server under
119
118
  test. For `_revinclude` and reverse chaining tests, Inferno needs access to instances of other profiles
120
- in order to determine appropriate search values. When test groups are run individually, Inferno will not
121
- have access to instances identified while running other groups. Thus, when running at the group level,
119
+ in order to determine appropriate search values. When test groups are run individually, Inferno will not
120
+ have access to instances identified while running other groups. Thus, when running at the group level,
122
121
  two additional inputs are required to allow the tests to identify appropriate search values:
123
- - "[target profile] instance ids referenced in [referencing profile].[reference element]":
124
- used by `_revinclude` tests on [target profile] when run as a group to identify
122
+ - "[target profile] instance ids referenced in [referencing profile].[reference element]":
123
+ used by `_revinclude` tests on [target profile] when run as a group to identify
125
124
  instances of the [target profile] that have instances of [referencing profile] that reference it.
126
- - "'[constraining element]' value from a [referencing profile] instance with '[reference element]' populated": used by reverse chaining tests
127
- on the [target profile] referenced in the [reference element] element when run as a single group
125
+ - "'[constraining element]' value from a [referencing profile] instance with '[reference element]' populated": used by reverse chaining tests
126
+ on the [target profile] referenced in the [reference element] element when run as a single group
128
127
  to identify the value to use when performing the reverse chain search.
129
128
  )
130
- version VERSION
131
129
 
132
130
  VALIDATION_MESSAGE_FILTERS = [
133
131
  %r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
@@ -146,6 +144,14 @@ module DaVinciPlanNetTestKit
146
144
 
147
145
  id :<%= suite_id %>
148
146
 
147
+ requirement_sets(
148
+ {
149
+ identifier: 'hl7.fhir.us.davinci-pdex-plan-net_1.1.0',
150
+ title: 'DaVinci PDEX Plan Net',
151
+ actor: 'Server'
152
+ }
153
+ )
154
+
149
155
  fhir_resource_validator do
150
156
  igs '<%= ig_identifier %>'
151
157
 
@@ -167,9 +173,13 @@ module DaVinciPlanNetTestKit
167
173
  url: 'https://github.com/inferno-framework/davinci-plan-net-test-kit/issues'
168
174
  },
169
175
  {
170
- label: 'Source Code',
176
+ label: 'Open Source',
171
177
  url: 'https://github.com/inferno-framework/davinci-plan-net-test-kit'
172
178
  },
179
+ {
180
+ label: 'Download',
181
+ url: 'https://github.com/inferno-framework/davinci-plan-net-test-kit/releases'
182
+ },
173
183
  {
174
184
  label: 'Implementation Guide',
175
185
  url: '<%=ig_link %>'
@@ -179,10 +189,13 @@ module DaVinciPlanNetTestKit
179
189
  input :url,
180
190
  title: 'FHIR Endpoint',
181
191
  description: 'URL of the FHIR endpoint'
182
- input :smart_credentials,
192
+ input :smart_auth_info,
183
193
  title: 'OAuth Credentials',
184
- type: :oauth_credentials,
185
- optional: true
194
+ type: :auth_info,
195
+ optional: true,
196
+ options: {
197
+ mode: 'access'
198
+ }
186
199
  input :no_param_search,
187
200
  title: 'Use parameterless searches to identify instances?',
188
201
  type: 'radio',
@@ -208,10 +221,10 @@ module DaVinciPlanNetTestKit
208
221
  title: 'Maximum pages of results to consider when using parameterless searches',
209
222
  default: '20',
210
223
  description: 'Only used with parameterless searches. A higher number will gather more instances for the tests, if they are available. The test will not consider further pages once the maximum number of instances has been reached.'
211
-
224
+
212
225
  fhir_client do
213
226
  url :url
214
- oauth_credentials :smart_credentials
227
+ auth_info :smart_auth_info
215
228
  end
216
229
 
217
230
  group from: :<%= capability_statement_group_id %>
@@ -14,198 +14,7 @@ module DaVinciPlanNetTestKit
14
14
  def perform_must_support_test(resources)
15
15
  skip_if resources.blank?, "No #{resource_type} resources were found"
16
16
 
17
- missing_elements(resources)
18
- missing_slices(resources)
19
- missing_extensions(resources)
20
-
21
- handle_must_support_choices if metadata.must_supports[:choices].present?
22
-
23
- if (missing_elements + missing_slices + missing_extensions).length.zero?
24
- pass
25
- end
26
-
27
- skip "Could not find #{missing_must_support_strings.join(', ')} in the #{resources.length} " \
28
- "provided #{resource_type} resource(s)"
29
- end
30
-
31
- def handle_must_support_choices
32
- missing_elements.delete_if do |element|
33
- choices = metadata.must_supports[:choices].find { |choice| choice[:paths]&.include?(element[:path]) }
34
- is_any_choice_supported?(choices)
35
- end
36
-
37
- missing_extensions.delete_if do |extension|
38
- choices = metadata.must_supports[:choices].find { |choice| choice[:extension_ids]&.include?(extension[:id]) }
39
- is_any_choice_supported?(choices)
40
- end
41
-
42
- missing_slices.delete_if do |slice|
43
- choices = metadata.must_supports[:choices].find { |choice| choice[:slice_names]&.include?(slice[:name]) }
44
- is_any_choice_supported?(choices)
45
- end
46
- end
47
-
48
- def is_any_choice_supported? (choices)
49
- choices.present? &&
50
- (
51
- choices[:paths]&.any? { |path| missing_elements.none? { |element| element[:path] == path } } ||
52
- choices[:extension_ids]&.any? { |extension_id| missing_extensions.none? { |extension| extension[:id] == extension_id} } ||
53
- choices[:slice_names]&.any? { |slice_name| missing_slices.none? { |slice| slice[:name] == slice_name} }
54
- )
55
- end
56
-
57
- def missing_must_support_strings
58
- missing_elements.map { |element_definition| missing_element_string(element_definition) } +
59
- missing_slices.map { |slice_definition| slice_definition[:name] } +
60
- missing_extensions.map { |extension_definition| extension_definition[:id] }
61
- end
62
-
63
- def missing_element_string(element_definition)
64
- if element_definition[:fixed_value].present?
65
- "#{element_definition[:path]}:#{element_definition[:fixed_value]}"
66
- else
67
- element_definition[:path]
68
- end
69
- end
70
-
71
- def exclude_uscdi_only_test?
72
- config.options[:exclude_uscdi_only_test] == true
73
- end
74
-
75
- def must_support_extensions
76
- if exclude_uscdi_only_test?
77
- metadata.must_supports[:extensions].reject{ |extension| extension[:uscdi_only] }
78
- else
79
- metadata.must_supports[:extensions]
80
- end
81
- end
82
-
83
- def missing_extensions(resources = [])
84
- @missing_extensions ||=
85
- must_support_extensions.select do |extension_definition|
86
- resources.none? do |resource|
87
- resource.extension.any? { |extension| extension.url == extension_definition[:url] }
88
- end
89
- end
90
- end
91
-
92
- def must_support_elements
93
- if exclude_uscdi_only_test?
94
- metadata.must_supports[:elements].reject{ |element| element[:uscdi_only] }
95
- else
96
- metadata.must_supports[:elements]
97
- end
98
- end
99
-
100
- def missing_elements(resources = [])
101
- @missing_elements ||=
102
- must_support_elements.select do |element_definition|
103
- resources.none? do |resource|
104
- path = element_definition[:path] #.delete_suffix('[x]')
105
- value_found = find_a_value_at(resource, path) do |value|
106
- value_without_extensions =
107
- value.respond_to?(:to_hash) ? value.to_hash.reject { |key, _| key == 'extension' } : value
108
-
109
- (value_without_extensions.present? || value_without_extensions == false) &&
110
- (element_definition[:fixed_value].blank? || value == element_definition[:fixed_value])
111
-
112
- end
113
-
114
- # Note that false.present? => false, which is why we need to add this extra check
115
- value_found.present? || value_found == false
116
- end
117
- end
118
-
119
- @missing_elements
120
- end
121
-
122
- def must_support_slices
123
- if exclude_uscdi_only_test?
124
- metadata.must_supports[:slices].reject{ |slice| slice[:uscdi_only] }
125
- else
126
- metadata.must_supports[:slices]
127
- end
128
- end
129
-
130
- def missing_slices(resources = [])
131
- @missing_slices ||=
132
- must_support_slices.select do |slice|
133
- resources.none? do |resource|
134
- path = slice[:path] # .delete_suffix('[x]')
135
- find_slice(resource, path, slice[:discriminator]).present?
136
- end
137
- end
138
- end
139
-
140
- def find_slice(resource, path, discriminator)
141
- find_a_value_at(resource, path) do |element|
142
- case discriminator[:type]
143
- when 'patternCodeableConcept'
144
- coding_path = discriminator[:path].present? ? "#{discriminator[:path]}.coding" : 'coding'
145
- find_a_value_at(element, coding_path) do |coding|
146
- coding.code == discriminator[:code] && coding.system == discriminator[:system]
147
- end
148
- when 'patternCoding'
149
- coding_path = discriminator[:path].present? ? discriminator[:path] : ''
150
- find_a_value_at(element, coding_path) do |coding|
151
- coding.code == discriminator[:code] && coding.system == discriminator[:system]
152
- end
153
- when 'patternIdentifier'
154
- find_a_value_at(element, discriminator[:path]) { |identifier| identifier.system == discriminator[:system] }
155
- when 'value'
156
- values = discriminator[:values].map { |value| value.merge(path: value[:path].split('.')) }
157
- find_slice_by_values(element, values)
158
- when 'type'
159
- case discriminator[:code]
160
- when 'Date'
161
- begin
162
- Date.parse(element)
163
- rescue ArgumentError
164
- false
165
- end
166
- when 'DateTime'
167
- begin
168
- DateTime.parse(element)
169
- rescue ArgumentError
170
- false
171
- end
172
- when 'String'
173
- element.is_a? String
174
- else
175
- element.is_a? FHIR.const_get(discriminator[:code])
176
- end
177
- when 'requiredBinding'
178
- coding_path = discriminator[:path].present? ? "#{discriminator[:path]}.coding" : 'coding'
179
- find_a_value_at(element, coding_path) {|coding| discriminator[:values].include?(coding.code) }
180
- end
181
- end
182
- end
183
-
184
- def find_slice_by_values(element, value_definitions)
185
- path_prefixes = value_definitions.map { |value_definition| value_definition[:path].first }.uniq
186
- Array.wrap(element).find do |el|
187
- path_prefixes.all? do |path_prefix|
188
- value_definitions_for_path =
189
- value_definitions
190
- .select { |value_definition| value_definition[:path].first == path_prefix }
191
- .each { |value_definition| value_definition[:path].shift }
192
-
193
- find_a_value_at(el, path_prefix) do |el_found|
194
- child_element_value_definitions, current_element_value_definitions =
195
- value_definitions_for_path.partition { |value_definition| value_definition[:path].present? }
196
-
197
- current_element_values_match =
198
- current_element_value_definitions
199
- .all? { |value_definition| value_definition[:value] == el_found }
200
-
201
- child_element_values_match =
202
- child_element_value_definitions.present? ?
203
- find_slice_by_values(el_found, child_element_value_definitions) : true
204
-
205
- current_element_values_match && child_element_values_match
206
- end
207
- end
208
- end
17
+ skip { assert_must_support_elements_present(resources, nil, metadata:) }
209
18
  end
210
19
  end
211
20
  end
@@ -0,0 +1,65 @@
1
+ Req Set,ID,URL,Requirement,Conformance,Actors,Sub-Requirement(s),Conditionality,Not Tested Reason,Not Tested Details
2
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,1,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#privacy-considerations-1,A conformant Plan-Net service SHALL NOT require a directory mobile application to send consumer identifying information in order to query content.,SHALL NOT,Server,,,Not Verifiable,
3
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,2,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#privacy-considerations-1,A directory mobile application SHALL NOT send consumer identifiable information when querying a Plan-Net service.,SHALL NOT,Client,,,Not Verifiable,
4
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,3,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#health-plan-api-requirements,Health Plan API actors SHALL be capable of populating all Must Support data elements as part of the query results.,SHALL,Server,,,,
5
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,4,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#health-plan-api-requirements,"In situations where information on a particular Must Support data element is not present and the minimum cardinality is 0 , the Health Plan API actors SHALL NOT include the data elements in the resource instance returned as part of the query results.",SHALL NOT,Server,,,Not Verifiable,
6
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,5,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#health-plan-api-requirements,In situations where information on a particular data element is not present and the minimum cardinality is >0 SHALL send the reason for the missing information using values (such as nullFlavors) from the value set where they exist or use the dataAbsentReason extension.,SHALL,Server,,,Not Verifiable,
7
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,6,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#application-requirements,Application actors SHALL be capable of processing resource instances containing the Must Support data elements without generating an error or causing the application to fail.,SHALL,Client,,,Not Tested,Client testing currently out of scope
8
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,7,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#application-requirements,Application actors SHOULD be capable of displaying the data elements for human use or storing the information for other purposes.,SHOULD,Client,,,Not Tested,Client testing currently out of scope
9
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,8,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#application-requirements,"When querying Health Plan API actors, Application actors SHALL interpret missing Must Support data elements within resource instances as data not present in the Health Plan API actors system.",SHALL,Client,,,Not Tested,Client testing currently out of scope
10
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,9,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#application-requirements,Consumer App actors SHALL be able to process resource instances containing Must Support data elements asserting missing information.,SHALL,Client,,,Not Tested,Client testing currently out of scope
11
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,10,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Support json source formats for all Plan-Net interactions.,SHALL,Server,,,,
12
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,11,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Implement the RESTful behavior according to the FHIR specification.,SHALL,Server,,,Not Verifiable,
13
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,12,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Support all profiles defined in this Implementation Guide.,SHALL,Server,,,,
14
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,13,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Return the following response classes: (Status 401/4xx): unauthorized request,SHALL,Server,,,Not Verifiable,
15
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,14,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Return the following response classes: (Status 403): insufficient scope,SHALL,Server,,,Not Verifiable,
16
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,15,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Return the following response classes: (Status 400): invalid parameter,SHALL,Server,,,Not Verifiable,
17
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,16,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Return the following response classes: (Status 404): unknown resource,SHALL,Server,,,Not Verifiable,
18
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,17,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Return the following response classes: (Status 410): deleted resource.,SHALL,Server,,,Not Verifiable,
19
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,18,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Identify the Plan-Net profiles supported as part of the FHIR meta.profile attribute for each instance.,SHALL,Server,,,Not Tested,Not intended by IG authors
20
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,19,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Support the searchParameters on each profile individually,SHALL,Server,,,,
21
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,20,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Support the searchParameters on each profile...in combination.,SHALL,Server,,,Not Tested,Caveat: partial because full scope prohibitively expensive
22
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,21,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Support forward...chaining on all search parameters that specify the 'chain' property,SHALL,Server,,,,
23
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,22,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Support...reverse chaining on all search parameters that specify the 'chain' property,SHALL,Server,,,,
24
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,23,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,Support xml source formats for all Plan-Net interactions.,SHOULD,Server,,,Not Tested,XML format not supported by Inferno
25
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,24,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/CapabilityStatement-plan-net.html#behavior,A server SHALL reject any unauthorized requests by returning an HTTP 401 unauthorized response code.,SHALL,Server,,,Not Verifiable,
26
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,25,https://hl7.org/fhir/us/davinci-pdex-plan-net/CapabilityStatement-plan-net.json,"For each resource type and profile, a Plan Net server SHALL support the read interaction",SHALL,Server,,,,
27
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,26,https://hl7.org/fhir/us/davinci-pdex-plan-net/CapabilityStatement-plan-net.json,"For each resource type and profile, a Plan Net server SHOULD support the vread interaction",SHOULD,Server,,,Not Tested,Low priority
28
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,27,http://hl7.org/fhir/us/davinci-pdex-plan-net/CapabilityStatement-plan-net.html#resource--details,[For each resource] A Server SHALL be capable of supporting the following _includes [list],SHALL,Server,,,,
29
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,28,http://hl7.org/fhir/us/davinci-pdex-plan-net/CapabilityStatement-plan-net.html#resource--details,[For each resource] A Server SHALL be capable of supporting the following _revincludes: [list],SHALL,Server,,,,
30
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,29,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/index.html#relation-to-us-core-and-other-igs,"The Network profile is based on USCore Organization, since there was no contradiction between the USCore profile and the Plan-Net requirements. However, the NPI and CLIA identifier types, which are Must-Support, are clearly intended for provider organizations only and are not expected to be populated for other organization types.",None,Server,,,,
31
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,30,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#client-detection-of-updates-directory-content,Each profile in this guide requires that the lastUpdate timestamp be provided as part of the profile's data content.,None,Server,,,Not Tested,
32
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,31,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#client-detection-of-updates-directory-content,Clients that cache query results can track additions or modifications to directory content through queries that filter content using the _lastUpdated search parameter.,None,Server,,,Not Verifiable,
33
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,32,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#representing-and-searching-provider-directory-data,"The Plan-Net design is based around the following types of searches….
34
+ - Search: General Search
35
+ - Example: Pharmacy
36
+ - Focal Resource and Field: HealthcareService.category, HealthcareService.specialty
37
+ - Qualifications of Search: Location, network",None,Server,,,Not Verifiable,
38
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,33,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#representing-and-searching-provider-directory-data,"The Plan-Net design is based around the following types of searches….
39
+ - Search: Provider by Name
40
+ - Example: Joe Smith
41
+ - Focal Resource and Field: Practitioner.name
42
+ - Qualifications of Search: Location, network, specialty, role/priviledges",None,Server,,,Not Verifiable,
43
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,34,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#representing-and-searching-provider-directory-data,"The Plan-Net design is based around the following types of searches….
44
+ - Search: Organization by Name
45
+ - Example: Montgomery Cardiology or CVS
46
+ - Focal Resource and Field: Organization.name
47
+ - Qualifications of Search: Location, network, specialty",None,Server,,,Not Verifiable,
48
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,35,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#representing-and-searching-provider-directory-data,"The Plan-Net design is based around the following types of searches….
49
+ - Search: Provider by Specialty
50
+ - Example: Cardiologist
51
+ - Focal Resource and Field: PractitionerRole.specialty
52
+ - Qualifications of Search: Location, network, name",None,Server,,,Not Verifiable,
53
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,36,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#representing-and-searching-provider-directory-data,"The Plan-Net design is based around the following types of searches….
54
+ - Search: Organization by specialty
55
+ - Example: Compounding Pharmacy
56
+ - Focal Resource and Field: OrganizationAffiliation.specialty
57
+ - Qualifications of Search: Location, network, name",None,Server,,,Not Verifiable,
58
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,37,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/implementation.html#searching-for-active-practictioners-and-organizations,"Sample query to search for currently active Practitioners (replace date in query with current date):
59
+ http://davinci-plan-net-ri.logicahealth.org/fhir/PractitionerRole?_include=PractitionerRole:date=ge2021-10-25
60
+
61
+ Sample query to search for currently active Organizations (replace date in query with current date):
62
+ http://davinci-plan-net-ri.logicahealth.org/fhir/OrganizationAffiliation?_include=OrganizationAffiliation:date=ge2021-10-25",None,Server,,,Not Verifiable,
63
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,38,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/StructureDefinition-plannet-Network.html#implementation-guidance,"When the contact is a department name, rather than a human (e.g., patient help line), include a blank family and given name, and provide the department name in contact.name.text.",None,Server,,,Not Verifiable,
64
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,39,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/StructureDefinition-plannet-Organization.html#implementation-guidance,"When the contact is a department name, rather than a human (e.g., patient help line), include a blank family and given name, and provide the department name in contact.name.text.",None,Server,,,Not Verifiable,
65
+ hl7.fhir.us.davinci-pdex-plan-net_1.1.0,40,http://hl7.org/fhir/us/davinci-pdex-plan-net/STU1.1/StructureDefinition-plannet-Practitioner.html#implementation-guidance,"When the value set for the coded concept in qualification is insufficient, the qualification can be provided in the text field of the codeableConcept.",None,Server,,,Not Verifiable,