us_core_test_kit 0.6.0 → 0.6.2

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 (347) hide show
  1. checksums.yaml +4 -4
  2. data/lib/us_core_test_kit/custom_groups/capability_statement/profile_support_test.rb +18 -16
  3. data/lib/us_core_test_kit/custom_groups/v3.1.1/capability_statement_group.rb +1 -1
  4. data/lib/us_core_test_kit/custom_groups/v3.1.1/profile_support_test.rb +51 -0
  5. data/lib/us_core_test_kit/custom_groups/v4.0.0/capability_statement_group.rb +1 -1
  6. data/lib/us_core_test_kit/custom_groups/v5.0.1/capability_statement_group.rb +1 -1
  7. data/lib/us_core_test_kit/custom_groups/v6.1.0/capability_statement_group.rb +1 -1
  8. data/lib/us_core_test_kit/fhir_resource_navigation.rb +76 -8
  9. data/lib/us_core_test_kit/generated/v3.1.1/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +0 -2
  10. data/lib/us_core_test_kit/generated/v3.1.1/bodyheight/bodyheight_must_support_test.rb +7 -7
  11. data/lib/us_core_test_kit/generated/v3.1.1/bodyheight/bodyheight_reference_resolution_test.rb +0 -2
  12. data/lib/us_core_test_kit/generated/v3.1.1/bodyheight/metadata.yml +11 -9
  13. data/lib/us_core_test_kit/generated/v3.1.1/bodytemp/bodytemp_must_support_test.rb +7 -7
  14. data/lib/us_core_test_kit/generated/v3.1.1/bodytemp/bodytemp_reference_resolution_test.rb +0 -2
  15. data/lib/us_core_test_kit/generated/v3.1.1/bodytemp/metadata.yml +11 -9
  16. data/lib/us_core_test_kit/generated/v3.1.1/bodyweight/bodyweight_must_support_test.rb +7 -7
  17. data/lib/us_core_test_kit/generated/v3.1.1/bodyweight/bodyweight_reference_resolution_test.rb +0 -2
  18. data/lib/us_core_test_kit/generated/v3.1.1/bodyweight/metadata.yml +11 -9
  19. data/lib/us_core_test_kit/generated/v3.1.1/bp/bp_must_support_test.rb +15 -7
  20. data/lib/us_core_test_kit/generated/v3.1.1/bp/bp_reference_resolution_test.rb +0 -2
  21. data/lib/us_core_test_kit/generated/v3.1.1/bp/metadata.yml +25 -12
  22. data/lib/us_core_test_kit/generated/v3.1.1/care_plan/care_plan_reference_resolution_test.rb +0 -2
  23. data/lib/us_core_test_kit/generated/v3.1.1/care_plan/metadata.yml +2 -1
  24. data/lib/us_core_test_kit/generated/v3.1.1/care_team/care_team_reference_resolution_test.rb +0 -2
  25. data/lib/us_core_test_kit/generated/v3.1.1/condition/condition_reference_resolution_test.rb +0 -2
  26. data/lib/us_core_test_kit/generated/v3.1.1/device/device_reference_resolution_test.rb +0 -2
  27. data/lib/us_core_test_kit/generated/v3.1.1/diagnostic_report_lab/diagnostic_report_lab_reference_resolution_test.rb +0 -2
  28. data/lib/us_core_test_kit/generated/v3.1.1/diagnostic_report_lab/metadata.yml +2 -1
  29. data/lib/us_core_test_kit/generated/v3.1.1/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +0 -2
  30. data/lib/us_core_test_kit/generated/v3.1.1/document_reference/document_reference_reference_resolution_test.rb +0 -2
  31. data/lib/us_core_test_kit/generated/v3.1.1/encounter/encounter_reference_resolution_test.rb +0 -2
  32. data/lib/us_core_test_kit/generated/v3.1.1/goal/goal_reference_resolution_test.rb +0 -2
  33. data/lib/us_core_test_kit/generated/v3.1.1/goal/metadata.yml +2 -1
  34. data/lib/us_core_test_kit/generated/v3.1.1/head_circumference/head_circumference_must_support_test.rb +7 -7
  35. data/lib/us_core_test_kit/generated/v3.1.1/head_circumference/head_circumference_reference_resolution_test.rb +0 -2
  36. data/lib/us_core_test_kit/generated/v3.1.1/head_circumference/metadata.yml +11 -9
  37. data/lib/us_core_test_kit/generated/v3.1.1/heartrate/heartrate_must_support_test.rb +7 -7
  38. data/lib/us_core_test_kit/generated/v3.1.1/heartrate/heartrate_reference_resolution_test.rb +0 -2
  39. data/lib/us_core_test_kit/generated/v3.1.1/heartrate/metadata.yml +11 -9
  40. data/lib/us_core_test_kit/generated/v3.1.1/immunization/immunization_reference_resolution_test.rb +0 -2
  41. data/lib/us_core_test_kit/generated/v3.1.1/medication_request/medication_request_reference_resolution_test.rb +0 -2
  42. data/lib/us_core_test_kit/generated/v3.1.1/metadata.yml +166 -121
  43. data/lib/us_core_test_kit/generated/v3.1.1/observation_lab/metadata.yml +2 -1
  44. data/lib/us_core_test_kit/generated/v3.1.1/observation_lab/observation_lab_reference_resolution_test.rb +0 -2
  45. data/lib/us_core_test_kit/generated/v3.1.1/organization/metadata.yml +2 -1
  46. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_bmi_for_age/metadata.yml +11 -9
  47. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_bmi_for_age/pediatric_bmi_for_age_must_support_test.rb +7 -7
  48. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_bmi_for_age/pediatric_bmi_for_age_reference_resolution_test.rb +0 -2
  49. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_weight_for_height/metadata.yml +11 -9
  50. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_weight_for_height/pediatric_weight_for_height_must_support_test.rb +7 -7
  51. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_weight_for_height/pediatric_weight_for_height_reference_resolution_test.rb +0 -2
  52. data/lib/us_core_test_kit/generated/v3.1.1/practitioner/metadata.yml +2 -1
  53. data/lib/us_core_test_kit/generated/v3.1.1/procedure/procedure_reference_resolution_test.rb +0 -2
  54. data/lib/us_core_test_kit/generated/v3.1.1/provenance/metadata.yml +6 -6
  55. data/lib/us_core_test_kit/generated/v3.1.1/provenance/provenance_must_support_test.rb +2 -1
  56. data/lib/us_core_test_kit/generated/v3.1.1/provenance/provenance_reference_resolution_test.rb +0 -2
  57. data/lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry/metadata.yml +33 -24
  58. data/lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry/pulse_oximetry_must_support_test.rb +21 -14
  59. data/lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry/pulse_oximetry_reference_resolution_test.rb +0 -2
  60. data/lib/us_core_test_kit/generated/v3.1.1/resprate/metadata.yml +11 -9
  61. data/lib/us_core_test_kit/generated/v3.1.1/resprate/resprate_must_support_test.rb +7 -7
  62. data/lib/us_core_test_kit/generated/v3.1.1/resprate/resprate_reference_resolution_test.rb +0 -2
  63. data/lib/us_core_test_kit/generated/v3.1.1/smokingstatus/metadata.yml +2 -1
  64. data/lib/us_core_test_kit/generated/v3.1.1/smokingstatus/smokingstatus_reference_resolution_test.rb +0 -2
  65. data/lib/us_core_test_kit/generated/v4.0.0/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +0 -2
  66. data/lib/us_core_test_kit/generated/v4.0.0/allergy_intolerance/metadata.yml +2 -0
  67. data/lib/us_core_test_kit/generated/v4.0.0/blood_pressure/blood_pressure_must_support_test.rb +15 -8
  68. data/lib/us_core_test_kit/generated/v4.0.0/blood_pressure/blood_pressure_reference_resolution_test.rb +0 -2
  69. data/lib/us_core_test_kit/generated/v4.0.0/blood_pressure/metadata.yml +37 -20
  70. data/lib/us_core_test_kit/generated/v4.0.0/bmi/bmi_must_support_test.rb +7 -7
  71. data/lib/us_core_test_kit/generated/v4.0.0/bmi/bmi_reference_resolution_test.rb +0 -2
  72. data/lib/us_core_test_kit/generated/v4.0.0/bmi/metadata.yml +13 -9
  73. data/lib/us_core_test_kit/generated/v4.0.0/body_height/body_height_must_support_test.rb +7 -7
  74. data/lib/us_core_test_kit/generated/v4.0.0/body_height/body_height_reference_resolution_test.rb +0 -2
  75. data/lib/us_core_test_kit/generated/v4.0.0/body_height/metadata.yml +13 -9
  76. data/lib/us_core_test_kit/generated/v4.0.0/body_temperature/body_temperature_must_support_test.rb +7 -7
  77. data/lib/us_core_test_kit/generated/v4.0.0/body_temperature/body_temperature_reference_resolution_test.rb +0 -2
  78. data/lib/us_core_test_kit/generated/v4.0.0/body_temperature/metadata.yml +13 -9
  79. data/lib/us_core_test_kit/generated/v4.0.0/body_weight/body_weight_must_support_test.rb +7 -7
  80. data/lib/us_core_test_kit/generated/v4.0.0/body_weight/body_weight_reference_resolution_test.rb +0 -2
  81. data/lib/us_core_test_kit/generated/v4.0.0/body_weight/metadata.yml +13 -9
  82. data/lib/us_core_test_kit/generated/v4.0.0/care_plan/care_plan_reference_resolution_test.rb +0 -2
  83. data/lib/us_core_test_kit/generated/v4.0.0/care_plan/metadata.yml +4 -1
  84. data/lib/us_core_test_kit/generated/v4.0.0/care_team/care_team_reference_resolution_test.rb +0 -2
  85. data/lib/us_core_test_kit/generated/v4.0.0/care_team/metadata.yml +2 -0
  86. data/lib/us_core_test_kit/generated/v4.0.0/condition/condition_reference_resolution_test.rb +0 -2
  87. data/lib/us_core_test_kit/generated/v4.0.0/condition/metadata.yml +2 -0
  88. data/lib/us_core_test_kit/generated/v4.0.0/device/device_reference_resolution_test.rb +0 -2
  89. data/lib/us_core_test_kit/generated/v4.0.0/device/metadata.yml +2 -0
  90. data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_lab/diagnostic_report_lab_reference_resolution_test.rb +0 -2
  91. data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_lab/metadata.yml +6 -1
  92. data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +0 -2
  93. data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_note/metadata.yml +4 -0
  94. data/lib/us_core_test_kit/generated/v4.0.0/document_reference/document_reference_reference_resolution_test.rb +0 -2
  95. data/lib/us_core_test_kit/generated/v4.0.0/document_reference/metadata.yml +4 -0
  96. data/lib/us_core_test_kit/generated/v4.0.0/encounter/encounter_reference_resolution_test.rb +0 -2
  97. data/lib/us_core_test_kit/generated/v4.0.0/encounter/metadata.yml +4 -0
  98. data/lib/us_core_test_kit/generated/v4.0.0/goal/goal_reference_resolution_test.rb +0 -2
  99. data/lib/us_core_test_kit/generated/v4.0.0/goal/metadata.yml +2 -0
  100. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference/head_circumference_must_support_test.rb +7 -7
  101. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference/head_circumference_reference_resolution_test.rb +0 -2
  102. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference/metadata.yml +13 -9
  103. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference_percentile/head_circumference_percentile_must_support_test.rb +7 -7
  104. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference_percentile/head_circumference_percentile_reference_resolution_test.rb +0 -2
  105. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference_percentile/metadata.yml +13 -9
  106. data/lib/us_core_test_kit/generated/v4.0.0/heart_rate/heart_rate_must_support_test.rb +7 -7
  107. data/lib/us_core_test_kit/generated/v4.0.0/heart_rate/heart_rate_reference_resolution_test.rb +0 -2
  108. data/lib/us_core_test_kit/generated/v4.0.0/heart_rate/metadata.yml +13 -9
  109. data/lib/us_core_test_kit/generated/v4.0.0/immunization/immunization_reference_resolution_test.rb +0 -2
  110. data/lib/us_core_test_kit/generated/v4.0.0/immunization/metadata.yml +2 -0
  111. data/lib/us_core_test_kit/generated/v4.0.0/medication_request/medication_request_reference_resolution_test.rb +0 -2
  112. data/lib/us_core_test_kit/generated/v4.0.0/medication_request/metadata.yml +4 -0
  113. data/lib/us_core_test_kit/generated/v4.0.0/metadata.yml +275 -146
  114. data/lib/us_core_test_kit/generated/v4.0.0/observation_lab/metadata.yml +4 -1
  115. data/lib/us_core_test_kit/generated/v4.0.0/observation_lab/observation_lab_reference_resolution_test.rb +0 -2
  116. data/lib/us_core_test_kit/generated/v4.0.0/organization/metadata.yml +2 -1
  117. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_bmi_for_age/metadata.yml +13 -9
  118. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_bmi_for_age/pediatric_bmi_for_age_must_support_test.rb +7 -7
  119. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_bmi_for_age/pediatric_bmi_for_age_reference_resolution_test.rb +0 -2
  120. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_weight_for_height/metadata.yml +13 -9
  121. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_weight_for_height/pediatric_weight_for_height_must_support_test.rb +7 -7
  122. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_weight_for_height/pediatric_weight_for_height_reference_resolution_test.rb +0 -2
  123. data/lib/us_core_test_kit/generated/v4.0.0/practitioner/metadata.yml +2 -1
  124. data/lib/us_core_test_kit/generated/v4.0.0/procedure/metadata.yml +2 -0
  125. data/lib/us_core_test_kit/generated/v4.0.0/procedure/procedure_reference_resolution_test.rb +0 -2
  126. data/lib/us_core_test_kit/generated/v4.0.0/provenance/metadata.yml +8 -6
  127. data/lib/us_core_test_kit/generated/v4.0.0/provenance/provenance_must_support_test.rb +2 -1
  128. data/lib/us_core_test_kit/generated/v4.0.0/provenance/provenance_reference_resolution_test.rb +0 -2
  129. data/lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry/metadata.yml +38 -22
  130. data/lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry/pulse_oximetry_must_support_test.rb +15 -8
  131. data/lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry/pulse_oximetry_reference_resolution_test.rb +0 -2
  132. data/lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/metadata.yml +13 -9
  133. data/lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/respiratory_rate_must_support_test.rb +7 -7
  134. data/lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/respiratory_rate_reference_resolution_test.rb +0 -2
  135. data/lib/us_core_test_kit/generated/v4.0.0/smokingstatus/metadata.yml +8 -3
  136. data/lib/us_core_test_kit/generated/v4.0.0/smokingstatus/smokingstatus_reference_resolution_test.rb +0 -2
  137. data/lib/us_core_test_kit/generated/v5.0.1/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +0 -2
  138. data/lib/us_core_test_kit/generated/v5.0.1/allergy_intolerance/metadata.yml +2 -0
  139. data/lib/us_core_test_kit/generated/v5.0.1/blood_pressure/blood_pressure_must_support_test.rb +18 -8
  140. data/lib/us_core_test_kit/generated/v5.0.1/blood_pressure/blood_pressure_reference_resolution_test.rb +0 -2
  141. data/lib/us_core_test_kit/generated/v5.0.1/blood_pressure/metadata.yml +40 -20
  142. data/lib/us_core_test_kit/generated/v5.0.1/bmi/bmi_must_support_test.rb +7 -7
  143. data/lib/us_core_test_kit/generated/v5.0.1/bmi/bmi_reference_resolution_test.rb +0 -2
  144. data/lib/us_core_test_kit/generated/v5.0.1/bmi/metadata.yml +13 -9
  145. data/lib/us_core_test_kit/generated/v5.0.1/body_height/body_height_must_support_test.rb +7 -7
  146. data/lib/us_core_test_kit/generated/v5.0.1/body_height/body_height_reference_resolution_test.rb +0 -2
  147. data/lib/us_core_test_kit/generated/v5.0.1/body_height/metadata.yml +13 -9
  148. data/lib/us_core_test_kit/generated/v5.0.1/body_temperature/body_temperature_must_support_test.rb +7 -7
  149. data/lib/us_core_test_kit/generated/v5.0.1/body_temperature/body_temperature_reference_resolution_test.rb +0 -2
  150. data/lib/us_core_test_kit/generated/v5.0.1/body_temperature/metadata.yml +13 -9
  151. data/lib/us_core_test_kit/generated/v5.0.1/body_weight/body_weight_must_support_test.rb +7 -7
  152. data/lib/us_core_test_kit/generated/v5.0.1/body_weight/body_weight_reference_resolution_test.rb +0 -2
  153. data/lib/us_core_test_kit/generated/v5.0.1/body_weight/metadata.yml +13 -9
  154. data/lib/us_core_test_kit/generated/v5.0.1/care_plan/care_plan_reference_resolution_test.rb +0 -2
  155. data/lib/us_core_test_kit/generated/v5.0.1/care_plan/metadata.yml +4 -1
  156. data/lib/us_core_test_kit/generated/v5.0.1/care_team/care_team_reference_resolution_test.rb +0 -2
  157. data/lib/us_core_test_kit/generated/v5.0.1/care_team/metadata.yml +2 -0
  158. data/lib/us_core_test_kit/generated/v5.0.1/condition_encounter_diagnosis/condition_encounter_diagnosis_reference_resolution_test.rb +0 -2
  159. data/lib/us_core_test_kit/generated/v5.0.1/condition_encounter_diagnosis/metadata.yml +6 -1
  160. data/lib/us_core_test_kit/generated/v5.0.1/condition_problems_health_concerns/condition_problems_health_concerns_reference_resolution_test.rb +0 -2
  161. data/lib/us_core_test_kit/generated/v5.0.1/condition_problems_health_concerns/metadata.yml +6 -2
  162. data/lib/us_core_test_kit/generated/v5.0.1/device/device_reference_resolution_test.rb +0 -2
  163. data/lib/us_core_test_kit/generated/v5.0.1/device/metadata.yml +2 -0
  164. data/lib/us_core_test_kit/generated/v5.0.1/diagnostic_report_lab/diagnostic_report_lab_reference_resolution_test.rb +0 -2
  165. data/lib/us_core_test_kit/generated/v5.0.1/diagnostic_report_lab/metadata.yml +6 -1
  166. data/lib/us_core_test_kit/generated/v5.0.1/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +0 -2
  167. data/lib/us_core_test_kit/generated/v5.0.1/diagnostic_report_note/metadata.yml +6 -1
  168. data/lib/us_core_test_kit/generated/v5.0.1/document_reference/document_reference_reference_resolution_test.rb +0 -2
  169. data/lib/us_core_test_kit/generated/v5.0.1/document_reference/metadata.yml +6 -1
  170. data/lib/us_core_test_kit/generated/v5.0.1/encounter/encounter_reference_resolution_test.rb +0 -2
  171. data/lib/us_core_test_kit/generated/v5.0.1/encounter/metadata.yml +4 -0
  172. data/lib/us_core_test_kit/generated/v5.0.1/goal/goal_reference_resolution_test.rb +0 -2
  173. data/lib/us_core_test_kit/generated/v5.0.1/goal/metadata.yml +2 -0
  174. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference/head_circumference_must_support_test.rb +7 -7
  175. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference/head_circumference_reference_resolution_test.rb +0 -2
  176. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference/metadata.yml +13 -9
  177. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference_percentile/head_circumference_percentile_must_support_test.rb +7 -7
  178. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference_percentile/head_circumference_percentile_reference_resolution_test.rb +0 -2
  179. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference_percentile/metadata.yml +13 -9
  180. data/lib/us_core_test_kit/generated/v5.0.1/heart_rate/heart_rate_must_support_test.rb +7 -7
  181. data/lib/us_core_test_kit/generated/v5.0.1/heart_rate/heart_rate_reference_resolution_test.rb +0 -2
  182. data/lib/us_core_test_kit/generated/v5.0.1/heart_rate/metadata.yml +13 -9
  183. data/lib/us_core_test_kit/generated/v5.0.1/immunization/immunization_reference_resolution_test.rb +0 -2
  184. data/lib/us_core_test_kit/generated/v5.0.1/immunization/metadata.yml +2 -0
  185. data/lib/us_core_test_kit/generated/v5.0.1/medication_request/medication_request_reference_resolution_test.rb +0 -2
  186. data/lib/us_core_test_kit/generated/v5.0.1/medication_request/metadata.yml +6 -1
  187. data/lib/us_core_test_kit/generated/v5.0.1/metadata.yml +328 -161
  188. data/lib/us_core_test_kit/generated/v5.0.1/observation_clinical_test/metadata.yml +4 -1
  189. data/lib/us_core_test_kit/generated/v5.0.1/observation_clinical_test/observation_clinical_test_reference_resolution_test.rb +0 -2
  190. data/lib/us_core_test_kit/generated/v5.0.1/observation_imaging/metadata.yml +4 -1
  191. data/lib/us_core_test_kit/generated/v5.0.1/observation_imaging/observation_imaging_reference_resolution_test.rb +0 -2
  192. data/lib/us_core_test_kit/generated/v5.0.1/observation_lab/metadata.yml +4 -1
  193. data/lib/us_core_test_kit/generated/v5.0.1/observation_lab/observation_lab_reference_resolution_test.rb +0 -2
  194. data/lib/us_core_test_kit/generated/v5.0.1/observation_sdoh_assessment/metadata.yml +6 -2
  195. data/lib/us_core_test_kit/generated/v5.0.1/observation_sdoh_assessment/observation_sdoh_assessment_reference_resolution_test.rb +0 -2
  196. data/lib/us_core_test_kit/generated/v5.0.1/observation_sexual_orientation/metadata.yml +4 -1
  197. data/lib/us_core_test_kit/generated/v5.0.1/observation_sexual_orientation/observation_sexual_orientation_reference_resolution_test.rb +0 -2
  198. data/lib/us_core_test_kit/generated/v5.0.1/observation_social_history/metadata.yml +6 -2
  199. data/lib/us_core_test_kit/generated/v5.0.1/observation_social_history/observation_social_history_reference_resolution_test.rb +0 -2
  200. data/lib/us_core_test_kit/generated/v5.0.1/organization/metadata.yml +2 -1
  201. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_bmi_for_age/metadata.yml +13 -9
  202. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_bmi_for_age/pediatric_bmi_for_age_must_support_test.rb +7 -7
  203. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_bmi_for_age/pediatric_bmi_for_age_reference_resolution_test.rb +0 -2
  204. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_weight_for_height/metadata.yml +13 -9
  205. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_weight_for_height/pediatric_weight_for_height_must_support_test.rb +7 -7
  206. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_weight_for_height/pediatric_weight_for_height_reference_resolution_test.rb +0 -2
  207. data/lib/us_core_test_kit/generated/v5.0.1/practitioner/metadata.yml +2 -1
  208. data/lib/us_core_test_kit/generated/v5.0.1/procedure/metadata.yml +2 -0
  209. data/lib/us_core_test_kit/generated/v5.0.1/procedure/procedure_reference_resolution_test.rb +0 -2
  210. data/lib/us_core_test_kit/generated/v5.0.1/provenance/metadata.yml +8 -6
  211. data/lib/us_core_test_kit/generated/v5.0.1/provenance/provenance_must_support_test.rb +2 -1
  212. data/lib/us_core_test_kit/generated/v5.0.1/provenance/provenance_reference_resolution_test.rb +0 -2
  213. data/lib/us_core_test_kit/generated/v5.0.1/pulse_oximetry/metadata.yml +38 -22
  214. data/lib/us_core_test_kit/generated/v5.0.1/pulse_oximetry/pulse_oximetry_must_support_test.rb +15 -8
  215. data/lib/us_core_test_kit/generated/v5.0.1/pulse_oximetry/pulse_oximetry_reference_resolution_test.rb +0 -2
  216. data/lib/us_core_test_kit/generated/v5.0.1/questionnaire_response/metadata.yml +4 -1
  217. data/lib/us_core_test_kit/generated/v5.0.1/questionnaire_response/questionnaire_response_reference_resolution_test.rb +0 -2
  218. data/lib/us_core_test_kit/generated/v5.0.1/related_person/metadata.yml +2 -0
  219. data/lib/us_core_test_kit/generated/v5.0.1/related_person/related_person_reference_resolution_test.rb +0 -2
  220. data/lib/us_core_test_kit/generated/v5.0.1/respiratory_rate/metadata.yml +13 -9
  221. data/lib/us_core_test_kit/generated/v5.0.1/respiratory_rate/respiratory_rate_must_support_test.rb +7 -7
  222. data/lib/us_core_test_kit/generated/v5.0.1/respiratory_rate/respiratory_rate_reference_resolution_test.rb +0 -2
  223. data/lib/us_core_test_kit/generated/v5.0.1/service_request/metadata.yml +4 -1
  224. data/lib/us_core_test_kit/generated/v5.0.1/service_request/service_request_reference_resolution_test.rb +0 -2
  225. data/lib/us_core_test_kit/generated/v5.0.1/smokingstatus/metadata.yml +8 -3
  226. data/lib/us_core_test_kit/generated/v5.0.1/smokingstatus/smokingstatus_reference_resolution_test.rb +0 -2
  227. data/lib/us_core_test_kit/generated/v6.1.0/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +0 -2
  228. data/lib/us_core_test_kit/generated/v6.1.0/allergy_intolerance/metadata.yml +2 -0
  229. data/lib/us_core_test_kit/generated/v6.1.0/blood_pressure/blood_pressure_must_support_test.rb +18 -8
  230. data/lib/us_core_test_kit/generated/v6.1.0/blood_pressure/blood_pressure_reference_resolution_test.rb +0 -2
  231. data/lib/us_core_test_kit/generated/v6.1.0/blood_pressure/metadata.yml +40 -20
  232. data/lib/us_core_test_kit/generated/v6.1.0/bmi/bmi_must_support_test.rb +7 -7
  233. data/lib/us_core_test_kit/generated/v6.1.0/bmi/bmi_reference_resolution_test.rb +0 -2
  234. data/lib/us_core_test_kit/generated/v6.1.0/bmi/metadata.yml +17 -13
  235. data/lib/us_core_test_kit/generated/v6.1.0/body_height/body_height_must_support_test.rb +7 -7
  236. data/lib/us_core_test_kit/generated/v6.1.0/body_height/body_height_reference_resolution_test.rb +0 -2
  237. data/lib/us_core_test_kit/generated/v6.1.0/body_height/metadata.yml +17 -13
  238. data/lib/us_core_test_kit/generated/v6.1.0/body_temperature/body_temperature_must_support_test.rb +7 -7
  239. data/lib/us_core_test_kit/generated/v6.1.0/body_temperature/body_temperature_reference_resolution_test.rb +0 -2
  240. data/lib/us_core_test_kit/generated/v6.1.0/body_temperature/metadata.yml +17 -13
  241. data/lib/us_core_test_kit/generated/v6.1.0/body_weight/body_weight_must_support_test.rb +7 -7
  242. data/lib/us_core_test_kit/generated/v6.1.0/body_weight/body_weight_reference_resolution_test.rb +0 -2
  243. data/lib/us_core_test_kit/generated/v6.1.0/body_weight/metadata.yml +17 -13
  244. data/lib/us_core_test_kit/generated/v6.1.0/care_plan/care_plan_reference_resolution_test.rb +0 -2
  245. data/lib/us_core_test_kit/generated/v6.1.0/care_plan/metadata.yml +4 -1
  246. data/lib/us_core_test_kit/generated/v6.1.0/care_team/care_team_reference_resolution_test.rb +0 -2
  247. data/lib/us_core_test_kit/generated/v6.1.0/care_team/metadata.yml +2 -0
  248. data/lib/us_core_test_kit/generated/v6.1.0/condition_encounter_diagnosis/condition_encounter_diagnosis_reference_resolution_test.rb +0 -2
  249. data/lib/us_core_test_kit/generated/v6.1.0/condition_encounter_diagnosis/metadata.yml +6 -1
  250. data/lib/us_core_test_kit/generated/v6.1.0/condition_problems_health_concerns/condition_problems_health_concerns_reference_resolution_test.rb +0 -2
  251. data/lib/us_core_test_kit/generated/v6.1.0/condition_problems_health_concerns/metadata.yml +6 -2
  252. data/lib/us_core_test_kit/generated/v6.1.0/coverage/coverage_must_support_test.rb +5 -3
  253. data/lib/us_core_test_kit/generated/v6.1.0/coverage/coverage_reference_resolution_test.rb +0 -2
  254. data/lib/us_core_test_kit/generated/v6.1.0/coverage/metadata.yml +13 -7
  255. data/lib/us_core_test_kit/generated/v6.1.0/device/device_reference_resolution_test.rb +0 -2
  256. data/lib/us_core_test_kit/generated/v6.1.0/device/metadata.yml +2 -0
  257. data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_lab/diagnostic_report_lab_reference_resolution_test.rb +0 -2
  258. data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_lab/metadata.yml +6 -1
  259. data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +0 -2
  260. data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_note/metadata.yml +6 -1
  261. data/lib/us_core_test_kit/generated/v6.1.0/document_reference/document_reference_reference_resolution_test.rb +0 -2
  262. data/lib/us_core_test_kit/generated/v6.1.0/document_reference/metadata.yml +6 -1
  263. data/lib/us_core_test_kit/generated/v6.1.0/encounter/encounter_reference_resolution_test.rb +0 -2
  264. data/lib/us_core_test_kit/generated/v6.1.0/encounter/metadata.yml +4 -0
  265. data/lib/us_core_test_kit/generated/v6.1.0/goal/goal_reference_resolution_test.rb +0 -2
  266. data/lib/us_core_test_kit/generated/v6.1.0/goal/metadata.yml +2 -0
  267. data/lib/us_core_test_kit/generated/v6.1.0/head_circumference/head_circumference_must_support_test.rb +7 -7
  268. data/lib/us_core_test_kit/generated/v6.1.0/head_circumference/head_circumference_reference_resolution_test.rb +0 -2
  269. data/lib/us_core_test_kit/generated/v6.1.0/head_circumference/metadata.yml +17 -13
  270. data/lib/us_core_test_kit/generated/v6.1.0/head_circumference_percentile/head_circumference_percentile_must_support_test.rb +7 -7
  271. data/lib/us_core_test_kit/generated/v6.1.0/head_circumference_percentile/head_circumference_percentile_reference_resolution_test.rb +0 -2
  272. data/lib/us_core_test_kit/generated/v6.1.0/head_circumference_percentile/metadata.yml +17 -13
  273. data/lib/us_core_test_kit/generated/v6.1.0/heart_rate/heart_rate_must_support_test.rb +7 -7
  274. data/lib/us_core_test_kit/generated/v6.1.0/heart_rate/heart_rate_reference_resolution_test.rb +0 -2
  275. data/lib/us_core_test_kit/generated/v6.1.0/heart_rate/metadata.yml +17 -13
  276. data/lib/us_core_test_kit/generated/v6.1.0/immunization/immunization_reference_resolution_test.rb +0 -2
  277. data/lib/us_core_test_kit/generated/v6.1.0/immunization/metadata.yml +2 -0
  278. data/lib/us_core_test_kit/generated/v6.1.0/medication_dispense/medication_dispense_patient_search_test.rb +2 -2
  279. data/lib/us_core_test_kit/generated/v6.1.0/medication_dispense/medication_dispense_patient_status_search_test.rb +2 -2
  280. data/lib/us_core_test_kit/generated/v6.1.0/medication_dispense/medication_dispense_patient_status_type_search_test.rb +2 -2
  281. data/lib/us_core_test_kit/generated/v6.1.0/medication_dispense/medication_dispense_reference_resolution_test.rb +0 -2
  282. data/lib/us_core_test_kit/generated/v6.1.0/medication_dispense/metadata.yml +4 -0
  283. data/lib/us_core_test_kit/generated/v6.1.0/medication_request/medication_request_reference_resolution_test.rb +0 -2
  284. data/lib/us_core_test_kit/generated/v6.1.0/medication_request/metadata.yml +6 -1
  285. data/lib/us_core_test_kit/generated/v6.1.0/metadata.yml +417 -226
  286. data/lib/us_core_test_kit/generated/v6.1.0/observation_clinical_result/metadata.yml +4 -1
  287. data/lib/us_core_test_kit/generated/v6.1.0/observation_clinical_result/observation_clinical_result_reference_resolution_test.rb +0 -2
  288. data/lib/us_core_test_kit/generated/v6.1.0/observation_lab/metadata.yml +6 -1
  289. data/lib/us_core_test_kit/generated/v6.1.0/observation_lab/observation_lab_reference_resolution_test.rb +0 -2
  290. data/lib/us_core_test_kit/generated/v6.1.0/observation_occupation/metadata.yml +12 -7
  291. data/lib/us_core_test_kit/generated/v6.1.0/observation_occupation/observation_occupation_must_support_test.rb +2 -2
  292. data/lib/us_core_test_kit/generated/v6.1.0/observation_occupation/observation_occupation_reference_resolution_test.rb +0 -2
  293. data/lib/us_core_test_kit/generated/v6.1.0/observation_pregnancyintent/metadata.yml +8 -3
  294. data/lib/us_core_test_kit/generated/v6.1.0/observation_pregnancyintent/observation_pregnancyintent_reference_resolution_test.rb +0 -2
  295. data/lib/us_core_test_kit/generated/v6.1.0/observation_pregnancystatus/metadata.yml +8 -3
  296. data/lib/us_core_test_kit/generated/v6.1.0/observation_pregnancystatus/observation_pregnancystatus_reference_resolution_test.rb +0 -2
  297. data/lib/us_core_test_kit/generated/v6.1.0/observation_screening_assessment/metadata.yml +6 -2
  298. data/lib/us_core_test_kit/generated/v6.1.0/observation_screening_assessment/observation_screening_assessment_reference_resolution_test.rb +0 -2
  299. data/lib/us_core_test_kit/generated/v6.1.0/observation_sexual_orientation/metadata.yml +4 -1
  300. data/lib/us_core_test_kit/generated/v6.1.0/observation_sexual_orientation/observation_sexual_orientation_reference_resolution_test.rb +0 -2
  301. data/lib/us_core_test_kit/generated/v6.1.0/organization/metadata.yml +2 -1
  302. data/lib/us_core_test_kit/generated/v6.1.0/pediatric_bmi_for_age/metadata.yml +17 -13
  303. data/lib/us_core_test_kit/generated/v6.1.0/pediatric_bmi_for_age/pediatric_bmi_for_age_must_support_test.rb +7 -7
  304. data/lib/us_core_test_kit/generated/v6.1.0/pediatric_bmi_for_age/pediatric_bmi_for_age_reference_resolution_test.rb +0 -2
  305. data/lib/us_core_test_kit/generated/v6.1.0/pediatric_weight_for_height/metadata.yml +17 -13
  306. data/lib/us_core_test_kit/generated/v6.1.0/pediatric_weight_for_height/pediatric_weight_for_height_must_support_test.rb +7 -7
  307. data/lib/us_core_test_kit/generated/v6.1.0/pediatric_weight_for_height/pediatric_weight_for_height_reference_resolution_test.rb +0 -2
  308. data/lib/us_core_test_kit/generated/v6.1.0/practitioner/metadata.yml +2 -1
  309. data/lib/us_core_test_kit/generated/v6.1.0/procedure/metadata.yml +2 -0
  310. data/lib/us_core_test_kit/generated/v6.1.0/procedure/procedure_reference_resolution_test.rb +0 -2
  311. data/lib/us_core_test_kit/generated/v6.1.0/provenance/metadata.yml +8 -6
  312. data/lib/us_core_test_kit/generated/v6.1.0/provenance/provenance_must_support_test.rb +2 -1
  313. data/lib/us_core_test_kit/generated/v6.1.0/provenance/provenance_reference_resolution_test.rb +0 -2
  314. data/lib/us_core_test_kit/generated/v6.1.0/pulse_oximetry/metadata.yml +48 -31
  315. data/lib/us_core_test_kit/generated/v6.1.0/pulse_oximetry/pulse_oximetry_must_support_test.rb +19 -12
  316. data/lib/us_core_test_kit/generated/v6.1.0/pulse_oximetry/pulse_oximetry_reference_resolution_test.rb +0 -2
  317. data/lib/us_core_test_kit/generated/v6.1.0/questionnaire_response/metadata.yml +2 -0
  318. data/lib/us_core_test_kit/generated/v6.1.0/questionnaire_response/questionnaire_response_reference_resolution_test.rb +0 -2
  319. data/lib/us_core_test_kit/generated/v6.1.0/related_person/metadata.yml +2 -0
  320. data/lib/us_core_test_kit/generated/v6.1.0/related_person/related_person_reference_resolution_test.rb +0 -2
  321. data/lib/us_core_test_kit/generated/v6.1.0/respiratory_rate/metadata.yml +17 -13
  322. data/lib/us_core_test_kit/generated/v6.1.0/respiratory_rate/respiratory_rate_must_support_test.rb +7 -7
  323. data/lib/us_core_test_kit/generated/v6.1.0/respiratory_rate/respiratory_rate_reference_resolution_test.rb +0 -2
  324. data/lib/us_core_test_kit/generated/v6.1.0/service_request/metadata.yml +4 -1
  325. data/lib/us_core_test_kit/generated/v6.1.0/service_request/service_request_reference_resolution_test.rb +0 -2
  326. data/lib/us_core_test_kit/generated/v6.1.0/simple_observation/metadata.yml +4 -1
  327. data/lib/us_core_test_kit/generated/v6.1.0/simple_observation/simple_observation_reference_resolution_test.rb +0 -2
  328. data/lib/us_core_test_kit/generated/v6.1.0/smokingstatus/metadata.yml +6 -2
  329. data/lib/us_core_test_kit/generated/v6.1.0/smokingstatus/smokingstatus_reference_resolution_test.rb +0 -2
  330. data/lib/us_core_test_kit/generated/v6.1.0/specimen/metadata.yml +2 -0
  331. data/lib/us_core_test_kit/generated/v6.1.0/specimen/specimen_reference_resolution_test.rb +0 -2
  332. data/lib/us_core_test_kit/generator/group_metadata_extractor.rb +0 -1
  333. data/lib/us_core_test_kit/generator/ig_loader.rb +2 -0
  334. data/lib/us_core_test_kit/generator/must_support_metadata_extractor.rb +56 -26
  335. data/lib/us_core_test_kit/generator/must_support_test_generator.rb +1 -1
  336. data/lib/us_core_test_kit/generator/search_test_generator.rb +2 -2
  337. data/lib/us_core_test_kit/generator.rb +0 -6
  338. data/lib/us_core_test_kit/must_support_test.rb +2 -5
  339. data/lib/us_core_test_kit/reference_resolution_test.rb +2 -2
  340. data/lib/us_core_test_kit/search_test.rb +29 -7
  341. data/lib/us_core_test_kit/version.rb +1 -1
  342. metadata +3 -7
  343. data/lib/us_core_test_kit/generated/v3.1.1/resource_list.rb +0 -28
  344. data/lib/us_core_test_kit/generated/v4.0.0/resource_list.rb +0 -28
  345. data/lib/us_core_test_kit/generated/v5.0.1/resource_list.rb +0 -31
  346. data/lib/us_core_test_kit/generated/v6.1.0/resource_list.rb +0 -34
  347. data/lib/us_core_test_kit/generator/resource_list_generator.rb +0 -42
