us_core_test_kit 0.6.0 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
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