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,51 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class OxygenSatProvenanceRevincludeSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns Provenance resources from Observation search by patient + code + 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 patient + code + revInclude:Provenance:target and
13
+ will pass if a Provenance resource is found in the response.
14
+ %)
15
+
16
+ id :ipa_010_oxygensat_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
+ fixed_value_search: true,
25
+ resource_type: 'Observation',
26
+ search_param_names: ['patient', 'code'],
27
+ possible_status_search: true
28
+ )
29
+ end
30
+
31
+ def self.metadata
32
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
33
+ end
34
+
35
+ def self.provenance_metadata
36
+ @provenance_metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, '..', 'provenance', 'metadata.yml')))
37
+ end
38
+
39
+ def scratch_resources
40
+ scratch[:oxygensat_resources] ||= {}
41
+ end
42
+
43
+ def scratch_provenance_resources
44
+ scratch[:provenance_resources] ||= {}
45
+ end
46
+
47
+ run do
48
+ run_provenance_revinclude_search_test
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,24 @@
1
+ require_relative '../../read_test'
2
+
3
+ module IpaTestKit
4
+ class OxygenSatReadTest < Inferno::Test
5
+ include IpaTestKit::ReadTest
6
+
7
+ title 'Server returns correct Observation resource from Observation read interaction'
8
+ description 'A server SHALL support the Observation read interaction.'
9
+
10
+ id :ipa_010_oxygensat_read_test
11
+
12
+ def resource_type
13
+ 'Observation'
14
+ end
15
+
16
+ def scratch_resources
17
+ scratch[:oxygensat_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 OxygenSatReferenceResolutionTest < Inferno::Test
5
+ include IpaTestKit::ReferenceResolutionTest
6
+
7
+ title 'Every reference within Observation 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_oxygensat_reference_resolution_test
15
+
16
+ def resource_type
17
+ 'Observation'
18
+ end
19
+
20
+ def scratch_resources
21
+ scratch[:oxygensat_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 OxygenSatValidationTest < Inferno::Test
5
+ include IpaTestKit::ValidationTest
6
+
7
+ id :ipa_010_oxygensat_validation_test
8
+ title 'Observation resources returned during previous tests conform to the Observation Oxygen Saturation Profile'
9
+ description %(
10
+ This test verifies resources returned from the first search conform to
11
+ the [Observation Oxygen Saturation Profile](http://hl7.org/fhir/StructureDefinition/oxygensat).
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
+ 'Observation'
24
+ end
25
+
26
+ def scratch_resources
27
+ scratch[:oxygensat_resources] ||= {}
28
+ end
29
+
30
+ run do
31
+ perform_validation_test(scratch_resources[:all] || [], 'http://hl7.org/fhir/StructureDefinition/oxygensat')
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,93 @@
1
+ require_relative 'oxygensat/oxygensat_patient_code_search_test'
2
+ require_relative 'oxygensat/oxygensat_patient_category_date_search_test'
3
+ require_relative 'oxygensat/oxygensat_patient_category_status_search_test'
4
+ require_relative 'oxygensat/oxygensat_patient_code_date_search_test'
5
+ require_relative 'oxygensat/oxygensat_patient_category_search_test'
6
+ require_relative 'oxygensat/oxygensat_read_test'
7
+ require_relative 'oxygensat/oxygensat_provenance_revinclude_search_test'
8
+ require_relative 'oxygensat/oxygensat_validation_test'
9
+ require_relative 'oxygensat/oxygensat_must_support_test'
10
+ require_relative 'oxygensat/oxygensat_reference_resolution_test'
11
+
12
+ module IpaTestKit
13
+ class OxygenSatGroup < Inferno::TestGroup
14
+ title 'Observation Oxygen Saturation Tests'
15
+ short_description 'Verify support for the server capabilities required by the Observation Oxygen Saturation Profile.'
16
+ description %(
17
+ # Background
18
+
19
+ The Observation Oxygen Saturation sequence verifies that the system under test is
20
+ able to provide correct responses for Observation queries. These queries
21
+ must contain resources conforming to the Observation Oxygen Saturation Profile as
22
+ specified in the IPA v0.1.0 Implementation Guide.
23
+
24
+ # Testing Methodology
25
+ ## Searching
26
+ This test sequence will first perform each required search associated
27
+ with this resource. This sequence will perform searches with the
28
+ following parameters:
29
+
30
+ * patient + code
31
+ * patient + category + date
32
+ * patient + category
33
+
34
+ ### Search Parameters
35
+ The first search uses the selected patient(s) from the prior launch
36
+ sequence. Any subsequent searches will look for its parameter values
37
+ from the results of the first search. For example, the `identifier`
38
+ search in the patient sequence is performed by looking for an existing
39
+ `Patient.identifier` from any of the resources returned in the `_id`
40
+ search. If a value cannot be found this way, the search is skipped.
41
+
42
+ ### Search Validation
43
+ Inferno will retrieve up to the first 20 bundle pages of the reply for
44
+ Observation resources and save them for subsequent tests. Each of
45
+ these resources is then checked to see if it matches the searched
46
+ parameters in accordance with [FHIR search
47
+ guidelines](https://www.hl7.org/fhir/search.html). The test will fail,
48
+ for example, if a Patient search for `gender=male` returns a `female`
49
+ patient.
50
+
51
+
52
+ ## Must Support
53
+ Each profile contains elements marked as "must support". This test
54
+ sequence expects to see each of these elements at least once. If at
55
+ least one cannot be found, the test will fail. The test will look
56
+ through the Observation resources found in the first test for these
57
+ elements.
58
+
59
+ ## Profile Validation
60
+ Each resource returned from the first search is expected to conform to
61
+ the [Observation Oxygen Saturation Profile](http://hl7.org/fhir/StructureDefinition/oxygensat). Each element is checked against
62
+ teminology binding and cardinality requirements.
63
+
64
+ Elements with a required binding are validated against their bound
65
+ ValueSet. If the code/system in the element is not part of the ValueSet,
66
+ then the test will fail.
67
+
68
+ ## Reference Validation
69
+ Each reference within the resources found from the previous tests must
70
+ resolve. The test will attempt to read each reference found and will
71
+ fail if any attempted read fails.
72
+
73
+ )
74
+
75
+ id :ipa_010_oxygensat
76
+ run_as_group
77
+
78
+ def self.metadata
79
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'oxygensat', 'metadata.yml')))
80
+ end
81
+
82
+ test from: :ipa_010_oxygensat_patient_code_search_test
83
+ test from: :ipa_010_oxygensat_patient_category_date_search_test
84
+ test from: :ipa_010_oxygensat_patient_category_status_search_test
85
+ test from: :ipa_010_oxygensat_patient_code_date_search_test
86
+ test from: :ipa_010_oxygensat_patient_category_search_test
87
+ test from: :ipa_010_oxygensat_read_test
88
+ test from: :ipa_010_oxygensat_provenance_revinclude_search_test
89
+ test from: :ipa_010_oxygensat_validation_test
90
+ test from: :ipa_010_oxygensat_must_support_test
91
+ test from: :ipa_010_oxygensat_reference_resolution_test
92
+ end
93
+ end
@@ -0,0 +1,320 @@
1
+ ---
2
+ :name: ipa_patient
3
+ :class_name: Ipav010PatientSequence
4
+ :version: v0.1.0
5
+ :reformatted_version: v010
6
+ :resource: Patient
7
+ :profile_url: http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient
8
+ :profile_name: IPA Patient Profile
9
+ :title: Patient
10
+ :short_description: Verify support for the server capabilities required by the IPA
11
+ Patient 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
+ - _id
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
+ - :names:
44
+ - name
45
+ :expectation: SHALL
46
+ :names_not_must_support_or_mandatory: []
47
+ :must_support_or_mandatory: true
48
+ - :expectation: SHOULD
49
+ :names:
50
+ - birthdate
51
+ - family
52
+ :names_not_must_support_or_mandatory: []
53
+ :must_support_or_mandatory: true
54
+ - :expectation: SHOULD
55
+ :names:
56
+ - family
57
+ - gender
58
+ :names_not_must_support_or_mandatory: []
59
+ :must_support_or_mandatory: true
60
+ - :expectation: SHALL
61
+ :names:
62
+ - birthdate
63
+ - name
64
+ :names_not_must_support_or_mandatory: []
65
+ :must_support_or_mandatory: true
66
+ - :expectation: SHALL
67
+ :names:
68
+ - gender
69
+ - name
70
+ :names_not_must_support_or_mandatory: []
71
+ :must_support_or_mandatory: true
72
+ :search_definitions:
73
+ :_id:
74
+ :path: id
75
+ :full_path: Patient.id
76
+ :comparators: {}
77
+ :values: []
78
+ :type: http://hl7.org/fhirpath/System.String
79
+ :contains_multiple: false
80
+ :multiple_or: MAY
81
+ :identifier:
82
+ :path: identifier
83
+ :full_path: Patient.identifier
84
+ :comparators: {}
85
+ :values: []
86
+ :type: Identifier
87
+ :contains_multiple: true
88
+ :multiple_or: MAY
89
+ :name:
90
+ :path: name
91
+ :full_path: Patient.name
92
+ :comparators: {}
93
+ :values: []
94
+ :type: HumanName
95
+ :contains_multiple: true
96
+ :multiple_or: MAY
97
+ :birthdate:
98
+ :path: birthDate
99
+ :full_path: Patient.birthDate
100
+ :comparators:
101
+ :eq: MAY
102
+ :ne: MAY
103
+ :gt: MAY
104
+ :ge: MAY
105
+ :lt: MAY
106
+ :le: MAY
107
+ :sa: MAY
108
+ :eb: MAY
109
+ :ap: MAY
110
+ :values: []
111
+ :type: date
112
+ :contains_multiple: false
113
+ :multiple_or: MAY
114
+ :family:
115
+ :path: name.family
116
+ :full_path: Patient.name.family
117
+ :comparators: {}
118
+ :values: []
119
+ :type: string
120
+ :contains_multiple: false
121
+ :multiple_or: MAY
122
+ :gender:
123
+ :path: gender
124
+ :full_path: Patient.gender
125
+ :comparators: {}
126
+ :values:
127
+ - male
128
+ - female
129
+ - other
130
+ - unknown
131
+ :type: code
132
+ :contains_multiple: false
133
+ :multiple_or: MAY
134
+ :include_params: []
135
+ :revincludes:
136
+ - Provenance:target
137
+ :required_concepts: []
138
+ :must_supports:
139
+ :extensions:
140
+ - :id: Patient.extension:race
141
+ :url: http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-race
142
+ - :id: Patient.extension:ethnicity
143
+ :url: http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-ethnicity
144
+ - :id: Patient.extension:birthsex
145
+ :url: http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-birthsex
146
+ :slices: []
147
+ :elements:
148
+ - :path: identifier
149
+ - :path: identifier.system
150
+ - :path: identifier.value
151
+ - :path: name
152
+ - :path: name.family
153
+ - :path: name.given
154
+ - :path: telecom
155
+ - :path: telecom.system
156
+ - :path: telecom.value
157
+ - :path: telecom.use
158
+ - :path: gender
159
+ - :path: birthDate
160
+ - :path: address
161
+ - :path: address.line
162
+ - :path: address.city
163
+ - :path: address.state
164
+ - :path: address.postalCode
165
+ - :path: address.period
166
+ - :path: communication
167
+ - :path: communication.language
168
+ :mandatory_elements:
169
+ - Patient.identifier
170
+ - Patient.identifier.system
171
+ - Patient.identifier.value
172
+ - Patient.name
173
+ - Patient.telecom.system
174
+ - Patient.telecom.value
175
+ - Patient.gender
176
+ - Patient.communication.language
177
+ - Patient.link.other
178
+ - Patient.link.type
179
+ :bindings:
180
+ - :type: code
181
+ :strength: preferred
182
+ :system: http://hl7.org/fhir/ValueSet/languages
183
+ :path: language
184
+ - :type: code
185
+ :strength: required
186
+ :system: http://hl7.org/fhir/ValueSet/identifier-use
187
+ :path: identifier.use
188
+ - :type: CodeableConcept
189
+ :strength: extensible
190
+ :system: http://hl7.org/fhir/ValueSet/identifier-type
191
+ :path: identifier.type
192
+ - :type: code
193
+ :strength: required
194
+ :system: http://hl7.org/fhir/ValueSet/name-use
195
+ :path: name.use
196
+ - :type: code
197
+ :strength: required
198
+ :system: http://hl7.org/fhir/ValueSet/contact-point-system
199
+ :path: telecom.system
200
+ - :type: code
201
+ :strength: required
202
+ :system: http://hl7.org/fhir/ValueSet/contact-point-use
203
+ :path: telecom.use
204
+ - :type: code
205
+ :strength: required
206
+ :system: http://hl7.org/fhir/ValueSet/administrative-gender
207
+ :path: gender
208
+ - :type: code
209
+ :strength: required
210
+ :system: http://hl7.org/fhir/ValueSet/address-use
211
+ :path: address.use
212
+ - :type: code
213
+ :strength: required
214
+ :system: http://hl7.org/fhir/ValueSet/address-type
215
+ :path: address.type
216
+ - :type: string
217
+ :strength: extensible
218
+ :system: http://hl7.org/fhir/uv/ipa/ValueSet/ipa-usps-state
219
+ :path: address.state
220
+ - :type: CodeableConcept
221
+ :strength: extensible
222
+ :system: http://hl7.org/fhir/ValueSet/marital-status
223
+ :path: maritalStatus
224
+ - :type: CodeableConcept
225
+ :strength: extensible
226
+ :system: http://hl7.org/fhir/ValueSet/patient-contactrelationship
227
+ :path: contact.relationship
228
+ - :type: code
229
+ :strength: required
230
+ :system: http://hl7.org/fhir/ValueSet/administrative-gender
231
+ :path: contact.gender
232
+ - :type: CodeableConcept
233
+ :strength: extensible
234
+ :system: http://hl7.org/fhir/uv/ipa/ValueSet/simple-language
235
+ :path: communication.language
236
+ - :type: code
237
+ :strength: required
238
+ :system: http://hl7.org/fhir/ValueSet/link-type
239
+ :path: link.type
240
+ - :type: Coding
241
+ :strength: required
242
+ :system: http://hl7.org/fhir/uv/ipa/ValueSet/omb-race-category
243
+ :path: value
244
+ :extensions:
245
+ - http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-race
246
+ - ombCategory
247
+ - :type: Coding
248
+ :strength: required
249
+ :system: http://hl7.org/fhir/uv/ipa/ValueSet/detailed-race
250
+ :path: value
251
+ :extensions:
252
+ - http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-race
253
+ - detailed
254
+ - :type: Coding
255
+ :strength: required
256
+ :system: http://hl7.org/fhir/uv/ipa/ValueSet/omb-ethnicity-category
257
+ :path: value
258
+ :extensions:
259
+ - http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-ethnicity
260
+ - ombCategory
261
+ - :type: Coding
262
+ :strength: required
263
+ :system: http://hl7.org/fhir/uv/ipa/ValueSet/detailed-ethnicity
264
+ :path: value
265
+ :extensions:
266
+ - http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-ethnicity
267
+ - detailed
268
+ - :type: code
269
+ :strength: required
270
+ :system: http://hl7.org/fhir/uv/ipa/ValueSet/birthsex
271
+ :path: value
272
+ :extensions:
273
+ - http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-birthsex
274
+ :references:
275
+ - :path: Patient.identifier.assigner
276
+ :profiles:
277
+ - http://hl7.org/fhir/StructureDefinition/Organization
278
+ - :path: Patient.contact.organization
279
+ :profiles:
280
+ - http://hl7.org/fhir/StructureDefinition/Organization
281
+ - :path: Patient.generalPractitioner
282
+ :profiles:
283
+ - http://hl7.org/fhir/StructureDefinition/Organization
284
+ - http://hl7.org/fhir/StructureDefinition/Practitioner
285
+ - http://hl7.org/fhir/StructureDefinition/PractitionerRole
286
+ - :path: Patient.managingOrganization
287
+ :profiles:
288
+ - http://hl7.org/fhir/StructureDefinition/Organization
289
+ - :path: Patient.link.other
290
+ :profiles:
291
+ - http://hl7.org/fhir/StructureDefinition/Patient
292
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
293
+ :tests:
294
+ - :id: ipa_010_patient__id_search_test
295
+ :file_name: patient_id_search_test.rb
296
+ - :id: ipa_010_patient_identifier_search_test
297
+ :file_name: patient_identifier_search_test.rb
298
+ - :id: ipa_010_patient_name_search_test
299
+ :file_name: patient_name_search_test.rb
300
+ - :id: ipa_010_patient_birthdate_family_search_test
301
+ :file_name: patient_birthdate_family_search_test.rb
302
+ - :id: ipa_010_patient_family_gender_search_test
303
+ :file_name: patient_family_gender_search_test.rb
304
+ - :id: ipa_010_patient_birthdate_name_search_test
305
+ :file_name: patient_birthdate_name_search_test.rb
306
+ - :id: ipa_010_patient_gender_name_search_test
307
+ :file_name: patient_gender_name_search_test.rb
308
+ - :id: ipa_010_patient_read_test
309
+ :file_name: patient_read_test.rb
310
+ - :id: ipa_010_patient_provenance_revinclude_search_test
311
+ :file_name: patient_provenance_revinclude_search_test.rb
312
+ - :id: ipa_010_patient_validation_test
313
+ :file_name: patient_validation_test.rb
314
+ - :id: ipa_010_patient_must_support_test
315
+ :file_name: patient_must_support_test.rb
316
+ - :id: ipa_010_patient_reference_resolution_test
317
+ :file_name: patient_reference_resolution_test.rb
318
+ :id: ipa_010_patient
319
+ :file_name: patient_group.rb
320
+ :delayed_references: []
@@ -0,0 +1,41 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class PatientBirthdateFamilySearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Patient search by birthdate + family'
9
+ description %(
10
+ A server SHOULD support searching by
11
+ birthdate + family 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_birthdate_family_search_test
20
+ optional
21
+
22
+ def self.properties
23
+ @properties ||= SearchTestProperties.new(
24
+ resource_type: 'Patient',
25
+ search_param_names: ['birthdate', 'family']
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 scratch_resources
34
+ scratch[:patient_resources] ||= {}
35
+ end
36
+
37
+ run do
38
+ run_search_test
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,39 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class PatientBirthdateNameSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Patient search by birthdate + name'
9
+ description %(
10
+ A server SHALL support searching by
11
+ birthdate + 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_birthdate_name_search_test
20
+ def self.properties
21
+ @properties ||= SearchTestProperties.new(
22
+ resource_type: 'Patient',
23
+ search_param_names: ['birthdate', '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,41 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class PatientFamilyGenderSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Patient search by family + gender'
9
+ description %(
10
+ A server SHOULD support searching by
11
+ family + gender 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_family_gender_search_test
20
+ optional
21
+
22
+ def self.properties
23
+ @properties ||= SearchTestProperties.new(
24
+ resource_type: 'Patient',
25
+ search_param_names: ['family', 'gender']
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 scratch_resources
34
+ scratch[:patient_resources] ||= {}
35
+ end
36
+
37
+ run do
38
+ run_search_test
39
+ end
40
+ end
41
+ end