@@ -36,7 +36,7 @@ module USCoreTestKit
36
36
  end
37
37
 
38
38
  def all_must_support_elements
39
- profile_elements.select { |element| element.mustSupport || is_uscdi_requirement_element?(element) }
39
+ profile_elements.select { |element| (element.mustSupport || is_uscdi_requirement_element?(element))}
40
40
  end
41
41
 
42
42
  def must_support_extension_elements
@@ -77,7 +77,8 @@ module USCoreTestKit
77
77
  def pattern_slices
78
78
  must_support_pattern_slice_elements.map do |current_element|
79
79
  {
80
- name: current_element.id,
80
+ slice_id: current_element.id,
81
+ slice_name: current_element.sliceName,
81
82
  path: current_element.path.gsub("#{resource}.", '')
82
83
  }.tap do |metadata|
83
84
  discriminator = discriminators(sliced_element(current_element)).first
@@ -89,7 +90,6 @@ module USCoreTestKit
89
90
  else
90
91
  current_element
91
92
  end
92
-
93
93
  metadata[:discriminator] =
94
94
  if pattern_element.patternCodeableConcept.present?
95
95
  {
@@ -156,7 +156,8 @@ module USCoreTestKit
156
156
  type_code = type_element.type.first.code
157
157
 
158
158
  {
159
- name: current_element.id,
159
+ slice_id: current_element.id,
160
+ slice_name: current_element.sliceName,
160
161
  path: current_element.path.gsub("#{resource}.", ''),
161
162
  discriminator: {
162
163
  type: 'type',
@@ -179,7 +180,8 @@ module USCoreTestKit
179
180
  def value_slices
180
181
  must_support_value_slice_elements.map do |current_element|
181
182
  {
182
- name: current_element.id,
183
+ slice_id: current_element.id,
184
+ slice_name: current_element.sliceName,
183
185
  path: current_element.path.gsub("#{resource}.", ''),
184
186
  discriminator: {
185
187
  type: 'value'
@@ -209,18 +211,23 @@ module USCoreTestKit
209
211
  end
210
212
 
211
213
  def plain_must_support_elements
212
- all_must_support_elements - must_support_extension_elements - must_support_slice_elements
214
+ plain_must_supports = all_must_support_elements - must_support_extension_elements - must_support_slice_elements
215
+ end
216
+
217
+ def element_part_of_slice_discrimination?(element)
218
+ must_support_slice_elements.any? { |ms_slice| element.id.include?(ms_slice.id) }
213
219
  end
214
220
 
221
+
215
222
  def handle_fixed_values(metadata, element)
216
223
  if element.fixedUri.present?
217
224
  metadata[:fixed_value] = element.fixedUri
218
- elsif element.patternCodeableConcept.present?
225
+ elsif element.patternCodeableConcept.present? && !element_part_of_slice_discrimination?(element)
219
226
  metadata[:fixed_value] = element.patternCodeableConcept.coding.first.code
220
227
  metadata[:path] += '.coding.code'
221
228
  elsif element.fixedCode.present?
222
229
  metadata[:fixed_value] = element.fixedCode
223
- elsif element.patternIdentifier.present?
230
+ elsif element.patternIdentifier.present? && !element_part_of_slice_discrimination?(element)
224
231
  metadata[:fixed_value] = element.patternIdentifier.system
225
232
  metadata[:path] += '.system'
226
233
  end
@@ -254,17 +261,25 @@ module USCoreTestKit
254
261
  end
255
262
 
256
263
  def handle_type_must_support_target_profiles(type, metadata)
257
- index = 0
264
+ # US Core 3.1.1 profiles do not have US Core target profiles.
265
+ # Vital Sign proifles from FHIR R4 (version 4.0.1) do not have US Core target profiles either.
266
+ return if ['3.1.1', '4.0.1'].include?(profile.version)
267
+
258
268
  target_profiles = []
259
269
 
260
- type.source_hash['_targetProfile']&.each do |hash|
261
- if hash.present?
262
- element = FHIR::Element.new(hash)
263
- target_profiles << type.targetProfile[index] if type_must_support_extension?(element.extension)
270
+ if type.targetProfile&.length == 1
271
+ target_profiles << type.targetProfile.first
272
+ else
273
+ type.source_hash['_targetProfile']&.each_with_index do |hash, index|
274
+ if hash.present?
275
+ element = FHIR::Element.new(hash)
276
+ target_profiles << type.targetProfile[index] if type_must_support_extension?(element.extension)
277
+ end
264
278
  end
265
- index += 1
266
279
  end
267
280
 
281
+ # remove target_profile for FHIR Base resource type.
282
+ target_profiles.delete_if { |reference| reference.start_with?('http://hl7.org/fhir/StructureDefinition')}
268
283
  metadata[:target_profiles] = target_profiles if target_profiles.present?
269
284
  end
270
285
 
@@ -283,7 +298,7 @@ module USCoreTestKit
283
298
  def must_support_elements
284
299
  plain_must_support_elements.each_with_object([]) do |current_element, must_support_elements_metadata|
285
300
  {
286
- path: current_element.path.gsub("#{resource}.", '')
301
+ path: current_element.id.gsub("#{resource}.", '')
287
302
  }.tap do |current_metadata|
288
303
  if is_uscdi_requirement_element?(current_element)
289
304
  current_metadata[:uscdi_only] = true
@@ -317,7 +332,7 @@ module USCoreTestKit
317
332
 
318
333
  def handle_special_cases
319
334
  remove_vital_sign_component
320
- remove_blood_pressure_value
335
+ remove_blood_pressure_value_data_absent_reason
321
336
  remove_observation_data_absent_reason
322
337
 
323
338
  case profile.version
@@ -345,7 +360,9 @@ module USCoreTestKit
345
360
 
346
361
  # Exclude Observation.component from vital sign profiles except observation-bp and observation-pulse-ox
347
362
  def remove_vital_sign_component
348
- if is_vital_sign? && !is_blood_pressure? && profile.name != 'USCorePulseOximetryProfile'
363
+ return if is_blood_pressure? || profile.name == 'USCorePulseOximetryProfile'
364
+
365
+ if is_vital_sign?
349
366
  @must_supports[:elements].delete_if do |element|
350
367
  element[:path].start_with?('component')
351
368
  end
@@ -353,14 +370,22 @@ module USCoreTestKit
353
370
  end
354
371
 
355
372
  # Exclude Observation.value[x] from observation-bp
356
- def remove_blood_pressure_value
357
- if is_blood_pressure?
358
- @must_supports[:elements].delete_if do |element|
359
- element[:path].start_with?('value[x]') || element[:original_path]&.start_with?('value[x]')
360
- end
361
- @must_supports[:slices].delete_if do |slice|
362
- slice[:path].start_with?('value[x]')
363
- end
373
+ def remove_blood_pressure_value_data_absent_reason
374
+ return unless is_blood_pressure?
375
+
376
+ pattern = /component(:[^.]+)?\.dataAbsentReason/
377
+
378
+ @must_supports[:elements].delete_if do |element|
379
+ element[:path].start_with?('value[x]') ||
380
+ element[:original_path]&.start_with?('value[x]') ||
381
+ element[:path] == ('dataAbsentReason') ||
382
+ (
383
+ pattern.match?(element[:path]) && ['3.1.1', '4.0.0'].include?(ig_resources.ig.version)
384
+ )
385
+ end
386
+
387
+ @must_supports[:slices].delete_if do |slice|
388
+ slice[:path].start_with?('value[x]')
364
389
  end
365
390
  end
366
391
 
@@ -368,10 +393,15 @@ module USCoreTestKit
368
393
  # are not required to demonstrate Health IT Module support for "dataAbsentReason" elements.
369
394
  # Remove MS check for dataAbsentReason and component.dataAbsentReason from vital sign profiles and observation lab profile
370
395
  # Smoking status profile does not have MS on dataAbsentReason. It is safe to use profile.type == 'Observation'
396
+ # Since US Core 5.0.1, Blood Pressure profile restores component.dataAbsentReason as MustSupport.
371
397
  def remove_observation_data_absent_reason
398
+ return if is_blood_pressure?
399
+
400
+ pattern = /(component(:[^.]+)?\.)?dataAbsentReason/
401
+
372
402
  if profile.type == 'Observation'
373
403
  @must_supports[:elements].delete_if do |element|
374
- ['dataAbsentReason', 'component.dataAbsentReason'].include?(element[:path])
404
+ pattern.match?(element[:path])
375
405
  end
376
406
  end
377
407
  end
@@ -78,7 +78,7 @@ module USCoreTestKit
78
78
  def build_must_support_list_string(uscdi_only)
79
79
  slice_names = group_metadata.must_supports[:slices]
80
80
  .select { |slice| slice[:uscdi_only].presence == uscdi_only.presence }
81
- .map { |slice| slice[:name] }
81
+ .map { |slice| slice[:slice_id] }
82
82
 
83
83
  element_names = group_metadata.must_supports[:elements]
84
84
  .select { |element| element[:uscdi_only].presence == uscdi_only.presence }
@@ -257,9 +257,9 @@ module USCoreTestKit
257
257
  return '' unless test_medication_inclusion?
258
258
 
259
259
  <<~MEDICATION_INCLUSION_DESCRIPTION
260
- If any MedicationRequest resources use external references to
260
+ If any #{resource_type} resources use external references to
261
261
  Medications, the search will be repeated with
262
- `_include=MedicationRequest:medication`.
262
+ `_include=#{resource_type}:medication`.
263
263
  MEDICATION_INCLUSION_DESCRIPTION
264
264
  end
265
265
 
@@ -8,7 +8,6 @@ require_relative 'generator/must_support_test_generator'
8
8
  require_relative 'generator/provenance_revinclude_search_test_generator'
9
9
  require_relative 'generator/read_test_generator'
10
10
  require_relative 'generator/reference_resolution_test_generator'
11
- require_relative 'generator/resource_list_generator'
12
11
  require_relative 'generator/search_test_generator'
13
12
  require_relative 'generator/suite_generator'
14
13
  require_relative 'generator/validation_test_generator'
@@ -33,7 +32,6 @@ module USCoreTestKit
33
32
  puts "Generating tests for IG #{File.basename(ig_file_name)}"
34
33
  load_ig_package
35
34
  extract_metadata
36
- generate_resource_list
37
35
  generate_search_tests
38
36
  generate_read_tests
39
37
  # TODO: generate_vread_tests
@@ -66,10 +64,6 @@ module USCoreTestKit
66
64
  self.ig_resources = IGLoader.new(ig_file_name).load
67
65
  end
68
66
 
69
- def generate_resource_list
70
- ResourceListGenerator.generate(ig_metadata, base_output_dir)
71
- end
72
-
73
67
  def generate_reference_resolution_tests
74
68
  ReferenceResolutionTestGenerator.generate(ig_metadata, base_output_dir)
75
69
  end
@@ -23,7 +23,6 @@ module USCoreTestKit
23
23
  if (missing_elements + missing_slices + missing_extensions).length.zero?
24
24
  pass
25
25
  end
26
-
27
26
  skip "Could not find #{missing_must_support_strings.join(', ')} in the #{resources.length} " \
28
27
  "provided #{resource_type} resource(s)"
29
28
  end
@@ -56,8 +55,8 @@ module USCoreTestKit
56
55
 
57
56
  def missing_must_support_strings
58
57
  missing_elements.map { |element_definition| missing_element_string(element_definition) } +
59
- missing_slices.map { |slice_definition| slice_definition[:name] } +
60
- missing_extensions.map { |extension_definition| extension_definition[:id] }
58
+ missing_slices.map { |slice_definition| slice_definition[:slice_id] } +
59
+ missing_extensions.map { |extension_definition| extension_definition[:id] }
61
60
  end
62
61
 
63
62
  def missing_element_string(element_definition)
@@ -110,12 +109,10 @@ module USCoreTestKit
110
109
  (element_definition[:fixed_value].blank? || value == element_definition[:fixed_value])
111
110
 
112
111
  end
113
-
114
112
  # Note that false.present? => false, which is why we need to add this extra check
115
113
  value_found.present? || value_found == false
116
114
  end
117
115
  end
118
-
119
116
  @missing_elements
120
117
  end
121
118
 
@@ -12,7 +12,7 @@ module USCoreTestKit
12
12
 
13
13
  pass if unresolved_references(resources).length.zero?
14
14
 
15
- skip "Could not resolve Must Support references #{unresolved_references_strings.join(', ')}"
15
+ skip "Could not resolve and validate any Must Support references for #{unresolved_references_strings.join(', ')}"
16
16
  end
17
17
 
18
18
  def unresolved_references_strings
@@ -20,7 +20,7 @@ module USCoreTestKit
20
20
  unresolved_references.each_with_object(Hash.new { |hash, key| hash[key] = [] }) do |missing, hash|
21
21
  hash[missing[:path]] << missing[:target_profile]
22
22
  end
23
- unresolved_reference_hash.map { |path, profiles| "#{path}#{"(#{profiles.join('|')})" unless profiles.first.empty?}" }
23
+ unresolved_reference_hash.map { |path, profiles| "#{path} element: Reference#{"(#{profiles.join('|')})" unless profiles.first.empty?}" }
24
24
  end
25
25
 
26
26
  def record_resolved_reference(reference, target_profile)
@@ -373,7 +373,7 @@ module USCoreTestKit
373
373
  end
374
374
  end
375
375
 
376
- def test_medication_inclusion(medication_requests, params, patient_id)
376
+ def test_medication_inclusion(base_resources, params, patient_id)
377
377
  return if search_variant_test_records[:medication_inclusion]
378
378
 
379
379
  scratch[:medication_resources] ||= {}
@@ -381,13 +381,13 @@ module USCoreTestKit
381
381
  scratch[:medication_resources][patient_id] ||= []
382
382
  scratch[:medication_resources][:contained] ||= []
383
383
 
384
- requests_with_external_references =
385
- medication_requests
384
+ base_resources_with_external_reference =
385
+ base_resources
386
386
  .select { |request| request&.medicationReference&.present? }
387
387
  .reject { |request| request&.medicationReference&.reference&.start_with? '#' }
388
388
 
389
389
  contained_medications =
390
- medication_requests
390
+ base_resources
391
391
  .select { |request| request&.medicationReference&.reference&.start_with? '#' }
392
392
  .flat_map(&:contained)
393
393
  .select { |resource| resource.resourceType == 'Medication' }
@@ -396,15 +396,32 @@ module USCoreTestKit
396
396
  scratch[:medication_resources][patient_id] += contained_medications
397
397
  scratch[:medication_resources][:contained] += contained_medications
398
398
 
399
- return if requests_with_external_references.blank?
399
+ return if base_resources_with_external_reference.blank?
400
400
 
401
- search_params = params.merge(_include: 'MedicationRequest:medication')
401
+ search_params = params.merge(_include: "#{resource_type}:medication")
402
402
 
403
403
  search_and_check_response(search_params)
404
404
 
405
405
  medications = fetch_all_bundled_resources.select { |resource| resource.resourceType == 'Medication' }
406
406
  assert medications.present?, 'No Medications were included in the search results'
407
407
 
408
+ included_medications = medications.map { |medication| "#{medication.resourceType}/#{medication.id}" }
409
+
410
+ matched_base_resources = base_resources_with_external_reference.select do |base_resource|
411
+ included_medications.any? do |medication_reference|
412
+ is_reference_match?(base_resource.medicationReference.reference, medication_reference)
413
+ end
414
+ end
415
+
416
+ not_matched_included_medications = included_medications.select do |medication_reference|
417
+ matched_base_resources.none? do |base_resource|
418
+ is_reference_match?(base_resource.medicationReference.reference, medication_reference)
419
+ end
420
+ end
421
+
422
+ not_matched_included_medications_string = not_matched_included_medications.join(',')
423
+ assert not_matched_included_medications.empty?, "No #{resource_type} references #{not_matched_included_medications_string} in the search result."
424
+
408
425
  medications.uniq!(&:id)
409
426
 
410
427
  scratch[:medication_resources][:all] += medications
@@ -413,6 +430,11 @@ module USCoreTestKit
413
430
  search_variant_test_records[:medication_inclusion] = true
414
431
  end
415
432
 
433
+ def is_reference_match? (reference, local_reference)
434
+ regex_pattern = /^(#{Regexp.escape(local_reference)}|\S+\/#{Regexp.escape(local_reference)}(?:[\/|]\S+)*)$/
435
+ reference.match?(regex_pattern)
436
+ end
437
+
416
438
  def all_scratch_resources
417
439
  scratch_resources[:all] ||= []
418
440
  end
@@ -547,7 +569,7 @@ module USCoreTestKit
547
569
  end
548
570
 
549
571
  valid_resource_types = [resource_type, 'OperationOutcome'].concat(additional_resource_types)
550
- valid_resource_types << 'Medication' if resource_type == 'MedicationRequest'
572
+ valid_resource_types << 'Medication' if ['MedicationRequest', 'MedicationDispense'].include?(resource_type)
551
573
 
552
574
  invalid_resource_types =
553
575
  resources.reject { |entry| valid_resource_types.include? entry.resourceType }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module USCoreTestKit
4
- VERSION = '0.6.0'
4
+ VERSION = '0.6.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: us_core_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen MacVicar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-29 00:00:00.000000000 Z
11
+ date: 2023-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core
@@ -113,6 +113,7 @@ files:
113
113
  - lib/us_core_test_kit/custom_groups/data_absent_reason_group.rb
114
114
  - lib/us_core_test_kit/custom_groups/v3.1.1/capability_statement_group.rb
115
115
  - lib/us_core_test_kit/custom_groups/v3.1.1/clinical_notes_guidance_group.rb
116
+ - lib/us_core_test_kit/custom_groups/v3.1.1/profile_support_test.rb
116
117
  - lib/us_core_test_kit/custom_groups/v4.0.0/capability_statement_group.rb
117
118
  - lib/us_core_test_kit/custom_groups/v4.0.0/clinical_notes_guidance_group.rb
118
119
  - lib/us_core_test_kit/custom_groups/v4.0.0/document_reference_custodian_test.rb
@@ -420,7 +421,6 @@ files:
420
421
  - lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry/pulse_oximetry_reference_resolution_test.rb
421
422
  - lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry/pulse_oximetry_validation_test.rb
422
423
  - lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry_group.rb
423
- - lib/us_core_test_kit/generated/v3.1.1/resource_list.rb
424
424
  - lib/us_core_test_kit/generated/v3.1.1/resprate/metadata.yml
425
425
  - lib/us_core_test_kit/generated/v3.1.1/resprate/resprate_must_support_test.rb
426
426
  - lib/us_core_test_kit/generated/v3.1.1/resprate/resprate_patient_category_date_search_test.rb
@@ -770,7 +770,6 @@ files:
770
770
  - lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry/pulse_oximetry_reference_resolution_test.rb
771
771
  - lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry/pulse_oximetry_validation_test.rb
772
772
  - lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry_group.rb
773
- - lib/us_core_test_kit/generated/v4.0.0/resource_list.rb
774
773
  - lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/metadata.yml
775
774
  - lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/respiratory_rate_must_support_test.rb
776
775
  - lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/respiratory_rate_patient_category_date_search_test.rb
@@ -1229,7 +1228,6 @@ files:
1229
1228
  - lib/us_core_test_kit/generated/v5.0.1/related_person/related_person_reference_resolution_test.rb
1230
1229
  - lib/us_core_test_kit/generated/v5.0.1/related_person/related_person_validation_test.rb
1231
1230
  - lib/us_core_test_kit/generated/v5.0.1/related_person_group.rb
1232
- - lib/us_core_test_kit/generated/v5.0.1/resource_list.rb
1233
1231
  - lib/us_core_test_kit/generated/v5.0.1/respiratory_rate/metadata.yml
1234
1232
  - lib/us_core_test_kit/generated/v5.0.1/respiratory_rate/respiratory_rate_must_support_test.rb
1235
1233
  - lib/us_core_test_kit/generated/v5.0.1/respiratory_rate/respiratory_rate_patient_category_date_search_test.rb
@@ -1736,7 +1734,6 @@ files:
1736
1734
  - lib/us_core_test_kit/generated/v6.1.0/related_person/related_person_reference_resolution_test.rb
1737
1735
  - lib/us_core_test_kit/generated/v6.1.0/related_person/related_person_validation_test.rb
1738
1736
  - lib/us_core_test_kit/generated/v6.1.0/related_person_group.rb
1739
- - lib/us_core_test_kit/generated/v6.1.0/resource_list.rb
1740
1737
  - lib/us_core_test_kit/generated/v6.1.0/respiratory_rate/metadata.yml
1741
1738
  - lib/us_core_test_kit/generated/v6.1.0/respiratory_rate/respiratory_rate_must_support_test.rb
1742
1739
  - lib/us_core_test_kit/generated/v6.1.0/respiratory_rate/respiratory_rate_patient_category_date_search_test.rb
@@ -1814,7 +1811,6 @@ files:
1814
1811
  - lib/us_core_test_kit/generator/provenance_revinclude_search_test_generator.rb
1815
1812
  - lib/us_core_test_kit/generator/read_test_generator.rb
1816
1813
  - lib/us_core_test_kit/generator/reference_resolution_test_generator.rb
1817
- - lib/us_core_test_kit/generator/resource_list_generator.rb
1818
1814
  - lib/us_core_test_kit/generator/search_definition_metadata_extractor.rb
1819
1815
  - lib/us_core_test_kit/generator/search_metadata_extractor.rb
1820
1816
  - lib/us_core_test_kit/generator/search_test_generator.rb
@@ -1,28 +0,0 @@
1
- module USCoreTestKit
2
- module USCoreV311
3
- module ResourceList
4
- RESOURCE_LIST = [
5
- 'AllergyIntolerance',
6
- 'CarePlan',
7
- 'CareTeam',
8
- 'Condition',
9
- 'Device',
10
- 'DiagnosticReport',
11
- 'DocumentReference',
12
- 'Encounter',
13
- 'Goal',
14
- 'Immunization',
15
- 'Location',
16
- 'Medication',
17
- 'MedicationRequest',
18
- 'Observation',
19
- 'Organization',
20
- 'Patient',
21
- 'Practitioner',
22
- 'PractitionerRole',
23
- 'Procedure',
24
- 'Provenance'
25
- ].freeze
26
- end
27
- end
28
- end
@@ -1,28 +0,0 @@
1
- module USCoreTestKit
2
- module USCoreV400
3
- module ResourceList
4
- RESOURCE_LIST = [
5
- 'AllergyIntolerance',
6
- 'CarePlan',
7
- 'CareTeam',
8
- 'Condition',
9
- 'Device',
10
- 'DiagnosticReport',
11
- 'DocumentReference',
12
- 'Encounter',
13
- 'Goal',
14
- 'Immunization',
15
- 'Location',
16
- 'Medication',
17
- 'MedicationRequest',
18
- 'Observation',
19
- 'Organization',
20
- 'Patient',
21
- 'Practitioner',
22
- 'PractitionerRole',
23
- 'Procedure',
24
- 'Provenance'
25
- ].freeze
26
- end
27
- end
28
- end
@@ -1,31 +0,0 @@
1
- module USCoreTestKit
2
- module USCoreV501
3
- module ResourceList
4
- RESOURCE_LIST = [
5
- 'AllergyIntolerance',
6
- 'CarePlan',
7
- 'CareTeam',
8
- 'Condition',
9
- 'Device',
10
- 'DiagnosticReport',
11
- 'DocumentReference',
12
- 'Encounter',
13
- 'Goal',
14
- 'Immunization',
15
- 'Location',
16
- 'Medication',
17
- 'MedicationRequest',
18
- 'Observation',
19
- 'Organization',
20
- 'Patient',
21
- 'Practitioner',
22
- 'PractitionerRole',
23
- 'Procedure',
24
- 'Provenance',
25
- 'QuestionnaireResponse',
26
- 'RelatedPerson',
27
- 'ServiceRequest'
28
- ].freeze
29
- end
30
- end
31
- end
@@ -1,34 +0,0 @@
1
- module USCoreTestKit
2
- module USCoreV610
3
- module ResourceList
4
- RESOURCE_LIST = [
5
- 'AllergyIntolerance',
6
- 'CarePlan',
7
- 'CareTeam',
8
- 'Condition',
9
- 'Coverage',
10
- 'Device',
11
- 'DiagnosticReport',
12
- 'DocumentReference',
13
- 'Encounter',
14
- 'Goal',
15
- 'Immunization',
16
- 'Location',
17
- 'Medication',
18
- 'MedicationDispense',
19
- 'MedicationRequest',
20
- 'Observation',
21
- 'Organization',
22
- 'Patient',
23
- 'Practitioner',
24
- 'PractitionerRole',
25
- 'Procedure',
26
- 'Provenance',
27
- 'QuestionnaireResponse',
28
- 'RelatedPerson',
29
- 'ServiceRequest',
30
- 'Specimen'
31
- ].freeze
32
- end
33
- end
34
- end
@@ -1,42 +0,0 @@
1
- module USCoreTestKit
2
- class Generator
3
- class ResourceListGenerator
4
- class << self
5
- def generate(ig_metadata, base_output_dir)
6
- @ig_metadata = ig_metadata
7
-
8
- FileUtils.mkdir_p(base_output_dir)
9
- File.open(File.join(base_output_dir, base_output_file_name), 'w') { |f| f.write(output) }
10
- end
11
-
12
- def resource_list
13
- @ig_metadata.groups.map(&:resource).uniq
14
- end
15
-
16
- def resource_list_string
17
- resource_list.map { |resource| " '#{resource}'" }.join(",\n")
18
- end
19
-
20
- def module_name
21
- "USCore#{@ig_metadata.reformatted_version.upcase}"
22
- end
23
-
24
- def read_interaction(group_metadata)
25
- group_metadata.interactions.find { |interaction| interaction[:code] == 'read' }
26
- end
27
-
28
- def template
29
- @template ||= File.read(File.join(__dir__, 'templates', 'resource_list.rb.erb'))
30
- end
31
-
32
- def output
33
- ERB.new(template).result(binding)
34
- end
35
-
36
- def base_output_file_name
37
- "resource_list.rb"
38
- end
39
- end
40
- end
41
- end
42
- end