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,366 @@
1
+ ---
2
+ :name: ipa_oxygensat
3
+ :class_name: Ipav010OxygenSatSequence
4
+ :version: v0.1.0
5
+ :reformatted_version: v010
6
+ :resource: Observation
7
+ :profile_url: http://hl7.org/fhir/StructureDefinition/oxygensat
8
+ :profile_name: Observation Oxygen Saturation Profile
9
+ :title: Observation Oxygen Saturation
10
+ :short_description: Verify support for the server capabilities required by the Observation Oxygen Saturation Profile.
11
+ :interactions:
12
+ - :code: create
13
+ :expectation: MAY
14
+ - :code: search-type
15
+ :expectation: SHALL
16
+ - :code: read
17
+ :expectation: SHALL
18
+ - :code: vread
19
+ :expectation: SHOULD
20
+ - :code: update
21
+ :expectation: MAY
22
+ - :code: patch
23
+ :expectation: MAY
24
+ - :code: delete
25
+ :expectation: MAY
26
+ - :code: history-instance
27
+ :expectation: SHOULD
28
+ - :code: history-type
29
+ :expectation: MAY
30
+ :operations: []
31
+ :searches:
32
+ - :expectation: SHALL
33
+ :names:
34
+ - patient
35
+ - code
36
+ :names_not_must_support_or_mandatory: []
37
+ :must_support_or_mandatory: true
38
+ - :expectation: SHALL
39
+ :names:
40
+ - patient
41
+ - category
42
+ - date
43
+ :names_not_must_support_or_mandatory: []
44
+ :must_support_or_mandatory: true
45
+ - :expectation: SHOULD
46
+ :names:
47
+ - patient
48
+ - category
49
+ - status
50
+ :names_not_must_support_or_mandatory: []
51
+ :must_support_or_mandatory: true
52
+ - :expectation: SHOULD
53
+ :names:
54
+ - patient
55
+ - code
56
+ - date
57
+ :names_not_must_support_or_mandatory: []
58
+ :must_support_or_mandatory: true
59
+ - :expectation: SHALL
60
+ :names:
61
+ - patient
62
+ - category
63
+ :names_not_must_support_or_mandatory: []
64
+ :must_support_or_mandatory: true
65
+ :search_definitions:
66
+ :patient:
67
+ :path: subject
68
+ :full_path: Observation.subject
69
+ :comparators: {}
70
+ :values: []
71
+ :type: Reference
72
+ :contains_multiple: false
73
+ :multiple_or: MAY
74
+ :category:
75
+ :path: category
76
+ :full_path: Observation.category
77
+ :comparators: {}
78
+ :values:
79
+ - vital-signs
80
+ :type: CodeableConcept
81
+ :contains_multiple: true
82
+ :multiple_or: MAY
83
+ :date:
84
+ :path: effective
85
+ :full_path: Observation.effective
86
+ :comparators:
87
+ :eq: MAY
88
+ :ne: MAY
89
+ :gt: SHALL
90
+ :ge: SHALL
91
+ :lt: SHALL
92
+ :le: SHALL
93
+ :sa: MAY
94
+ :eb: MAY
95
+ :ap: MAY
96
+ :values: []
97
+ :type: date
98
+ :contains_multiple: false
99
+ :multiple_or: MAY
100
+ :status:
101
+ :path: status
102
+ :full_path: Observation.status
103
+ :comparators: {}
104
+ :values:
105
+ - registered
106
+ - preliminary
107
+ - final
108
+ - amended
109
+ - corrected
110
+ - cancelled
111
+ - entered-in-error
112
+ - unknown
113
+ :type: code
114
+ :contains_multiple: false
115
+ :multiple_or: SHALL
116
+ :code:
117
+ :path: code
118
+ :full_path: Observation.code
119
+ :comparators: {}
120
+ :values:
121
+ - 2708-6
122
+ :type: CodeableConcept
123
+ :contains_multiple: false
124
+ :multiple_or: SHOULD
125
+ :include_params: []
126
+ :revincludes:
127
+ - Provenance:target
128
+ :required_concepts:
129
+ :must_supports:
130
+ :extensions: []
131
+ :slices:
132
+ - :name: Observation.value[x]:valueQuantity
133
+ :path: value[x]
134
+ :discriminator:
135
+ :type: type
136
+ :code: Quantity
137
+ - :name: Observation.category:VSCat
138
+ :path: category
139
+ :discriminator:
140
+ :type: value
141
+ :values:
142
+ - :path: coding.code
143
+ :value: vital-signs
144
+ - :path: coding.system
145
+ :value: http://terminology.hl7.org/CodeSystem/observation-category
146
+ - :name: Observation.code.coding:OxygenSatCode
147
+ :path: code.coding
148
+ :discriminator:
149
+ :type: value
150
+ :values:
151
+ - :path: code
152
+ :value: 2708-6
153
+ - :path: system
154
+ :value: http://loinc.org
155
+ :elements:
156
+ - :path: status
157
+ - :path: category
158
+ - :path: category.coding
159
+ - :path: category.coding.system
160
+ :fixed_value: http://terminology.hl7.org/CodeSystem/observation-category
161
+ - :path: category.coding.code
162
+ :fixed_value: vital-signs
163
+ - :path: code
164
+ - :path: code.coding
165
+ - :path: code.coding.system
166
+ :fixed_value: http://loinc.org
167
+ - :path: code.coding.code
168
+ :fixed_value: 2708-6
169
+ - :path: subject
170
+ - :path: effective[x]
171
+ - :path: value[x]
172
+ - :path: value[x].value
173
+ - :path: value[x].unit
174
+ - :path: value[x].system
175
+ :fixed_value: http://unitsofmeasure.org
176
+ - :path: value[x].code
177
+ :fixed_value: "%"
178
+ :mandatory_elements:
179
+ - Observation.status
180
+ - Observation.category
181
+ - Observation.category
182
+ - Observation.category.coding
183
+ - Observation.category.coding.system
184
+ - Observation.category.coding.code
185
+ - Observation.code
186
+ - Observation.code.coding
187
+ - Observation.code.coding.system
188
+ - Observation.code.coding.code
189
+ - Observation.subject
190
+ - Observation.effective[x]
191
+ - Observation.value[x].value
192
+ - Observation.value[x].unit
193
+ - Observation.value[x].system
194
+ - Observation.value[x].code
195
+ - Observation.component.code
196
+ :bindings:
197
+ - :type: code
198
+ :strength: preferred
199
+ :system: http://hl7.org/fhir/ValueSet/languages
200
+ :path: language
201
+ - :type: code
202
+ :strength: required
203
+ :system: http://hl7.org/fhir/ValueSet/observation-status
204
+ :path: status
205
+ - :type: CodeableConcept
206
+ :strength: preferred
207
+ :system: http://hl7.org/fhir/ValueSet/observation-category
208
+ :path: category
209
+ - :type: CodeableConcept
210
+ :strength: preferred
211
+ :system: http://hl7.org/fhir/ValueSet/observation-category
212
+ :path: category
213
+ - :type: CodeableConcept
214
+ :strength: extensible
215
+ :system: http://hl7.org/fhir/ValueSet/observation-vitalsignresult
216
+ :path: code
217
+ - :type: code
218
+ :strength: required
219
+ :system: http://hl7.org/fhir/ValueSet/quantity-comparator
220
+ :path: value.comparator
221
+ - :type: CodeableConcept
222
+ :strength: extensible
223
+ :system: http://hl7.org/fhir/ValueSet/data-absent-reason
224
+ :path: dataAbsentReason
225
+ - :type: CodeableConcept
226
+ :strength: extensible
227
+ :system: http://hl7.org/fhir/ValueSet/observation-interpretation
228
+ :path: interpretation
229
+ - :type: CodeableConcept
230
+ :strength: example
231
+ :system: http://hl7.org/fhir/ValueSet/body-site
232
+ :path: bodySite
233
+ - :type: CodeableConcept
234
+ :strength: example
235
+ :system: http://hl7.org/fhir/ValueSet/observation-methods
236
+ :path: method
237
+ - :type: CodeableConcept
238
+ :strength: preferred
239
+ :system: http://hl7.org/fhir/ValueSet/referencerange-meaning
240
+ :path: referenceRange.type
241
+ - :type: CodeableConcept
242
+ :strength: example
243
+ :system: http://hl7.org/fhir/ValueSet/referencerange-appliesto
244
+ :path: referenceRange.appliesTo
245
+ - :type: CodeableConcept
246
+ :strength: extensible
247
+ :system: http://hl7.org/fhir/ValueSet/observation-vitalsignresult
248
+ :path: component.code
249
+ - :type: CodeableConcept
250
+ :strength: extensible
251
+ :system: http://hl7.org/fhir/ValueSet/data-absent-reason
252
+ :path: component.dataAbsentReason
253
+ - :type: CodeableConcept
254
+ :strength: extensible
255
+ :system: http://hl7.org/fhir/ValueSet/observation-interpretation
256
+ :path: component.interpretation
257
+ - :type: CodeableConcept
258
+ :strength: extensible
259
+ :system: http://hl7.org/fhir/ValueSet/observation-vitalsignresult
260
+ :path: component.code
261
+ - :type: code
262
+ :strength: required
263
+ :system: http://hl7.org/fhir/ValueSet/quantity-comparator
264
+ :path: component.value.comparator
265
+ - :type: CodeableConcept
266
+ :strength: extensible
267
+ :system: http://hl7.org/fhir/ValueSet/data-absent-reason
268
+ :path: component.dataAbsentReason
269
+ - :type: CodeableConcept
270
+ :strength: extensible
271
+ :system: http://hl7.org/fhir/ValueSet/observation-interpretation
272
+ :path: component.interpretation
273
+ - :type: CodeableConcept
274
+ :strength: extensible
275
+ :system: http://hl7.org/fhir/ValueSet/observation-vitalsignresult
276
+ :path: component.code
277
+ - :type: code
278
+ :strength: required
279
+ :system: http://hl7.org/fhir/ValueSet/quantity-comparator
280
+ :path: component.value.comparator
281
+ - :type: CodeableConcept
282
+ :strength: extensible
283
+ :system: http://hl7.org/fhir/ValueSet/data-absent-reason
284
+ :path: component.dataAbsentReason
285
+ - :type: CodeableConcept
286
+ :strength: extensible
287
+ :system: http://hl7.org/fhir/ValueSet/observation-interpretation
288
+ :path: component.interpretation
289
+ :references:
290
+ - :path: Observation.basedOn
291
+ :profiles:
292
+ - http://hl7.org/fhir/StructureDefinition/CarePlan
293
+ - http://hl7.org/fhir/StructureDefinition/DeviceRequest
294
+ - http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation
295
+ - http://hl7.org/fhir/StructureDefinition/MedicationRequest
296
+ - http://hl7.org/fhir/StructureDefinition/NutritionOrder
297
+ - http://hl7.org/fhir/StructureDefinition/ServiceRequest
298
+ - :path: Observation.partOf
299
+ :profiles:
300
+ - http://hl7.org/fhir/StructureDefinition/MedicationAdministration
301
+ - http://hl7.org/fhir/StructureDefinition/MedicationDispense
302
+ - http://hl7.org/fhir/StructureDefinition/MedicationStatement
303
+ - http://hl7.org/fhir/StructureDefinition/Procedure
304
+ - http://hl7.org/fhir/StructureDefinition/Immunization
305
+ - http://hl7.org/fhir/StructureDefinition/ImagingStudy
306
+ - :path: Observation.subject
307
+ :profiles:
308
+ - http://hl7.org/fhir/StructureDefinition/Patient
309
+ - :path: Observation.focus
310
+ :profiles:
311
+ - http://hl7.org/fhir/StructureDefinition/Resource
312
+ - :path: Observation.encounter
313
+ :profiles:
314
+ - http://hl7.org/fhir/StructureDefinition/Encounter
315
+ - :path: Observation.performer
316
+ :profiles:
317
+ - http://hl7.org/fhir/StructureDefinition/Practitioner
318
+ - http://hl7.org/fhir/StructureDefinition/PractitionerRole
319
+ - http://hl7.org/fhir/StructureDefinition/Organization
320
+ - http://hl7.org/fhir/StructureDefinition/CareTeam
321
+ - http://hl7.org/fhir/StructureDefinition/Patient
322
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
323
+ - :path: Observation.specimen
324
+ :profiles:
325
+ - http://hl7.org/fhir/StructureDefinition/Specimen
326
+ - :path: Observation.device
327
+ :profiles:
328
+ - http://hl7.org/fhir/StructureDefinition/Device
329
+ - http://hl7.org/fhir/StructureDefinition/DeviceMetric
330
+ - :path: Observation.hasMember
331
+ :profiles:
332
+ - http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse
333
+ - http://hl7.org/fhir/StructureDefinition/MolecularSequence
334
+ - http://hl7.org/fhir/StructureDefinition/vitalsigns
335
+ - :path: Observation.derivedFrom
336
+ :profiles:
337
+ - http://hl7.org/fhir/StructureDefinition/DocumentReference
338
+ - http://hl7.org/fhir/StructureDefinition/ImagingStudy
339
+ - http://hl7.org/fhir/StructureDefinition/Media
340
+ - http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse
341
+ - http://hl7.org/fhir/StructureDefinition/MolecularSequence
342
+ - http://hl7.org/fhir/StructureDefinition/vitalsigns
343
+ :tests:
344
+ - :id: ipa_010_oxygensat_patient_code_search_test
345
+ :file_name: oxygensat_patient_code_search_test.rb
346
+ - :id: ipa_010_oxygensat_patient_category_date_search_test
347
+ :file_name: oxygensat_patient_category_date_search_test.rb
348
+ - :id: ipa_010_oxygensat_patient_category_status_search_test
349
+ :file_name: oxygensat_patient_category_status_search_test.rb
350
+ - :id: ipa_010_oxygensat_patient_code_date_search_test
351
+ :file_name: oxygensat_patient_code_date_search_test.rb
352
+ - :id: ipa_010_oxygensat_patient_category_search_test
353
+ :file_name: oxygensat_patient_category_search_test.rb
354
+ - :id: ipa_010_oxygensat_read_test
355
+ :file_name: oxygensat_read_test.rb
356
+ - :id: ipa_010_oxygensat_provenance_revinclude_search_test
357
+ :file_name: oxygensat_provenance_revinclude_search_test.rb
358
+ - :id: ipa_010_oxygensat_validation_test
359
+ :file_name: oxygensat_validation_test.rb
360
+ - :id: ipa_010_oxygensat_must_support_test
361
+ :file_name: oxygensat_must_support_test.rb
362
+ - :id: ipa_010_oxygensat_reference_resolution_test
363
+ :file_name: oxygensat_reference_resolution_test.rb
364
+ :id: ipa_010_oxygensat
365
+ :file_name: oxygensat_group.rb
366
+ :delayed_references: []
@@ -0,0 +1,65 @@
1
+ require_relative '../../must_support_test'
2
+
3
+ module IpaTestKit
4
+ class OxygenSatMustSupportTest < Inferno::Test
5
+ include IpaTestKit::MustSupportTest
6
+
7
+ title 'All must support elements are provided in the Observation 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 Observation resources
12
+ found previously for the following must support elements:
13
+
14
+ * Observation.category
15
+ * Observation.category.coding
16
+ * Observation.category.coding.code
17
+ * Observation.category.coding.system
18
+ * Observation.category:VSCat
19
+ * Observation.code
20
+ * Observation.code.coding
21
+ * Observation.code.coding.code
22
+ * Observation.code.coding.system
23
+ * Observation.code.coding:OxygenSatCode
24
+ * Observation.component
25
+ * Observation.component.code
26
+ * Observation.component.code.coding.code
27
+ * Observation.component.code.coding.code
28
+ * Observation.component.value[x]
29
+ * Observation.component.value[x].code
30
+ * Observation.component.value[x].code
31
+ * Observation.component.value[x].system
32
+ * Observation.component.value[x].unit
33
+ * Observation.component.value[x].value
34
+ * Observation.component:Concentration
35
+ * Observation.component:FlowRate
36
+ * Observation.effective[x]
37
+ * Observation.status
38
+ * Observation.subject
39
+ * Observation.value[x]
40
+ * Observation.value[x].code
41
+ * Observation.value[x].system
42
+ * Observation.value[x].unit
43
+ * Observation.value[x].value
44
+ * Observation.value[x]:valueQuantity
45
+ )
46
+
47
+ id :ipa_010_oxygensat_must_support_test
48
+
49
+ def resource_type
50
+ 'Observation'
51
+ end
52
+
53
+ def self.metadata
54
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
55
+ end
56
+
57
+ def scratch_resources
58
+ scratch[:oxygensat_resources] ||= {}
59
+ end
60
+
61
+ run do
62
+ perform_must_support_test(all_scratch_resources)
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,46 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class OxygenSatPatientCategoryDateSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Observation search by patient + category + date'
9
+ description %(
10
+ A server SHALL support searching by
11
+ patient + category + date on the Observation 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_oxygensat_patient_category_date_search_test
20
+ input :patient_ids,
21
+ title: 'Patient IDs',
22
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
23
+
24
+ def self.properties
25
+ @properties ||= SearchTestProperties.new(
26
+ resource_type: 'Observation',
27
+ search_param_names: ['patient', 'category', 'date'],
28
+ possible_status_search: true,
29
+ token_search_params: ['category'],
30
+ params_with_comparators: ['date']
31
+ )
32
+ end
33
+
34
+ def self.metadata
35
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
36
+ end
37
+
38
+ def scratch_resources
39
+ scratch[:oxygensat_resources] ||= {}
40
+ end
41
+
42
+ run do
43
+ run_search_test
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,45 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class OxygenSatPatientCategorySearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Observation search by patient + category'
9
+ description %(
10
+ A server SHALL support searching by
11
+ patient + category on the Observation 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_oxygensat_patient_category_search_test
20
+ input :patient_ids,
21
+ title: 'Patient IDs',
22
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
23
+
24
+ def self.properties
25
+ @properties ||= SearchTestProperties.new(
26
+ resource_type: 'Observation',
27
+ search_param_names: ['patient', 'category'],
28
+ possible_status_search: true,
29
+ token_search_params: ['category']
30
+ )
31
+ end
32
+
33
+ def self.metadata
34
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
35
+ end
36
+
37
+ def scratch_resources
38
+ scratch[:oxygensat_resources] ||= {}
39
+ end
40
+
41
+ run do
42
+ run_search_test
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,47 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class OxygenSatPatientCategoryStatusSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Observation search by patient + category + status'
9
+ description %(
10
+ A server SHOULD support searching by
11
+ patient + category + status on the Observation 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_oxygensat_patient_category_status_search_test
20
+ optional
21
+
22
+ input :patient_ids,
23
+ title: 'Patient IDs',
24
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
25
+
26
+ def self.properties
27
+ @properties ||= SearchTestProperties.new(
28
+ resource_type: 'Observation',
29
+ search_param_names: ['patient', 'category', 'status'],
30
+ token_search_params: ['category'],
31
+ multiple_or_search_params: ['status']
32
+ )
33
+ end
34
+
35
+ def self.metadata
36
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
37
+ end
38
+
39
+ def scratch_resources
40
+ scratch[:oxygensat_resources] ||= {}
41
+ end
42
+
43
+ run do
44
+ run_search_test
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,48 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class OxygenSatPatientCodeDateSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Observation search by patient + code + date'
9
+ description %(
10
+ A server SHOULD support searching by
11
+ patient + code + date on the Observation 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_oxygensat_patient_code_date_search_test
20
+ optional
21
+
22
+ input :patient_ids,
23
+ title: 'Patient IDs',
24
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
25
+
26
+ def self.properties
27
+ @properties ||= SearchTestProperties.new(
28
+ resource_type: 'Observation',
29
+ search_param_names: ['patient', 'code', 'date'],
30
+ possible_status_search: true,
31
+ token_search_params: ['code'],
32
+ params_with_comparators: ['date']
33
+ )
34
+ end
35
+
36
+ def self.metadata
37
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
38
+ end
39
+
40
+ def scratch_resources
41
+ scratch[:oxygensat_resources] ||= {}
42
+ end
43
+
44
+ run do
45
+ run_search_test
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,62 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class OxygenSatPatientCodeSearchTest < Inferno::Test
6
+ include IpaTestKit::SearchTest
7
+
8
+ title 'Server returns valid results for Observation search by patient + code'
9
+ description %(
10
+ A server SHALL support searching by
11
+ patient + code on the Observation 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
+ This test verifies that the server supports searching by reference using
16
+ the form `patient=[id]` as well as `patient=Patient/[id]`. The two
17
+ different forms are expected to return the same number of results. IPA
18
+ requires that both forms are supported by IPA responders.
19
+
20
+ Because this is the first search of the sequence, resources in the
21
+ response will be used for subsequent tests.
22
+
23
+ Additionally, this test will check that GET and POST search methods
24
+ return the same number of results. Search by POST is required by the
25
+ FHIR R4 specification, and these tests interpret search by GET as a
26
+ requirement of IPA v0.1.0.
27
+
28
+ [IPA Server CapabilityStatement](https://build.fhir.org/ig/HL7/fhir-ipa/CapabilityStatement-ipa-server.html)
29
+
30
+ )
31
+
32
+ id :ipa_010_oxygensat_patient_code_search_test
33
+ input :patient_ids,
34
+ title: 'Patient IDs',
35
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
36
+
37
+ def self.properties
38
+ @properties ||= SearchTestProperties.new(
39
+ first_search: true,
40
+ fixed_value_search: true,
41
+ resource_type: 'Observation',
42
+ search_param_names: ['patient', 'code'],
43
+ possible_status_search: true,
44
+ token_search_params: ['code'],
45
+ test_reference_variants: true,
46
+ test_post_search: true
47
+ )
48
+ end
49
+
50
+ def self.metadata
51
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
52
+ end
53
+
54
+ def scratch_resources
55
+ scratch[:oxygensat_resources] ||= {}
56
+ end
57
+
58
+ run do
59
+ run_search_test
60
+ end
61
+ end
62
+ end