au_core_test_kit 0.0.16

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 (501) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/lib/au_core_test_kit/assert_helpers.rb +31 -0
  4. data/lib/au_core_test_kit/au_core_options.rb +11 -0
  5. data/lib/au_core_test_kit/chained_search_test.rb +99 -0
  6. data/lib/au_core_test_kit/constants.rb +11 -0
  7. data/lib/au_core_test_kit/custom_groups/capability_statement/conformance_support_test.rb +43 -0
  8. data/lib/au_core_test_kit/custom_groups/capability_statement/fhir_version_test.rb +21 -0
  9. data/lib/au_core_test_kit/custom_groups/capability_statement/instantiate_test.rb +21 -0
  10. data/lib/au_core_test_kit/custom_groups/capability_statement/json_support_test.rb +39 -0
  11. data/lib/au_core_test_kit/custom_groups/capability_statement/profile_support_test.rb +53 -0
  12. data/lib/au_core_test_kit/custom_groups/capability_statement/xml_support_test.rb +40 -0
  13. data/lib/au_core_test_kit/custom_groups/clinical_note_attachment_test.rb +45 -0
  14. data/lib/au_core_test_kit/custom_groups/clinical_note_type_test.rb +114 -0
  15. data/lib/au_core_test_kit/custom_groups/missing_data_group.rb +88 -0
  16. data/lib/au_core_test_kit/custom_groups/smart_app_launch_group.rb +167 -0
  17. data/lib/au_core_test_kit/custom_groups/v0.3.0-ballot/capability_statement_group.rb +81 -0
  18. data/lib/au_core_test_kit/custom_groups/v0.3.0-ballot/profile_support_test.rb +51 -0
  19. data/lib/au_core_test_kit/custom_groups/v4.0.0/document_reference_custodian_test.rb +50 -0
  20. data/lib/au_core_test_kit/custom_suites/validation_suite.rb +53 -0
  21. data/lib/au_core_test_kit/date_search_validation.rb +114 -0
  22. data/lib/au_core_test_kit/fhir_resource_navigation.rb +177 -0
  23. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_clinical_status_search_test.rb +47 -0
  24. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_must_support_test.rb +46 -0
  25. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_patient_chain_search_test.rb +50 -0
  26. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_patient_clinical_status_search_test.rb +52 -0
  27. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_patient_dva_chain_search_test.rb +51 -0
  28. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_patient_ihi_chain_search_test.rb +51 -0
  29. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_patient_medicare_chain_search_test.rb +51 -0
  30. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_patient_search_test.rb +66 -0
  31. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_read_test.rb +28 -0
  32. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +42 -0
  33. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/allergy_intolerance_validation_test.rb +42 -0
  34. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance/metadata.yml +159 -0
  35. data/lib/au_core_test_kit/generated/v1.0.0-preview/allergy_intolerance_group.rb +93 -0
  36. data/lib/au_core_test_kit/generated/v1.0.0-preview/au_core_test_suite.rb +164 -0
  37. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_category_search_test.rb +48 -0
  38. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_code_multiple_or_search_test.rb +49 -0
  39. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_code_search_test.rb +48 -0
  40. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_date_multiple_and_search_test.rb +49 -0
  41. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_date_search_test.rb +48 -0
  42. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_must_support_test.rb +67 -0
  43. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_patient_category_date_search_test.rb +52 -0
  44. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_patient_category_search_test.rb +51 -0
  45. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_patient_category_status_search_test.rb +52 -0
  46. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_patient_chain_search_test.rb +50 -0
  47. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_patient_code_date_search_test.rb +54 -0
  48. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_patient_code_search_test.rb +68 -0
  49. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_patient_dva_chain_search_test.rb +51 -0
  50. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_patient_ihi_chain_search_test.rb +51 -0
  51. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_patient_medicare_chain_search_test.rb +51 -0
  52. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_patient_search_test.rb +52 -0
  53. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_read_test.rb +28 -0
  54. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_reference_resolution_test.rb +42 -0
  55. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_status_multiple_or_search_test.rb +49 -0
  56. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_status_search_test.rb +46 -0
  57. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/bloodpressure_validation_test.rb +42 -0
  58. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure/metadata.yml +364 -0
  59. data/lib/au_core_test_kit/generated/v1.0.0-preview/bloodpressure_group.rb +115 -0
  60. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_category_search_test.rb +48 -0
  61. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_code_multiple_or_search_test.rb +49 -0
  62. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_code_search_test.rb +48 -0
  63. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_date_multiple_and_search_test.rb +49 -0
  64. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_date_search_test.rb +48 -0
  65. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_must_support_test.rb +53 -0
  66. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_patient_category_date_search_test.rb +52 -0
  67. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_patient_category_search_test.rb +51 -0
  68. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_patient_category_status_search_test.rb +52 -0
  69. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_patient_chain_search_test.rb +50 -0
  70. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_patient_code_date_search_test.rb +54 -0
  71. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_patient_code_search_test.rb +68 -0
  72. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_patient_dva_chain_search_test.rb +51 -0
  73. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_patient_ihi_chain_search_test.rb +51 -0
  74. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_patient_medicare_chain_search_test.rb +51 -0
  75. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_patient_search_test.rb +52 -0
  76. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_read_test.rb +28 -0
  77. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_reference_resolution_test.rb +42 -0
  78. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_status_multiple_or_search_test.rb +49 -0
  79. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_status_search_test.rb +46 -0
  80. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/bodyheight_validation_test.rb +42 -0
  81. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight/metadata.yml +330 -0
  82. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyheight_group.rb +115 -0
  83. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_category_search_test.rb +48 -0
  84. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_code_multiple_or_search_test.rb +49 -0
  85. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_code_search_test.rb +48 -0
  86. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_date_multiple_and_search_test.rb +49 -0
  87. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_date_search_test.rb +48 -0
  88. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_must_support_test.rb +53 -0
  89. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_patient_category_date_search_test.rb +52 -0
  90. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_patient_category_search_test.rb +51 -0
  91. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_patient_category_status_search_test.rb +52 -0
  92. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_patient_chain_search_test.rb +50 -0
  93. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_patient_code_date_search_test.rb +54 -0
  94. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_patient_code_search_test.rb +68 -0
  95. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_patient_dva_chain_search_test.rb +51 -0
  96. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_patient_ihi_chain_search_test.rb +51 -0
  97. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_patient_medicare_chain_search_test.rb +51 -0
  98. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_patient_search_test.rb +52 -0
  99. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_read_test.rb +28 -0
  100. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_reference_resolution_test.rb +42 -0
  101. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_status_multiple_or_search_test.rb +49 -0
  102. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_status_search_test.rb +46 -0
  103. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/bodytemp_validation_test.rb +42 -0
  104. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp/metadata.yml +330 -0
  105. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodytemp_group.rb +115 -0
  106. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_category_search_test.rb +48 -0
  107. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_code_multiple_or_search_test.rb +49 -0
  108. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_code_search_test.rb +48 -0
  109. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_date_multiple_and_search_test.rb +49 -0
  110. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_date_search_test.rb +48 -0
  111. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_must_support_test.rb +53 -0
  112. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_patient_category_date_search_test.rb +52 -0
  113. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_patient_category_search_test.rb +51 -0
  114. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_patient_category_status_search_test.rb +52 -0
  115. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_patient_chain_search_test.rb +50 -0
  116. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_patient_code_date_search_test.rb +54 -0
  117. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_patient_code_search_test.rb +68 -0
  118. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_patient_dva_chain_search_test.rb +51 -0
  119. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_patient_ihi_chain_search_test.rb +51 -0
  120. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_patient_medicare_chain_search_test.rb +51 -0
  121. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_patient_search_test.rb +52 -0
  122. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_read_test.rb +28 -0
  123. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_reference_resolution_test.rb +42 -0
  124. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_status_multiple_or_search_test.rb +49 -0
  125. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_status_search_test.rb +46 -0
  126. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/bodyweight_validation_test.rb +42 -0
  127. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight/metadata.yml +330 -0
  128. data/lib/au_core_test_kit/generated/v1.0.0-preview/bodyweight_group.rb +115 -0
  129. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_category_search_test.rb +48 -0
  130. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_clinical_status_search_test.rb +47 -0
  131. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_code_multiple_or_search_test.rb +48 -0
  132. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_code_search_test.rb +48 -0
  133. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_must_support_test.rb +47 -0
  134. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_onset_date_multiple_and_search_test.rb +49 -0
  135. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_onset_date_search_test.rb +48 -0
  136. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_patient_category_clinical_status_search_test.rb +52 -0
  137. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_patient_category_search_test.rb +51 -0
  138. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_patient_chain_search_test.rb +50 -0
  139. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_patient_clinical_status_search_test.rb +50 -0
  140. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_patient_code_search_test.rb +53 -0
  141. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_patient_dva_chain_search_test.rb +51 -0
  142. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_patient_ihi_chain_search_test.rb +51 -0
  143. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_patient_medicare_chain_search_test.rb +51 -0
  144. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_patient_onset_date_search_test.rb +53 -0
  145. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_patient_search_test.rb +66 -0
  146. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_read_test.rb +28 -0
  147. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_reference_resolution_test.rb +42 -0
  148. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/condition_validation_test.rb +42 -0
  149. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition/metadata.yml +259 -0
  150. data/lib/au_core_test_kit/generated/v1.0.0-preview/condition_group.rb +113 -0
  151. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_category_search_test.rb +48 -0
  152. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_code_multiple_or_search_test.rb +49 -0
  153. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_code_search_test.rb +48 -0
  154. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_date_multiple_and_search_test.rb +49 -0
  155. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_date_search_test.rb +48 -0
  156. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_must_support_test.rb +50 -0
  157. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_patient_category_date_search_test.rb +52 -0
  158. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_patient_category_search_test.rb +51 -0
  159. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_patient_category_status_search_test.rb +52 -0
  160. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_patient_chain_search_test.rb +50 -0
  161. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_patient_code_date_search_test.rb +54 -0
  162. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_patient_code_search_test.rb +69 -0
  163. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_patient_dva_chain_search_test.rb +51 -0
  164. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_patient_ihi_chain_search_test.rb +51 -0
  165. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_patient_medicare_chain_search_test.rb +51 -0
  166. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_patient_search_test.rb +52 -0
  167. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_read_test.rb +28 -0
  168. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_reference_resolution_test.rb +44 -0
  169. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_status_multiple_or_search_test.rb +49 -0
  170. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_status_search_test.rb +46 -0
  171. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/diagnosticresult_validation_test.rb +42 -0
  172. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult/metadata.yml +299 -0
  173. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_group.rb +115 -0
  174. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_category_search_test.rb +48 -0
  175. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_code_multiple_or_search_test.rb +49 -0
  176. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_code_search_test.rb +48 -0
  177. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_date_multiple_and_search_test.rb +49 -0
  178. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_date_search_test.rb +48 -0
  179. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_must_support_test.rb +56 -0
  180. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_patient_category_date_search_test.rb +52 -0
  181. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_patient_category_search_test.rb +69 -0
  182. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_patient_category_status_search_test.rb +52 -0
  183. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_patient_chain_search_test.rb +50 -0
  184. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_patient_code_date_search_test.rb +54 -0
  185. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_patient_code_search_test.rb +51 -0
  186. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_patient_dva_chain_search_test.rb +51 -0
  187. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_patient_ihi_chain_search_test.rb +51 -0
  188. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_patient_medicare_chain_search_test.rb +51 -0
  189. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_patient_search_test.rb +52 -0
  190. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_read_test.rb +28 -0
  191. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_reference_resolution_test.rb +45 -0
  192. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_status_multiple_or_search_test.rb +49 -0
  193. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_status_search_test.rb +46 -0
  194. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/diagnosticresult_path_validation_test.rb +42 -0
  195. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path/metadata.yml +312 -0
  196. data/lib/au_core_test_kit/generated/v1.0.0-preview/diagnosticresult_path_group.rb +115 -0
  197. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_class_patient_search_test.rb +53 -0
  198. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_class_search_test.rb +48 -0
  199. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_date_multiple_and_search_test.rb +49 -0
  200. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_date_patient_search_test.rb +51 -0
  201. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_date_search_test.rb +48 -0
  202. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_location_search_test.rb +47 -0
  203. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_must_support_test.rb +51 -0
  204. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_patient_chain_search_test.rb +50 -0
  205. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_patient_dva_chain_search_test.rb +51 -0
  206. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_patient_ihi_chain_search_test.rb +51 -0
  207. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_patient_location_search_test.rb +52 -0
  208. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_patient_medicare_chain_search_test.rb +51 -0
  209. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_patient_search_test.rb +67 -0
  210. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_patient_status_search_test.rb +51 -0
  211. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_read_test.rb +28 -0
  212. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_reference_resolution_test.rb +46 -0
  213. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_status_multiple_or_search_test.rb +48 -0
  214. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_status_search_test.rb +46 -0
  215. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/encounter_validation_test.rb +42 -0
  216. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter/metadata.yml +305 -0
  217. data/lib/au_core_test_kit/generated/v1.0.0-preview/encounter_group.rb +110 -0
  218. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_category_search_test.rb +48 -0
  219. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_code_multiple_or_search_test.rb +49 -0
  220. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_code_search_test.rb +48 -0
  221. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_date_multiple_and_search_test.rb +49 -0
  222. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_date_search_test.rb +48 -0
  223. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_must_support_test.rb +53 -0
  224. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_patient_category_date_search_test.rb +52 -0
  225. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_patient_category_search_test.rb +51 -0
  226. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_patient_category_status_search_test.rb +52 -0
  227. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_patient_chain_search_test.rb +50 -0
  228. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_patient_code_date_search_test.rb +54 -0
  229. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_patient_code_search_test.rb +68 -0
  230. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_patient_dva_chain_search_test.rb +51 -0
  231. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_patient_ihi_chain_search_test.rb +51 -0
  232. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_patient_medicare_chain_search_test.rb +51 -0
  233. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_patient_search_test.rb +52 -0
  234. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_read_test.rb +28 -0
  235. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_reference_resolution_test.rb +42 -0
  236. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_status_multiple_or_search_test.rb +49 -0
  237. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_status_search_test.rb +46 -0
  238. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/heartrate_validation_test.rb +42 -0
  239. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate/metadata.yml +327 -0
  240. data/lib/au_core_test_kit/generated/v1.0.0-preview/heartrate_group.rb +115 -0
  241. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_date_multiple_and_search_test.rb +49 -0
  242. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_date_search_test.rb +48 -0
  243. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_must_support_test.rb +44 -0
  244. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_patient_chain_search_test.rb +50 -0
  245. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_patient_date_search_test.rb +53 -0
  246. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_patient_dva_chain_search_test.rb +51 -0
  247. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_patient_ihi_chain_search_test.rb +51 -0
  248. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_patient_medicare_chain_search_test.rb +51 -0
  249. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_patient_search_test.rb +66 -0
  250. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_patient_status_search_test.rb +49 -0
  251. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_patient_vaccine_code_search_test.rb +53 -0
  252. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_read_test.rb +28 -0
  253. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_reference_resolution_test.rb +42 -0
  254. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_status_search_test.rb +46 -0
  255. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_vaccine_code_multiple_or_search_test.rb +49 -0
  256. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_vaccine_code_search_test.rb +48 -0
  257. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/immunization_validation_test.rb +42 -0
  258. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization/metadata.yml +226 -0
  259. data/lib/au_core_test_kit/generated/v1.0.0-preview/immunization_group.rb +106 -0
  260. data/lib/au_core_test_kit/generated/v1.0.0-preview/location/location_address_city_search_test.rb +46 -0
  261. data/lib/au_core_test_kit/generated/v1.0.0-preview/location/location_address_postalcode_search_test.rb +46 -0
  262. data/lib/au_core_test_kit/generated/v1.0.0-preview/location/location_address_search_test.rb +57 -0
  263. data/lib/au_core_test_kit/generated/v1.0.0-preview/location/location_address_state_search_test.rb +46 -0
  264. data/lib/au_core_test_kit/generated/v1.0.0-preview/location/location_must_support_test.rb +43 -0
  265. data/lib/au_core_test_kit/generated/v1.0.0-preview/location/location_name_search_test.rb +44 -0
  266. data/lib/au_core_test_kit/generated/v1.0.0-preview/location/location_read_test.rb +34 -0
  267. data/lib/au_core_test_kit/generated/v1.0.0-preview/location/location_reference_resolution_test.rb +42 -0
  268. data/lib/au_core_test_kit/generated/v1.0.0-preview/location/location_validation_test.rb +42 -0
  269. data/lib/au_core_test_kit/generated/v1.0.0-preview/location/metadata.yml +162 -0
  270. data/lib/au_core_test_kit/generated/v1.0.0-preview/location_group.rb +89 -0
  271. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_authoredon_multiple_and_search_test.rb +50 -0
  272. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_authoredon_search_test.rb +54 -0
  273. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_id_include_medication_test.rb +49 -0
  274. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_id_search_test.rb +53 -0
  275. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_intent_multiple_or_search_test.rb +50 -0
  276. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_intent_search_test.rb +53 -0
  277. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_must_support_test.rb +48 -0
  278. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_chain_search_test.rb +50 -0
  279. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_dva_chain_search_test.rb +51 -0
  280. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_ihi_chain_search_test.rb +51 -0
  281. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_include_medication_test.rb +50 -0
  282. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_intent_authoredon_include_medication_test.rb +49 -0
  283. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_intent_authoredon_search_test.rb +59 -0
  284. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_intent_include_medication_test.rb +49 -0
  285. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_intent_search_test.rb +58 -0
  286. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_intent_status_include_medication_test.rb +49 -0
  287. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_intent_status_search_test.rb +57 -0
  288. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_medicare_chain_search_test.rb +51 -0
  289. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_search_test.rb +73 -0
  290. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_patient_status_search_test.rb +55 -0
  291. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_read_test.rb +28 -0
  292. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_reference_resolution_test.rb +46 -0
  293. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_status_multiple_or_search_test.rb +48 -0
  294. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_status_search_test.rb +52 -0
  295. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_request_validation_test.rb +42 -0
  296. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/medication_validation_test.rb +41 -0
  297. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request/metadata.yml +330 -0
  298. data/lib/au_core_test_kit/generated/v1.0.0-preview/medication_request_group.rb +124 -0
  299. data/lib/au_core_test_kit/generated/v1.0.0-preview/metadata.yml +4882 -0
  300. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization/metadata.yml +122 -0
  301. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization/organization_address_search_test.rb +46 -0
  302. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization/organization_id_search_test.rb +56 -0
  303. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization/organization_identifier_abn_search_test.rb +45 -0
  304. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization/organization_identifier_hpio_search_test.rb +45 -0
  305. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization/organization_identifier_search_test.rb +45 -0
  306. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization/organization_must_support_test.rb +43 -0
  307. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization/organization_name_search_test.rb +44 -0
  308. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization/organization_read_test.rb +34 -0
  309. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization/organization_validation_test.rb +42 -0
  310. data/lib/au_core_test_kit/generated/v1.0.0-preview/organization_group.rb +90 -0
  311. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/metadata.yml +293 -0
  312. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_birthdate_family_search_test.rb +48 -0
  313. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_birthdate_multiple_and_search_test.rb +48 -0
  314. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_birthdate_name_search_test.rb +48 -0
  315. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_birthdate_search_test.rb +48 -0
  316. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_family_gender_search_test.rb +47 -0
  317. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_family_search_test.rb +47 -0
  318. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_gender_identity_multiple_and_search_test.rb +48 -0
  319. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_gender_identity_multiple_or_search_test.rb +48 -0
  320. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_gender_identity_search_test.rb +47 -0
  321. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_gender_name_search_test.rb +47 -0
  322. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_gender_search_test.rb +47 -0
  323. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_id_search_test.rb +61 -0
  324. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_identifier_dva_search_test.rb +45 -0
  325. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_identifier_ihi_search_test.rb +45 -0
  326. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_identifier_medicare_search_test.rb +45 -0
  327. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_identifier_search_test.rb +46 -0
  328. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_indigenous_status_multiple_and_search_test.rb +48 -0
  329. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_indigenous_status_multiple_or_search_test.rb +48 -0
  330. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_indigenous_status_search_test.rb +46 -0
  331. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_must_support_test.rb +54 -0
  332. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_name_search_test.rb +47 -0
  333. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_read_test.rb +28 -0
  334. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient/patient_validation_test.rb +42 -0
  335. data/lib/au_core_test_kit/generated/v1.0.0-preview/patient_group.rb +118 -0
  336. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner/metadata.yml +108 -0
  337. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner/practitioner_id_search_test.rb +56 -0
  338. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner/practitioner_identifier_hpii_search_test.rb +45 -0
  339. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner/practitioner_identifier_search_test.rb +45 -0
  340. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner/practitioner_must_support_test.rb +42 -0
  341. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner/practitioner_name_search_test.rb +46 -0
  342. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner/practitioner_read_test.rb +34 -0
  343. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner/practitioner_validation_test.rb +42 -0
  344. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_group.rb +85 -0
  345. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/metadata.yml +204 -0
  346. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_id_include_practitioner_test.rb +50 -0
  347. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_id_search_test.rb +58 -0
  348. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_identifier_include_practitioner_test.rb +49 -0
  349. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_identifier_medicare_search_test.rb +45 -0
  350. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_identifier_search_test.rb +46 -0
  351. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_must_support_test.rb +44 -0
  352. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_organization_search_test.rb +47 -0
  353. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_practitioner_chain_search_test.rb +50 -0
  354. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_practitioner_include_practitioner_test.rb +49 -0
  355. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_practitioner_multiple_and_search_test.rb +49 -0
  356. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_practitioner_multiple_or_search_test.rb +49 -0
  357. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_practitioner_search_test.rb +51 -0
  358. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_read_test.rb +34 -0
  359. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_reference_resolution_test.rb +43 -0
  360. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_role_search_test.rb +48 -0
  361. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_specialty_include_practitioner_test.rb +49 -0
  362. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_specialty_search_test.rb +48 -0
  363. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role/practitioner_role_validation_test.rb +42 -0
  364. data/lib/au_core_test_kit/generated/v1.0.0-preview/practitioner_role_group.rb +108 -0
  365. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/metadata.yml +265 -0
  366. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_code_multiple_or_search_test.rb +49 -0
  367. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_code_search_test.rb +48 -0
  368. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_date_multiple_and_search_test.rb +48 -0
  369. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_date_search_test.rb +48 -0
  370. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_must_support_test.rb +45 -0
  371. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_patient_chain_search_test.rb +50 -0
  372. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_patient_code_date_search_test.rb +54 -0
  373. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_patient_date_search_test.rb +51 -0
  374. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_patient_dva_chain_search_test.rb +51 -0
  375. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_patient_ihi_chain_search_test.rb +51 -0
  376. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_patient_medicare_chain_search_test.rb +51 -0
  377. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_patient_search_test.rb +66 -0
  378. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_patient_status_search_test.rb +51 -0
  379. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_read_test.rb +28 -0
  380. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_reference_resolution_test.rb +44 -0
  381. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_status_multiple_or_search_test.rb +49 -0
  382. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_status_search_test.rb +46 -0
  383. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure/procedure_validation_test.rb +42 -0
  384. data/lib/au_core_test_kit/generated/v1.0.0-preview/procedure_group.rb +108 -0
  385. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/metadata.yml +327 -0
  386. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_category_search_test.rb +48 -0
  387. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_code_multiple_or_search_test.rb +49 -0
  388. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_code_search_test.rb +48 -0
  389. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_date_multiple_and_search_test.rb +49 -0
  390. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_date_search_test.rb +48 -0
  391. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_must_support_test.rb +53 -0
  392. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_patient_category_date_search_test.rb +52 -0
  393. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_patient_category_search_test.rb +51 -0
  394. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_patient_category_status_search_test.rb +52 -0
  395. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_patient_chain_search_test.rb +50 -0
  396. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_patient_code_date_search_test.rb +54 -0
  397. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_patient_code_search_test.rb +68 -0
  398. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_patient_dva_chain_search_test.rb +51 -0
  399. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_patient_ihi_chain_search_test.rb +51 -0
  400. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_patient_medicare_chain_search_test.rb +51 -0
  401. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_patient_search_test.rb +52 -0
  402. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_read_test.rb +28 -0
  403. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_reference_resolution_test.rb +42 -0
  404. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_status_multiple_or_search_test.rb +49 -0
  405. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_status_search_test.rb +46 -0
  406. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate/resprate_validation_test.rb +42 -0
  407. data/lib/au_core_test_kit/generated/v1.0.0-preview/resprate_group.rb +115 -0
  408. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/metadata.yml +287 -0
  409. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_category_search_test.rb +48 -0
  410. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_code_multiple_or_search_test.rb +49 -0
  411. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_code_search_test.rb +48 -0
  412. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_date_multiple_and_search_test.rb +49 -0
  413. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_date_search_test.rb +48 -0
  414. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_must_support_test.rb +44 -0
  415. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_patient_category_date_search_test.rb +52 -0
  416. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_patient_category_search_test.rb +51 -0
  417. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_patient_category_status_search_test.rb +52 -0
  418. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_patient_chain_search_test.rb +50 -0
  419. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_patient_code_date_search_test.rb +54 -0
  420. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_patient_code_search_test.rb +68 -0
  421. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_patient_dva_chain_search_test.rb +51 -0
  422. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_patient_ihi_chain_search_test.rb +51 -0
  423. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_patient_medicare_chain_search_test.rb +51 -0
  424. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_patient_search_test.rb +52 -0
  425. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_read_test.rb +28 -0
  426. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_reference_resolution_test.rb +42 -0
  427. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_status_multiple_or_search_test.rb +49 -0
  428. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_status_search_test.rb +46 -0
  429. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus/smokingstatus_validation_test.rb +42 -0
  430. data/lib/au_core_test_kit/generated/v1.0.0-preview/smokingstatus_group.rb +115 -0
  431. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/metadata.yml +325 -0
  432. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_category_search_test.rb +48 -0
  433. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_code_multiple_or_search_test.rb +49 -0
  434. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_code_search_test.rb +48 -0
  435. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_date_multiple_and_search_test.rb +49 -0
  436. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_date_search_test.rb +48 -0
  437. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_must_support_test.rb +49 -0
  438. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_patient_category_date_search_test.rb +52 -0
  439. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_patient_category_search_test.rb +51 -0
  440. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_patient_category_status_search_test.rb +52 -0
  441. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_patient_chain_search_test.rb +50 -0
  442. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_patient_code_date_search_test.rb +54 -0
  443. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_patient_code_search_test.rb +68 -0
  444. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_patient_dva_chain_search_test.rb +51 -0
  445. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_patient_ihi_chain_search_test.rb +51 -0
  446. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_patient_medicare_chain_search_test.rb +51 -0
  447. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_patient_search_test.rb +52 -0
  448. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_read_test.rb +28 -0
  449. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_reference_resolution_test.rb +42 -0
  450. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_status_multiple_or_search_test.rb +49 -0
  451. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_status_search_test.rb +46 -0
  452. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum/waistcircum_validation_test.rb +42 -0
  453. data/lib/au_core_test_kit/generated/v1.0.0-preview/waistcircum_group.rb +115 -0
  454. data/lib/au_core_test_kit/generator/chain_search_test_generator.rb +169 -0
  455. data/lib/au_core_test_kit/generator/group_generator.rb +143 -0
  456. data/lib/au_core_test_kit/generator/group_metadata.rb +103 -0
  457. data/lib/au_core_test_kit/generator/group_metadata_extractor.rb +336 -0
  458. data/lib/au_core_test_kit/generator/ig_download.rb +59 -0
  459. data/lib/au_core_test_kit/generator/ig_loader.rb +88 -0
  460. data/lib/au_core_test_kit/generator/ig_metadata.rb +51 -0
  461. data/lib/au_core_test_kit/generator/ig_metadata_extractor.rb +92 -0
  462. data/lib/au_core_test_kit/generator/ig_resources.rb +106 -0
  463. data/lib/au_core_test_kit/generator/include_search_test_generator.rb +111 -0
  464. data/lib/au_core_test_kit/generator/multiple_and_search_test_generator.rb +216 -0
  465. data/lib/au_core_test_kit/generator/multiple_or_search_test_generator.rb +219 -0
  466. data/lib/au_core_test_kit/generator/must_support_metadata_extractor.rb +472 -0
  467. data/lib/au_core_test_kit/generator/must_support_metadata_extractor_au_core_3.rb +64 -0
  468. data/lib/au_core_test_kit/generator/must_support_test_generator.rb +118 -0
  469. data/lib/au_core_test_kit/generator/naming.rb +57 -0
  470. data/lib/au_core_test_kit/generator/provenance_revinclude_search_test_generator.rb +193 -0
  471. data/lib/au_core_test_kit/generator/read_test_generator.rb +112 -0
  472. data/lib/au_core_test_kit/generator/reference_resolution_test_generator.rb +94 -0
  473. data/lib/au_core_test_kit/generator/search_definition_metadata_extractor.rb +340 -0
  474. data/lib/au_core_test_kit/generator/search_metadata_extractor.rb +95 -0
  475. data/lib/au_core_test_kit/generator/search_test_generator.rb +386 -0
  476. data/lib/au_core_test_kit/generator/special_cases.rb +91 -0
  477. data/lib/au_core_test_kit/generator/special_identifier_search_test_generator.rb +85 -0
  478. data/lib/au_core_test_kit/generator/special_identifiers_chain_search_test_generator.rb +77 -0
  479. data/lib/au_core_test_kit/generator/suite_generator.rb +104 -0
  480. data/lib/au_core_test_kit/generator/summary_generator.rb +172 -0
  481. data/lib/au_core_test_kit/generator/terminology_binding_metadata_extractor.rb +118 -0
  482. data/lib/au_core_test_kit/generator/validation_test_generator.rb +142 -0
  483. data/lib/au_core_test_kit/generator/value_extractor.rb +107 -0
  484. data/lib/au_core_test_kit/generator.rb +146 -0
  485. data/lib/au_core_test_kit/helpers.rb +238 -0
  486. data/lib/au_core_test_kit/igs/1.0.0-preview.tgz +0 -0
  487. data/lib/au_core_test_kit/igs/au-base-resources.json +1 -0
  488. data/lib/au_core_test_kit/igs/search-params.json +80725 -0
  489. data/lib/au_core_test_kit/must_support_test.rb +221 -0
  490. data/lib/au_core_test_kit/provenance_validator.rb +38 -0
  491. data/lib/au_core_test_kit/read_test.rb +121 -0
  492. data/lib/au_core_test_kit/reference_resolution_test.rb +193 -0
  493. data/lib/au_core_test_kit/request_logger.rb +48 -0
  494. data/lib/au_core_test_kit/search_test.rb +1032 -0
  495. data/lib/au_core_test_kit/search_test_helpers.rb +21 -0
  496. data/lib/au_core_test_kit/search_test_properties.rb +67 -0
  497. data/lib/au_core_test_kit/special_identifier_search_test.rb +94 -0
  498. data/lib/au_core_test_kit/validation_test.rb +62 -0
  499. data/lib/au_core_test_kit/version.rb +5 -0
  500. data/lib/au_core_test_kit.rb +15 -0
  501. metadata +642 -0
