us_core_test_kit 0.1.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 (350) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/lib/us_core_test_kit/custom_groups/capability_statement/conformance_support_test.rb +41 -0
  4. data/lib/us_core_test_kit/custom_groups/capability_statement/fhir_version_test.rb +15 -0
  5. data/lib/us_core_test_kit/custom_groups/capability_statement/json_support_test.rb +40 -0
  6. data/lib/us_core_test_kit/custom_groups/capability_statement/profile_support_test.rb +90 -0
  7. data/lib/us_core_test_kit/custom_groups/capability_statement_group.rb +64 -0
  8. data/lib/us_core_test_kit/custom_groups/clinical_notes_guidance_group.rb +208 -0
  9. data/lib/us_core_test_kit/custom_groups/data_absent_reason_group.rb +59 -0
  10. data/lib/us_core_test_kit/date_search_validation.rb +101 -0
  11. data/lib/us_core_test_kit/ext/fhir_models.rb +59 -0
  12. data/lib/us_core_test_kit/fhir_resource_navigation.rb +63 -0
  13. data/lib/us_core_test_kit/generated/allergy_intolerance/allergy_intolerance_must_support_test.rb +40 -0
  14. data/lib/us_core_test_kit/generated/allergy_intolerance/allergy_intolerance_patient_clinical_status_search_test.rb +46 -0
  15. data/lib/us_core_test_kit/generated/allergy_intolerance/allergy_intolerance_patient_search_test.rb +60 -0
  16. data/lib/us_core_test_kit/generated/allergy_intolerance/allergy_intolerance_provenance_revinclude_search_test.rb +49 -0
  17. data/lib/us_core_test_kit/generated/allergy_intolerance/allergy_intolerance_read_test.rb +24 -0
  18. data/lib/us_core_test_kit/generated/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +28 -0
  19. data/lib/us_core_test_kit/generated/allergy_intolerance/allergy_intolerance_validation_test.rb +34 -0
  20. data/lib/us_core_test_kit/generated/allergy_intolerance_group.rb +85 -0
  21. data/lib/us_core_test_kit/generated/bodyheight/bodyheight_must_support_test.rb +49 -0
  22. data/lib/us_core_test_kit/generated/bodyheight/bodyheight_patient_category_date_search_test.rb +46 -0
  23. data/lib/us_core_test_kit/generated/bodyheight/bodyheight_patient_category_search_test.rb +45 -0
  24. data/lib/us_core_test_kit/generated/bodyheight/bodyheight_patient_category_status_search_test.rb +47 -0
  25. data/lib/us_core_test_kit/generated/bodyheight/bodyheight_patient_code_date_search_test.rb +48 -0
  26. data/lib/us_core_test_kit/generated/bodyheight/bodyheight_patient_code_search_test.rb +62 -0
  27. data/lib/us_core_test_kit/generated/bodyheight/bodyheight_provenance_revinclude_search_test.rb +51 -0
  28. data/lib/us_core_test_kit/generated/bodyheight/bodyheight_read_test.rb +24 -0
  29. data/lib/us_core_test_kit/generated/bodyheight/bodyheight_reference_resolution_test.rb +28 -0
  30. data/lib/us_core_test_kit/generated/bodyheight/bodyheight_validation_test.rb +34 -0
  31. data/lib/us_core_test_kit/generated/bodyheight_group.rb +93 -0
  32. data/lib/us_core_test_kit/generated/bodytemp/bodytemp_must_support_test.rb +49 -0
  33. data/lib/us_core_test_kit/generated/bodytemp/bodytemp_patient_category_date_search_test.rb +46 -0
  34. data/lib/us_core_test_kit/generated/bodytemp/bodytemp_patient_category_search_test.rb +45 -0
  35. data/lib/us_core_test_kit/generated/bodytemp/bodytemp_patient_category_status_search_test.rb +47 -0
  36. data/lib/us_core_test_kit/generated/bodytemp/bodytemp_patient_code_date_search_test.rb +48 -0
  37. data/lib/us_core_test_kit/generated/bodytemp/bodytemp_patient_code_search_test.rb +62 -0
  38. data/lib/us_core_test_kit/generated/bodytemp/bodytemp_provenance_revinclude_search_test.rb +51 -0
  39. data/lib/us_core_test_kit/generated/bodytemp/bodytemp_read_test.rb +24 -0
  40. data/lib/us_core_test_kit/generated/bodytemp/bodytemp_reference_resolution_test.rb +28 -0
  41. data/lib/us_core_test_kit/generated/bodytemp/bodytemp_validation_test.rb +34 -0
  42. data/lib/us_core_test_kit/generated/bodytemp_group.rb +93 -0
  43. data/lib/us_core_test_kit/generated/bodyweight/bodyweight_must_support_test.rb +49 -0
  44. data/lib/us_core_test_kit/generated/bodyweight/bodyweight_patient_category_date_search_test.rb +46 -0
  45. data/lib/us_core_test_kit/generated/bodyweight/bodyweight_patient_category_search_test.rb +45 -0
  46. data/lib/us_core_test_kit/generated/bodyweight/bodyweight_patient_category_status_search_test.rb +47 -0
  47. data/lib/us_core_test_kit/generated/bodyweight/bodyweight_patient_code_date_search_test.rb +48 -0
  48. data/lib/us_core_test_kit/generated/bodyweight/bodyweight_patient_code_search_test.rb +62 -0
  49. data/lib/us_core_test_kit/generated/bodyweight/bodyweight_provenance_revinclude_search_test.rb +51 -0
  50. data/lib/us_core_test_kit/generated/bodyweight/bodyweight_read_test.rb +24 -0
  51. data/lib/us_core_test_kit/generated/bodyweight/bodyweight_reference_resolution_test.rb +28 -0
  52. data/lib/us_core_test_kit/generated/bodyweight/bodyweight_validation_test.rb +34 -0
  53. data/lib/us_core_test_kit/generated/bodyweight_group.rb +93 -0
  54. data/lib/us_core_test_kit/generated/bp/bp_must_support_test.rb +52 -0
  55. data/lib/us_core_test_kit/generated/bp/bp_patient_category_date_search_test.rb +46 -0
  56. data/lib/us_core_test_kit/generated/bp/bp_patient_category_search_test.rb +45 -0
  57. data/lib/us_core_test_kit/generated/bp/bp_patient_category_status_search_test.rb +47 -0
  58. data/lib/us_core_test_kit/generated/bp/bp_patient_code_date_search_test.rb +48 -0
  59. data/lib/us_core_test_kit/generated/bp/bp_patient_code_search_test.rb +62 -0
  60. data/lib/us_core_test_kit/generated/bp/bp_provenance_revinclude_search_test.rb +51 -0
  61. data/lib/us_core_test_kit/generated/bp/bp_read_test.rb +24 -0
  62. data/lib/us_core_test_kit/generated/bp/bp_reference_resolution_test.rb +28 -0
  63. data/lib/us_core_test_kit/generated/bp/bp_validation_test.rb +34 -0
  64. data/lib/us_core_test_kit/generated/bp_group.rb +93 -0
  65. data/lib/us_core_test_kit/generated/care_plan/care_plan_must_support_test.rb +41 -0
  66. data/lib/us_core_test_kit/generated/care_plan/care_plan_patient_category_date_search_test.rb +48 -0
  67. data/lib/us_core_test_kit/generated/care_plan/care_plan_patient_category_search_test.rb +62 -0
  68. data/lib/us_core_test_kit/generated/care_plan/care_plan_patient_category_status_date_search_test.rb +48 -0
  69. data/lib/us_core_test_kit/generated/care_plan/care_plan_patient_category_status_search_test.rb +47 -0
  70. data/lib/us_core_test_kit/generated/care_plan/care_plan_provenance_revinclude_search_test.rb +51 -0
  71. data/lib/us_core_test_kit/generated/care_plan/care_plan_read_test.rb +24 -0
  72. data/lib/us_core_test_kit/generated/care_plan/care_plan_reference_resolution_test.rb +28 -0
  73. data/lib/us_core_test_kit/generated/care_plan/care_plan_validation_test.rb +34 -0
  74. data/lib/us_core_test_kit/generated/care_plan_group.rb +89 -0
  75. data/lib/us_core_test_kit/generated/care_team/care_team_must_support_test.rb +39 -0
  76. data/lib/us_core_test_kit/generated/care_team/care_team_patient_status_search_test.rb +62 -0
  77. data/lib/us_core_test_kit/generated/care_team/care_team_provenance_revinclude_search_test.rb +50 -0
  78. data/lib/us_core_test_kit/generated/care_team/care_team_read_test.rb +24 -0
  79. data/lib/us_core_test_kit/generated/care_team/care_team_reference_resolution_test.rb +28 -0
  80. data/lib/us_core_test_kit/generated/care_team/care_team_validation_test.rb +34 -0
  81. data/lib/us_core_test_kit/generated/care_team_group.rb +83 -0
  82. data/lib/us_core_test_kit/generated/condition/condition_must_support_test.rb +39 -0
  83. data/lib/us_core_test_kit/generated/condition/condition_patient_category_search_test.rb +47 -0
  84. data/lib/us_core_test_kit/generated/condition/condition_patient_clinical_status_search_test.rb +46 -0
  85. data/lib/us_core_test_kit/generated/condition/condition_patient_code_search_test.rb +47 -0
  86. data/lib/us_core_test_kit/generated/condition/condition_patient_onset_date_search_test.rb +47 -0
  87. data/lib/us_core_test_kit/generated/condition/condition_patient_search_test.rb +60 -0
  88. data/lib/us_core_test_kit/generated/condition/condition_provenance_revinclude_search_test.rb +49 -0
  89. data/lib/us_core_test_kit/generated/condition/condition_read_test.rb +24 -0
  90. data/lib/us_core_test_kit/generated/condition/condition_reference_resolution_test.rb +28 -0
  91. data/lib/us_core_test_kit/generated/condition/condition_validation_test.rb +34 -0
  92. data/lib/us_core_test_kit/generated/condition_group.rb +91 -0
  93. data/lib/us_core_test_kit/generated/device/device_must_support_test.rb +43 -0
  94. data/lib/us_core_test_kit/generated/device/device_patient_search_test.rb +65 -0
  95. data/lib/us_core_test_kit/generated/device/device_patient_type_search_test.rb +52 -0
  96. data/lib/us_core_test_kit/generated/device/device_provenance_revinclude_search_test.rb +49 -0
  97. data/lib/us_core_test_kit/generated/device/device_read_test.rb +24 -0
  98. data/lib/us_core_test_kit/generated/device/device_reference_resolution_test.rb +28 -0
  99. data/lib/us_core_test_kit/generated/device/device_validation_test.rb +34 -0
  100. data/lib/us_core_test_kit/generated/device_group.rb +85 -0
  101. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_must_support_test.rb +43 -0
  102. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_patient_category_date_search_test.rb +46 -0
  103. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_patient_category_search_test.rb +63 -0
  104. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_patient_code_date_search_test.rb +48 -0
  105. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_patient_code_search_test.rb +45 -0
  106. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_patient_search_test.rb +44 -0
  107. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_patient_status_search_test.rb +46 -0
  108. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_provenance_revinclude_search_test.rb +51 -0
  109. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_read_test.rb +24 -0
  110. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_reference_resolution_test.rb +28 -0
  111. data/lib/us_core_test_kit/generated/diagnostic_report_lab/diagnostic_report_lab_validation_test.rb +34 -0
  112. data/lib/us_core_test_kit/generated/diagnostic_report_lab_group.rb +96 -0
  113. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_must_support_test.rb +43 -0
  114. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_patient_category_date_search_test.rb +46 -0
  115. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_patient_category_search_test.rb +63 -0
  116. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_patient_code_date_search_test.rb +48 -0
  117. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_patient_code_search_test.rb +45 -0
  118. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_patient_search_test.rb +44 -0
  119. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_patient_status_search_test.rb +46 -0
  120. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_provenance_revinclude_search_test.rb +51 -0
  121. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_read_test.rb +24 -0
  122. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +28 -0
  123. data/lib/us_core_test_kit/generated/diagnostic_report_note/diagnostic_report_note_validation_test.rb +34 -0
  124. data/lib/us_core_test_kit/generated/diagnostic_report_note_group.rb +96 -0
  125. data/lib/us_core_test_kit/generated/document_reference/document_reference_id_search_test.rb +40 -0
  126. data/lib/us_core_test_kit/generated/document_reference/document_reference_must_support_test.rb +49 -0
  127. data/lib/us_core_test_kit/generated/document_reference/document_reference_patient_category_date_search_test.rb +46 -0
  128. data/lib/us_core_test_kit/generated/document_reference/document_reference_patient_category_search_test.rb +45 -0
  129. data/lib/us_core_test_kit/generated/document_reference/document_reference_patient_search_test.rb +61 -0
  130. data/lib/us_core_test_kit/generated/document_reference/document_reference_patient_status_search_test.rb +46 -0
  131. data/lib/us_core_test_kit/generated/document_reference/document_reference_patient_type_period_search_test.rb +48 -0
  132. data/lib/us_core_test_kit/generated/document_reference/document_reference_patient_type_search_test.rb +45 -0
  133. data/lib/us_core_test_kit/generated/document_reference/document_reference_provenance_revinclude_search_test.rb +50 -0
  134. data/lib/us_core_test_kit/generated/document_reference/document_reference_read_test.rb +24 -0
  135. data/lib/us_core_test_kit/generated/document_reference/document_reference_reference_resolution_test.rb +28 -0
  136. data/lib/us_core_test_kit/generated/document_reference/document_reference_validation_test.rb +34 -0
  137. data/lib/us_core_test_kit/generated/document_reference_group.rb +99 -0
  138. data/lib/us_core_test_kit/generated/encounter/encounter_class_patient_search_test.rb +47 -0
  139. data/lib/us_core_test_kit/generated/encounter/encounter_date_patient_search_test.rb +45 -0
  140. data/lib/us_core_test_kit/generated/encounter/encounter_id_search_test.rb +40 -0
  141. data/lib/us_core_test_kit/generated/encounter/encounter_identifier_search_test.rb +43 -0
  142. data/lib/us_core_test_kit/generated/encounter/encounter_must_support_test.rb +51 -0
  143. data/lib/us_core_test_kit/generated/encounter/encounter_patient_search_test.rb +61 -0
  144. data/lib/us_core_test_kit/generated/encounter/encounter_patient_status_search_test.rb +45 -0
  145. data/lib/us_core_test_kit/generated/encounter/encounter_patient_type_search_test.rb +47 -0
  146. data/lib/us_core_test_kit/generated/encounter/encounter_provenance_revinclude_search_test.rb +50 -0
  147. data/lib/us_core_test_kit/generated/encounter/encounter_read_test.rb +24 -0
  148. data/lib/us_core_test_kit/generated/encounter/encounter_reference_resolution_test.rb +28 -0
  149. data/lib/us_core_test_kit/generated/encounter/encounter_validation_test.rb +34 -0
  150. data/lib/us_core_test_kit/generated/encounter_group.rb +97 -0
  151. data/lib/us_core_test_kit/generated/goal/goal_must_support_test.rb +39 -0
  152. data/lib/us_core_test_kit/generated/goal/goal_patient_lifecycle_status_search_test.rb +45 -0
  153. data/lib/us_core_test_kit/generated/goal/goal_patient_search_test.rb +60 -0
  154. data/lib/us_core_test_kit/generated/goal/goal_patient_target_date_search_test.rb +47 -0
  155. data/lib/us_core_test_kit/generated/goal/goal_provenance_revinclude_search_test.rb +49 -0
  156. data/lib/us_core_test_kit/generated/goal/goal_read_test.rb +24 -0
  157. data/lib/us_core_test_kit/generated/goal/goal_reference_resolution_test.rb +28 -0
  158. data/lib/us_core_test_kit/generated/goal/goal_validation_test.rb +34 -0
  159. data/lib/us_core_test_kit/generated/goal_group.rb +87 -0
  160. data/lib/us_core_test_kit/generated/head_circumference/head_circumference_must_support_test.rb +49 -0
  161. data/lib/us_core_test_kit/generated/head_circumference/head_circumference_patient_category_date_search_test.rb +46 -0
  162. data/lib/us_core_test_kit/generated/head_circumference/head_circumference_patient_category_search_test.rb +45 -0
  163. data/lib/us_core_test_kit/generated/head_circumference/head_circumference_patient_category_status_search_test.rb +47 -0
  164. data/lib/us_core_test_kit/generated/head_circumference/head_circumference_patient_code_date_search_test.rb +48 -0
  165. data/lib/us_core_test_kit/generated/head_circumference/head_circumference_patient_code_search_test.rb +62 -0
  166. data/lib/us_core_test_kit/generated/head_circumference/head_circumference_provenance_revinclude_search_test.rb +51 -0
  167. data/lib/us_core_test_kit/generated/head_circumference/head_circumference_read_test.rb +24 -0
  168. data/lib/us_core_test_kit/generated/head_circumference/head_circumference_reference_resolution_test.rb +28 -0
  169. data/lib/us_core_test_kit/generated/head_circumference/head_circumference_validation_test.rb +34 -0
  170. data/lib/us_core_test_kit/generated/head_circumference_group.rb +93 -0
  171. data/lib/us_core_test_kit/generated/heartrate/heartrate_must_support_test.rb +49 -0
  172. data/lib/us_core_test_kit/generated/heartrate/heartrate_patient_category_date_search_test.rb +46 -0
  173. data/lib/us_core_test_kit/generated/heartrate/heartrate_patient_category_search_test.rb +45 -0
  174. data/lib/us_core_test_kit/generated/heartrate/heartrate_patient_category_status_search_test.rb +47 -0
  175. data/lib/us_core_test_kit/generated/heartrate/heartrate_patient_code_date_search_test.rb +48 -0
  176. data/lib/us_core_test_kit/generated/heartrate/heartrate_patient_code_search_test.rb +62 -0
  177. data/lib/us_core_test_kit/generated/heartrate/heartrate_provenance_revinclude_search_test.rb +51 -0
  178. data/lib/us_core_test_kit/generated/heartrate/heartrate_read_test.rb +24 -0
  179. data/lib/us_core_test_kit/generated/heartrate/heartrate_reference_resolution_test.rb +28 -0
  180. data/lib/us_core_test_kit/generated/heartrate/heartrate_validation_test.rb +34 -0
  181. data/lib/us_core_test_kit/generated/heartrate_group.rb +93 -0
  182. data/lib/us_core_test_kit/generated/immunization/immunization_must_support_test.rb +40 -0
  183. data/lib/us_core_test_kit/generated/immunization/immunization_patient_date_search_test.rb +47 -0
  184. data/lib/us_core_test_kit/generated/immunization/immunization_patient_search_test.rb +60 -0
  185. data/lib/us_core_test_kit/generated/immunization/immunization_patient_status_search_test.rb +45 -0
  186. data/lib/us_core_test_kit/generated/immunization/immunization_provenance_revinclude_search_test.rb +50 -0
  187. data/lib/us_core_test_kit/generated/immunization/immunization_read_test.rb +24 -0
  188. data/lib/us_core_test_kit/generated/immunization/immunization_reference_resolution_test.rb +28 -0
  189. data/lib/us_core_test_kit/generated/immunization/immunization_validation_test.rb +34 -0
  190. data/lib/us_core_test_kit/generated/immunization_group.rb +87 -0
  191. data/lib/us_core_test_kit/generated/medication_request/medication_request_must_support_test.rb +44 -0
  192. data/lib/us_core_test_kit/generated/medication_request/medication_request_patient_intent_authoredon_search_test.rb +53 -0
  193. data/lib/us_core_test_kit/generated/medication_request/medication_request_patient_intent_encounter_search_test.rb +52 -0
  194. data/lib/us_core_test_kit/generated/medication_request/medication_request_patient_intent_search_test.rb +68 -0
  195. data/lib/us_core_test_kit/generated/medication_request/medication_request_patient_intent_status_search_test.rb +49 -0
  196. data/lib/us_core_test_kit/generated/medication_request/medication_request_provenance_revinclude_search_test.rb +51 -0
  197. data/lib/us_core_test_kit/generated/medication_request/medication_request_read_test.rb +24 -0
  198. data/lib/us_core_test_kit/generated/medication_request/medication_request_reference_resolution_test.rb +28 -0
  199. data/lib/us_core_test_kit/generated/medication_request/medication_request_validation_test.rb +34 -0
  200. data/lib/us_core_test_kit/generated/medication_request/medication_validation_test.rb +34 -0
  201. data/lib/us_core_test_kit/generated/medication_request_group.rb +92 -0
  202. data/lib/us_core_test_kit/generated/observation_lab/observation_lab_must_support_test.rb +41 -0
  203. data/lib/us_core_test_kit/generated/observation_lab/observation_lab_patient_category_date_search_test.rb +46 -0
  204. data/lib/us_core_test_kit/generated/observation_lab/observation_lab_patient_category_search_test.rb +62 -0
  205. data/lib/us_core_test_kit/generated/observation_lab/observation_lab_patient_category_status_search_test.rb +47 -0
  206. data/lib/us_core_test_kit/generated/observation_lab/observation_lab_patient_code_date_search_test.rb +48 -0
  207. data/lib/us_core_test_kit/generated/observation_lab/observation_lab_patient_code_search_test.rb +45 -0
  208. data/lib/us_core_test_kit/generated/observation_lab/observation_lab_provenance_revinclude_search_test.rb +51 -0
  209. data/lib/us_core_test_kit/generated/observation_lab/observation_lab_read_test.rb +24 -0
  210. data/lib/us_core_test_kit/generated/observation_lab/observation_lab_reference_resolution_test.rb +28 -0
  211. data/lib/us_core_test_kit/generated/observation_lab/observation_lab_validation_test.rb +34 -0
  212. data/lib/us_core_test_kit/generated/observation_lab_group.rb +93 -0
  213. data/lib/us_core_test_kit/generated/organization/organization_address_search_test.rb +39 -0
  214. data/lib/us_core_test_kit/generated/organization/organization_must_support_test.rb +47 -0
  215. data/lib/us_core_test_kit/generated/organization/organization_name_search_test.rb +49 -0
  216. data/lib/us_core_test_kit/generated/organization/organization_read_test.rb +24 -0
  217. data/lib/us_core_test_kit/generated/organization/organization_reference_resolution_test.rb +28 -0
  218. data/lib/us_core_test_kit/generated/organization/organization_validation_test.rb +34 -0
  219. data/lib/us_core_test_kit/generated/organization_group.rb +84 -0
  220. data/lib/us_core_test_kit/generated/patient/patient_birthdate_family_search_test.rb +41 -0
  221. data/lib/us_core_test_kit/generated/patient/patient_birthdate_name_search_test.rb +39 -0
  222. data/lib/us_core_test_kit/generated/patient/patient_family_gender_search_test.rb +41 -0
  223. data/lib/us_core_test_kit/generated/patient/patient_gender_name_search_test.rb +39 -0
  224. data/lib/us_core_test_kit/generated/patient/patient_id_search_test.rb +53 -0
  225. data/lib/us_core_test_kit/generated/patient/patient_identifier_search_test.rb +40 -0
  226. data/lib/us_core_test_kit/generated/patient/patient_must_support_test.rb +57 -0
  227. data/lib/us_core_test_kit/generated/patient/patient_name_search_test.rb +39 -0
  228. data/lib/us_core_test_kit/generated/patient/patient_provenance_revinclude_search_test.rb +49 -0
  229. data/lib/us_core_test_kit/generated/patient/patient_read_test.rb +24 -0
  230. data/lib/us_core_test_kit/generated/patient/patient_reference_resolution_test.rb +28 -0
  231. data/lib/us_core_test_kit/generated/patient/patient_validation_test.rb +34 -0
  232. data/lib/us_core_test_kit/generated/patient_group.rb +99 -0
  233. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age/pediatric_bmi_for_age_must_support_test.rb +49 -0
  234. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age/pediatric_bmi_for_age_patient_category_date_search_test.rb +46 -0
  235. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age/pediatric_bmi_for_age_patient_category_search_test.rb +45 -0
  236. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age/pediatric_bmi_for_age_patient_category_status_search_test.rb +47 -0
  237. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age/pediatric_bmi_for_age_patient_code_date_search_test.rb +48 -0
  238. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age/pediatric_bmi_for_age_patient_code_search_test.rb +62 -0
  239. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age/pediatric_bmi_for_age_provenance_revinclude_search_test.rb +51 -0
  240. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age/pediatric_bmi_for_age_read_test.rb +24 -0
  241. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age/pediatric_bmi_for_age_reference_resolution_test.rb +28 -0
  242. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age/pediatric_bmi_for_age_validation_test.rb +34 -0
  243. data/lib/us_core_test_kit/generated/pediatric_bmi_for_age_group.rb +93 -0
  244. data/lib/us_core_test_kit/generated/pediatric_weight_for_height/pediatric_weight_for_height_must_support_test.rb +49 -0
  245. data/lib/us_core_test_kit/generated/pediatric_weight_for_height/pediatric_weight_for_height_patient_category_date_search_test.rb +46 -0
  246. data/lib/us_core_test_kit/generated/pediatric_weight_for_height/pediatric_weight_for_height_patient_category_search_test.rb +45 -0
  247. data/lib/us_core_test_kit/generated/pediatric_weight_for_height/pediatric_weight_for_height_patient_category_status_search_test.rb +47 -0
  248. data/lib/us_core_test_kit/generated/pediatric_weight_for_height/pediatric_weight_for_height_patient_code_date_search_test.rb +48 -0
  249. data/lib/us_core_test_kit/generated/pediatric_weight_for_height/pediatric_weight_for_height_patient_code_search_test.rb +62 -0
  250. data/lib/us_core_test_kit/generated/pediatric_weight_for_height/pediatric_weight_for_height_provenance_revinclude_search_test.rb +51 -0
  251. data/lib/us_core_test_kit/generated/pediatric_weight_for_height/pediatric_weight_for_height_read_test.rb +24 -0
  252. data/lib/us_core_test_kit/generated/pediatric_weight_for_height/pediatric_weight_for_height_reference_resolution_test.rb +28 -0
  253. data/lib/us_core_test_kit/generated/pediatric_weight_for_height/pediatric_weight_for_height_validation_test.rb +34 -0
  254. data/lib/us_core_test_kit/generated/pediatric_weight_for_height_group.rb +93 -0
  255. data/lib/us_core_test_kit/generated/practitioner/practitioner_identifier_search_test.rb +40 -0
  256. data/lib/us_core_test_kit/generated/practitioner/practitioner_must_support_test.rb +40 -0
  257. data/lib/us_core_test_kit/generated/practitioner/practitioner_name_search_test.rb +49 -0
  258. data/lib/us_core_test_kit/generated/practitioner/practitioner_read_test.rb +24 -0
  259. data/lib/us_core_test_kit/generated/practitioner/practitioner_reference_resolution_test.rb +28 -0
  260. data/lib/us_core_test_kit/generated/practitioner/practitioner_validation_test.rb +34 -0
  261. data/lib/us_core_test_kit/generated/practitioner_group.rb +84 -0
  262. data/lib/us_core_test_kit/generated/procedure/procedure_must_support_test.rb +38 -0
  263. data/lib/us_core_test_kit/generated/procedure/procedure_patient_code_date_search_test.rb +48 -0
  264. data/lib/us_core_test_kit/generated/procedure/procedure_patient_date_search_test.rb +45 -0
  265. data/lib/us_core_test_kit/generated/procedure/procedure_patient_search_test.rb +60 -0
  266. data/lib/us_core_test_kit/generated/procedure/procedure_patient_status_search_test.rb +46 -0
  267. data/lib/us_core_test_kit/generated/procedure/procedure_provenance_revinclude_search_test.rb +50 -0
  268. data/lib/us_core_test_kit/generated/procedure/procedure_read_test.rb +24 -0
  269. data/lib/us_core_test_kit/generated/procedure/procedure_reference_resolution_test.rb +28 -0
  270. data/lib/us_core_test_kit/generated/procedure/procedure_validation_test.rb +34 -0
  271. data/lib/us_core_test_kit/generated/procedure_group.rb +90 -0
  272. data/lib/us_core_test_kit/generated/provenance/provenance_must_support_test.rb +44 -0
  273. data/lib/us_core_test_kit/generated/provenance/provenance_read_test.rb +24 -0
  274. data/lib/us_core_test_kit/generated/provenance/provenance_reference_resolution_test.rb +28 -0
  275. data/lib/us_core_test_kit/generated/provenance/provenance_validation_test.rb +34 -0
  276. data/lib/us_core_test_kit/generated/provenance_group.rb +56 -0
  277. data/lib/us_core_test_kit/generated/pulse_oximetry/pulse_oximetry_must_support_test.rb +65 -0
  278. data/lib/us_core_test_kit/generated/pulse_oximetry/pulse_oximetry_patient_category_date_search_test.rb +46 -0
  279. data/lib/us_core_test_kit/generated/pulse_oximetry/pulse_oximetry_patient_category_search_test.rb +45 -0
  280. data/lib/us_core_test_kit/generated/pulse_oximetry/pulse_oximetry_patient_category_status_search_test.rb +47 -0
  281. data/lib/us_core_test_kit/generated/pulse_oximetry/pulse_oximetry_patient_code_date_search_test.rb +48 -0
  282. data/lib/us_core_test_kit/generated/pulse_oximetry/pulse_oximetry_patient_code_search_test.rb +62 -0
  283. data/lib/us_core_test_kit/generated/pulse_oximetry/pulse_oximetry_provenance_revinclude_search_test.rb +51 -0
  284. data/lib/us_core_test_kit/generated/pulse_oximetry/pulse_oximetry_read_test.rb +24 -0
  285. data/lib/us_core_test_kit/generated/pulse_oximetry/pulse_oximetry_reference_resolution_test.rb +28 -0
  286. data/lib/us_core_test_kit/generated/pulse_oximetry/pulse_oximetry_validation_test.rb +34 -0
  287. data/lib/us_core_test_kit/generated/pulse_oximetry_group.rb +93 -0
  288. data/lib/us_core_test_kit/generated/resource_list.rb +26 -0
  289. data/lib/us_core_test_kit/generated/resprate/resprate_must_support_test.rb +49 -0
  290. data/lib/us_core_test_kit/generated/resprate/resprate_patient_category_date_search_test.rb +46 -0
  291. data/lib/us_core_test_kit/generated/resprate/resprate_patient_category_search_test.rb +45 -0
  292. data/lib/us_core_test_kit/generated/resprate/resprate_patient_category_status_search_test.rb +47 -0
  293. data/lib/us_core_test_kit/generated/resprate/resprate_patient_code_date_search_test.rb +48 -0
  294. data/lib/us_core_test_kit/generated/resprate/resprate_patient_code_search_test.rb +62 -0
  295. data/lib/us_core_test_kit/generated/resprate/resprate_provenance_revinclude_search_test.rb +51 -0
  296. data/lib/us_core_test_kit/generated/resprate/resprate_read_test.rb +24 -0
  297. data/lib/us_core_test_kit/generated/resprate/resprate_reference_resolution_test.rb +28 -0
  298. data/lib/us_core_test_kit/generated/resprate/resprate_validation_test.rb +34 -0
  299. data/lib/us_core_test_kit/generated/resprate_group.rb +93 -0
  300. data/lib/us_core_test_kit/generated/smokingstatus/smokingstatus_must_support_test.rb +39 -0
  301. data/lib/us_core_test_kit/generated/smokingstatus/smokingstatus_patient_category_date_search_test.rb +48 -0
  302. data/lib/us_core_test_kit/generated/smokingstatus/smokingstatus_patient_category_search_test.rb +47 -0
  303. data/lib/us_core_test_kit/generated/smokingstatus/smokingstatus_patient_category_status_search_test.rb +47 -0
  304. data/lib/us_core_test_kit/generated/smokingstatus/smokingstatus_patient_code_date_search_test.rb +48 -0
  305. data/lib/us_core_test_kit/generated/smokingstatus/smokingstatus_patient_code_search_test.rb +62 -0
  306. data/lib/us_core_test_kit/generated/smokingstatus/smokingstatus_provenance_revinclude_search_test.rb +51 -0
  307. data/lib/us_core_test_kit/generated/smokingstatus/smokingstatus_read_test.rb +24 -0
  308. data/lib/us_core_test_kit/generated/smokingstatus/smokingstatus_reference_resolution_test.rb +28 -0
  309. data/lib/us_core_test_kit/generated/smokingstatus/smokingstatus_validation_test.rb +34 -0
  310. data/lib/us_core_test_kit/generated/smokingstatus_group.rb +93 -0
  311. data/lib/us_core_test_kit/generated/us_core_test_suite.rb +110 -0
  312. data/lib/us_core_test_kit/generator/group_generator.rb +171 -0
  313. data/lib/us_core_test_kit/generator/group_metadata.rb +98 -0
  314. data/lib/us_core_test_kit/generator/group_metadata_extractor.rb +281 -0
  315. data/lib/us_core_test_kit/generator/ig_loader.rb +63 -0
  316. data/lib/us_core_test_kit/generator/ig_metadata.rb +49 -0
  317. data/lib/us_core_test_kit/generator/ig_metadata_extractor.rb +56 -0
  318. data/lib/us_core_test_kit/generator/ig_resources.rb +48 -0
  319. data/lib/us_core_test_kit/generator/must_support_metadata_extractor.rb +221 -0
  320. data/lib/us_core_test_kit/generator/must_support_test_generator.rb +86 -0
  321. data/lib/us_core_test_kit/generator/naming.rb +58 -0
  322. data/lib/us_core_test_kit/generator/provenance_revinclude_search_test_generator.rb +186 -0
  323. data/lib/us_core_test_kit/generator/read_test_generator.rb +89 -0
  324. data/lib/us_core_test_kit/generator/reference_resolution_test_generator.rb +72 -0
  325. data/lib/us_core_test_kit/generator/resource_list_generator.rb +46 -0
  326. data/lib/us_core_test_kit/generator/search_definition_metadata_extractor.rb +181 -0
  327. data/lib/us_core_test_kit/generator/search_metadata_extractor.rb +74 -0
  328. data/lib/us_core_test_kit/generator/search_test_generator.rb +280 -0
  329. data/lib/us_core_test_kit/generator/special_cases.rb +17 -0
  330. data/lib/us_core_test_kit/generator/suite_generator.rb +67 -0
  331. data/lib/us_core_test_kit/generator/terminology_binding_metadata_extractor.rb +105 -0
  332. data/lib/us_core_test_kit/generator/validation_test_generator.rb +124 -0
  333. data/lib/us_core_test_kit/generator.rb +86 -0
  334. data/lib/us_core_test_kit/igs/StructureDefinition-bodyheight.json +3772 -0
  335. data/lib/us_core_test_kit/igs/StructureDefinition-bodytemp.json +3772 -0
  336. data/lib/us_core_test_kit/igs/StructureDefinition-bodyweight.json +3772 -0
  337. data/lib/us_core_test_kit/igs/StructureDefinition-bp.json +6034 -0
  338. data/lib/us_core_test_kit/igs/StructureDefinition-heartrate.json +3756 -0
  339. data/lib/us_core_test_kit/igs/StructureDefinition-resprate.json +3756 -0
  340. data/lib/us_core_test_kit/igs/package.tgz +0 -0
  341. data/lib/us_core_test_kit/must_support_test.rb +146 -0
  342. data/lib/us_core_test_kit/read_test.rb +62 -0
  343. data/lib/us_core_test_kit/reference_resolution_test.rb +111 -0
  344. data/lib/us_core_test_kit/request_logger.rb +46 -0
  345. data/lib/us_core_test_kit/search_test.rb +686 -0
  346. data/lib/us_core_test_kit/search_test_properties.rb +56 -0
  347. data/lib/us_core_test_kit/validation_test.rb +48 -0
  348. data/lib/us_core_test_kit/version.rb +3 -0
  349. data/lib/us_core_test_kit.rb +2 -0
  350. metadata +477 -0
