ipa_test_kit 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (413) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/conformance_support_test.rb +43 -0
  3. data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/fhir_version_test.rb +17 -0
  4. data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/instantiates_ig_test.rb +22 -0
  5. data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/json_support_test.rb +41 -0
  6. data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/profile_support_test.rb +65 -0
  7. data/lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement_group.rb +73 -0
  8. data/lib/ipa_test_kit/custom_groups/v1.0.0/ipa_smart_launch_group.rb +108 -0
  9. data/lib/ipa_test_kit/fhir_resource_navigation.rb +12 -3
  10. data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_must_support_test.rb +46 -0
  11. data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_patient_clinical_status_search_test.rb +50 -0
  12. data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_patient_search_test.rb +63 -0
  13. data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_provenance_revinclude_search_test.rb +51 -0
  14. data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_read_test.rb +26 -0
  15. data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +42 -0
  16. data/lib/ipa_test_kit/generated/v1.0.0/allergy_intolerance/allergy_intolerance_validation_test.rb +40 -0
  17. data/lib/ipa_test_kit/generated/{allergy_intolerance → v1.0.0/allergy_intolerance}/metadata.yml +88 -58
  18. data/lib/ipa_test_kit/generated/{allergy_intolerance_group.rb → v1.0.0/allergy_intolerance_group.rb} +31 -24
  19. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_must_support_test.rb +47 -0
  20. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_category_clinical_status_search_test.rb +50 -0
  21. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_category_search_test.rb +50 -0
  22. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_clinical_status_search_test.rb +50 -0
  23. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_code_search_test.rb +50 -0
  24. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_onset_date_search_test.rb +49 -0
  25. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_patient_search_test.rb +63 -0
  26. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_provenance_revinclude_search_test.rb +51 -0
  27. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_read_test.rb +26 -0
  28. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_reference_resolution_test.rb +42 -0
  29. data/lib/ipa_test_kit/generated/v1.0.0/condition/condition_validation_test.rb +40 -0
  30. data/lib/ipa_test_kit/generated/v1.0.0/condition/metadata.yml +290 -0
  31. data/lib/ipa_test_kit/generated/{condition_group.rb → v1.0.0/condition_group.rb} +38 -29
  32. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_id_search_test.rb +43 -0
  33. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_must_support_test.rb +56 -0
  34. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_category_date_search_test.rb +48 -0
  35. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_category_search_test.rb +48 -0
  36. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_contenttype_search_test.rb +49 -0
  37. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_search_test.rb +64 -0
  38. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_status_search_test.rb +49 -0
  39. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_type_date_search_test.rb +50 -0
  40. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_type_period_search_test.rb +50 -0
  41. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_patient_type_search_test.rb +48 -0
  42. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_provenance_revinclude_search_test.rb +51 -0
  43. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_read_test.rb +26 -0
  44. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_reference_resolution_test.rb +44 -0
  45. data/lib/ipa_test_kit/generated/v1.0.0/document_reference/document_reference_validation_test.rb +40 -0
  46. data/lib/ipa_test_kit/generated/{document_reference → v1.0.0/document_reference}/metadata.yml +197 -188
  47. data/lib/ipa_test_kit/generated/{document_reference_group.rb → v1.0.0/document_reference_group.rb} +45 -34
  48. data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_must_support_test.rb +47 -0
  49. data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_patient_date_search_test.rb +49 -0
  50. data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_patient_search_test.rb +63 -0
  51. data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_patient_status_search_test.rb +49 -0
  52. data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_provenance_revinclude_search_test.rb +51 -0
  53. data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_read_test.rb +26 -0
  54. data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_reference_resolution_test.rb +42 -0
  55. data/lib/ipa_test_kit/generated/v1.0.0/immunization/immunization_validation_test.rb +40 -0
  56. data/lib/ipa_test_kit/generated/v1.0.0/immunization/metadata.yml +245 -0
  57. data/lib/ipa_test_kit/generated/{immunization_group.rb → v1.0.0/immunization_group.rb} +32 -25
  58. data/lib/ipa_test_kit/generated/v1.0.0/ipa_test_suite.rb +113 -0
  59. data/lib/ipa_test_kit/generated/v1.0.0/medication/medication_must_support_test.rb +43 -0
  60. data/lib/ipa_test_kit/generated/v1.0.0/medication/medication_read_test.rb +26 -0
  61. data/lib/ipa_test_kit/generated/v1.0.0/medication/medication_validation_test.rb +39 -0
  62. data/lib/ipa_test_kit/generated/v1.0.0/medication/metadata.yml +52 -0
  63. data/lib/ipa_test_kit/generated/v1.0.0/medication_group.rb +61 -0
  64. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_category_search_test.rb +51 -0
  65. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_code_search_test.rb +50 -0
  66. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_must_support_test.rb +52 -0
  67. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_patient_intent_authoredon_search_test.rb +54 -0
  68. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_patient_intent_search_test.rb +54 -0
  69. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_patient_intent_status_search_test.rb +54 -0
  70. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_patient_search_test.rb +69 -0
  71. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_provenance_revinclude_search_test.rb +51 -0
  72. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_read_test.rb +26 -0
  73. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_reference_resolution_test.rb +46 -0
  74. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_request_validation_test.rb +40 -0
  75. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/medication_validation_test.rb +39 -0
  76. data/lib/ipa_test_kit/generated/v1.0.0/medication_request/metadata.yml +370 -0
  77. data/lib/ipa_test_kit/generated/{medication_request_group.rb → v1.0.0/medication_request_group.rb} +39 -31
  78. data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_must_support_test.rb +51 -0
  79. data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_patient_search_test.rb +64 -0
  80. data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_patient_status_search_test.rb +49 -0
  81. data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_provenance_revinclude_search_test.rb +51 -0
  82. data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_read_test.rb +26 -0
  83. data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_reference_resolution_test.rb +45 -0
  84. data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/medication_statement_validation_test.rb +40 -0
  85. data/lib/ipa_test_kit/generated/v1.0.0/medication_statement/metadata.yml +222 -0
  86. data/lib/ipa_test_kit/generated/{medication_statement_group.rb → v1.0.0/medication_statement_group.rb} +31 -31
  87. data/lib/ipa_test_kit/generated/v1.0.0/metadata.yml +2846 -0
  88. data/lib/ipa_test_kit/generated/v1.0.0/observation/metadata.yml +341 -0
  89. data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_must_support_test.rb +49 -0
  90. data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_patient_category_date_search_test.rb +48 -0
  91. data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_patient_category_search_test.rb +65 -0
  92. data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_patient_category_status_search_test.rb +50 -0
  93. data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_patient_code_date_search_test.rb +50 -0
  94. data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_patient_code_search_test.rb +48 -0
  95. data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_provenance_revinclude_search_test.rb +52 -0
  96. data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_read_test.rb +26 -0
  97. data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_reference_resolution_test.rb +42 -0
  98. data/lib/ipa_test_kit/generated/v1.0.0/observation/observation_validation_test.rb +40 -0
  99. data/lib/ipa_test_kit/generated/{observation_group.rb → v1.0.0/observation_group.rb} +40 -29
  100. data/lib/ipa_test_kit/generated/v1.0.0/patient/metadata.yml +260 -0
  101. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_birthdate_family_search_test.rb +45 -0
  102. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_birthdate_name_search_test.rb +45 -0
  103. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_birthdate_search_test.rb +45 -0
  104. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_family_gender_search_test.rb +45 -0
  105. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_family_search_test.rb +45 -0
  106. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_gender_name_search_test.rb +45 -0
  107. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_gender_search_test.rb +45 -0
  108. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_given_search_test.rb +45 -0
  109. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_id_search_test.rb +57 -0
  110. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_identifier_search_test.rb +44 -0
  111. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_must_support_test.rb +49 -0
  112. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_name_search_test.rb +45 -0
  113. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_provenance_revinclude_search_test.rb +51 -0
  114. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_read_test.rb +26 -0
  115. data/lib/ipa_test_kit/generated/v1.0.0/patient/patient_validation_test.rb +40 -0
  116. data/lib/ipa_test_kit/generated/{patient_group.rb → v1.0.0/patient_group.rb} +44 -34
  117. data/lib/ipa_test_kit/generated/v1.0.0/practitioner/metadata.yml +48 -0
  118. data/lib/ipa_test_kit/generated/v1.0.0/practitioner/practitioner_must_support_test.rb +43 -0
  119. data/lib/ipa_test_kit/generated/v1.0.0/practitioner/practitioner_provenance_revinclude_search_test.rb +0 -0
  120. data/lib/ipa_test_kit/generated/v1.0.0/practitioner/practitioner_read_test.rb +26 -0
  121. data/lib/ipa_test_kit/generated/v1.0.0/practitioner/practitioner_validation_test.rb +40 -0
  122. data/lib/ipa_test_kit/generated/v1.0.0/practitioner_group.rb +61 -0
  123. data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role/metadata.yml +68 -0
  124. data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role/practitioner_role_must_support_test.rb +43 -0
  125. data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role/practitioner_role_read_test.rb +26 -0
  126. data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role/practitioner_role_reference_resolution_test.rb +42 -0
  127. data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role/practitioner_role_validation_test.rb +40 -0
  128. data/lib/ipa_test_kit/generated/v1.0.0/practitioner_role_group.rb +63 -0
  129. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/metadata.yml +299 -0
  130. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_must_support_test.rb +48 -0
  131. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_category_clinical_status_search_test.rb +50 -0
  132. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_category_search_test.rb +50 -0
  133. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_clinical_status_search_test.rb +50 -0
  134. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_code_search_test.rb +50 -0
  135. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_onset_date_search_test.rb +49 -0
  136. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_patient_search_test.rb +63 -0
  137. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_provenance_revinclude_search_test.rb +51 -0
  138. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_read_test.rb +26 -0
  139. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_reference_resolution_test.rb +42 -0
  140. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item/problem_list_item_validation_test.rb +40 -0
  141. data/lib/ipa_test_kit/generated/v1.0.0/problem_list_item_group.rb +100 -0
  142. data/lib/ipa_test_kit/generated/{resource_list.rb → v1.0.0/resource_list.rb} +7 -6
  143. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/metadata.yml +370 -0
  144. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_must_support_test.rb +57 -0
  145. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_patient_category_date_search_test.rb +48 -0
  146. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_patient_category_search_test.rb +65 -0
  147. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_patient_category_status_search_test.rb +50 -0
  148. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_patient_code_date_search_test.rb +50 -0
  149. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_patient_code_search_test.rb +48 -0
  150. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_provenance_revinclude_search_test.rb +52 -0
  151. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_read_test.rb +26 -0
  152. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_reference_resolution_test.rb +42 -0
  153. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns/vitalsigns_validation_test.rb +40 -0
  154. data/lib/ipa_test_kit/generated/v1.0.0/vitalsigns_group.rb +100 -0
  155. data/lib/ipa_test_kit/generator/group_generator.rb +56 -14
  156. data/lib/ipa_test_kit/generator/group_metadata.rb +5 -17
  157. data/lib/ipa_test_kit/generator/group_metadata_extractor.rb +45 -31
  158. data/lib/ipa_test_kit/generator/ig_loader.rb +15 -2
  159. data/lib/ipa_test_kit/generator/ig_metadata.rb +2 -2
  160. data/lib/ipa_test_kit/generator/ig_metadata_extractor.rb +18 -15
  161. data/lib/ipa_test_kit/generator/ig_resources.rb +3 -2
  162. data/lib/ipa_test_kit/generator/must_support_metadata_extractor.rb +245 -35
  163. data/lib/ipa_test_kit/generator/must_support_test_generator.rb +32 -11
  164. data/lib/ipa_test_kit/generator/naming.rb +31 -17
  165. data/lib/ipa_test_kit/generator/provenance_revinclude_search_test_generator.rb +14 -12
  166. data/lib/ipa_test_kit/generator/read_test_generator.rb +12 -7
  167. data/lib/ipa_test_kit/generator/reference_resolution_test_generator.rb +27 -7
  168. data/lib/ipa_test_kit/generator/resource_list_generator.rb +8 -12
  169. data/lib/ipa_test_kit/generator/search_definition_metadata_extractor.rb +36 -74
  170. data/lib/ipa_test_kit/generator/search_metadata_extractor.rb +4 -3
  171. data/lib/ipa_test_kit/generator/search_test_generator.rb +33 -38
  172. data/lib/ipa_test_kit/generator/special_cases.rb +8 -4
  173. data/lib/ipa_test_kit/generator/suite_generator.rb +41 -8
  174. data/lib/ipa_test_kit/generator/terminology_binding_metadata_extractor.rb +18 -3
  175. data/lib/ipa_test_kit/generator/validation_test_generator.rb +29 -17
  176. data/lib/ipa_test_kit/generator/value_extractor.rb +101 -0
  177. data/lib/ipa_test_kit/generator.rb +48 -14
  178. data/lib/ipa_test_kit/igs/ipa_v100/search-parameters.json +65408 -0
  179. data/lib/ipa_test_kit/igs/ipa_v100/vitalsigns.profile.json +3122 -0
  180. data/lib/ipa_test_kit/igs/ipa_v100.tgz +0 -0
  181. data/lib/ipa_test_kit/must_support_test.rb +50 -1
  182. data/lib/ipa_test_kit/provenance_validator.rb +38 -0
  183. data/lib/ipa_test_kit/read_test.rb +1 -1
  184. data/lib/ipa_test_kit/reference_resolution_test.rb +139 -70
  185. data/lib/ipa_test_kit/search_test.rb +253 -224
  186. data/lib/ipa_test_kit/search_test_properties.rb +3 -13
  187. data/lib/ipa_test_kit/validation_test.rb +13 -5
  188. data/lib/ipa_test_kit/version.rb +1 -1
  189. data/lib/ipa_test_kit.rb +3 -2
  190. metadata +173 -236
  191. data/lib/ipa_test_kit/custom_groups/capability_statement/conformance_support_test.rb +0 -41
  192. data/lib/ipa_test_kit/custom_groups/capability_statement/fhir_version_test.rb +0 -15
  193. data/lib/ipa_test_kit/custom_groups/capability_statement/json_support_test.rb +0 -39
  194. data/lib/ipa_test_kit/custom_groups/capability_statement/profile_support_test.rb +0 -76
  195. data/lib/ipa_test_kit/custom_groups/capability_statement_group.rb +0 -64
  196. data/lib/ipa_test_kit/ext/fhir_models.rb +0 -59
  197. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_must_support_test.rb +0 -40
  198. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_patient_clinical_status_search_test.rb +0 -46
  199. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_patient_search_test.rb +0 -60
  200. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_provenance_revinclude_search_test.rb +0 -49
  201. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_read_test.rb +0 -24
  202. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +0 -28
  203. data/lib/ipa_test_kit/generated/allergy_intolerance/allergy_intolerance_validation_test.rb +0 -34
  204. data/lib/ipa_test_kit/generated/bmi/bmi_must_support_test.rb +0 -49
  205. data/lib/ipa_test_kit/generated/bmi/bmi_patient_category_date_search_test.rb +0 -46
  206. data/lib/ipa_test_kit/generated/bmi/bmi_patient_category_search_test.rb +0 -45
  207. data/lib/ipa_test_kit/generated/bmi/bmi_patient_category_status_search_test.rb +0 -47
  208. data/lib/ipa_test_kit/generated/bmi/bmi_patient_code_date_search_test.rb +0 -48
  209. data/lib/ipa_test_kit/generated/bmi/bmi_patient_code_search_test.rb +0 -62
  210. data/lib/ipa_test_kit/generated/bmi/bmi_provenance_revinclude_search_test.rb +0 -51
  211. data/lib/ipa_test_kit/generated/bmi/bmi_read_test.rb +0 -24
  212. data/lib/ipa_test_kit/generated/bmi/bmi_reference_resolution_test.rb +0 -28
  213. data/lib/ipa_test_kit/generated/bmi/bmi_validation_test.rb +0 -34
  214. data/lib/ipa_test_kit/generated/bmi/metadata.yml +0 -322
  215. data/lib/ipa_test_kit/generated/bmi_group.rb +0 -93
  216. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_must_support_test.rb +0 -49
  217. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_category_date_search_test.rb +0 -46
  218. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_category_search_test.rb +0 -45
  219. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_category_status_search_test.rb +0 -47
  220. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_code_date_search_test.rb +0 -48
  221. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_patient_code_search_test.rb +0 -62
  222. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_provenance_revinclude_search_test.rb +0 -51
  223. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_read_test.rb +0 -24
  224. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_reference_resolution_test.rb +0 -28
  225. data/lib/ipa_test_kit/generated/bodyheight/bodyheight_validation_test.rb +0 -34
  226. data/lib/ipa_test_kit/generated/bodyheight/metadata.yml +0 -328
  227. data/lib/ipa_test_kit/generated/bodyheight_group.rb +0 -93
  228. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_must_support_test.rb +0 -49
  229. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_category_date_search_test.rb +0 -46
  230. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_category_search_test.rb +0 -45
  231. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_category_status_search_test.rb +0 -47
  232. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_code_date_search_test.rb +0 -48
  233. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_patient_code_search_test.rb +0 -62
  234. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_provenance_revinclude_search_test.rb +0 -51
  235. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_read_test.rb +0 -24
  236. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_reference_resolution_test.rb +0 -28
  237. data/lib/ipa_test_kit/generated/bodytemp/bodytemp_validation_test.rb +0 -34
  238. data/lib/ipa_test_kit/generated/bodytemp/metadata.yml +0 -328
  239. data/lib/ipa_test_kit/generated/bodytemp_group.rb +0 -93
  240. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_must_support_test.rb +0 -49
  241. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_category_date_search_test.rb +0 -46
  242. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_category_search_test.rb +0 -45
  243. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_category_status_search_test.rb +0 -47
  244. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_code_date_search_test.rb +0 -48
  245. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_patient_code_search_test.rb +0 -62
  246. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_provenance_revinclude_search_test.rb +0 -51
  247. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_read_test.rb +0 -24
  248. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_reference_resolution_test.rb +0 -28
  249. data/lib/ipa_test_kit/generated/bodyweight/bodyweight_validation_test.rb +0 -34
  250. data/lib/ipa_test_kit/generated/bodyweight/metadata.yml +0 -328
  251. data/lib/ipa_test_kit/generated/bodyweight_group.rb +0 -93
  252. data/lib/ipa_test_kit/generated/bp/bp_must_support_test.rb +0 -52
  253. data/lib/ipa_test_kit/generated/bp/bp_patient_category_date_search_test.rb +0 -46
  254. data/lib/ipa_test_kit/generated/bp/bp_patient_category_search_test.rb +0 -45
  255. data/lib/ipa_test_kit/generated/bp/bp_patient_category_status_search_test.rb +0 -47
  256. data/lib/ipa_test_kit/generated/bp/bp_patient_code_date_search_test.rb +0 -48
  257. data/lib/ipa_test_kit/generated/bp/bp_patient_code_search_test.rb +0 -62
  258. data/lib/ipa_test_kit/generated/bp/bp_provenance_revinclude_search_test.rb +0 -51
  259. data/lib/ipa_test_kit/generated/bp/bp_read_test.rb +0 -24
  260. data/lib/ipa_test_kit/generated/bp/bp_reference_resolution_test.rb +0 -28
  261. data/lib/ipa_test_kit/generated/bp/bp_validation_test.rb +0 -34
  262. data/lib/ipa_test_kit/generated/bp/metadata.yml +0 -379
  263. data/lib/ipa_test_kit/generated/bp_group.rb +0 -93
  264. data/lib/ipa_test_kit/generated/condition/condition_must_support_test.rb +0 -39
  265. data/lib/ipa_test_kit/generated/condition/condition_patient_category_search_test.rb +0 -47
  266. data/lib/ipa_test_kit/generated/condition/condition_patient_clinical_status_search_test.rb +0 -46
  267. data/lib/ipa_test_kit/generated/condition/condition_patient_code_search_test.rb +0 -47
  268. data/lib/ipa_test_kit/generated/condition/condition_patient_onset_date_search_test.rb +0 -47
  269. data/lib/ipa_test_kit/generated/condition/condition_patient_search_test.rb +0 -60
  270. data/lib/ipa_test_kit/generated/condition/condition_provenance_revinclude_search_test.rb +0 -49
  271. data/lib/ipa_test_kit/generated/condition/condition_read_test.rb +0 -24
  272. data/lib/ipa_test_kit/generated/condition/condition_reference_resolution_test.rb +0 -28
  273. data/lib/ipa_test_kit/generated/condition/condition_validation_test.rb +0 -34
  274. data/lib/ipa_test_kit/generated/condition/metadata.yml +0 -231
  275. data/lib/ipa_test_kit/generated/document_reference/document_reference_id_search_test.rb +0 -40
  276. data/lib/ipa_test_kit/generated/document_reference/document_reference_must_support_test.rb +0 -49
  277. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_category_date_search_test.rb +0 -46
  278. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_category_search_test.rb +0 -45
  279. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_search_test.rb +0 -61
  280. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_status_search_test.rb +0 -46
  281. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_type_period_search_test.rb +0 -48
  282. data/lib/ipa_test_kit/generated/document_reference/document_reference_patient_type_search_test.rb +0 -45
  283. data/lib/ipa_test_kit/generated/document_reference/document_reference_provenance_revinclude_search_test.rb +0 -50
  284. data/lib/ipa_test_kit/generated/document_reference/document_reference_read_test.rb +0 -24
  285. data/lib/ipa_test_kit/generated/document_reference/document_reference_reference_resolution_test.rb +0 -28
  286. data/lib/ipa_test_kit/generated/document_reference/document_reference_validation_test.rb +0 -34
  287. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_must_support_test.rb +0 -49
  288. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_category_date_search_test.rb +0 -46
  289. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_category_search_test.rb +0 -45
  290. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_category_status_search_test.rb +0 -47
  291. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_code_date_search_test.rb +0 -48
  292. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_patient_code_search_test.rb +0 -62
  293. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_provenance_revinclude_search_test.rb +0 -51
  294. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_read_test.rb +0 -24
  295. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_reference_resolution_test.rb +0 -28
  296. data/lib/ipa_test_kit/generated/head_circumference/head_circumference_validation_test.rb +0 -34
  297. data/lib/ipa_test_kit/generated/head_circumference/metadata.yml +0 -324
  298. data/lib/ipa_test_kit/generated/head_circumference_group.rb +0 -93
  299. data/lib/ipa_test_kit/generated/heartrate/heartrate_must_support_test.rb +0 -49
  300. data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_category_date_search_test.rb +0 -46
  301. data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_category_search_test.rb +0 -45
  302. data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_category_status_search_test.rb +0 -47
  303. data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_code_date_search_test.rb +0 -48
  304. data/lib/ipa_test_kit/generated/heartrate/heartrate_patient_code_search_test.rb +0 -62
  305. data/lib/ipa_test_kit/generated/heartrate/heartrate_provenance_revinclude_search_test.rb +0 -51
  306. data/lib/ipa_test_kit/generated/heartrate/heartrate_read_test.rb +0 -24
  307. data/lib/ipa_test_kit/generated/heartrate/heartrate_reference_resolution_test.rb +0 -28
  308. data/lib/ipa_test_kit/generated/heartrate/heartrate_validation_test.rb +0 -34
  309. data/lib/ipa_test_kit/generated/heartrate/metadata.yml +0 -325
  310. data/lib/ipa_test_kit/generated/heartrate_group.rb +0 -93
  311. data/lib/ipa_test_kit/generated/immunization/immunization_must_support_test.rb +0 -40
  312. data/lib/ipa_test_kit/generated/immunization/immunization_patient_date_search_test.rb +0 -47
  313. data/lib/ipa_test_kit/generated/immunization/immunization_patient_search_test.rb +0 -60
  314. data/lib/ipa_test_kit/generated/immunization/immunization_patient_status_search_test.rb +0 -45
  315. data/lib/ipa_test_kit/generated/immunization/immunization_provenance_revinclude_search_test.rb +0 -50
  316. data/lib/ipa_test_kit/generated/immunization/immunization_read_test.rb +0 -24
  317. data/lib/ipa_test_kit/generated/immunization/immunization_reference_resolution_test.rb +0 -28
  318. data/lib/ipa_test_kit/generated/immunization/immunization_validation_test.rb +0 -34
  319. data/lib/ipa_test_kit/generated/immunization/metadata.yml +0 -210
  320. data/lib/ipa_test_kit/generated/ipa_test_suite.rb +0 -88
  321. data/lib/ipa_test_kit/generated/medication_request/medication_request_must_support_test.rb +0 -44
  322. data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_authoredon_search_test.rb +0 -53
  323. data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_encounter_search_test.rb +0 -52
  324. data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_search_test.rb +0 -68
  325. data/lib/ipa_test_kit/generated/medication_request/medication_request_patient_intent_status_search_test.rb +0 -49
  326. data/lib/ipa_test_kit/generated/medication_request/medication_request_provenance_revinclude_search_test.rb +0 -51
  327. data/lib/ipa_test_kit/generated/medication_request/medication_request_read_test.rb +0 -24
  328. data/lib/ipa_test_kit/generated/medication_request/medication_request_reference_resolution_test.rb +0 -28
  329. data/lib/ipa_test_kit/generated/medication_request/medication_request_validation_test.rb +0 -34
  330. data/lib/ipa_test_kit/generated/medication_request/medication_validation_test.rb +0 -34
  331. data/lib/ipa_test_kit/generated/medication_request/metadata.yml +0 -307
  332. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_must_support_test.rb +0 -43
  333. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_context_search_test.rb +0 -51
  334. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_effective_search_test.rb +0 -52
  335. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_search_test.rb +0 -68
  336. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_patient_status_search_test.rb +0 -49
  337. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_provenance_revinclude_search_test.rb +0 -51
  338. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_read_test.rb +0 -24
  339. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_reference_resolution_test.rb +0 -28
  340. data/lib/ipa_test_kit/generated/medication_statement/medication_statement_validation_test.rb +0 -34
  341. data/lib/ipa_test_kit/generated/medication_statement/medication_validation_test.rb +0 -34
  342. data/lib/ipa_test_kit/generated/medication_statement/metadata.yml +0 -230
  343. data/lib/ipa_test_kit/generated/metadata.yml +0 -6230
  344. data/lib/ipa_test_kit/generated/observation/metadata.yml +0 -1280
  345. data/lib/ipa_test_kit/generated/observation/observation_must_support_test.rb +0 -41
  346. data/lib/ipa_test_kit/generated/observation/observation_patient_category_date_search_test.rb +0 -46
  347. data/lib/ipa_test_kit/generated/observation/observation_patient_category_search_test.rb +0 -62
  348. data/lib/ipa_test_kit/generated/observation/observation_patient_category_status_search_test.rb +0 -47
  349. data/lib/ipa_test_kit/generated/observation/observation_patient_code_date_search_test.rb +0 -48
  350. data/lib/ipa_test_kit/generated/observation/observation_patient_code_search_test.rb +0 -45
  351. data/lib/ipa_test_kit/generated/observation/observation_provenance_revinclude_search_test.rb +0 -51
  352. data/lib/ipa_test_kit/generated/observation/observation_read_test.rb +0 -24
  353. data/lib/ipa_test_kit/generated/observation/observation_reference_resolution_test.rb +0 -28
  354. data/lib/ipa_test_kit/generated/observation/observation_validation_test.rb +0 -34
  355. data/lib/ipa_test_kit/generated/oxygensat/metadata.yml +0 -366
  356. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_must_support_test.rb +0 -65
  357. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_category_date_search_test.rb +0 -46
  358. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_category_search_test.rb +0 -45
  359. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_category_status_search_test.rb +0 -47
  360. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_code_date_search_test.rb +0 -48
  361. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_patient_code_search_test.rb +0 -62
  362. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_provenance_revinclude_search_test.rb +0 -51
  363. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_read_test.rb +0 -24
  364. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_reference_resolution_test.rb +0 -28
  365. data/lib/ipa_test_kit/generated/oxygensat/oxygensat_validation_test.rb +0 -34
  366. data/lib/ipa_test_kit/generated/oxygensat_group.rb +0 -93
  367. data/lib/ipa_test_kit/generated/patient/metadata.yml +0 -320
  368. data/lib/ipa_test_kit/generated/patient/patient_birthdate_family_search_test.rb +0 -41
  369. data/lib/ipa_test_kit/generated/patient/patient_birthdate_name_search_test.rb +0 -39
  370. data/lib/ipa_test_kit/generated/patient/patient_family_gender_search_test.rb +0 -41
  371. data/lib/ipa_test_kit/generated/patient/patient_gender_name_search_test.rb +0 -39
  372. data/lib/ipa_test_kit/generated/patient/patient_id_search_test.rb +0 -53
  373. data/lib/ipa_test_kit/generated/patient/patient_identifier_search_test.rb +0 -40
  374. data/lib/ipa_test_kit/generated/patient/patient_must_support_test.rb +0 -57
  375. data/lib/ipa_test_kit/generated/patient/patient_name_search_test.rb +0 -39
  376. data/lib/ipa_test_kit/generated/patient/patient_provenance_revinclude_search_test.rb +0 -49
  377. data/lib/ipa_test_kit/generated/patient/patient_read_test.rb +0 -24
  378. data/lib/ipa_test_kit/generated/patient/patient_reference_resolution_test.rb +0 -28
  379. data/lib/ipa_test_kit/generated/patient/patient_validation_test.rb +0 -34
  380. data/lib/ipa_test_kit/generated/practitioner/metadata.yml +0 -124
  381. data/lib/ipa_test_kit/generated/practitioner/practitioner_identifier_search_test.rb +0 -40
  382. data/lib/ipa_test_kit/generated/practitioner/practitioner_must_support_test.rb +0 -40
  383. data/lib/ipa_test_kit/generated/practitioner/practitioner_name_search_test.rb +0 -49
  384. data/lib/ipa_test_kit/generated/practitioner/practitioner_read_test.rb +0 -24
  385. data/lib/ipa_test_kit/generated/practitioner/practitioner_reference_resolution_test.rb +0 -28
  386. data/lib/ipa_test_kit/generated/practitioner/practitioner_validation_test.rb +0 -34
  387. data/lib/ipa_test_kit/generated/practitioner_group.rb +0 -84
  388. data/lib/ipa_test_kit/generated/practitioner_role/metadata.yml +0 -141
  389. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_identifier_search_test.rb +0 -40
  390. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_must_support_test.rb +0 -40
  391. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_practitioner_search_test.rb +0 -51
  392. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_read_test.rb +0 -24
  393. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_reference_resolution_test.rb +0 -28
  394. data/lib/ipa_test_kit/generated/practitioner_role/practitioner_role_validation_test.rb +0 -34
  395. data/lib/ipa_test_kit/generated/practitioner_role_group.rb +0 -84
  396. data/lib/ipa_test_kit/generated/provenance/metadata.yml +0 -114
  397. data/lib/ipa_test_kit/generated/provenance/provenance_read_test.rb +0 -24
  398. data/lib/ipa_test_kit/generated/provenance/provenance_reference_resolution_test.rb +0 -28
  399. data/lib/ipa_test_kit/generated/provenance/provenance_validation_test.rb +0 -34
  400. data/lib/ipa_test_kit/generated/provenance_group.rb +0 -53
  401. data/lib/ipa_test_kit/generated/resprate/metadata.yml +0 -325
  402. data/lib/ipa_test_kit/generated/resprate/resprate_must_support_test.rb +0 -49
  403. data/lib/ipa_test_kit/generated/resprate/resprate_patient_category_date_search_test.rb +0 -46
  404. data/lib/ipa_test_kit/generated/resprate/resprate_patient_category_search_test.rb +0 -45
  405. data/lib/ipa_test_kit/generated/resprate/resprate_patient_category_status_search_test.rb +0 -47
  406. data/lib/ipa_test_kit/generated/resprate/resprate_patient_code_date_search_test.rb +0 -48
  407. data/lib/ipa_test_kit/generated/resprate/resprate_patient_code_search_test.rb +0 -62
  408. data/lib/ipa_test_kit/generated/resprate/resprate_provenance_revinclude_search_test.rb +0 -51
  409. data/lib/ipa_test_kit/generated/resprate/resprate_read_test.rb +0 -24
  410. data/lib/ipa_test_kit/generated/resprate/resprate_reference_resolution_test.rb +0 -28
  411. data/lib/ipa_test_kit/generated/resprate/resprate_validation_test.rb +0 -34
  412. data/lib/ipa_test_kit/generated/resprate_group.rb +0 -93
  413. data/lib/ipa_test_kit/igs/package.tgz +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94a7aa72a570056b4f06890c5e9984abd2dce72c3b1b90ca16c15c1d0dcde924
