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,114 @@
1
+ ---
2
+ :name: provenance
3
+ :class_name: ProvenanceSequence
4
+ :version: v0.1.0
5
+ :reformatted_version: v010
6
+ :resource: Provenance
7
+ :profile_url: http://hl7.org/fhir/StructureDefinition/Provenance
8
+ :profile_name: Provenance Resource
9
+ :title: Provenance
10
+ :short_description: Verify support for the server capabilities required by the Provenance Resource.
11
+ :interactions:
12
+ - :code: create
13
+ :expectation: MAY
14
+ - :code: search-type
15
+ :expectation: MAY
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
+ :search_definitions: {}
33
+ :include_params: []
34
+ :revincludes: []
35
+ :required_concepts: []
36
+ :must_supports: []
37
+ :mandatory_elements:
38
+ - Provenance.target
39
+ - Provenance.recorded
40
+ - Provenance.agent
41
+ - Provenance.agent.who
42
+ - Provenance.agent.type
43
+ - Provenance.entity.role
44
+ - Provenance.entity.what
45
+ :bindings:
46
+ - :type: code
47
+ :strength: preferred
48
+ :system: http://hl7.org/fhir/ValueSet/languages
49
+ :path: language
50
+ - :type: CodeableConcept
51
+ :strength: extensible
52
+ :system: http://terminology.hl7.org/ValueSet/v3-PurposeOfUse
53
+ :path: reason
54
+ - :type: CodeableConcept
55
+ :strength: extensible
56
+ :system: http://hl7.org/fhir/ValueSet/provenance-activity-type
57
+ :path: activity
58
+ - :type: CodeableConcept
59
+ :strength: extensible
60
+ :system: http://hl7.org/fhir/ValueSet/provenance-agent-type
61
+ :path: agent.type
62
+ - :type: CodeableConcept
63
+ :strength: example
64
+ :system: http://hl7.org/fhir/ValueSet/security-role-type
65
+ :path: agent.role
66
+ - :type: code
67
+ :strength: required
68
+ :system: http://hl7.org/fhir/ValueSet/provenance-entity-role
69
+ :path: entity.role
70
+ :references:
71
+ - :path: Provenance.target
72
+ :profiles:
73
+ - http://hl7.org/fhir/StructureDefinition/Resource
74
+ - :path: Provenance.location
75
+ :profiles:
76
+ - http://hl7.org/fhir/StructureDefinition/Location
77
+ - :path: Provenance.agent.who
78
+ :profiles:
79
+ - http://hl7.org/fhir/StructureDefinition/Practitioner
80
+ - http://hl7.org/fhir/StructureDefinition/PractitionerRole
81
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
82
+ - http://hl7.org/fhir/StructureDefinition/Patient
83
+ - http://hl7.org/fhir/StructureDefinition/Device
84
+ - http://hl7.org/fhir/StructureDefinition/Organization
85
+ - :path: Provenance.agent.onBehalfOf
86
+ :profiles:
87
+ - http://hl7.org/fhir/StructureDefinition/Practitioner
88
+ - http://hl7.org/fhir/StructureDefinition/PractitionerRole
89
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
90
+ - http://hl7.org/fhir/StructureDefinition/Patient
91
+ - http://hl7.org/fhir/StructureDefinition/Device
92
+ - http://hl7.org/fhir/StructureDefinition/Organization
93
+ - :path: Provenance.entity.what
94
+ :profiles:
95
+ - http://hl7.org/fhir/StructureDefinition/Resource
96
+ :tests:
97
+ - :id: ipa_010_provenance_read_test
98
+ :file_name: provenance_read_test.rb
99
+ - :id: ipa_010_provenance_validation_test
100
+ :file_name: provenance_validation_test.rb
101
+ - :id: ipa_010_provenance_must_support_test
102
+ :file_name: provenance_must_support_test.rb
103
+ - :id: ipa_010_provenance_reference_resolution_test
104
+ :file_name: provenance_reference_resolution_test.rb
105
+ :id: ipa_010_provenance
106
+ :file_name: provenance_group.rb
107
+ :delayed_references:
108
+ - :path: agent.who
109
+ :resources:
110
+ - Practitioner
111
+ - Organization
112
+ - :path: agent.onBehalfOf
113
+ :resources:
114
+ - Organization
@@ -0,0 +1,24 @@
1
+ require_relative '../../read_test'
2
+
3
+ module IpaTestKit
4
+ class ProvenanceReadTest < Inferno::Test
5
+ include IpaTestKit::ReadTest
6
+
7
+ title 'Server returns correct Provenance resource from Provenance read interaction'
8
+ description 'A server SHALL support the Provenance read interaction.'
9
+
10
+ id :ipa_010_provenance_read_test
11
+
12
+ def resource_type
13
+ 'Provenance'
14
+ end
15
+
16
+ def scratch_resources
17
+ scratch[:provenance_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 ProvenanceReferenceResolutionTest < Inferno::Test
5
+ include IpaTestKit::ReferenceResolutionTest
6
+
7
+ title 'Every reference within Provenance 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_provenance_reference_resolution_test
15
+
16
+ def resource_type
17
+ 'Provenance'
18
+ end
19
+
20
+ def scratch_resources
21
+ scratch[:provenance_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 ProvenanceValidationTest < Inferno::Test
5
+ include IpaTestKit::ValidationTest
6
+
7
+ id :ipa_010_provenance_validation_test
8
+ title 'Provenance resources returned during previous tests conform to the Provenance Resource'
9
+ description %(
10
+ This test verifies resources returned from the first search conform to
11
+ the [Provenance Resource](http://hl7.org/fhir/StructureDefinition/Provenance).
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
+ 'Provenance'
24
+ end
25
+
26
+ def scratch_resources
27
+ scratch[:provenance_resources] ||= {}
28
+ end
29
+
30
+ run do
31
+ perform_validation_test(scratch_resources[:all] || [], 'http://hl7.org/fhir/StructureDefinition/Provenance')
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,53 @@
1
+ require_relative 'provenance/provenance_read_test'
2
+ require_relative 'provenance/provenance_validation_test'
3
+ require_relative 'provenance/provenance_reference_resolution_test'
4
+
5
+ module IpaTestKit
6
+ class ProvenanceGroup < Inferno::TestGroup
7
+ title 'Provenance Tests'
8
+ short_description 'Verify support for the server capabilities required by the Provenance Resource.'
9
+ description %(
10
+ # Background
11
+
12
+ The Provenance sequence verifies that the system under test is
13
+ able to provide correct responses for Provenance queries. These queries
14
+ must contain resources conforming to the Provenance Resource.
15
+
16
+ # Testing Methodology
17
+
18
+
19
+ ## Must Support
20
+ Each profile contains elements marked as "must support". This test
21
+ sequence expects to see each of these elements at least once. If at
22
+ least one cannot be found, the test will fail. The test will look
23
+ through the Provenance resources found in the first test for these
24
+ elements.
25
+
26
+ ## Profile Validation
27
+ Each resource returned from the first search is expected to conform to
28
+ the [Provenance Resource](http://hl7.org/fhir/StructureDefinition/Provenance). Each element is checked against
29
+ teminology binding and cardinality requirements.
30
+
31
+ Elements with a required binding are validated against their bound
32
+ ValueSet. If the code/system in the element is not part of the ValueSet,
33
+ then the test will fail.
34
+
35
+ ## Reference Validation
36
+ Each reference within the resources found from the previous tests must
37
+ resolve. The test will attempt to read each reference found and will
38
+ fail if any attempted read fails.
39
+
40
+ )
41
+
42
+ id :ipa_010_provenance
43
+ run_as_group
44
+
45
+ def self.metadata
46
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'provenance', 'metadata.yml')))
47
+ end
48
+
49
+ test from: :ipa_010_provenance_read_test
50
+ test from: :ipa_010_provenance_validation_test
51
+ test from: :ipa_010_provenance_reference_resolution_test
52
+ end
53
+ end
@@ -0,0 +1,18 @@
1
+ module IpaTestKit
2
+ module ResourceList
3
+ RESOURCE_LIST = [
4
+ 'AllergyIntolerance',
5
+ 'Condition',
6
+ 'DocumentReference',
7
+ 'Immunization',
8
+ 'Medication',
9
+ 'MedicationRequest',
10
+ 'MedicationStatement',
11
+ 'Observation',
12
+ 'Patient',
13
+ 'Practitioner',
14
+ 'PractitionerRole',
15
+ 'Provenance'
16
+ ].freeze
17
+ end
18
+ end
@@ -0,0 +1,325 @@
1
+ ---
2
+ :name: resprate
3
+ :class_name: ResprateSequence
4
+ :version: v0.1.0
5
+ :reformatted_version: v010
6
+ :resource: Observation
7
+ :profile_url: http://hl7.org/fhir/StructureDefinition/resprate
8
+ :profile_name: Observation Respiratory Rate Profile
9
+ :title: Observation Respiratory Rate
10
+ :short_description: Verify support for the server capabilities required by the Observation
11
+ Respiratory Rate 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
+ - :expectation: SHALL
34
+ :names:
35
+ - patient
36
+ - code
37
+ :names_not_must_support_or_mandatory: []
38
+ :must_support_or_mandatory: true
39
+ - :expectation: SHALL
40
+ :names:
41
+ - patient
42
+ - category
43
+ - date
44
+ :names_not_must_support_or_mandatory: []
45
+ :must_support_or_mandatory: true
46
+ - :expectation: SHOULD
47
+ :names:
48
+ - patient
49
+ - category
50
+ - status
51
+ :names_not_must_support_or_mandatory: []
52
+ :must_support_or_mandatory: true
53
+ - :expectation: SHOULD
54
+ :names:
55
+ - patient
56
+ - code
57
+ - date
58
+ :names_not_must_support_or_mandatory: []
59
+ :must_support_or_mandatory: true
60
+ - :expectation: SHALL
61
+ :names:
62
+ - patient
63
+ - category
64
+ :names_not_must_support_or_mandatory: []
65
+ :must_support_or_mandatory: true
66
+ :search_definitions:
67
+ :patient:
68
+ :path: subject
69
+ :full_path: Observation.subject
70
+ :comparators: {}
71
+ :values: []
72
+ :type: Reference
73
+ :contains_multiple: false
74
+ :multiple_or: MAY
75
+ :category:
76
+ :path: category
77
+ :full_path: Observation.category
78
+ :comparators: {}
79
+ :values:
80
+ - vital-signs
81
+ :type: CodeableConcept
82
+ :contains_multiple: true
83
+ :multiple_or: MAY
84
+ :date:
85
+ :path: effective
86
+ :full_path: Observation.effective
87
+ :comparators:
88
+ :eq: MAY
89
+ :ne: MAY
90
+ :gt: SHALL
91
+ :ge: SHALL
92
+ :lt: SHALL
93
+ :le: SHALL
94
+ :sa: MAY
95
+ :eb: MAY
96
+ :ap: MAY
97
+ :values: []
98
+ :type: date
99
+ :contains_multiple: false
100
+ :multiple_or: MAY
101
+ :status:
102
+ :path: status
103
+ :full_path: Observation.status
104
+ :comparators: {}
105
+ :values:
106
+ - registered
107
+ - preliminary
108
+ - final
109
+ - amended
110
+ - corrected
111
+ - cancelled
112
+ - entered-in-error
113
+ - unknown
114
+ :type: code
115
+ :contains_multiple: false
116
+ :multiple_or: SHALL
117
+ :code:
118
+ :path: code
119
+ :full_path: Observation.code
120
+ :comparators: {}
121
+ :values:
122
+ - 9279-1
123
+ :type: CodeableConcept
124
+ :contains_multiple: false
125
+ :multiple_or: SHOULD
126
+ :include_params: []
127
+ :revincludes:
128
+ - Provenance:target
129
+ :required_concepts:
130
+ :must_supports:
131
+ :extensions: []
132
+ :slices:
133
+ - :name: Observation.value[x]:valueQuantity
134
+ :path: value[x]
135
+ :discriminator:
136
+ :type: type
137
+ :code: Quantity
138
+ - :name: Observation.category:VSCat
139
+ :path: category
140
+ :discriminator:
141
+ :type: value
142
+ :values:
143
+ - :path: coding.code
144
+ :value: vital-signs
145
+ - :path: coding.system
146
+ :value: http://terminology.hl7.org/CodeSystem/observation-category
147
+ :elements:
148
+ - :path: status
149
+ - :path: category
150
+ - :path: category.coding
151
+ - :path: category.coding.system
152
+ :fixed_value: http://terminology.hl7.org/CodeSystem/observation-category
153
+ - :path: category.coding.code
154
+ :fixed_value: vital-signs
155
+ - :path: code
156
+ - :path: subject
157
+ - :path: effective[x]
158
+ - :path: value[x]
159
+ - :path: value[x].value
160
+ - :path: value[x].unit
161
+ - :path: value[x].system
162
+ :fixed_value: http://unitsofmeasure.org
163
+ - :path: value[x].code
164
+ :fixed_value: "/min"
165
+ :mandatory_elements:
166
+ - Observation.status
167
+ - Observation.category
168
+ - Observation.category
169
+ - Observation.category.coding
170
+ - Observation.category.coding.system
171
+ - Observation.category.coding.code
172
+ - Observation.code
173
+ - Observation.code.coding
174
+ - Observation.code.coding.system
175
+ - Observation.code.coding.code
176
+ - Observation.subject
177
+ - Observation.effective[x]
178
+ - Observation.value[x].value
179
+ - Observation.value[x].unit
180
+ - Observation.value[x].system
181
+ - Observation.value[x].code
182
+ - Observation.component.code
183
+ :bindings:
184
+ - :type: code
185
+ :strength: preferred
186
+ :system: http://hl7.org/fhir/ValueSet/languages
187
+ :path: language
188
+ - :type: code
189
+ :strength: required
190
+ :system: http://hl7.org/fhir/ValueSet/observation-status
191
+ :path: status
192
+ - :type: CodeableConcept
193
+ :strength: preferred
194
+ :system: http://hl7.org/fhir/ValueSet/observation-category
195
+ :path: category
196
+ - :type: CodeableConcept
197
+ :strength: preferred
198
+ :system: http://hl7.org/fhir/ValueSet/observation-category
199
+ :path: category
200
+ - :type: CodeableConcept
201
+ :strength: extensible
202
+ :system: http://hl7.org/fhir/ValueSet/observation-vitalsignresult
203
+ :path: code
204
+ - :type: code
205
+ :strength: required
206
+ :system: http://hl7.org/fhir/ValueSet/quantity-comparator
207
+ :path: value.comparator
208
+ - :type: CodeableConcept
209
+ :strength: extensible
210
+ :system: http://hl7.org/fhir/ValueSet/data-absent-reason
211
+ :path: dataAbsentReason
212
+ - :type: CodeableConcept
213
+ :strength: extensible
214
+ :system: http://hl7.org/fhir/ValueSet/observation-interpretation
215
+ :path: interpretation
216
+ - :type: CodeableConcept
217
+ :strength: example
218
+ :system: http://hl7.org/fhir/ValueSet/body-site
219
+ :path: bodySite
220
+ - :type: CodeableConcept
221
+ :strength: example
222
+ :system: http://hl7.org/fhir/ValueSet/observation-methods
223
+ :path: method
224
+ - :type: CodeableConcept
225
+ :strength: preferred
226
+ :system: http://hl7.org/fhir/ValueSet/referencerange-meaning
227
+ :path: referenceRange.type
228
+ - :type: CodeableConcept
229
+ :strength: example
230
+ :system: http://hl7.org/fhir/ValueSet/referencerange-appliesto
231
+ :path: referenceRange.appliesTo
232
+ - :type: CodeableConcept
233
+ :strength: extensible
234
+ :system: http://hl7.org/fhir/ValueSet/observation-vitalsignresult
235
+ :path: component.code
236
+ - :type: Quantity
237
+ :strength: required
238
+ :system: http://hl7.org/fhir/ValueSet/ucum-vitals-common
239
+ :path: component.value
240
+ - :type: CodeableConcept
241
+ :strength: extensible
242
+ :system: http://hl7.org/fhir/ValueSet/data-absent-reason
243
+ :path: component.dataAbsentReason
244
+ - :type: CodeableConcept
245
+ :strength: extensible
246
+ :system: http://hl7.org/fhir/ValueSet/observation-interpretation
247
+ :path: component.interpretation
248
+ :references:
249
+ - :path: Observation.basedOn
250
+ :profiles:
251
+ - http://hl7.org/fhir/StructureDefinition/CarePlan
252
+ - http://hl7.org/fhir/StructureDefinition/DeviceRequest
253
+ - http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation
254
+ - http://hl7.org/fhir/StructureDefinition/MedicationRequest
255
+ - http://hl7.org/fhir/StructureDefinition/NutritionOrder
256
+ - http://hl7.org/fhir/StructureDefinition/ServiceRequest
257
+ - :path: Observation.partOf
258
+ :profiles:
259
+ - http://hl7.org/fhir/StructureDefinition/MedicationAdministration
260
+ - http://hl7.org/fhir/StructureDefinition/MedicationDispense
261
+ - http://hl7.org/fhir/StructureDefinition/MedicationStatement
262
+ - http://hl7.org/fhir/StructureDefinition/Procedure
263
+ - http://hl7.org/fhir/StructureDefinition/Immunization
264
+ - http://hl7.org/fhir/StructureDefinition/ImagingStudy
265
+ - :path: Observation.subject
266
+ :profiles:
267
+ - http://hl7.org/fhir/StructureDefinition/Patient
268
+ - :path: Observation.focus
269
+ :profiles:
270
+ - http://hl7.org/fhir/StructureDefinition/Resource
271
+ - :path: Observation.encounter
272
+ :profiles:
273
+ - http://hl7.org/fhir/StructureDefinition/Encounter
274
+ - :path: Observation.performer
275
+ :profiles:
276
+ - http://hl7.org/fhir/StructureDefinition/Practitioner
277
+ - http://hl7.org/fhir/StructureDefinition/PractitionerRole
278
+ - http://hl7.org/fhir/StructureDefinition/Organization
279
+ - http://hl7.org/fhir/StructureDefinition/CareTeam
280
+ - http://hl7.org/fhir/StructureDefinition/Patient
281
+ - http://hl7.org/fhir/StructureDefinition/RelatedPerson
282
+ - :path: Observation.specimen
283
+ :profiles:
284
+ - http://hl7.org/fhir/StructureDefinition/Specimen
285
+ - :path: Observation.device
286
+ :profiles:
287
+ - http://hl7.org/fhir/StructureDefinition/Device
288
+ - http://hl7.org/fhir/StructureDefinition/DeviceMetric
289
+ - :path: Observation.hasMember
290
+ :profiles:
291
+ - http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse
292
+ - http://hl7.org/fhir/StructureDefinition/MolecularSequence
293
+ - http://hl7.org/fhir/StructureDefinition/vitalsigns
294
+ - :path: Observation.derivedFrom
295
+ :profiles:
296
+ - http://hl7.org/fhir/StructureDefinition/DocumentReference
297
+ - http://hl7.org/fhir/StructureDefinition/ImagingStudy
298
+ - http://hl7.org/fhir/StructureDefinition/Media
299
+ - http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse
300
+ - http://hl7.org/fhir/StructureDefinition/MolecularSequence
301
+ - http://hl7.org/fhir/StructureDefinition/vitalsigns
302
+ :tests:
303
+ - :id: ipa_010_resprate_patient_code_search_test
304
+ :file_name: resprate_patient_code_search_test.rb
305
+ - :id: ipa_010_resprate_patient_category_date_search_test
306
+ :file_name: resprate_patient_category_date_search_test.rb
307
+ - :id: ipa_010_resprate_patient_category_status_search_test
308
+ :file_name: resprate_patient_category_status_search_test.rb
309
+ - :id: ipa_010_resprate_patient_code_date_search_test
310
+ :file_name: resprate_patient_code_date_search_test.rb
311
+ - :id: ipa_010_resprate_patient_category_search_test
312
+ :file_name: resprate_patient_category_search_test.rb
313
+ - :id: ipa_010_resprate_read_test
314
+ :file_name: resprate_read_test.rb
315
+ - :id: ipa_010_resprate_provenance_revinclude_search_test
316
+ :file_name: resprate_provenance_revinclude_search_test.rb
317
+ - :id: ipa_010_resprate_validation_test
318
+ :file_name: resprate_validation_test.rb
319
+ - :id: ipa_010_resprate_must_support_test
320
+ :file_name: resprate_must_support_test.rb
321
+ - :id: ipa_010_resprate_reference_resolution_test
322
+ :file_name: resprate_reference_resolution_test.rb
323
+ :id: ipa_010_resprate
324
+ :file_name: resprate_group.rb
325
+ :delayed_references: []
@@ -0,0 +1,49 @@
1
+ require_relative '../../must_support_test'
2
+
3
+ module IpaTestKit
4
+ class ResprateMustSupportTest < 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.effective[x]
21
+ * Observation.status
22
+ * Observation.subject
23
+ * Observation.value[x]
24
+ * Observation.value[x].code
25
+ * Observation.value[x].system
26
+ * Observation.value[x].unit
27
+ * Observation.value[x].value
28
+ * Observation.value[x]:valueQuantity
29
+ )
30
+
31
+ id :ipa_010_resprate_must_support_test
32
+
33
+ def resource_type
34
+ 'Observation'
35
+ end
36
+
37
+ def self.metadata
38
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
39
+ end
40
+
41
+ def scratch_resources
42
+ scratch[:resprate_resources] ||= {}
43
+ end
44
+
45
+ run do
46
+ perform_must_support_test(all_scratch_resources)
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,46 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ class RespratePatientCategoryDateSearchTest < 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_resprate_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[:resprate_resources] ||= {}
40
+ end
41
+
42
+ run do
43
+ run_search_test
44
+ end
45
+ end
46
+ end