ipa_test_kit 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/lib/ipa_test_kit/custom_groups/capability_statement/conformance_support_test.rb +41 -0
  4. data/lib/ipa_test_kit/custom_groups/capability_statement/fhir_version_test.rb +15 -0
  5. data/lib/ipa_test_kit/custom_groups/capability_statement/json_support_test.rb +39 -0
  6. data/lib/ipa_test_kit/custom_groups/capability_statement/profile_support_test.rb +76 -0
  7. data/lib/ipa_test_kit/custom_groups/capability_statement_group.rb +64 -0
  8. data/lib/ipa_test_kit/date_search_validation.rb +101 -0
  9. data/lib/ipa_test_kit/ext/fhir_models.rb +59 -0
  10. data/lib/ipa_test_kit/fhir_resource_navigation.rb +63 -0
  11. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_must_support_test.rb +40 -0
  12. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_patient_clinical_status_search_test.rb +46 -0
  13. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_patient_search_test.rb +60 -0
  14. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_provenance_revinclude_search_test.rb +49 -0
  15. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_read_test.rb +24 -0
  16. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +28 -0
  17. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_validation_test.rb +34 -0
  18. data/lib/ipa_test_kit/generated/allergy_intolerance/metadata.yml +165 -0
  19. data/lib/ipa_test_kit/generated/allergy_intolerance_group.rb +85 -0
  20. data/lib/ipa_test_kit/generated/bmi/bmi_must_support_test.rb +49 -0
  21. data/lib/ipa_test_kit/generated/bmi/bmi_patient_category_date_search_test.rb +46 -0
  22. data/lib/ipa_test_kit/generated/bmi/bmi_patient_category_search_test.rb +45 -0
  23. data/lib/ipa_test_kit/generated/bmi/bmi_patient_category_status_search_test.rb +47 -0
  24. data/lib/ipa_test_kit/generated/bmi/bmi_patient_code_date_search_test.rb +48 -0
  25. data/lib/ipa_test_kit/generated/bmi/bmi_patient_code_search_test.rb +62 -0
  26. data/lib/ipa_test_kit/generated/bmi/bmi_provenance_revinclude_search_test.rb +51 -0
  27. data/lib/ipa_test_kit/generated/bmi/bmi_read_test.rb +24 -0
  28. data/lib/ipa_test_kit/generated/bmi/bmi_reference_resolution_test.rb +28 -0
  29. data/lib/ipa_test_kit/generated/bmi/bmi_validation_test.rb +34 -0
  30. data/lib/ipa_test_kit/generated/bmi/metadata.yml +322 -0
  31. data/lib/ipa_test_kit/generated/bmi_group.rb +93 -0
  32. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_must_support_test.rb +49 -0
  33. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_category_date_search_test.rb +46 -0
  34. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_category_search_test.rb +45 -0
  35. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_category_status_search_test.rb +47 -0
  36. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_code_date_search_test.rb +48 -0
  37. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_code_search_test.rb +62 -0
  38. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_provenance_revinclude_search_test.rb +51 -0
  39. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_read_test.rb +24 -0
  40. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_reference_resolution_test.rb +28 -0
  41. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_validation_test.rb +34 -0
  42. data/lib/ipa_test_kit/generated/bodyheight/metadata.yml +328 -0
  43. data/lib/ipa_test_kit/generated/bodyheight_group.rb +93 -0
  44. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_must_support_test.rb +49 -0
  45. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_category_date_search_test.rb +46 -0
  46. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_category_search_test.rb +45 -0
  47. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_category_status_search_test.rb +47 -0
  48. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_code_date_search_test.rb +48 -0
  49. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_code_search_test.rb +62 -0
  50. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_provenance_revinclude_search_test.rb +51 -0
  51. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_read_test.rb +24 -0
  52. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_reference_resolution_test.rb +28 -0
  53. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_validation_test.rb +34 -0
  54. data/lib/ipa_test_kit/generated/bodytemp/metadata.yml +328 -0
  55. data/lib/ipa_test_kit/generated/bodytemp_group.rb +93 -0
  56. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_must_support_test.rb +49 -0
  57. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_category_date_search_test.rb +46 -0
  58. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_category_search_test.rb +45 -0
  59. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_category_status_search_test.rb +47 -0
  60. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_code_date_search_test.rb +48 -0
  61. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_code_search_test.rb +62 -0
  62. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_provenance_revinclude_search_test.rb +51 -0
  63. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_read_test.rb +24 -0
  64. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_reference_resolution_test.rb +28 -0
  65. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_validation_test.rb +34 -0
  66. data/lib/ipa_test_kit/generated/bodyweight/metadata.yml +328 -0
  67. data/lib/ipa_test_kit/generated/bodyweight_group.rb +93 -0
  68. data/lib/ipa_test_kit/generated/bp/bp_must_support_test.rb +52 -0
  69. data/lib/ipa_test_kit/generated/bp/bp_patient_category_date_search_test.rb +46 -0
  70. data/lib/ipa_test_kit/generated/bp/bp_patient_category_search_test.rb +45 -0
  71. data/lib/ipa_test_kit/generated/bp/bp_patient_category_status_search_test.rb +47 -0
  72. data/lib/ipa_test_kit/generated/bp/bp_patient_code_date_search_test.rb +48 -0
  73. data/lib/ipa_test_kit/generated/bp/bp_patient_code_search_test.rb +62 -0
  74. data/lib/ipa_test_kit/generated/bp/bp_provenance_revinclude_search_test.rb +51 -0
  75. data/lib/ipa_test_kit/generated/bp/bp_read_test.rb +24 -0
  76. data/lib/ipa_test_kit/generated/bp/bp_reference_resolution_test.rb +28 -0
  77. data/lib/ipa_test_kit/generated/bp/bp_validation_test.rb +34 -0
  78. data/lib/ipa_test_kit/generated/bp/metadata.yml +379 -0
  79. data/lib/ipa_test_kit/generated/bp_group.rb +93 -0
  80. data/lib/ipa_test_kit/generated/condition/condition_must_support_test.rb +39 -0
  81. data/lib/ipa_test_kit/generated/condition/condition_patient_category_search_test.rb +47 -0
  82. data/lib/ipa_test_kit/generated/condition/condition_patient_clinical_status_search_test.rb +46 -0
  83. data/lib/ipa_test_kit/generated/condition/condition_patient_code_search_test.rb +47 -0
  84. data/lib/ipa_test_kit/generated/condition/condition_patient_onset_date_search_test.rb +47 -0
  85. data/lib/ipa_test_kit/generated/condition/condition_patient_search_test.rb +60 -0
  86. data/lib/ipa_test_kit/generated/condition/condition_provenance_revinclude_search_test.rb +49 -0
  87. data/lib/ipa_test_kit/generated/condition/condition_read_test.rb +24 -0
  88. data/lib/ipa_test_kit/generated/condition/condition_reference_resolution_test.rb +28 -0
  89. data/lib/ipa_test_kit/generated/condition/condition_validation_test.rb +34 -0
  90. data/lib/ipa_test_kit/generated/condition/metadata.yml +231 -0
  91. data/lib/ipa_test_kit/generated/condition_group.rb +91 -0
  92. data/lib/ipa_test_kit/generated/document_reference/document_reference_id_search_test.rb +40 -0
  93. data/lib/ipa_test_kit/generated/document_reference/document_reference_must_support_test.rb +49 -0
  94. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_category_date_search_test.rb +46 -0
  95. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_category_search_test.rb +45 -0
  96. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_search_test.rb +61 -0
  97. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_status_search_test.rb +46 -0
  98. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_type_period_search_test.rb +48 -0
  99. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_type_search_test.rb +45 -0
  100. data/lib/ipa_test_kit/generated/document_reference/document_reference_provenance_revinclude_search_test.rb +50 -0
  101. data/lib/ipa_test_kit/generated/document_reference/document_reference_read_test.rb +24 -0
  102. data/lib/ipa_test_kit/generated/document_reference/document_reference_reference_resolution_test.rb +28 -0
  103. data/lib/ipa_test_kit/generated/document_reference/document_reference_validation_test.rb +34 -0
  104. data/lib/ipa_test_kit/generated/document_reference/metadata.yml +356 -0
  105. data/lib/ipa_test_kit/generated/document_reference_group.rb +99 -0
  106. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_must_support_test.rb +49 -0
  107. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_category_date_search_test.rb +46 -0
  108. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_category_search_test.rb +45 -0
  109. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_category_status_search_test.rb +47 -0
  110. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_code_date_search_test.rb +48 -0
  111. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_code_search_test.rb +62 -0
  112. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_provenance_revinclude_search_test.rb +51 -0
  113. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_read_test.rb +24 -0
  114. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_reference_resolution_test.rb +28 -0
  115. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_validation_test.rb +34 -0
  116. data/lib/ipa_test_kit/generated/head_circumference/metadata.yml +324 -0
  117. data/lib/ipa_test_kit/generated/head_circumference_group.rb +93 -0
  118. data/lib/ipa_test_kit/generated/heartrate/heartrate_must_support_test.rb +49 -0
  119. data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_category_date_search_test.rb +46 -0
  120. data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_category_search_test.rb +45 -0
  121. data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_category_status_search_test.rb +47 -0
  122. data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_code_date_search_test.rb +48 -0
  123. data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_code_search_test.rb +62 -0
  124. data/lib/ipa_test_kit/generated/heartrate/heartrate_provenance_revinclude_search_test.rb +51 -0
  125. data/lib/ipa_test_kit/generated/heartrate/heartrate_read_test.rb +24 -0
  126. data/lib/ipa_test_kit/generated/heartrate/heartrate_reference_resolution_test.rb +28 -0
  127. data/lib/ipa_test_kit/generated/heartrate/heartrate_validation_test.rb +34 -0
  128. data/lib/ipa_test_kit/generated/heartrate/metadata.yml +325 -0
  129. data/lib/ipa_test_kit/generated/heartrate_group.rb +93 -0
  130. data/lib/ipa_test_kit/generated/immunization/immunization_must_support_test.rb +40 -0
  131. data/lib/ipa_test_kit/generated/immunization/immunization_patient_date_search_test.rb +47 -0
  132. data/lib/ipa_test_kit/generated/immunization/immunization_patient_search_test.rb +60 -0
  133. data/lib/ipa_test_kit/generated/immunization/immunization_patient_status_search_test.rb +45 -0
  134. data/lib/ipa_test_kit/generated/immunization/immunization_provenance_revinclude_search_test.rb +50 -0
  135. data/lib/ipa_test_kit/generated/immunization/immunization_read_test.rb +24 -0
  136. data/lib/ipa_test_kit/generated/immunization/immunization_reference_resolution_test.rb +28 -0
  137. data/lib/ipa_test_kit/generated/immunization/immunization_validation_test.rb +34 -0
  138. data/lib/ipa_test_kit/generated/immunization/metadata.yml +210 -0
  139. data/lib/ipa_test_kit/generated/immunization_group.rb +87 -0
  140. data/lib/ipa_test_kit/generated/ipa_test_suite.rb +88 -0
  141. data/lib/ipa_test_kit/generated/medication_request/medication_request_must_support_test.rb +44 -0
  142. data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_authoredon_search_test.rb +53 -0
  143. data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_encounter_search_test.rb +52 -0
  144. data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_search_test.rb +68 -0
  145. data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_status_search_test.rb +49 -0
  146. data/lib/ipa_test_kit/generated/medication_request/medication_request_provenance_revinclude_search_test.rb +51 -0
  147. data/lib/ipa_test_kit/generated/medication_request/medication_request_read_test.rb +24 -0
  148. data/lib/ipa_test_kit/generated/medication_request/medication_request_reference_resolution_test.rb +28 -0
  149. data/lib/ipa_test_kit/generated/medication_request/medication_request_validation_test.rb +34 -0
  150. data/lib/ipa_test_kit/generated/medication_request/medication_validation_test.rb +34 -0
  151. data/lib/ipa_test_kit/generated/medication_request/metadata.yml +307 -0
  152. data/lib/ipa_test_kit/generated/medication_request_group.rb +92 -0
  153. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_must_support_test.rb +43 -0
  154. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_context_search_test.rb +51 -0
  155. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_effective_search_test.rb +52 -0
  156. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_search_test.rb +68 -0
  157. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_status_search_test.rb +49 -0
  158. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_provenance_revinclude_search_test.rb +51 -0
  159. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_read_test.rb +24 -0
  160. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_reference_resolution_test.rb +28 -0
  161. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_validation_test.rb +34 -0
  162. data/lib/ipa_test_kit/generated/medication_statement/medication_validation_test.rb +34 -0
  163. data/lib/ipa_test_kit/generated/medication_statement/metadata.yml +230 -0
  164. data/lib/ipa_test_kit/generated/medication_statement_group.rb +92 -0
  165. data/lib/ipa_test_kit/generated/metadata.yml +6230 -0
  166. data/lib/ipa_test_kit/generated/observation/metadata.yml +1280 -0
  167. data/lib/ipa_test_kit/generated/observation/observation_must_support_test.rb +41 -0
  168. data/lib/ipa_test_kit/generated/observation/observation_patient_category_date_search_test.rb +46 -0
  169. data/lib/ipa_test_kit/generated/observation/observation_patient_category_search_test.rb +62 -0
  170. data/lib/ipa_test_kit/generated/observation/observation_patient_category_status_search_test.rb +47 -0
  171. data/lib/ipa_test_kit/generated/observation/observation_patient_code_date_search_test.rb +48 -0
  172. data/lib/ipa_test_kit/generated/observation/observation_patient_code_search_test.rb +45 -0
  173. data/lib/ipa_test_kit/generated/observation/observation_provenance_revinclude_search_test.rb +51 -0
  174. data/lib/ipa_test_kit/generated/observation/observation_read_test.rb +24 -0
  175. data/lib/ipa_test_kit/generated/observation/observation_reference_resolution_test.rb +28 -0
  176. data/lib/ipa_test_kit/generated/observation/observation_validation_test.rb +34 -0
  177. data/lib/ipa_test_kit/generated/observation_group.rb +93 -0
  178. data/lib/ipa_test_kit/generated/oxygensat/metadata.yml +366 -0
  179. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_must_support_test.rb +65 -0
  180. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_category_date_search_test.rb +46 -0
  181. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_category_search_test.rb +45 -0
  182. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_category_status_search_test.rb +47 -0
  183. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_code_date_search_test.rb +48 -0
  184. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_code_search_test.rb +62 -0
  185. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_provenance_revinclude_search_test.rb +51 -0
  186. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_read_test.rb +24 -0
  187. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_reference_resolution_test.rb +28 -0
  188. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_validation_test.rb +34 -0
  189. data/lib/ipa_test_kit/generated/oxygensat_group.rb +93 -0
  190. data/lib/ipa_test_kit/generated/patient/metadata.yml +320 -0
  191. data/lib/ipa_test_kit/generated/patient/patient_birthdate_family_search_test.rb +41 -0
  192. data/lib/ipa_test_kit/generated/patient/patient_birthdate_name_search_test.rb +39 -0
  193. data/lib/ipa_test_kit/generated/patient/patient_family_gender_search_test.rb +41 -0
  194. data/lib/ipa_test_kit/generated/patient/patient_gender_name_search_test.rb +39 -0
  195. data/lib/ipa_test_kit/generated/patient/patient_id_search_test.rb +53 -0
  196. data/lib/ipa_test_kit/generated/patient/patient_identifier_search_test.rb +40 -0
  197. data/lib/ipa_test_kit/generated/patient/patient_must_support_test.rb +57 -0
  198. data/lib/ipa_test_kit/generated/patient/patient_name_search_test.rb +39 -0
  199. data/lib/ipa_test_kit/generated/patient/patient_provenance_revinclude_search_test.rb +49 -0
  200. data/lib/ipa_test_kit/generated/patient/patient_read_test.rb +24 -0
  201. data/lib/ipa_test_kit/generated/patient/patient_reference_resolution_test.rb +28 -0
  202. data/lib/ipa_test_kit/generated/patient/patient_validation_test.rb +34 -0
  203. data/lib/ipa_test_kit/generated/patient_group.rb +99 -0
  204. data/lib/ipa_test_kit/generated/practitioner/metadata.yml +124 -0
  205. data/lib/ipa_test_kit/generated/practitioner/practitioner_identifier_search_test.rb +40 -0
  206. data/lib/ipa_test_kit/generated/practitioner/practitioner_must_support_test.rb +40 -0
  207. data/lib/ipa_test_kit/generated/practitioner/practitioner_name_search_test.rb +49 -0
  208. data/lib/ipa_test_kit/generated/practitioner/practitioner_read_test.rb +24 -0
  209. data/lib/ipa_test_kit/generated/practitioner/practitioner_reference_resolution_test.rb +28 -0
  210. data/lib/ipa_test_kit/generated/practitioner/practitioner_validation_test.rb +34 -0
  211. data/lib/ipa_test_kit/generated/practitioner_group.rb +84 -0
  212. data/lib/ipa_test_kit/generated/practitioner_role/metadata.yml +141 -0
  213. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_identifier_search_test.rb +40 -0
  214. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_must_support_test.rb +40 -0
  215. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_practitioner_search_test.rb +51 -0
  216. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_read_test.rb +24 -0
  217. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_reference_resolution_test.rb +28 -0
  218. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_validation_test.rb +34 -0
  219. data/lib/ipa_test_kit/generated/practitioner_role_group.rb +84 -0
  220. data/lib/ipa_test_kit/generated/provenance/metadata.yml +114 -0
  221. data/lib/ipa_test_kit/generated/provenance/provenance_read_test.rb +24 -0
  222. data/lib/ipa_test_kit/generated/provenance/provenance_reference_resolution_test.rb +28 -0
  223. data/lib/ipa_test_kit/generated/provenance/provenance_validation_test.rb +34 -0
  224. data/lib/ipa_test_kit/generated/provenance_group.rb +53 -0
  225. data/lib/ipa_test_kit/generated/resource_list.rb +18 -0
  226. data/lib/ipa_test_kit/generated/resprate/metadata.yml +325 -0
  227. data/lib/ipa_test_kit/generated/resprate/resprate_must_support_test.rb +49 -0
  228. data/lib/ipa_test_kit/generated/resprate/resprate_patient_category_date_search_test.rb +46 -0
  229. data/lib/ipa_test_kit/generated/resprate/resprate_patient_category_search_test.rb +45 -0
  230. data/lib/ipa_test_kit/generated/resprate/resprate_patient_category_status_search_test.rb +47 -0
  231. data/lib/ipa_test_kit/generated/resprate/resprate_patient_code_date_search_test.rb +48 -0
  232. data/lib/ipa_test_kit/generated/resprate/resprate_patient_code_search_test.rb +62 -0
  233. data/lib/ipa_test_kit/generated/resprate/resprate_provenance_revinclude_search_test.rb +51 -0
  234. data/lib/ipa_test_kit/generated/resprate/resprate_read_test.rb +24 -0
  235. data/lib/ipa_test_kit/generated/resprate/resprate_reference_resolution_test.rb +28 -0
  236. data/lib/ipa_test_kit/generated/resprate/resprate_validation_test.rb +34 -0
  237. data/lib/ipa_test_kit/generated/resprate_group.rb +93 -0
  238. data/lib/ipa_test_kit/generator/group_generator.rb +171 -0
  239. data/lib/ipa_test_kit/generator/group_metadata.rb +98 -0
  240. data/lib/ipa_test_kit/generator/group_metadata_extractor.rb +278 -0
  241. data/lib/ipa_test_kit/generator/ig_loader.rb +63 -0
  242. data/lib/ipa_test_kit/generator/ig_metadata.rb +49 -0
  243. data/lib/ipa_test_kit/generator/ig_metadata_extractor.rb +56 -0
  244. data/lib/ipa_test_kit/generator/ig_resources.rb +48 -0
  245. data/lib/ipa_test_kit/generator/must_support_metadata_extractor.rb +221 -0
  246. data/lib/ipa_test_kit/generator/must_support_test_generator.rb +86 -0
  247. data/lib/ipa_test_kit/generator/naming.rb +46 -0
  248. data/lib/ipa_test_kit/generator/provenance_revinclude_search_test_generator.rb +186 -0
  249. data/lib/ipa_test_kit/generator/read_test_generator.rb +89 -0
  250. data/lib/ipa_test_kit/generator/reference_resolution_test_generator.rb +72 -0
  251. data/lib/ipa_test_kit/generator/resource_list_generator.rb +46 -0
  252. data/lib/ipa_test_kit/generator/search_definition_metadata_extractor.rb +181 -0
  253. data/lib/ipa_test_kit/generator/search_metadata_extractor.rb +74 -0
  254. data/lib/ipa_test_kit/generator/search_test_generator.rb +295 -0
  255. data/lib/ipa_test_kit/generator/special_cases.rb +16 -0
  256. data/lib/ipa_test_kit/generator/suite_generator.rb +67 -0
  257. data/lib/ipa_test_kit/generator/terminology_binding_metadata_extractor.rb +105 -0
  258. data/lib/ipa_test_kit/generator/validation_test_generator.rb +124 -0
  259. data/lib/ipa_test_kit/generator.rb +86 -0
  260. data/lib/ipa_test_kit/igs/package.tgz +0 -0
  261. data/lib/ipa_test_kit/must_support_test.rb +146 -0
  262. data/lib/ipa_test_kit/read_test.rb +62 -0
  263. data/lib/ipa_test_kit/reference_resolution_test.rb +111 -0
  264. data/lib/ipa_test_kit/request_logger.rb +46 -0
  265. data/lib/ipa_test_kit/search_test.rb +728 -0
  266. data/lib/ipa_test_kit/search_test_properties.rb +61 -0
  267. data/lib/ipa_test_kit/validation_test.rb +48 -0
  268. data/lib/ipa_test_kit/version.rb +3 -0
  269. data/lib/ipa_test_kit.rb +2 -0
  270. metadata +397 -0