4
- data.tar.gz: 7d84bc22ec9106e559e4a86a8378b30eb439c9a6580323164181638c1194caf9
3
+ metadata.gz: e6c810542f53d1c988b36fb0ea71c09eb5727a1811bf435bacb6c949ef35fb7e
4
+ data.tar.gz: b270518e8bc6b69430ae152c846a2896cbae826bc9cfe4eff6a4dd63a5b69f59
5
5
  SHA512:
6
- metadata.gz: 64ce008784240da39615c20f5437f59538dadb3a6fcaf2c5c46d4bb8ceab225d1d64cb0f476bb787e557d6924a1597612d286bc6e546e4c2f176d218d6ff42dc
7
- data.tar.gz: 460ada15a0e56911b89e8d488bd787570c89eb24bed6378464a3f3a45ea41cec774d1d3fb90fff63bbba115978fcfa0bd6a9f4b797dad479f38c8a67feff638a
6
+ metadata.gz: a233b070feb0ace389398e773df6cf053aba721902c97b180b4e1867d714d1d833f9bf1756469bb4af0ba84ce2c9a019f6437939d12b62675234cf1027a748c5
7
+ data.tar.gz: d38ed58edf9f6593e88197c0ec0d22f03a40b33642601b7906473f724a86652483f1cd43daba6f55561959b604a7d1288d19581b2dc85e7f9c626e770ac6d80f
@@ -0,0 +1,43 @@
1
+ module IpaTestKit
2
+ module IpaV100
3
+ class ConformanceSupportTest < Inferno::Test
4
+ id :ipa_100_conformance_support
5
+ title 'FHIR Server supports the conformance interaction'
6
+ description %(
7
+ The conformance 'whole system' interaction provides a method to get the
8
+ CapabilityStatement for the FHIR server. This test checks that the
9
+ server responds to a `GET` request at the following endpoint:
10
+
11
+ ```
12
+ GET [base]/metadata
13
+ ```
14
+
15
+ This test checks the following SHALL requirement:
16
+
17
+ > Applications SHALL return a resource that describes the functionality
18
+ of the server end-point.
19
+
20
+ [http://hl7.org/fhir/R4/http.html#capabilities](http://hl7.org/fhir/R4/http.html#capabilities)
21
+
22
+ It does this by checking that the server responds with an HTTP OK 200
23
+ status code and that the body of the response contains a valid
24
+ [CapabilityStatement
25
+ resource](http://hl7.org/fhir/R4/capabilitystatement.html). This test
26
+ does not inspect the content of the CapabilityStatement to see if it
27
+ contains the required information. It only checks to see if the RESTful
28
+ interaction is supported and returns a valid CapabilityStatement
29
+ resource.
30
+ )
31
+ makes_request :capability_statement
32
+
33
+ run do
34
+ fhir_client.set_no_auth
35
+ fhir_get_capability_statement(name: :capability_statement)
36
+
37
+ assert_response_status(200)
38
+ assert_resource_type(:capability_statement)
39
+ assert_valid_resource
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,17 @@
1
+ module IpaTestKit
2
+ module IpaV100
3
+ class FHIRVersionTest < Inferno::Test
4
+ id :ipa_100_fhir_version
5
+ title 'Server is using FHIR R4'
6
+ description %(
7
+ This test inspects the CapabilityStatement returned by the server to
8
+ verify that the server is using FHIR R4.
9
+ )
10
+
11
+ run do
12
+ server_version = fhir_client.detect_version.to_s.upcase
13
+ assert server_version == 'R4', "Server is using FHIR version #{server_version} rather than R4"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ module IpaTestKit
2
+ module IpaV100
3
+ class InstantiatesIGTest < Inferno::Test
4
+ id :ipa_100_instantiates_ig
5
+ title 'FHIR server advertises support for the IPA IG'
6
+ description %(
7
+ The server declares that IPA is supported using
8
+ `CapabilityStatement.instantiates`
9
+ )
10
+ uses_request :capability_statement
11
+
12
+ run do
13
+ assert_resource_type(:capability_statement)
14
+
15
+ ig_url = 'http://hl7.org/fhir/uv/ipa/CapabilityStatement/ipa'
16
+
17
+ assert resource.instantiates.include?(ig_url),
18
+ "The server does not advertise support for the IPA IG by including `#{ig_url}` in the `instantiates` field"
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,41 @@
1
+ module IpaTestKit
2
+ module IpaV100
3
+ class JSONSupportTest < Inferno::Test
4
+ id :ipa_100_json_support
5
+ title 'FHIR server capability states JSON support'
6
+ description %(
7
+ FHIR provides multiple [representation
8
+ formats](https://www.hl7.org/fhir/formats.html) for resources, including
9
+ JSON and XML. IPA profiles require servers to use the [JSON
10
+ representation](https://www.hl7.org/fhir/json.html):
11
+
12
+ [```The IPA Server **SHALL** Support json source formats for all IPA
13
+ interactions.```](http://hl7.org/fhir/uv/ipa/CapabilityStatement-ipa-server.html#behavior)
14
+
15
+ The FHIR conformance interaction require servers to describe which
16
+ formats are available for clients to use. The server must explicitly
17
+ state that JSON is supported. This is located in the [format
18
+ element](https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.format)
19
+ of the CapabilityStatement Resource.
20
+
21
+ This test checks that one of the following values are located in the
22
+ format field.
23
+
24
+ * json
25
+ * application/json
26
+ * application/fhir+json
27
+ )
28
+ uses_request :capability_statement
29
+
30
+ run do
31
+ assert_resource_type(:capability_statement)
32
+
33
+ json_formats = ['json', 'application/json', 'application/fhir+json']
34
+ server_formats = resource.format
35
+
36
+ assert server_formats.any? { |format| json_formats.include? format },
37
+ 'CapabilityStatement does not state support for JSON'
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,65 @@
1
+ module IpaTestKit
2
+ module IpaV100
3
+ class ProfileSupportTest < Inferno::Test
4
+ id :ipa_100_profile_support
5
+ title 'Capability Statement lists support for required IPA Profiles'
6
+ description %(
7
+ The IPA Implementation Guide states:
8
+
9
+ ```
10
+ The IPA Server SHALL:
11
+ 1. Support the IPA Patient resource profile.
12
+ 2. Support at least one additional resource profile from the list of IPA
13
+ Profiles.
14
+ ```
15
+ )
16
+ uses_request :capability_statement
17
+
18
+ PROFILES = {
19
+ 'AllergyIntolerance' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-allergyintolerance'].freeze,
20
+ 'Condition' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-condition'].freeze,
21
+ 'DocumentReference' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-documentreference'].freeze,
22
+ 'Immunization' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-immunization'].freeze,
23
+ # 'Medication' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-medication'].freeze,
24
+ 'MedicationRequest' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-medicationrequest'].freeze,
25
+ 'MedicationStatement' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-medicationstatement'].freeze,
26
+ 'Observation' => [
27
+ 'http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-observation'
28
+ ].freeze,
29
+ 'Patient' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-patient'].freeze,
30
+ 'Practitioner' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-practitioner'].freeze,
31
+ 'PractitionerRole' => ['http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-practitionerrole'].freeze
32
+ }.freeze
33
+
34
+ run do
35
+ assert_resource_type(:capability_statement)
36
+ capability_statement = resource
37
+
38
+ supported_resources =
39
+ capability_statement.rest
40
+ &.each_with_object([]) do |rest, resources|
41
+ rest.resource.each { |resource| resources << resource.type }
42
+ end.uniq
43
+ supported_profiles =
44
+ capability_statement.rest
45
+ &.flat_map(&:resource)
46
+ &.flat_map { |resource| resource.supportedProfile + [resource.profile] }
47
+ &.compact || []
48
+ supported_profiles.map! { |profile_url| profile_url.split('|').first }
49
+
50
+ assert supported_resources.include?('Patient'), 'IPA Patient profile not supported'
51
+
52
+ other_resources = PROFILES.keys.reject { |resource_type| resource_type == 'Patient' }
53
+ other_resources_supported = other_resources.any? { |resource| supported_resources.include? resource }
54
+ assert other_resources_supported, 'No IPA resources other than Patient are supported'
55
+
56
+ required_profiles = PROFILES.slice(*supported_resources).values.flatten
57
+
58
+ missing_profiles = required_profiles - supported_profiles
59
+
60
+ assert missing_profiles.blank?,
61
+ "CapabilityStatement does not claim support for the following IPA profiles: \n* #{missing_profiles.join("\n* ")}"
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,73 @@
1
+ require 'tls_test_kit'
2
+ require_relative 'capability_statement/conformance_support_test'
3
+ require_relative 'capability_statement/fhir_version_test'
4
+ require_relative 'capability_statement/instantiates_ig_test'
5
+ require_relative 'capability_statement/json_support_test'
6
+ require_relative 'capability_statement/profile_support_test'
7
+
8
+ module IpaTestKit
9
+ module IpaV100
10
+ class CapabilityStatementGroup < Inferno::TestGroup
11
+ id :ipa_v100_capability_statement
12
+ title 'Capability Statement'
13
+ short_description 'Retrieve information about supported server functionality using the FHIR capabilties interaction.'
14
+ description %(
15
+ # Background
16
+ The #{title} Sequence tests a FHIR server's ability to formally describe
17
+ features supported by the API by using the [Capability
18
+ Statement](https://www.hl7.org/fhir/capabilitystatement.html) resource.
19
+ The features described in the Capability Statement must be consistent with
20
+ the required capabilities of a IPA server. The Capability Statement
21
+ must also advertise the location of the required SMART on FHIR endpoints
22
+ that enable authenticated access to the FHIR server resources.
23
+
24
+ The Capability Statement resource allows clients to determine which
25
+ resources are supported by a FHIR Server. Not all servers are expected to
26
+ implement all possible queries and data elements described in the IPA
27
+ API. For example, the IPA Implementation Guide requires that the
28
+ Patient resource and only one additional resource profile from the IPA
29
+ Profiles.
30
+
31
+ # Test Methodology
32
+
33
+ This test sequence accesses the server endpoint at `/metadata` using a
34
+ `GET` request. It parses the Capability Statement and verifies that:
35
+
36
+ * The endpoint is secured by an appropriate cryptographic protocol
37
+ * The resource matches the expected FHIR version defined by the tests
38
+ * The resource is a valid FHIR resource
39
+ * The server claims support for JSON encoding of resources
40
+ * The server claims support for the Patient resource and one other
41
+ resource
42
+
43
+ It collects the following information that is saved in the testing session
44
+ for use by later tests:
45
+
46
+ * List of resources supported
47
+ * List of queries parameters supported
48
+ )
49
+ run_as_group
50
+
51
+ input :standalone_smart_credentials,
52
+ title: 'SMART App Launch Credentials',
53
+ optional: true,
54
+ type: 'oauth_credentials'
55
+
56
+ test from: :tls_version_test,
57
+ id: :standalone_auth_tls,
58
+ title: 'FHIR server secured by transport layer security',
59
+ description: %(
60
+ Systems **SHALL** use TLS version 1.2 or higher for all transmissions
61
+ not taking place over a secure network connection.
62
+ ),
63
+ config: {
64
+ options: { minimum_allowed_version: OpenSSL::SSL::TLS1_2_VERSION }
65
+ }
66
+ test from: :ipa_100_conformance_support
67
+ test from: :ipa_100_fhir_version
68
+ test from: :ipa_100_json_support
69
+ test from: :ipa_100_instantiates_ig
70
+ test from: :ipa_100_profile_support
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,108 @@
1
+ module IpaTestKit
2
+ module IpaV100
3
+ class IPASMARTLaunchGroup < Inferno::TestGroup
4
+ id :ipa_v100_smart_launch
5
+ title 'SMART App Launch'
6
+ description %(
7
+ # Background
8
+ Applications authorize to gain access to a patient record using the
9
+ [SMART App Launch
10
+ Protocol](http://hl7.org/fhir/smart-app-launch/STU2/)'s standalone
11
+ launch sequence.
12
+
13
+ # Testing Methodology
14
+ These tests first access the server's SMART discovery endpoints and
15
+ verify that they are available and that the server advertises support
16
+ for the required SMART capabilities. They then perform a public
17
+ standalone launch to obtain an access token which can be used by the
18
+ remaining tests to access patient data.
19
+
20
+ This group does not yet test launching with asymmetric client
21
+ credentials, which is also required.
22
+ )
23
+
24
+ group from: :smart_discovery_stu2 do
25
+ run_as_group
26
+
27
+ test do
28
+ id :ipa_smart_capabilities
29
+ title 'Server supports required SMART capabilities'
30
+ description %(
31
+ Servers SHALL support the following [SMART on FHIR
32
+ capabilities](http://hl7.org/fhir/smart-app-launch/STU2/conformance.html#capabilities):
33
+
34
+ * `launch-standalone`
35
+ * `context-standalone-patient`
36
+ * `permission-patient`
37
+ * `permission-offline`
38
+ * `sso-openid-connect`
39
+ * `client-public`
40
+ * `client-confidential-asymmetric`
41
+ )
42
+
43
+ input :well_known_configuration
44
+
45
+ run do
46
+ skip_if well_known_configuration.blank?, "No SMART well-known configuration received"
47
+
48
+ assert_valid_json(well_known_configuration)
49
+
50
+ config = JSON.parse(well_known_configuration)
51
+ advertised_capabilities = config['capabilities'] || []
52
+
53
+ assert advertised_capabilities.is_a?(Array),
54
+ "Expected `capabilities` field to be an Array, but found #{advertised_capabilities.class.name}"
55
+
56
+ required_capabilities = [
57
+ 'launch-standalone',
58
+ 'context-standalone-patient',
59
+ 'permission-patient',
60
+ 'permission-offline',
61
+ 'sso-openid-connect',
62
+ 'client-public',
63
+ 'client-confidential-asymmetric'
64
+ ]
65
+
66
+ missing_capabilities = required_capabilities - advertised_capabilities
67
+
68
+ missing_capabilities_string =
69
+ missing_capabilities
70
+ .map { |capability| "\n* `#{capability}`" }
71
+ .join
72
+
73
+ assert missing_capabilities.empty?,
74
+ "Server did not advertise support for the following required capabilities: #{missing_capabilities_string}"
75
+ end
76
+ end
77
+ end
78
+
79
+ group from: :smart_standalone_launch_stu2,
80
+ run_as_group: true,
81
+ title: 'SMART Public Standalone Launch',
82
+ config: {
83
+ inputs: {
84
+ client_secret: {
85
+ default: nil,
86
+ locked: true,
87
+ optional: true
88
+ }
89
+ }
90
+ }
91
+
92
+ group do
93
+ title 'SMART Asymmetric Standalone Launch'
94
+ description %(
95
+ Not yet implemented
96
+ )
97
+ run_as_group
98
+
99
+ test do
100
+ title 'Not yet implemented'
101
+ run do
102
+ omit 'Not yet implemented'
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
@@ -1,11 +1,14 @@
1
1
  module IpaTestKit
2
2
  module FHIRResourceNavigation
3
+ DAR_EXTENSION_URL = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason'.freeze
4
+
3
5
  def resolve_path(elements, path)
4
6
  elements = Array.wrap(elements)
5
7
  return elements if path.blank?
6
8
 
7
9
  paths = path.split('.')
8
10
  segment = paths.first
11
+ segment.delete_suffix! '[x]'
9
12
  remaining_path = paths.drop(1).join('.')
10
13
 
11
14
  elements.flat_map do |element|
@@ -14,12 +17,18 @@ module IpaTestKit
14
17
  end.compact
15
18
  end
16
19
 
17
- def find_a_value_at(element, path)
20
+ def find_a_value_at(element, path, include_dar: false)
18
21
  return nil if element.nil?
19
22
 
20
23
  elements = Array.wrap(element)
21
24
 
22
25
  if path.empty?
26
+ unless include_dar
27
+ elements = elements.reject do |el|
28
+ el.respond_to?(:extension) && el.extension.any? { |ext| ext.url == DAR_EXTENSION_URL}
29
+ end
30
+ end
31
+
23
32
  return elements.find { |el| yield(el) } if block_given?
24
33
 
25
34
  return elements.first
@@ -43,9 +52,9 @@ module IpaTestKit
43
52
  child = get_next_value(element, segment)
44
53
  element_found =
45
54
  if block_given?
46
- find_a_value_at(child, remaining_path) { |value_found| yield(value_found) }
55
+ find_a_value_at(child, remaining_path, include_dar: include_dar) { |value_found| yield(value_found) }
47
56
  else
48
- find_a_value_at(child, remaining_path)
57
+ find_a_value_at(child, remaining_path, include_dar: include_dar)
49
58
  end
50
59
 
51
60
  return element_found if element_found.present? || element_found == false
@@ -0,0 +1,46 @@
1
+ require_relative '../../../must_support_test'
2
+
3
+ module IpaTestKit
4
+ module IpaV100
5
+ class AllergyIntoleranceMustSupportTest < Inferno::Test
6
+ include IpaTestKit::MustSupportTest
7
+
8
+ title 'All must support elements are provided in the AllergyIntolerance resources returned'
9
+ description %(
10
+ Responders conforming to a profile in IPA SHALL return a Must Support
11
+ element if that element is available. This test will look through the
12
+ AllergyIntolerance resources found previously for the following must
13
+ support elements:
14
+
15
+ * AllergyIntolerance.clinicalStatus
16
+ * AllergyIntolerance.code
17
+ * AllergyIntolerance.patient
18
+ * AllergyIntolerance.verificationStatus
19
+
20
+ Note: Responders who cannot store or return a data element tagged as
21
+ Supported in IPA profiles can still claim conformance to the IPA
22
+ profiles per the IPA conformance resources.
23
+ )
24
+
25
+ id :ipa_v100_allergy_intolerance_must_support_test
26
+
27
+ optional
28
+
29
+ def resource_type
30
+ 'AllergyIntolerance'
31
+ end
32
+
33
+ def self.metadata
34
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
35
+ end
36
+
37
+ def scratch_resources
38
+ scratch[:allergy_intolerance_resources] ||= {}
39
+ end
40
+
41
+ run do
42
+ perform_must_support_test(all_scratch_resources)
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,50 @@
1
+ require_relative '../../../search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ module IpaV100
6
+ class AllergyIntolerancePatientClinicalStatusSearchTest < Inferno::Test
7
+ include IpaTestKit::SearchTest
8
+
9
+ title 'Server returns valid results for AllergyIntolerance search by patient + clinical-status'
10
+ description %(
11
+ A server SHOULD support searching by
12
+ patient + clinical-status on the AllergyIntolerance resource. This test
13
+ will pass if resources are returned and match the search criteria. If
14
+ none are returned, the test is skipped.
15
+
16
+ # TODO: Fix this
17
+ # [US Core Server CapabilityStatement](http://hl7.org/fhir/us/core//CapabilityStatement-us-core-server.html)
18
+
19
+
20
+ )
21
+
22
+ id :ipa_v100_allergy_intolerance_patient_clinical_status_search_test
23
+ optional
24
+
25
+ input :patient_ids,
26
+ title: 'Patient IDs',
27
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
28
+
29
+ def self.properties
30
+ @properties ||= SearchTestProperties.new(
31
+ resource_type: 'AllergyIntolerance',
32
+ search_param_names: ['patient', 'clinical-status'],
33
+ token_search_params: ['clinical-status']
34
+ )
35
+ end
36
+
37
+ def self.metadata
38
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
39
+ end
40
+
41
+ def scratch_resources
42
+ scratch[:allergy_intolerance_resources] ||= {}
43
+ end
44
+
45
+ run do
46
+ run_search_test
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,63 @@
1
+ require_relative '../../../search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ module IpaV100
6
+ class AllergyIntolerancePatientSearchTest < Inferno::Test
7
+ include IpaTestKit::SearchTest
8
+
9
+ title 'Server returns valid results for AllergyIntolerance search by patient'
10
+ description %(
11
+ A server SHALL support searching by
12
+ patient on the AllergyIntolerance resource. This test
13
+ will pass if resources are returned and match the search criteria. If
14
+ none are returned, the test is skipped.
15
+
16
+ This test verifies that the server supports searching by reference using
17
+ the form `patient=[id]` as well as `patient=Patient/[id]`. The two
18
+ different forms are expected to return the same number of results. IPA
19
+ requires that both forms are supported by IPA Core responders.
20
+
21
+ Because this is the first search of the sequence, resources in the
22
+ response will be used for subsequent tests.
23
+
24
+ Additionally, this test will check that GET and POST search methods
25
+ return the same number of results. Search by POST is required by the
26
+ FHIR R4 specification, and these tests interpret search by GET as a
27
+ requirement of IPA v1.0.0.
28
+
29
+ # TODO: Fix this
30
+ # [US Core Server CapabilityStatement](http://hl7.org/fhir/us/core//CapabilityStatement-us-core-server.html)
31
+
32
+
33
+ )
34
+
35
+ id :ipa_v100_allergy_intolerance_patient_search_test
36
+ input :patient_ids,
37
+ title: 'Patient IDs',
38
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
39
+
40
+ def self.properties
41
+ @properties ||= SearchTestProperties.new(
42
+ first_search: true,
43
+ resource_type: 'AllergyIntolerance',
44
+ search_param_names: ['patient'],
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'), aliases: true))
52
+ end
53
+
54
+ def scratch_resources
55
+ scratch[:allergy_intolerance_resources] ||= {}
56
+ end
57
+
58
+ run do
59
+ run_search_test
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,51 @@
1
+ require_relative '../../../search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ module IpaV100
6
+ class AllergyIntoleranceProvenanceRevincludeSearchTest < Inferno::Test
7
+ include IpaTestKit::SearchTest
8
+
9
+ title 'Server returns Provenance resources from AllergyIntolerance search by patient + revInclude:Provenance:target'
10
+ description %(
11
+ A server SHALL be capable of supporting _revIncludes:Provenance:target.
12
+
13
+ This test will perform a search by patient + revInclude:Provenance:target and
14
+ will pass if a Provenance resource is found in the response.
15
+ %)
16
+
17
+ id :ipa_v100_allergy_intolerance_provenance_revinclude_search_test
18
+
19
+ input :patient_ids,
20
+ title: 'Patient IDs',
21
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
22
+
23
+ def properties
24
+ @properties ||= SearchTestProperties.new(
25
+ resource_type: 'AllergyIntolerance',
26
+ search_param_names: ['patient']
27
+ )
28
+ end
29
+
30
+ def self.metadata
31
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
32
+ end
33
+
34
+ def self.provenance_metadata
35
+ # @provenance_metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, '..', 'provenance', 'metadata.yml'), aliases: true))
36
+ end
37
+
38
+ def scratch_resources
39
+ scratch[:allergy_intolerance_resources] ||= {}
40
+ end
41
+
42
+ def scratch_provenance_resources
43
+ scratch[:provenance_resources] ||= {}
44
+ end
45
+
46
+ run do
47
+ run_provenance_revinclude_search_test
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,26 @@
1
+ require_relative '../../../read_test'
2
+
3
+ module IpaTestKit
4
+ module IpaV100
5
+ class AllergyIntoleranceReadTest < Inferno::Test
6
+ include IpaTestKit::ReadTest
7
+
8
+ title 'Server returns correct AllergyIntolerance resource from AllergyIntolerance read interaction'
9
+ description 'A server SHALL support the AllergyIntolerance read interaction.'
10
+
11
+ id :ipa_v100_allergy_intolerance_read_test
12
+
13
+ def resource_type
14
+ 'AllergyIntolerance'
15
+ end
16
+
17
+ def scratch_resources
18
+ scratch[:allergy_intolerance_resources] ||= {}
19
+ end
20
+
21
+ run do
22
+ perform_read_test(all_scratch_resources)
23
+ end
24
+ end
25
+ end
26
+ end