@@ -0,0 +1,90 @@
1
+ require_relative 'procedure/procedure_patient_search_test'
2
+ require_relative 'procedure/procedure_patient_date_search_test'
3
+ require_relative 'procedure/procedure_patient_status_search_test'
4
+ require_relative 'procedure/procedure_patient_code_date_search_test'
5
+ require_relative 'procedure/procedure_read_test'
6
+ require_relative 'procedure/procedure_provenance_revinclude_search_test'
7
+ require_relative 'procedure/procedure_validation_test'
8
+ require_relative 'procedure/procedure_must_support_test'
9
+ require_relative 'procedure/procedure_reference_resolution_test'
10
+
11
+ module USCoreTestKit
12
+ class ProcedureGroup < Inferno::TestGroup
13
+ title 'Procedure Tests'
14
+ short_description 'Verify support for the server capabilities required by the US Core Procedure Profile.'
15
+ description %(
16
+ # Background
17
+
18
+ The US Core Procedure sequence verifies that the system under test is
19
+ able to provide correct responses for Procedure queries. These queries
20
+ must contain resources conforming to the US Core Procedure Profile as
21
+ specified in the US Core v3.1.1 Implementation Guide.
22
+
23
+ # Testing Methodology
24
+ ## Searching
25
+ This test sequence will first perform each required search associated
26
+ with this resource. This sequence will perform searches with the
27
+ following parameters:
28
+
29
+ * patient
30
+ * patient + date
31
+
32
+ ### Search Parameters
33
+ The first search uses the selected patient(s) from the prior launch
34
+ sequence. Any subsequent searches will look for its parameter values
35
+ from the results of the first search. For example, the `identifier`
36
+ search in the patient sequence is performed by looking for an existing
37
+ `Patient.identifier` from any of the resources returned in the `_id`
38
+ search. If a value cannot be found this way, the search is skipped.
39
+
40
+ ### Search Validation
41
+ Inferno will retrieve up to the first 20 bundle pages of the reply for
42
+ Procedure resources and save them for subsequent tests. Each of
43
+ these resources is then checked to see if it matches the searched
44
+ parameters in accordance with [FHIR search
45
+ guidelines](https://www.hl7.org/fhir/search.html). The test will fail,
46
+ for example, if a Patient search for `gender=male` returns a `female`
47
+ patient.
48
+
49
+
50
+ ## Must Support
51
+ Each profile contains elements marked as "must support". This test
52
+ sequence expects to see each of these elements at least once. If at
53
+ least one cannot be found, the test will fail. The test will look
54
+ through the Procedure resources found in the first test for these
55
+ elements.
56
+
57
+ ## Profile Validation
58
+ Each resource returned from the first search is expected to conform to
59
+ the [US Core Procedure Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-procedure). Each element is checked against
60
+ teminology binding and cardinality requirements.
61
+
62
+ Elements with a required binding are validated against their bound
63
+ ValueSet. If the code/system in the element is not part of the ValueSet,
64
+ then the test will fail.
65
+
66
+ ## Reference Validation
67
+ Each reference within the resources found from the previous tests must
68
+ resolve. The test will attempt to read each reference found and will
69
+ fail if any attempted read fails.
70
+
71
+ )
72
+
73
+ id :us_core_311_procedure
74
+ run_as_group
75
+
76
+ def self.metadata
77
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'procedure', 'metadata.yml')))
78
+ end
79
+
80
+ test from: :us_core_311_procedure_patient_search_test
81
+ test from: :us_core_311_procedure_patient_date_search_test
82
+ test from: :us_core_311_procedure_patient_status_search_test
83
+ test from: :us_core_311_procedure_patient_code_date_search_test
84
+ test from: :us_core_311_procedure_read_test
85
+ test from: :us_core_311_procedure_provenance_revinclude_search_test
86
+ test from: :us_core_311_procedure_validation_test
87
+ test from: :us_core_311_procedure_must_support_test
88
+ test from: :us_core_311_procedure_reference_resolution_test
89
+ end
90
+ end
@@ -0,0 +1,44 @@
1
+ require_relative '../../must_support_test'
2
+
3
+ module USCoreTestKit
4
+ class ProvenanceMustSupportTest < Inferno::Test
5
+ include USCoreTestKit::MustSupportTest
6
+
7
+ title 'All must support elements are provided in the Provenance resources returned'
8
+ description %(
9
+ US Core Responders SHALL be capable of populating all data elements as
10
+ part of the query results as specified by the US Core Server Capability
11
+ Statement. This test will look through the Provenance resources
12
+ found previously for the following must support elements:
13
+
14
+ * Provenance.agent
15
+ * Provenance.agent.onBehalfOf
16
+ * Provenance.agent.type
17
+ * Provenance.agent.type.coding.code
18
+ * Provenance.agent.type.coding.code
19
+ * Provenance.agent.who
20
+ * Provenance.agent:ProvenanceAuthor
21
+ * Provenance.agent:ProvenanceTransmitter
22
+ * Provenance.recorded
23
+ * Provenance.target
24
+ )
25
+
26
+ id :us_core_311_provenance_must_support_test
27
+
28
+ def resource_type
29
+ 'Provenance'
30
+ end
31
+
32
+ def self.metadata
33
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
34
+ end
35
+
36
+ def scratch_resources
37
+ scratch[:provenance_resources] ||= {}
38
+ end
39
+
40
+ run do
41
+ perform_must_support_test(all_scratch_resources)
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,24 @@
1
+ require_relative '../../read_test'
2
+
3
+ module USCoreTestKit
4
+ class ProvenanceReadTest < Inferno::Test
5
+ include USCoreTestKit::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 :us_core_311_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 USCoreTestKit
4
+ class ProvenanceReferenceResolutionTest < Inferno::Test
5
+ include USCoreTestKit::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 :us_core_311_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 USCoreTestKit
4
+ class ProvenanceValidationTest < Inferno::Test
5
+ include USCoreTestKit::ValidationTest
6
+
7
+ id :us_core_311_provenance_validation_test
8
+ title 'Provenance resources returned during previous tests conform to the US Core Provenance Profile'
9
+ description %(
10
+ This test verifies resources returned from the first search conform to
11
+ the [US Core Provenance Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-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/us/core/StructureDefinition/us-core-provenance')
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,56 @@
1
+ require_relative 'provenance/provenance_read_test'
2
+ require_relative 'provenance/provenance_validation_test'
3
+ require_relative 'provenance/provenance_must_support_test'
4
+ require_relative 'provenance/provenance_reference_resolution_test'
5
+
6
+ module USCoreTestKit
7
+ class ProvenanceGroup < Inferno::TestGroup
8
+ title 'Provenance Tests'
9
+ short_description 'Verify support for the server capabilities required by the US Core Provenance Profile.'
10
+ description %(
11
+ # Background
12
+
13
+ The US Core Provenance sequence verifies that the system under test is
14
+ able to provide correct responses for Provenance queries. These queries
15
+ must contain resources conforming to the US Core Provenance Profile as
16
+ specified in the US Core v3.1.1 Implementation Guide.
17
+
18
+ # Testing Methodology
19
+
20
+
21
+ ## Must Support
22
+ Each profile contains elements marked as "must support". This test
23
+ sequence expects to see each of these elements at least once. If at
24
+ least one cannot be found, the test will fail. The test will look
25
+ through the Provenance resources found in the first test for these
26
+ elements.
27
+
28
+ ## Profile Validation
29
+ Each resource returned from the first search is expected to conform to
30
+ the [US Core Provenance Profile](http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance). Each element is checked against
31
+ teminology binding and cardinality requirements.
32
+
33
+ Elements with a required binding are validated against their bound
34
+ ValueSet. If the code/system in the element is not part of the ValueSet,
35
+ then the test will fail.
36
+
37
+ ## Reference Validation
38
+ Each reference within the resources found from the previous tests must
39
+ resolve. The test will attempt to read each reference found and will
40
+ fail if any attempted read fails.
41
+
42
+ )
43
+
44
+ id :us_core_311_provenance
45
+ run_as_group
46
+
47
+ def self.metadata
48
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'provenance', 'metadata.yml')))
49
+ end
50
+
51
+ test from: :us_core_311_provenance_read_test
52
+ test from: :us_core_311_provenance_validation_test
53
+ test from: :us_core_311_provenance_must_support_test
54
+ test from: :us_core_311_provenance_reference_resolution_test
55
+ end
56
+ end
@@ -0,0 +1,65 @@
1
+ require_relative '../../must_support_test'
2
+
3
+ module USCoreTestKit
4
+ class PulseOximetryMustSupportTest < Inferno::Test
5
+ include USCoreTestKit::MustSupportTest
6
+
7
+ title 'All must support elements are provided in the Observation resources returned'
8
+ description %(
9
+ US Core Responders SHALL be capable of populating all data elements as
10
+ part of the query results as specified by the US Core 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:PulseOx
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 :us_core_311_pulse_oximetry_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[:pulse_oximetry_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 USCoreTestKit
5
+ class PulseOximetryPatientCategoryDateSearchTest < Inferno::Test
6
+ include USCoreTestKit::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
+ [US Core Server CapabilityStatement](http://hl7.org/fhir/us/core/STU3.1.1/CapabilityStatement-us-core-server.html)
16
+
17
+ )
18
+
19
+ id :us_core_311_pulse_oximetry_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[:pulse_oximetry_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 USCoreTestKit
5
+ class PulseOximetryPatientCategorySearchTest < Inferno::Test
6
+ include USCoreTestKit::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
+ [US Core Server CapabilityStatement](http://hl7.org/fhir/us/core/STU3.1.1/CapabilityStatement-us-core-server.html)
16
+
17
+ )
18
+
19
+ id :us_core_311_pulse_oximetry_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[:pulse_oximetry_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 USCoreTestKit
5
+ class PulseOximetryPatientCategoryStatusSearchTest < Inferno::Test
6
+ include USCoreTestKit::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
+ [US Core Server CapabilityStatement](http://hl7.org/fhir/us/core/STU3.1.1/CapabilityStatement-us-core-server.html)
16
+
17
+ )
18
+
19
+ id :us_core_311_pulse_oximetry_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[:pulse_oximetry_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 USCoreTestKit
5
+ class PulseOximetryPatientCodeDateSearchTest < Inferno::Test
6
+ include USCoreTestKit::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
+ [US Core Server CapabilityStatement](http://hl7.org/fhir/us/core/STU3.1.1/CapabilityStatement-us-core-server.html)
16
+
17
+ )
18
+
19
+ id :us_core_311_pulse_oximetry_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[:pulse_oximetry_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 USCoreTestKit
5
+ class PulseOximetryPatientCodeSearchTest < Inferno::Test
6
+ include USCoreTestKit::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. US
18
+ Core requires that both forms are supported by US Core 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 US Core v3.1.1.
27
+
28
+ [US Core Server CapabilityStatement](http://hl7.org/fhir/us/core/STU3.1.1/CapabilityStatement-us-core-server.html)
29
+
30
+ )
31
+
32
+ id :us_core_311_pulse_oximetry_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[:pulse_oximetry_resources] ||= {}
56
+ end
57
+
58
+ run do
59
+ run_search_test
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,51 @@
1
+ require_relative '../../search_test'
2
+ require_relative '../../generator/group_metadata'
3
+
4
+ module USCoreTestKit
5
+ class PulseOximetryProvenanceRevincludeSearchTest < Inferno::Test
6
+ include USCoreTestKit::SearchTest
7
+
8
+ title 'Server returns Provenance resources from Observation search by patient + code + revInclude:Provenance:target'
9
+ description %(
10
+ A server SHALL be capable of supporting _revIncludes:Provenance:target.
11
+
12
+ This test will perform a search by patient + code + revInclude:Provenance:target and
13
+ will pass if a Provenance resource is found in the response.
14
+ %)
15
+
16
+ id :us_core_311_pulse_oximetry_provenance_revinclude_search_test
17
+
18
+ input :patient_ids,
19
+ title: 'Patient IDs',
20
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
21
+
22
+ def properties
23
+ @properties ||= SearchTestProperties.new(
24
+ fixed_value_search: true,
25
+ resource_type: 'Observation',
26
+ search_param_names: ['patient', 'code'],
27
+ possible_status_search: true
28
+ )
29
+ end
30
+
31
+ def self.metadata
32
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
33
+ end
34
+
35
+ def self.provenance_metadata
36
+ @provenance_metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, '..', 'provenance', 'metadata.yml')))
37
+ end
38
+
39
+ def scratch_resources
40
+ scratch[:pulse_oximetry_resources] ||= {}
41
+ end
42
+
43
+ def scratch_provenance_resources
44
+ scratch[:provenance_resources] ||= {}
45
+ end
46
+
47
+ run do
48
+ run_provenance_revinclude_search_test
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,24 @@
1
+ require_relative '../../read_test'
2
+
3
+ module USCoreTestKit
4
+ class PulseOximetryReadTest < Inferno::Test
5
+ include USCoreTestKit::ReadTest
6
+
7
+ title 'Server returns correct Observation resource from Observation read interaction'
8
+ description 'A server SHALL support the Observation read interaction.'
9
+
10
+ id :us_core_311_pulse_oximetry_read_test
11
+
12
+ def resource_type
13
+ 'Observation'
14
+ end
15
+
16
+ def scratch_resources
17
+ scratch[:pulse_oximetry_resources] ||= {}
18
+ end
19
+
20
+ run do
21
+ perform_read_test(all_scratch_resources)
22
+ end
23
+ end
24
+ end