@@ -0,0 +1,39 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class PatientGenderNameSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Patient search by gender + name'
9
+ description %(
10
+ A server SHALL support searching by
11
+ gender + name on the Patient resource. This test
12
+ will pass if resources are returned and match the search criteria. If
13
+ none are returned, the test is skipped.
14
+
15
+ [IPA Server CapabilityStatement](https://build.fhir.org/ig/HL7/fhir-ipa/CapabilityStatement-ipa-server.html)
16
+
17
+ )
18
+
19
+ id :ipa_010_patient_gender_name_search_test
20
+ def self.properties
21
+ @properties ||= SearchTestProperties.new(
22
+ resource_type: 'Patient',
23
+ search_param_names: ['gender', 'name']
24
+ )
25
+ end
26
+
27
+ def self.metadata
28
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
29
+ end
30
+
31
+ def scratch_resources
32
+ scratch[:patient_resources] ||= {}
33
+ end
34
+
35
+ run do
36
+ run_search_test
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,53 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class PatientIdSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Patient search by _id'
9
+ description %(
10
+ A server SHALL support searching by
11
+ _id on the Patient resource. This test
12
+ will pass if resources are returned and match the search criteria. If
13
+ none are returned, the test is skipped.
14
+
15
+ Because this is the first search of the sequence, resources in the
16
+ response will be used for subsequent tests.
17
+
18
+ Additionally, this test will check that GET and POST search methods
19
+ return the same number of results. Search by POST is required by the
20
+ FHIR R4 specification, and these tests interpret search by GET as a
21
+ requirement of IPA v0.1.0.
22
+
23
+ [IPA Server CapabilityStatement](https://build.fhir.org/ig/HL7/fhir-ipa/CapabilityStatement-ipa-server.html)
24
+
25
+ )
26
+
27
+ id :ipa_010_patient__id_search_test
28
+ input :patient_ids,
29
+ title: 'Patient IDs',
30
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
31
+
32
+ def self.properties
33
+ @properties ||= SearchTestProperties.new(
34
+ first_search: true,
35
+ resource_type: 'Patient',
36
+ search_param_names: ['_id'],
37
+ test_post_search: true
38
+ )
39
+ end
40
+
41
+ def self.metadata
42
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
43
+ end
44
+
45
+ def scratch_resources
46
+ scratch[:patient_resources] ||= {}
47
+ end
48
+
49
+ run do
50
+ run_search_test
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,40 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class PatientIdentifierSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Patient search by identifier'
9
+ description %(
10
+ A server SHALL support searching by
11
+ identifier on the Patient resource. This test
12
+ will pass if resources are returned and match the search criteria. If
13
+ none are returned, the test is skipped.
14
+
15
+ [IPA Server CapabilityStatement](https://build.fhir.org/ig/HL7/fhir-ipa/CapabilityStatement-ipa-server.html)
16
+
17
+ )
18
+
19
+ id :ipa_010_patient_identifier_search_test
20
+ def self.properties
21
+ @properties ||= SearchTestProperties.new(
22
+ resource_type: 'Patient',
23
+ search_param_names: ['identifier'],
24
+ token_search_params: ['identifier']
25
+ )
26
+ end
27
+
28
+ def self.metadata
29
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
30
+ end
31
+
32
+ def scratch_resources
33
+ scratch[:patient_resources] ||= {}
34
+ end
35
+
36
+ run do
37
+ run_search_test
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,57 @@
1
+ require_relative '../../must_support_test'
2
+
3
+ module IpaTestKit
4
+ class PatientMustSupportTest < Inferno::Test
5
+ include IpaTestKit::MustSupportTest
6
+
7
+ title 'All must support elements are provided in the Patient resources returned'
8
+ description %(
9
+ IPA Responders SHALL be capable of populating all data elements as
10
+ part of the query results as specified by the IPA Server Capability
11
+ Statement. This test will look through the Patient resources
12
+ found previously for the following must support elements:
13
+
14
+ * Patient.address
15
+ * Patient.address.city
16
+ * Patient.address.line
17
+ * Patient.address.period
18
+ * Patient.address.postalCode
19
+ * Patient.address.state
20
+ * Patient.birthDate
21
+ * Patient.communication
22
+ * Patient.communication.language
23
+ * Patient.extension:birthsex
24
+ * Patient.extension:ethnicity
25
+ * Patient.extension:race
26
+ * Patient.gender
27
+ * Patient.identifier
28
+ * Patient.identifier.system
29
+ * Patient.identifier.value
30
+ * Patient.name
31
+ * Patient.name.family
32
+ * Patient.name.given
33
+ * Patient.telecom
34
+ * Patient.telecom.system
35
+ * Patient.telecom.use
36
+ * Patient.telecom.value
37
+ )
38
+
39
+ id :ipa_010_patient_must_support_test
40
+
41
+ def resource_type
42
+ 'Patient'
43
+ end
44
+
45
+ def self.metadata
46
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
47
+ end
48
+
49
+ def scratch_resources
50
+ scratch[:patient_resources] ||= {}
51
+ end
52
+
53
+ run do
54
+ perform_must_support_test(all_scratch_resources)
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,39 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class PatientNameSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Patient search by name'
9
+ description %(
10
+ A server SHALL support searching by
11
+ name on the Patient resource. This test
12
+ will pass if resources are returned and match the search criteria. If
13
+ none are returned, the test is skipped.
14
+
15
+ [IPA Server CapabilityStatement](https://build.fhir.org/ig/HL7/fhir-ipa/CapabilityStatement-ipa-server.html)
16
+
17
+ )
18
+
19
+ id :ipa_010_patient_name_search_test
20
+ def self.properties
21
+ @properties ||= SearchTestProperties.new(
22
+ resource_type: 'Patient',
23
+ search_param_names: ['name']
24
+ )
25
+ end
26
+
27
+ def self.metadata
28
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
29
+ end
30
+
31
+ def scratch_resources
32
+ scratch[:patient_resources] ||= {}
33
+ end
34
+
35
+ run do
36
+ run_search_test
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,49 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class PatientProvenanceRevincludeSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns Provenance resources from Patient search by _id + revInclude:Provenance:target'
9
+ description %(
10
+ A server SHALL be capable of supporting _revIncludes:Provenance:target.
11
+
12
+ This test will perform a search by _id + revInclude:Provenance:target and
13
+ will pass if a Provenance resource is found in the response.
14
+ %)
15
+
16
+ id :ipa_010_patient_provenance_revinclude_search_test
17
+
18
+ input :patient_ids,
19
+ title: 'Patient IDs',
20
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
21
+
22
+ def properties
23
+ @properties ||= SearchTestProperties.new(
24
+ resource_type: 'Patient',
25
+ search_param_names: ['_id']
26
+ )
27
+ end
28
+
29
+ def self.metadata
30
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
31
+ end
32
+
33
+ def self.provenance_metadata
34
+ @provenance_metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, '..', 'provenance', 'metadata.yml')))
35
+ end
36
+
37
+ def scratch_resources
38
+ scratch[:patient_resources] ||= {}
39
+ end
40
+
41
+ def scratch_provenance_resources
42
+ scratch[:provenance_resources] ||= {}
43
+ end
44
+
45
+ run do
46
+ run_provenance_revinclude_search_test
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,24 @@
1
+ require_relative '../../read_test'
2
+
3
+ module IpaTestKit
4
+ class PatientReadTest < Inferno::Test
5
+ include IpaTestKit::ReadTest
6
+
7
+ title 'Server returns correct Patient resource from Patient read interaction'
8
+ description 'A server SHALL support the Patient read interaction.'
9
+
10
+ id :ipa_010_patient_read_test
11
+
12
+ def resource_type
13
+ 'Patient'
14
+ end
15
+
16
+ def scratch_resources
17
+ scratch[:patient_resources] ||= {}
18
+ end
19
+
20
+ run do
21
+ perform_read_test(all_scratch_resources)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,28 @@
1
+ require_relative '../../reference_resolution_test'
2
+
3
+ module IpaTestKit
4
+ class PatientReferenceResolutionTest < Inferno::Test
5
+ include IpaTestKit::ReferenceResolutionTest
6
+
7
+ title 'Every reference within Patient resources can be read'
8
+ description %(
9
+ This test will attempt to read the first 50 references found in the
10
+ resources from the first search. The test will fail if Inferno fails to
11
+ read any of those references.
12
+ )
13
+
14
+ id :ipa_010_patient_reference_resolution_test
15
+
16
+ def resource_type
17
+ 'Patient'
18
+ end
19
+
20
+ def scratch_resources
21
+ scratch[:patient_resources] ||= {}
22
+ end
23
+
24
+ run do
25
+ perform_reference_resolution_test(scratch_resources[:all])
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,34 @@
1
+ require_relative '../../validation_test'
2
+
3
+ module IpaTestKit
4
+ class PatientValidationTest < Inferno::Test
5
+ include IpaTestKit::ValidationTest
6
+
7
+ id :ipa_010_patient_validation_test
8
+ title 'Patient resources returned during previous tests conform to the IPA Patient Profile'
9
+ description %(
10
+ This test verifies resources returned from the first search conform to
11
+ the [IPA Patient Profile](http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient).
12
+
13
+ It verifies the presence of mandatory elements and that elements with
14
+ required bindings contain appropriate values. CodeableConcept element
15
+ bindings will fail if none of their codings have a code/system belonging
16
+ to the bound ValueSet. Quantity, Coding, and code element bindings will
17
+ fail if their code/system are not found in the valueset.
18
+
19
+ )
20
+ output :dar_code_found, :dar_extension_found
21
+
22
+ def resource_type
23
+ 'Patient'
24
+ end
25
+
26
+ def scratch_resources
27
+ scratch[:patient_resources] ||= {}
28
+ end
29
+
30
+ run do
31
+ perform_validation_test(scratch_resources[:all] || [], 'http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient')
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,99 @@
1
+ require_relative 'patient/patient_id_search_test'
2
+ require_relative 'patient/patient_identifier_search_test'
3
+ require_relative 'patient/patient_name_search_test'
4
+ require_relative 'patient/patient_birthdate_family_search_test'
5
+ require_relative 'patient/patient_family_gender_search_test'
6
+ require_relative 'patient/patient_birthdate_name_search_test'
7
+ require_relative 'patient/patient_gender_name_search_test'
8
+ require_relative 'patient/patient_read_test'
9
+ require_relative 'patient/patient_provenance_revinclude_search_test'
10
+ require_relative 'patient/patient_validation_test'
11
+ require_relative 'patient/patient_must_support_test'
12
+ require_relative 'patient/patient_reference_resolution_test'
13
+
14
+ module IpaTestKit
15
+ class PatientGroup < Inferno::TestGroup
16
+ title 'Patient Tests'
17
+ short_description 'Verify support for the server capabilities required by the IPA Patient Profile.'
18
+ description %(
19
+ # Background
20
+
21
+ The IPA Patient sequence verifies that the system under test is
22
+ able to provide correct responses for Patient queries. These queries
23
+ must contain resources conforming to the IPA Patient Profile as
24
+ specified in the IPA v0.1.0 Implementation Guide.
25
+
26
+ # Testing Methodology
27
+ ## Searching
28
+ This test sequence will first perform each required search associated
29
+ with this resource. This sequence will perform searches with the
30
+ following parameters:
31
+
32
+ * _id
33
+ * identifier
34
+ * name
35
+ * birthdate + name
36
+ * gender + name
37
+
38
+ ### Search Parameters
39
+ The first search uses the selected patient(s) from the prior launch
40
+ sequence. Any subsequent searches will look for its parameter values
41
+ from the results of the first search. For example, the `identifier`
42
+ search in the patient sequence is performed by looking for an existing
43
+ `Patient.identifier` from any of the resources returned in the `_id`
44
+ search. If a value cannot be found this way, the search is skipped.
45
+
46
+ ### Search Validation
47
+ Inferno will retrieve up to the first 20 bundle pages of the reply for
48
+ Patient resources and save them for subsequent tests. Each of
49
+ these resources is then checked to see if it matches the searched
50
+ parameters in accordance with [FHIR search
51
+ guidelines](https://www.hl7.org/fhir/search.html). The test will fail,
52
+ for example, if a Patient search for `gender=male` returns a `female`
53
+ patient.
54
+
55
+
56
+ ## Must Support
57
+ Each profile contains elements marked as "must support". This test
58
+ sequence expects to see each of these elements at least once. If at
59
+ least one cannot be found, the test will fail. The test will look
60
+ through the Patient resources found in the first test for these
61
+ elements.
62
+
63
+ ## Profile Validation
64
+ Each resource returned from the first search is expected to conform to
65
+ the [IPA Patient Profile](http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient). Each element is checked against
66
+ teminology binding and cardinality requirements.
67
+
68
+ Elements with a required binding are validated against their bound
69
+ ValueSet. If the code/system in the element is not part of the ValueSet,
70
+ then the test will fail.
71
+
72
+ ## Reference Validation
73
+ Each reference within the resources found from the previous tests must
74
+ resolve. The test will attempt to read each reference found and will
75
+ fail if any attempted read fails.
76
+
77
+ )
78
+
79
+ id :ipa_010_patient
80
+ run_as_group
81
+
82
+ def self.metadata
83
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'patient', 'metadata.yml')))
84
+ end
85
+
86
+ test from: :ipa_010_patient__id_search_test
87
+ test from: :ipa_010_patient_identifier_search_test
88
+ test from: :ipa_010_patient_name_search_test
89
+ test from: :ipa_010_patient_birthdate_family_search_test
90
+ test from: :ipa_010_patient_family_gender_search_test
91
+ test from: :ipa_010_patient_birthdate_name_search_test
92
+ test from: :ipa_010_patient_gender_name_search_test
93
+ test from: :ipa_010_patient_read_test
94
+ test from: :ipa_010_patient_provenance_revinclude_search_test
95
+ test from: :ipa_010_patient_validation_test
96
+ test from: :ipa_010_patient_must_support_test
97
+ test from: :ipa_010_patient_reference_resolution_test
98
+ end
99
+ end
@@ -0,0 +1,124 @@
1
+ ---
2
+ :name: ipa_practitioner
3
+ :class_name: Ipav010PractitionerSequence
4
+ :version: v0.1.0
5
+ :reformatted_version: v010
6
+ :resource: Practitioner
7
+ :profile_url: http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-practitioner
8
+ :profile_name: IPA Practitioner Profile
9
+ :title: Practitioner
10
+ :short_description: Verify support for the server capabilities required by the IPA
11
+ Practitioner Profile.
12
+ :interactions:
13
+ - :code: create
14
+ :expectation: MAY
15
+ - :code: search-type
16
+ :expectation: SHALL
17
+ - :code: read
18
+ :expectation: SHALL
19
+ - :code: vread
20
+ :expectation: SHOULD
21
+ - :code: update
22
+ :expectation: MAY
23
+ - :code: patch
24
+ :expectation: MAY
25
+ - :code: delete
26
+ :expectation: MAY
27
+ - :code: history-instance
28
+ :expectation: SHOULD
29
+ - :code: history-type
30
+ :expectation: MAY
31
+ :operations: []
32
+ :searches:
33
+ - :names:
34
+ - name
35
+ :expectation: SHALL
36
+ :names_not_must_support_or_mandatory: []
37
+ :must_support_or_mandatory: true
38
+ - :names:
39
+ - identifier
40
+ :expectation: SHALL
41
+ :names_not_must_support_or_mandatory: []
42
+ :must_support_or_mandatory: true
43
+ :search_definitions:
44
+ :name:
45
+ :path: name
46
+ :full_path: Practitioner.name
47
+ :comparators: {}
48
+ :values: []
49
+ :type: HumanName
50
+ :contains_multiple: true
51
+ :multiple_or: MAY
52
+ :identifier:
53
+ :path: identifier
54
+ :full_path: Practitioner.identifier
55
+ :comparators: {}
56
+ :values: []
57
+ :type: Identifier
58
+ :contains_multiple: true
59
+ :multiple_or: MAY
60
+ :include_params: []
61
+ :revincludes: []
62
+ :required_concepts: []
63
+ :must_supports:
64
+ :extensions: []
65
+ :slices: []
66
+ :elements:
67
+ - :path: active
68
+ - :path: name
69
+ :mandatory_elements:
70
+ - Practitioner.active
71
+ - Practitioner.name
72
+ - Practitioner.qualification.code
73
+ :bindings:
74
+ - :type: code
75
+ :strength: preferred
76
+ :system: http://hl7.org/fhir/ValueSet/languages
77
+ :path: language
78
+ - :type: code
79
+ :strength: required
80
+ :system: http://hl7.org/fhir/ValueSet/identifier-use
81
+ :path: identifier.use
82
+ - :type: CodeableConcept
83
+ :strength: extensible
84
+ :system: http://hl7.org/fhir/ValueSet/identifier-type
85
+ :path: identifier.type
86
+ - :type: code
87
+ :strength: required
88
+ :system: http://hl7.org/fhir/ValueSet/name-use
89
+ :path: name.use
90
+ - :type: code
91
+ :strength: required
92
+ :system: http://hl7.org/fhir/ValueSet/administrative-gender
93
+ :path: gender
94
+ - :type: CodeableConcept
95
+ :strength: example
96
+ :system: http://terminology.hl7.org/ValueSet/v2-2.7-0360
97
+ :path: qualification.code
98
+ - :type: CodeableConcept
99
+ :strength: preferred
100
+ :system: http://hl7.org/fhir/ValueSet/languages
101
+ :path: communication
102
+ :references:
103
+ - :path: Practitioner.identifier.assigner
104
+ :profiles:
105
+ - http://hl7.org/fhir/StructureDefinition/Organization
106
+ - :path: Practitioner.qualification.issuer
107
+ :profiles:
108
+ - http://hl7.org/fhir/StructureDefinition/Organization
109
+ :tests:
110
+ - :id: ipa_010_practitioner_read_test
111
+ :file_name: practitioner_read_test.rb
112
+ - :id: ipa_010_practitioner_name_search_test
113
+ :file_name: practitioner_name_search_test.rb
114
+ - :id: ipa_010_practitioner_identifier_search_test
115
+ :file_name: practitioner_identifier_search_test.rb
116
+ - :id: ipa_010_practitioner_validation_test
117
+ :file_name: practitioner_validation_test.rb
118
+ - :id: ipa_010_practitioner_must_support_test
119
+ :file_name: practitioner_must_support_test.rb
120
+ - :id: ipa_010_practitioner_reference_resolution_test
121
+ :file_name: practitioner_reference_resolution_test.rb
122
+ :id: ipa_010_practitioner
123
+ :file_name: practitioner_group.rb
124
+ :delayed_references: []
@@ -0,0 +1,40 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class PractitionerIdentifierSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Practitioner search by identifier'
9
+ description %(
10
+ A server SHALL support searching by
11
+ identifier on the Practitioner resource. This test
12
+ will pass if resources are returned and match the search criteria. If
13
+ none are returned, the test is skipped.
14
+
15
+ [IPA Server CapabilityStatement](https://build.fhir.org/ig/HL7/fhir-ipa/CapabilityStatement-ipa-server.html)
16
+
17
+ )
18
+
19
+ id :ipa_010_practitioner_identifier_search_test
20
+ def self.properties
21
+ @properties ||= SearchTestProperties.new(
22
+ resource_type: 'Practitioner',
23
+ search_param_names: ['identifier'],
24
+ token_search_params: ['identifier']
25
+ )
26
+ end
27
+
28
+ def self.metadata
29
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
30
+ end
31
+
32
+ def scratch_resources
33
+ scratch[:practitioner_resources] ||= {}
34
+ end
35
+
36
+ run do
37
+ run_search_test
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ require_relative '../../must_support_test'
2
+
3
+ module IpaTestKit
4
+ class PractitionerMustSupportTest < Inferno::Test
5
+ include IpaTestKit::MustSupportTest
6
+
7
+ title 'All must support elements are provided in the Practitioner resources returned'
8
+ description %(
9
+ IPA Responders SHALL be capable of populating all data elements as
10
+ part of the query results as specified by the IPA Server Capability
11
+ Statement. This test will look through the Practitioner resources
12
+ found previously for the following must support elements:
13
+
14
+ * Practitioner.identifier
15
+ * Practitioner.identifier.system
16
+ * Practitioner.identifier.value
17
+ * Practitioner.identifier:NPI
18
+ * Practitioner.name
19
+ * Practitioner.name.family
20
+ )
21
+
22
+ id :ipa_010_practitioner_must_support_test
23
+
24
+ def resource_type
25
+ 'Practitioner'
26
+ end
27
+
28
+ def self.metadata
29
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
30
+ end
31
+
32
+ def scratch_resources
33
+ scratch[:practitioner_resources] ||= {}
34
+ end
35
+
36
+ run do
37
+ perform_must_support_test(all_scratch_resources)
38
+ end
39
+ end
40
+ end