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,103 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AUCoreTestKit
4
+ class Generator
5
+ class GroupMetadata
6
+ ATTRIBUTES = %i[
7
+ name
8
+ class_name
9
+ version
10
+ reformatted_version
11
+ resource
12
+ profile_url
13
+ profile_name
14
+ profile_version
15
+ title
16
+ short_description
17
+ interactions
18
+ operations
19
+ searches
20
+ search_definitions
21
+ include_params
22
+ revincludes
23
+ required_concepts
24
+ must_supports
25
+ mandatory_elements
26
+ bindings
27
+ references
28
+ tests
29
+ id
30
+ file_name
31
+ delayed_references
32
+ ].freeze
33
+
34
+ NON_USCDI_RESOURCES = {
35
+ 'Encounter' => %w[v311 v400],
36
+ 'Location' => %w[v311 v400 v501 v610],
37
+ 'Organization' => %w[v311 v400 v501 v610],
38
+ 'Practitioner' => %w[v311 v400 v501 v610],
39
+ 'PractitionerRole' => %w[v311 v400 v501 v610],
40
+ 'Provenance' => %w[v311 v400 v501 v610],
41
+ 'RelatedPerson' => %w[v501 v610],
42
+ 'Specimen' => ['v610']
43
+ }.freeze
44
+
45
+ ATTRIBUTES.each { |name| attr_accessor name }
46
+
47
+ def initialize(metadata)
48
+ metadata.each do |key, value|
49
+ raise "Unknown attribute #{key}" unless ATTRIBUTES.include? key
50
+
51
+ instance_variable_set(:"@#{key}", value)
52
+ end
53
+ end
54
+
55
+ def delayed?
56
+ return false if resource == 'Patient'
57
+
58
+ no_patient_searches? || non_uscdi_resource?
59
+ end
60
+
61
+ def no_patient_searches?
62
+ searches.none? { |search| search[:names].include? 'patient' }
63
+ end
64
+
65
+ def non_uscdi_resource?
66
+ NON_USCDI_RESOURCES.key?(resource) && NON_USCDI_RESOURCES[resource].include?(reformatted_version)
67
+ end
68
+
69
+ def add_test(id:, file_name:)
70
+ self.tests ||= []
71
+
72
+ test_metadata = {
73
+ id:,
74
+ file_name:
75
+ }
76
+
77
+ if delayed? && id.include?('read')
78
+ self.tests.unshift(test_metadata)
79
+ else
80
+ self.tests << test_metadata
81
+ end
82
+ end
83
+
84
+ def to_hash
85
+ ATTRIBUTES.each_with_object({}) { |key, hash| hash[key] = send(key) unless send(key).nil? }
86
+ end
87
+
88
+ def add_delayed_references(delayed_profiles, ig_resources)
89
+ self.delayed_references =
90
+ references
91
+ .select { |reference| (reference[:profiles] & delayed_profiles).present? }
92
+ .map do |reference|
93
+ profile_urls = (reference[:profiles] & delayed_profiles)
94
+ delayed_resources = profile_urls.map { |url| ig_resources.resource_for_profile(url) }
95
+ {
96
+ path: reference[:path].gsub("#{resource}.", ''),
97
+ resources: delayed_resources
98
+ }
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,336 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'group_metadata'
4
+ require_relative 'ig_metadata'
5
+ require_relative 'must_support_metadata_extractor'
6
+ require_relative 'search_metadata_extractor'
7
+ require_relative 'terminology_binding_metadata_extractor'
8
+
9
+ module AUCoreTestKit
10
+ class Generator
11
+ class GroupMetadataExtractor
12
+ attr_accessor :resource_capabilities, :profile_url, :ig_metadata, :ig_resources
13
+
14
+ def initialize(resource_capabilities, profile_url, ig_metadata, ig_resources)
15
+ self.resource_capabilities = resource_capabilities
16
+ self.profile_url = profile_url
17
+ self.ig_metadata = ig_metadata
18
+ self.ig_resources = ig_resources
19
+ end
20
+
21
+ def group_metadata
22
+ @group_metadata ||=
23
+ GroupMetadata.new(group_metadata_hash)
24
+ end
25
+
26
+ def group_metadata_hash
27
+ @group_metadata_hash ||=
28
+ {
29
+ name:,
30
+ class_name:,
31
+ version:,
32
+ reformatted_version:,
33
+ # test_id_prefix: test_id_prefix,
34
+ resource:,
35
+ profile_url:,
36
+ profile_name:,
37
+ profile_version:,
38
+ title:,
39
+ short_description:,
40
+ interactions:,
41
+ operations:,
42
+ searches:,
43
+ search_definitions:,
44
+ include_params:,
45
+ revincludes:,
46
+ required_concepts:,
47
+ must_supports:,
48
+ mandatory_elements:,
49
+ bindings:,
50
+ references:
51
+ # tests: []
52
+ }
53
+
54
+ mark_mandatory_and_must_support_searches
55
+ handle_special_cases
56
+
57
+ @group_metadata_hash
58
+ end
59
+
60
+ def mark_mandatory_and_must_support_searches
61
+ searches.each do |search|
62
+ search[:names_not_must_support_or_mandatory] = search[:names].reject do |name|
63
+ full_paths = search_definitions[name.to_sym][:full_paths]
64
+ any_must_support_elements = must_supports[:elements].any? do |element|
65
+ full_must_support_paths = ["#{resource}.#{element[:original_path]}", "#{resource}.#{element[:path]}"]
66
+
67
+ full_paths.any? do |path|
68
+ # allow for non-choice, choice types, and _id
69
+ name == '_id' || full_must_support_paths.include?(path) || full_must_support_paths.include?("#{path}[x]")
70
+ end
71
+ end
72
+
73
+ any_must_support_slices = must_supports[:slices].any? do |slice|
74
+ # only handle type slices because that is all we need for now
75
+ # for a slice like Observation.effective[x]:effectiveDateTime, the search parameter's expression could be
76
+ # either Observation.effective or Observation.effectiveDateTime.
77
+ if slice[:discriminator] && slice[:discriminator][:type] == 'type'
78
+ full_must_support_path = "#{resource}.#{slice[:path].sub('[x]', slice[:discriminator][:code])}"
79
+ base_must_support_path = "#{resource}.#{slice[:path].sub('[x]', '')}"
80
+
81
+ full_paths.intersection([full_must_support_path, base_must_support_path]).present?
82
+ else
83
+ false
84
+ end
85
+ end
86
+
87
+ any_mandatory_elements = mandatory_elements.any? do |element|
88
+ full_paths.include?(element)
89
+ end
90
+
91
+ any_must_support_elements || any_must_support_slices || any_mandatory_elements
92
+ end
93
+
94
+ search[:must_support_or_mandatory] = search[:names_not_must_support_or_mandatory].empty?
95
+ end
96
+ end
97
+
98
+ ### BEGIN SPECIAL CASES ###
99
+
100
+ ALL_VERSION_CATEGORY_FIRST_PROFILES = [
101
+ 'http://hl7.org.au/fhir/core/StructureDefinition/au-core-diagnosticresult-path',
102
+ 'http://hl7.org.au/fhir/core/StructureDefinition/au-core-diagnosticresult-imag'
103
+ ].freeze
104
+
105
+ ALL_VERSION_PATIENT_FIRST_PROFILES = [
106
+ 'http://hl7.org.au/fhir/core/StructureDefinition/au-core-observation',
107
+ ].freeze
108
+
109
+ ALL_VERSION_ID_FIRST_PROFILES = [
110
+ 'http://hl7.org.au/fhir/core/StructureDefinition/au-core-organization',
111
+ 'http://hl7.org.au/fhir/core/StructureDefinition/au-core-practitioner'
112
+ ].freeze
113
+
114
+ ALL_VERSION_NAME_FIRST_PROFILES = [
115
+ 'http://hl7.org.au/fhir/core/StructureDefinition/au-core-healthcareservice'
116
+ ].freeze
117
+
118
+ # Usage example
119
+ VERSION_SPECIFIC_CATEGORY_FIRST_PROFILES = {
120
+ # 'http://hl7.org.au/fhir/core/StructureDefinition/au-core-healthcareservice' => ['v030']
121
+ }.freeze
122
+
123
+ def name_first_profile?
124
+ ALL_VERSION_NAME_FIRST_PROFILES.include? profile_url
125
+ end
126
+
127
+ def id_first_profile?
128
+ ALL_VERSION_ID_FIRST_PROFILES.include? profile_url
129
+ end
130
+
131
+ def category_first_profile?
132
+ ALL_VERSION_CATEGORY_FIRST_PROFILES.include?(profile_url) ||
133
+ VERSION_SPECIFIC_CATEGORY_FIRST_PROFILES[profile_url]&.include?(reformatted_version)
134
+ end
135
+
136
+ def patient_first_profile?
137
+ ALL_VERSION_PATIENT_FIRST_PROFILES.include?(profile_url)
138
+ end
139
+
140
+ def first_search_params
141
+ @first_search_params ||=
142
+ if category_first_profile?
143
+ %w[patient category]
144
+ elsif patient_first_profile?
145
+ ['patient']
146
+ elsif id_first_profile?
147
+ ['_id']
148
+ elsif name_first_profile?
149
+ ['name']
150
+ elsif resource == 'Observation'
151
+ %w[patient code]
152
+ elsif resource == 'MedicationRequest'
153
+ ['patient']
154
+ elsif resource == 'CareTeam'
155
+ %w[patient status]
156
+ else
157
+ ['patient']
158
+ end
159
+ end
160
+
161
+ def handle_special_cases
162
+ set_first_search
163
+ end
164
+
165
+ def set_first_search
166
+ search = searches.find { |param| param[:names] == first_search_params }
167
+ return if search.nil?
168
+
169
+ searches.delete(search)
170
+ searches.unshift(search)
171
+ end
172
+
173
+ ### END SPECIAL CASES ###
174
+
175
+ def profile
176
+ # It's a temporary solution. Discuss it with the team
177
+ new_profile_url = profile_url == 'http://hl7.org.au/fhir/core/StructureDefinition/au-core-relatedperson' ? 'http://hl7.org.au/fhir/StructureDefinition/au-relatedperson' : profile_url
178
+ @profile ||= ig_resources.profile_by_url(new_profile_url)
179
+ end
180
+
181
+ def profile_elements
182
+ @profile_elements ||= profile.snapshot.element
183
+ end
184
+
185
+ def base_name
186
+ profile_url.split('StructureDefinition/').last
187
+ end
188
+
189
+ def name
190
+ base_name.tr('-', '_')
191
+ end
192
+
193
+ def class_name
194
+ base_name
195
+ .split('-')
196
+ .map(&:capitalize)
197
+ .join
198
+ .gsub('AUCore', "AUCore#{ig_metadata.reformatted_version}")
199
+ .concat('Sequence')
200
+ end
201
+
202
+ def version
203
+ ig_metadata.ig_version
204
+ end
205
+
206
+ def reformatted_version
207
+ ig_metadata.reformatted_version
208
+ end
209
+
210
+ def resource
211
+ resource_capabilities.type
212
+ end
213
+
214
+ def profile_name
215
+ profile.title.gsub(' ', ' ')
216
+ end
217
+
218
+ def profile_version
219
+ profile.version
220
+ end
221
+
222
+ def title
223
+ title = profile.title.gsub(/AU\s*Core\s*/, '').gsub(/\s*Profile/, '').strip
224
+
225
+ title = "#{resource} #{title.split(resource).map(&:strip).join(' ')}" if Naming.resources_with_multiple_profiles.include?(resource) && !title.start_with?(resource) && version != 'v3.1.1'
226
+
227
+ title
228
+ end
229
+
230
+ def short_description
231
+ "Verify support for the server capabilities required by the #{profile_name}."
232
+ end
233
+
234
+ def interactions
235
+ @interactions ||=
236
+ resource_capabilities.interaction.map do |interaction|
237
+ {
238
+ code: interaction.code,
239
+ expectation: interaction.extension.first.valueCode # TODO: fix expectation extension finding
240
+ }
241
+ end
242
+ end
243
+
244
+ def operations
245
+ @operations ||=
246
+ resource_capabilities.operation.map do |operation|
247
+ {
248
+ code: operation.name,
249
+ expectation: operation.extension.first.valueCode # TODO: fix expectation extension finding
250
+ }
251
+ end
252
+ end
253
+
254
+ def search_metadata_extractor
255
+ @search_metadata_extractor ||= SearchMetadataExtractor.new(
256
+ resource_capabilities,
257
+ ig_resources,
258
+ profile_elements,
259
+ {
260
+ resource:,
261
+ profile_url:,
262
+ must_supports:
263
+ }
264
+ )
265
+ end
266
+
267
+ def searches
268
+ @searches ||= search_metadata_extractor.searches
269
+ end
270
+
271
+ def search_definitions
272
+ @search_definitions ||= search_metadata_extractor.search_definitions
273
+ end
274
+
275
+ def include_params
276
+ resource_capabilities.searchInclude || []
277
+ end
278
+
279
+ def revincludes
280
+ resource_capabilities.searchRevInclude || []
281
+ end
282
+
283
+ def required_concepts
284
+ # The base FHIR vital signs profile has a required binding that isn't
285
+ # relevant for any of its child profiles
286
+ return [] if resource == 'Observation'
287
+
288
+ profile_elements
289
+ .select { |element| element.type&.any? { |type| type.code == 'CodeableConcept' } }
290
+ .select { |element| element.binding&.strength == 'required' }
291
+ .map { |element| element.path.gsub("#{resource}.", '').gsub('[x]', 'CodeableConcept') }
292
+ .uniq
293
+ end
294
+
295
+ def terminology_binding_metadata_extractor
296
+ @terminology_binding_metadata_extractor ||=
297
+ TerminologyBindingMetadataExtractor.new(profile_elements, ig_resources, resource)
298
+ end
299
+
300
+ def bindings
301
+ @bindings ||=
302
+ terminology_binding_metadata_extractor.terminology_bindings
303
+ end
304
+
305
+ def must_support_metadata_extractor
306
+ @must_support_metadata_extractor ||=
307
+ MustSupportMetadataExtractor.new(profile_elements, profile, resource, ig_resources)
308
+ end
309
+
310
+ def must_supports
311
+ @must_supports ||=
312
+ must_support_metadata_extractor.must_supports
313
+ end
314
+
315
+ def mandatory_elements
316
+ @mandatory_elements ||=
317
+ profile_elements
318
+ .select { |element| element.min.positive? }
319
+ .map(&:path)
320
+ .uniq
321
+ end
322
+
323
+ def references
324
+ @references ||=
325
+ profile_elements
326
+ .select { |element| element.type&.first&.code == 'Reference' }
327
+ .map do |reference_definition|
328
+ {
329
+ path: reference_definition.path,
330
+ profiles: reference_definition.type.first.targetProfile,
331
+ }
332
+ end
333
+ end
334
+ end
335
+ end
336
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'nokogiri'
4
+ require 'json'
5
+ require 'net/http'
6
+
7
+ url = 'http://hl7.org.au/fhir/core/history.html'
8
+
9
+ begin
10
+ uri = URI.parse(url)
11
+ response = Net::HTTP.get_response(uri)
12
+
13
+ unless response.is_a?(Net::HTTPSuccess)
14
+ puts "Failed to fetch HTML content from #{url}. HTTP Status: #{response.code} #{response.message}"
15
+ exit
16
+ end
17
+
18
+ html_content = response.body
19
+
20
+ doc = Nokogiri::HTML(html_content)
21
+
22
+ script_tag = doc.at('script:contains("var pageJSON")')
23
+
24
+ ig_versions_to_skip = ['0.1.0-draft', '0.2.0-preview', '0.2.1-preview', '0.2.2-preview', '0.3.0-ballot', '0.4.1-preview', '1.0.0-ballot', 'current']
25
+
26
+ if script_tag&.content
27
+ json_data = script_tag.content[/\{.*\}/m]
28
+ if json_data
29
+ data_hash = JSON.parse(json_data)
30
+ data_hash['list'].each do |item|
31
+ version = item['version']
32
+ next if ig_versions_to_skip.include? version
33
+
34
+ package_url = "#{item['path']}/package.tgz"
35
+ file_name = "#{version}.tgz"
36
+ output_directory = 'lib/au_core_test_kit/igs'
37
+
38
+ Dir.mkdir(output_directory) unless File.directory?(output_directory)
39
+
40
+ File.open(File.join(output_directory, file_name), 'wb') do |file|
41
+ uri = URI.parse(package_url)
42
+ response = Net::HTTP.get_response(uri)
43
+ if response.is_a?(Net::HTTPSuccess)
44
+ file.write(response.body)
45
+ puts "Successfully downloaded #{file_name}"
46
+ else
47
+ puts "Failed to download #{file_name}. HTTP Status: #{response.code} #{response.message}"
48
+ end
49
+ end
50
+ end
51
+ else
52
+ puts 'Error: Unable to extract JSON data from script tag.'
53
+ end
54
+ else
55
+ puts 'Error: Script tag containing pageJSON variable not found.'
56
+ end
57
+ rescue StandardError => e
58
+ puts "An error occurred: #{e.message}"
59
+ end
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/all'
4
+ require 'fhir_models'
5
+ require 'pathname'
6
+ require 'rubygems/package'
7
+ require 'zlib'
8
+ require 'json'
9
+ require_relative 'ig_resources'
10
+
11
+ module AUCoreTestKit
12
+ class Generator
13
+ class IGLoader
14
+ attr_accessor :ig_file_name
15
+
16
+ def initialize(ig_file_name)
17
+ self.ig_file_name = ig_file_name
18
+ end
19
+
20
+ def ig_resources
21
+ @ig_resources ||= IGResources.new
22
+ end
23
+
24
+ def load
25
+ load_ig
26
+ load_standalone_resources
27
+ end
28
+
29
+ def load_ig
30
+ tar = Gem::Package::TarReader.new(
31
+ Zlib::GzipReader.open(ig_file_name)
32
+ )
33
+
34
+ tar.each do |entry|
35
+ next if entry.directory?
36
+
37
+ file_name = entry.full_name.split('/').last
38
+
39
+ next if file_name.end_with? 'openapi.json'
40
+
41
+ next unless file_name.end_with? '.json'
42
+
43
+ next unless entry.full_name.start_with? 'package/'
44
+
45
+ begin
46
+ resource = FHIR.from_contents(entry.read)
47
+ next if resource.nil?
48
+ rescue StandardError
49
+ puts "#{file_name} does not appear to be a FHIR resource."
50
+ next
51
+ end
52
+
53
+ ig_resources.add(resource)
54
+ end
55
+ json_files = Dir.glob(File.join(Dir.pwd, 'lib', 'au_core_test_kit', 'igs', '*.json'))
56
+ json_files.each do |file_path|
57
+ file_content = File.read(file_path)
58
+ bundle = FHIR.from_contents(file_content)
59
+ bundle.entry.each do |entry|
60
+ ig_resources.add(entry.resource)
61
+ end
62
+ end
63
+ ig_resources
64
+ end
65
+
66
+ def load_standalone_resources
67
+ ig_directory = ig_file_name.chomp('.tgz')
68
+
69
+ return ig_resources unless File.exist? ig_directory
70
+
71
+ Dir.glob(File.join(ig_directory, '*.json')).each do |file_path|
72
+ begin
73
+ resource = FHIR.from_contents(File.read(file_path))
74
+ next if resource.nil?
75
+ rescue StandardError
76
+ file_name = file_path.split('/').last
77
+ puts "#{file_name} does not appear to be a FHIR resource."
78
+ next
79
+ end
80
+
81
+ ig_resources.add(resource)
82
+ end
83
+
84
+ ig_resources
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AUCoreTestKit
4
+ class Generator
5
+ class IGMetadata
6
+ attr_accessor :ig_version, :groups
7
+
8
+ def reformatted_version
9
+ @reformatted_version ||= ig_version.delete('.').gsub('-', '_')
10
+ end
11
+
12
+ def ordered_groups
13
+ @ordered_groups ||=
14
+ [patient_group] + non_delayed_groups + delayed_groups
15
+ end
16
+
17
+ def patient_group
18
+ @patient_group ||=
19
+ groups.find { |group| group.resource == 'Patient' }
20
+ end
21
+
22
+ def delayed_groups
23
+ @delayed_groups ||=
24
+ groups.select(&:delayed?)
25
+ end
26
+
27
+ def non_delayed_groups
28
+ @non_delayed_groups ||=
29
+ groups.reject(&:delayed?) - [patient_group]
30
+ end
31
+
32
+ def delayed_profiles
33
+ @delayed_profiles ||=
34
+ delayed_groups.map(&:profile_url)
35
+ end
36
+
37
+ def postprocess_groups(ig_resources)
38
+ groups.each do |group|
39
+ group.add_delayed_references(delayed_profiles, ig_resources)
40
+ end
41
+ end
42
+
43
+ def to_hash
44
+ {
45
+ ig_version:,
46
+ groups: groups.map(&:to_hash)
47
+ }
48
+ end
49
+ end
50
+ end
51
+ end