@@ -0,0 +1,386 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'naming'
4
+ require_relative 'special_cases'
5
+
6
+ module AUCoreTestKit
7
+ class Generator
8
+ class SearchTestGenerator
9
+ class << self
10
+ def generate(ig_metadata, base_output_dir)
11
+ ig_metadata.groups
12
+ .reject { |group| SpecialCases.exclude_group? group }
13
+ .select { |group| group.searches.present? }
14
+ .each do |group|
15
+ group.searches.each { |search| new(group, search, base_output_dir).generate }
16
+ end
17
+ end
18
+ end
19
+
20
+ attr_accessor :group_metadata, :search_metadata, :base_output_dir
21
+
22
+ def initialize(group_metadata, search_metadata, base_output_dir)
23
+ self.group_metadata = group_metadata
24
+ self.search_metadata = search_metadata
25
+ self.base_output_dir = base_output_dir
26
+ end
27
+
28
+ def template
29
+ @template ||= File.read(File.join(__dir__, 'templates', 'search.rb.erb'))
30
+ end
31
+
32
+ def output
33
+ @output ||= ERB.new(template).result(binding)
34
+ end
35
+
36
+ def base_output_file_name
37
+ "#{class_name.underscore}.rb"
38
+ end
39
+
40
+ def output_file_directory
41
+ File.join(base_output_dir, profile_identifier)
42
+ end
43
+
44
+ def output_file_name
45
+ File.join(output_file_directory, base_output_file_name)
46
+ end
47
+
48
+ def profile_identifier
49
+ Naming.snake_case_for_profile(group_metadata)
50
+ end
51
+
52
+ def test_id
53
+ "au_core_#{group_metadata.reformatted_version}_#{profile_identifier}_#{search_identifier}_search_test"
54
+ end
55
+
56
+ def search_identifier
57
+ search_metadata[:names].join('_').tr('-', '_')
58
+ end
59
+
60
+ def search_title
61
+ search_identifier.camelize
62
+ end
63
+
64
+ def class_name
65
+ "#{Naming.upper_camel_case_for_profile(group_metadata)}#{search_title}SearchTest"
66
+ end
67
+
68
+ def module_name
69
+ "AUCore#{group_metadata.reformatted_version.upcase}"
70
+ end
71
+
72
+ def resource_type
73
+ group_metadata.resource
74
+ end
75
+
76
+ def conformance_expectation
77
+ search_metadata[:expectation]
78
+ end
79
+
80
+ def search_params
81
+ @search_params ||=
82
+ search_metadata[:names].map do |name|
83
+ {
84
+ name:,
85
+ path: search_definition(name)[:path]
86
+ }
87
+ end
88
+ end
89
+
90
+ def first_search_for_patient_by_patient_id
91
+ first_search? && resource_type == 'Patient' && search_metadata[:names].first == '_id'
92
+ end
93
+
94
+ def first_search?
95
+ group_metadata.searches.first == search_metadata
96
+ end
97
+
98
+ def fixed_value_search?
99
+ first_search? && search_metadata[:names] != ['patient'] &&
100
+ !group_metadata.delayed? && resource_type != 'Patient'
101
+ end
102
+
103
+ def fixed_value_search_param_name
104
+ (search_metadata[:names] - [:patient]).first
105
+ end
106
+
107
+ def search_param_name_string
108
+ search_metadata[:names].join(' + ')
109
+ end
110
+
111
+ def needs_patient_id?
112
+ search_metadata[:names].include?('patient') ||
113
+ (resource_type == 'Patient' && search_metadata[:names].include?('_id'))
114
+ end
115
+
116
+ def search_param_names
117
+ search_params.map { |param| param[:name] }
118
+ end
119
+
120
+ def search_param_names_array
121
+ array_of_strings(search_param_names)
122
+ end
123
+
124
+ def path_for_value(path)
125
+ path == 'class' ? 'local_class' : path
126
+ end
127
+
128
+ def required_comparators_for_param(name)
129
+ search_definition(name)[:comparators].select { |_comparator, expectation| expectation == 'SHALL' }
130
+ end
131
+
132
+ def required_comparators
133
+ @required_comparators ||=
134
+ search_param_names.each_with_object({}) do |name, comparators|
135
+ required_comparators = required_comparators_for_param(name)
136
+ comparators[name] = required_comparators if required_comparators.present?
137
+ end
138
+ end
139
+
140
+ def optional?
141
+ # NOTE: Original behavior changed because we need a clear
142
+ # expectation of the search parameters in tests. If in the
143
+ # CapabilityStatement resource we have SHALL it should be
144
+ # required in the tests.
145
+ # https://github.com/hl7au/au-fhir-core-inferno/issues/47
146
+ # conformance_expectation != 'SHALL' || !search_metadata[:must_support_or_mandatory]
147
+ conformance_expectation != 'SHALL'
148
+ end
149
+
150
+ def search_definition(name)
151
+ group_metadata.search_definitions[name.to_sym]
152
+ end
153
+
154
+ def saves_delayed_references?
155
+ first_search? && group_metadata.delayed_references.present?
156
+ end
157
+
158
+ def possible_status_search?
159
+ search_metadata[:names].none? { |name| name.include? 'status' } &&
160
+ group_metadata.search_definitions.keys.any? { |key| key.to_s.include? 'status' }
161
+ end
162
+
163
+ def token_search_params
164
+ @token_search_params ||=
165
+ search_param_names.select do |name|
166
+ %w[Identifier CodeableConcept Coding].include? group_metadata.search_definitions[name.to_sym][:type]
167
+ end
168
+ end
169
+
170
+ def token_search_params_string
171
+ array_of_strings(token_search_params)
172
+ end
173
+
174
+ def required_multiple_or_search_params
175
+ @required_multiple_or_search_params ||=
176
+ search_param_names.select do |name|
177
+ search_definition(name)[:multiple_or] == 'SHALL'
178
+ end
179
+ end
180
+
181
+ def optional_multiple_or_search_params
182
+ @optional_multiple_or_search_params ||=
183
+ search_param_names.select do |name|
184
+ search_definition(name)[:multiple_or] == 'SHOULD'
185
+ end
186
+ end
187
+
188
+ def required_multiple_or_search_params_string
189
+ array_of_strings(required_multiple_or_search_params)
190
+ end
191
+
192
+ def optional_multiple_or_search_params_string
193
+ array_of_strings(optional_multiple_or_search_params)
194
+ end
195
+
196
+ def optional_multiple_and_search_params
197
+ @optional_multiple_and_search_params ||=
198
+ search_param_names.select do |name|
199
+ search_definition(name)[:multiple_and] == 'SHOULD'
200
+ end
201
+ end
202
+
203
+ def required_multiple_and_search_params
204
+ @required_multiple_and_search_params ||=
205
+ search_param_names.select do |name|
206
+ search_definition(name)[:multiple_and] == 'SHALL'
207
+ end
208
+ end
209
+
210
+ def optional_multiple_and_search_params_string
211
+ array_of_strings(optional_multiple_and_search_params)
212
+ end
213
+
214
+ def required_multiple_and_search_params_string
215
+ array_of_strings(required_multiple_and_search_params)
216
+ end
217
+
218
+ def required_comparators_string
219
+ array_of_strings(required_comparators.keys)
220
+ end
221
+
222
+ def array_of_strings(array)
223
+ quoted_strings = array.map { |element| "'#{element}'" }
224
+ "[#{quoted_strings.join(', ')}]"
225
+ end
226
+
227
+ def test_reference_variants?
228
+ return true if resource_type == 'PractitionerRole' && search_param_names.include?('practitioner')
229
+
230
+ first_search? && search_param_names.include?('patient')
231
+ end
232
+
233
+ def test_medication_inclusion?
234
+ %w[MedicationRequest MedicationDispense].include?(resource_type)
235
+ end
236
+
237
+ def test_post_search?
238
+ first_search?
239
+ end
240
+
241
+ def includes
242
+ # The medication SearchParameter does not exist for the MedicationStatement
243
+ # and MedicationRequest resources in the current version of the IG,
244
+ # we shall keep special cases to provide functionality for the "_include" tests.
245
+ # https://jira.csiro.au/browse/ST-400
246
+ special_cases = {
247
+ 'MedicationRequest:medication' => { 'parameter' => 'MedicationRequest:medication', 'target_resource' => 'Medication', 'paths' => ['medicationReference'] },
248
+ 'MedicationStatement:medication' => { 'parameter' => 'MedicationStatement:medication', 'target_resource' => 'Medication', 'paths' => ['medicationReference'] }
249
+ }
250
+ include_params_list = group_metadata.include_params
251
+ search_definitions = group_metadata.search_definitions
252
+
253
+ include_params_list.map do |include_param|
254
+ if special_cases.key?(include_param)
255
+ puts "Special case for include_param: #{include_param}"
256
+
257
+ return [special_cases[include_param]]
258
+ end
259
+
260
+ target_resource = ''
261
+ paths = ''
262
+ search_definitions.each_key do |search_def_key|
263
+ current_search_def_path = search_definitions[search_def_key]
264
+ next unless current_search_def_path[:full_paths].first.split('.') == include_param.split(':')
265
+
266
+ target_resource = current_search_def_path[:target_resource]
267
+ paths = current_search_def_path[:paths]
268
+ break
269
+ end
270
+
271
+ {
272
+ 'parameter' => include_param,
273
+ 'target_resource' => target_resource,
274
+ 'paths' => paths
275
+ }
276
+ end
277
+ end
278
+
279
+ def search_properties
280
+ {}.tap do |properties|
281
+ properties[:first_search] = 'true' if first_search?
282
+ properties[:fixed_value_search] = 'true' if fixed_value_search?
283
+ properties[:resource_type] = "'#{resource_type}'"
284
+ properties[:search_param_names] = search_param_names_array
285
+ properties[:saves_delayed_references] = 'true' if saves_delayed_references?
286
+ properties[:possible_status_search] = 'true' if possible_status_search?
287
+ properties[:test_medication_inclusion] = 'true' if test_medication_inclusion?
288
+ properties[:includes] = includes if group_metadata.include_params.present?
289
+ properties[:token_search_params] = token_search_params_string if token_search_params.present?
290
+ properties[:test_reference_variants] = 'true' if test_reference_variants?
291
+ properties[:params_with_comparators] = required_comparators_string if required_comparators.present?
292
+ properties[:test_post_search] = 'true' if first_search?
293
+ properties[:first_search_for_patient_by_patient_id] = 'true' if first_search_for_patient_by_patient_id
294
+ end
295
+ end
296
+
297
+ def url_version
298
+ case group_metadata.version
299
+ when 'v0.3.0-ballot'
300
+ '0.3.0-ballot'
301
+ end
302
+ end
303
+
304
+ def search_test_properties_string
305
+ search_properties
306
+ .map { |key, value| "#{' ' * 8}#{key}: #{value}" }
307
+ .join(",\n")
308
+ end
309
+
310
+ def generate
311
+ FileUtils.mkdir_p(output_file_directory)
312
+ File.open(output_file_name, 'w') { |f| f.write(output) }
313
+
314
+ group_metadata.add_test(
315
+ id: test_id,
316
+ file_name: base_output_file_name
317
+ )
318
+ end
319
+
320
+ def reference_search_description
321
+ return '' unless test_reference_variants?
322
+
323
+ <<~REFERENCE_SEARCH_DESCRIPTION
324
+ This test verifies that the server supports searching by reference using
325
+ the form `#{search_param_names.first}=[id]` as well as `#{search_param_names.first}=#{search_param_names.first.capitalize}/[id]`. The two
326
+ different forms are expected to return the same number of results. AU
327
+ Core requires that both forms are supported by AU Core responders.
328
+ REFERENCE_SEARCH_DESCRIPTION
329
+ end
330
+
331
+ def first_search_description
332
+ return '' unless first_search?
333
+
334
+ <<~FIRST_SEARCH_DESCRIPTION
335
+ Because this is the first search of the sequence, resources in the
336
+ response will be used for subsequent tests.
337
+ FIRST_SEARCH_DESCRIPTION
338
+ end
339
+
340
+ def medication_inclusion_description
341
+ return '' unless test_medication_inclusion?
342
+
343
+ <<~MEDICATION_INCLUSION_DESCRIPTION
344
+ If any #{resource_type} resources use external references to
345
+ Medications, the search will be repeated with
346
+ `_include=#{resource_type}:medication`.
347
+ MEDICATION_INCLUSION_DESCRIPTION
348
+ end
349
+
350
+ def post_search_description
351
+ return '' unless test_post_search?
352
+
353
+ <<~POST_SEARCH_DESCRIPTION
354
+ Additionally, this test will check that GET and POST search methods
355
+ return the same number of results. Search by POST is required by the
356
+ FHIR R4 specification, and these tests interpret search by GET as a
357
+ requirement of AU Core #{group_metadata.version}.
358
+ POST_SEARCH_DESCRIPTION
359
+ end
360
+
361
+ def description
362
+ <<~DESCRIPTION.gsub(/\n{3,}/, "\n\n")
363
+ A server #{conformance_expectation} support searching by
364
+ #{search_param_name_string} on the #{resource_type} resource. This test
365
+ will pass if resources are returned and match the search criteria. If
366
+ none are returned, the test is skipped.
367
+
368
+ #{medication_inclusion_description}
369
+ #{reference_search_description}
370
+ #{first_search_description}
371
+ #{post_search_description}
372
+
373
+ [AU Core Server CapabilityStatement](http://hl7.org.au/fhir/core/#{url_version}/CapabilityStatement-au-core-server.html)
374
+ DESCRIPTION
375
+ end
376
+
377
+ def search_method
378
+ if search_metadata[:names].first == 'identifier' && group_metadata.name == 'au_core_patient'
379
+ 'run_search_test_with_system'
380
+ else
381
+ 'run_search_test'
382
+ end
383
+ end
384
+ end
385
+ end
386
+ end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AUCoreTestKit
4
+ class Generator
5
+ module SpecialCases
6
+ RESOURCES_TO_EXCLUDE = %w[
7
+ Medication
8
+ RelatedPerson
9
+ ].freeze
10
+
11
+ PROFILES_TO_EXCLUDE = [].freeze
12
+
13
+ PATIENT_IDENTIFIERS = [
14
+ { display: 'IHI', url: 'http://ns.electronichealth.net.au/id/hi/ihi/1.0' },
15
+ { display: 'Medicare', url: 'http://ns.electronichealth.net.au/id/medicare-number' },
16
+ { display: 'DVA', url: 'http://ns.electronichealth.net.au/id/dva' }
17
+ ].freeze
18
+
19
+ PRACTITIONER_IDENTIFIERS = [
20
+ { display: 'HPI-I', url: 'http://ns.electronichealth.net.au/id/hi/hpii/1.0' }
21
+ ].freeze
22
+
23
+ PRACTITIONER_ROLE_IDENTIFIERS = [
24
+ { display: 'Medicare', url: 'http://ns.electronichealth.net.au/id/medicare-provider-number' }
25
+ ].freeze
26
+
27
+ ORGANIZATION_IDENTIFIERS = [
28
+ { display: 'HPI-O', url: 'http://ns.electronichealth.net.au/id/hi/hpio/1.0' },
29
+ { display: 'ABN', url: 'http://hl7.org.au/id/abn' }
30
+ ].freeze
31
+
32
+ # In the current implementation (2024.10.16/1.0.0-ci-build) there is no way
33
+ # to get information on what search/combo search parameters SHOULD be supported
34
+ # with the _include parameter. This information exists only in narratives.
35
+
36
+ # https://build.fhir.org/ig/hl7au/au-fhir-core/StructureDefinition-au-core-medicationrequest.html#mandatory-search-parameters
37
+ # https://build.fhir.org/ig/hl7au/au-fhir-core/StructureDefinition-au-core-practitionerrole.html#mandatory-search-parameters
38
+ # https://github.com/hl7au/au-fhir-core-inferno/issues/199
39
+
40
+ SEARCH_PARAMS_FOR_INCLUDE_BY_RESOURCE = {
41
+ 'MedicationRequest' => [
42
+ ['patient'],
43
+ %w[patient intent],
44
+ %w[patient intent status],
45
+ ['_id'],
46
+ %w[patient intent authoredon]
47
+ ],
48
+ 'PractitionerRole' => [
49
+ ['identifier'],
50
+ ['practitioner'],
51
+ ['_id'],
52
+ ['specialty']
53
+ ]
54
+ }.freeze
55
+
56
+ MULTIPLE_OR_AND_SEARCH_BY_TARGET_RESOURCE = {
57
+ 'PractitionerRole' => [['practitioner']]
58
+ }.freeze
59
+
60
+ class << self
61
+ def exclude_group?(group)
62
+ RESOURCES_TO_EXCLUDE.include?(group.resource)
63
+ end
64
+
65
+ def patient_au_identifiers
66
+ PATIENT_IDENTIFIERS
67
+ end
68
+
69
+ def practitioner_au_identifiers
70
+ PRACTITIONER_IDENTIFIERS
71
+ end
72
+
73
+ def practitionerrole_au_identifiers
74
+ PRACTITIONER_ROLE_IDENTIFIERS
75
+ end
76
+
77
+ def organization_au_identifiers
78
+ ORGANIZATION_IDENTIFIERS
79
+ end
80
+
81
+ def search_params_for_include_by_resource
82
+ SEARCH_PARAMS_FOR_INCLUDE_BY_RESOURCE
83
+ end
84
+
85
+ def multiple_or_and_search_by_target_resource
86
+ MULTIPLE_OR_AND_SEARCH_BY_TARGET_RESOURCE
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'naming'
4
+ require_relative 'special_cases'
5
+ require_relative 'search_test_generator'
6
+
7
+ module AUCoreTestKit
8
+ class Generator
9
+ class SpecialIdentifierSearchTestGenerator < SearchTestGenerator
10
+ class << self
11
+ def generate(ig_metadata, base_output_dir)
12
+ ig_metadata.groups.reject { |group| SpecialCases.exclude_group? group }
13
+ .select { |group| ['au_core_patient', 'au_core_practitioner', 'au_core_organization', 'au_core_practitionerrole'].include? group.name }
14
+ .select { |group| group.searches.present? }
15
+ .each do |group|
16
+ group.searches.each do |search|
17
+ next unless search[:names].include? 'identifier'
18
+ identifier_arr =
19
+ case group.name
20
+ when 'au_core_patient'
21
+ SpecialCases.patient_au_identifiers
22
+ when 'au_core_practitioner'
23
+ SpecialCases.practitioner_au_identifiers
24
+ when 'au_core_practitionerrole'
25
+ SpecialCases.practitionerrole_au_identifiers
26
+ when 'au_core_organization'
27
+ SpecialCases.organization_au_identifiers
28
+ end
29
+ identifier_arr.each do |special_identifier|
30
+ new(group, search, base_output_dir, special_identifier).generate
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+
37
+ attr_accessor :group_metadata, :search_metadata, :base_output_dir, :special_identifier
38
+
39
+ def initialize(group_metadata, search_metadata, base_output_dir, special_identifier)
40
+ super(group_metadata, search_metadata, base_output_dir)
41
+ self.special_identifier = special_identifier
42
+ end
43
+
44
+ def template
45
+ @template ||= File.read(File.join(__dir__, 'templates', 'special_identifier_search.rb.erb'))
46
+ end
47
+
48
+ def test_id
49
+ "au_core_#{group_metadata.reformatted_version}_#{profile_identifier}_#{search_identifier}_#{special_identifier[:display].delete('-').downcase}_search_test"
50
+ end
51
+
52
+ def class_name
53
+ "#{Naming.upper_camel_case_for_profile(group_metadata)}#{search_title}#{special_identifier[:display].delete('-')}SearchTest"
54
+ end
55
+
56
+ def optional?
57
+ true
58
+ end
59
+
60
+ def search_properties
61
+ {}.tap do |properties|
62
+ properties[:resource_type] = "'#{resource_type}'"
63
+ properties[:search_param_names] = search_param_names_array
64
+ properties[:token_search_params] = token_search_params_string if token_search_params.present?
65
+ properties[:target_identifier] = special_identifier
66
+ end
67
+ end
68
+
69
+ def title
70
+ "Server returns valid results for #{resource_type} search by identifier (#{special_identifier[:display]})"
71
+ end
72
+
73
+ def description
74
+ <<~DESCRIPTION.gsub(/\n{3,}/, "\n\n")
75
+ A server SHOULD support searching by
76
+ #{search_param_name_string} (#{special_identifier[:display]}) on the #{resource_type} resource. This test
77
+ will pass if resources are returned and match the search criteria. If
78
+ none are returned, the test is skipped.
79
+
80
+ [AU Core Server CapabilityStatement](http://hl7.org.au/fhir/core/#{url_version}/CapabilityStatement-au-core-server.html)
81
+ DESCRIPTION
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'naming'
4
+ require_relative 'special_cases'
5
+ require_relative 'chain_search_test_generator'
6
+
7
+ module AUCoreTestKit
8
+ class Generator
9
+ class SpecialIdentifiersChainSearchTestGenerator < ChainSearchTestGenerator
10
+ class << self
11
+ def generate(ig_metadata, base_output_dir)
12
+ ig_metadata.groups
13
+ .select { |group| group.searches.present? }
14
+ .each do |group|
15
+ group.search_definitions.each_key do |search_key|
16
+ current_search_definition = group.search_definitions[search_key]
17
+ next unless current_search_definition.key?(:chain) && current_search_definition[:chain].length.positive?
18
+
19
+ current_search_definition[:chain].each do |chain_item|
20
+ next unless chain_item[:target] == 'Patient'
21
+
22
+ SpecialCases.patient_au_identifiers.each do |target_identifier|
23
+ new(
24
+ search_key.to_s,
25
+ group,
26
+ group.search_definitions[search_key],
27
+ base_output_dir,
28
+ chain_item,
29
+ target_identifier
30
+ ).generate
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ attr_accessor :search_name, :group_metadata, :search_metadata, :base_output_dir, :chain_item, :target_identifier
39
+
40
+ def initialize(search_name, group_metadata, search_metadata, base_output_dir, chain_item, target_identifier)
41
+ super(search_name, group_metadata, search_metadata, base_output_dir, chain_item)
42
+ self.target_identifier = target_identifier
43
+ end
44
+
45
+ def test_id
46
+ "au_core_#{group_metadata.reformatted_version}_#{profile_identifier}_#{search_identifier}_#{target_identifier[:display].downcase}_chain_search_test"
47
+ end
48
+
49
+ def class_name
50
+ "#{Naming.upper_camel_case_for_profile(group_metadata)}#{search_title}_#{target_identifier[:display]}_ChainSearchTest"
51
+ end
52
+
53
+ def search_properties
54
+ {}.tap do |properties|
55
+ properties[:resource_type] = "'#{resource_type}'"
56
+ properties[:search_param_names] = search_param_names_array
57
+ properties[:attr_paths] = attribute_paths
58
+ properties[:target_identifier] = target_identifier
59
+ end
60
+ end
61
+
62
+ def title
63
+ "Server returns valid results for #{resource_type} search by #{search_param_name_string} (#{target_identifier[:display]}) (chained parameters)"
64
+ end
65
+
66
+ def description
67
+ <<~DESCRIPTION.gsub(/\n{3,}/, "\n\n")
68
+ A server #{conformance_expectation} support searching by
69
+ #{search_param_names.first} (#{target_identifier[:display]}) on the #{resource_type} resource. This test
70
+ will pass if the server returns a success response to the request.
71
+
72
+ [AU Core Server CapabilityStatement](http://hl7.org.au/fhir/core/#{url_version}/CapabilityStatement-au-core-server.html)
73
+ DESCRIPTION
74
+ end
75
+ end
76
+ end
77
+ end