us_core_test_kit 0.6.1 → 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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/lib/us_core_test_kit/fhir_resource_navigation.rb +76 -8
  3. data/lib/us_core_test_kit/generated/v3.1.1/bodyheight/bodyheight_must_support_test.rb +7 -7
  4. data/lib/us_core_test_kit/generated/v3.1.1/bodyheight/metadata.yml +11 -9
  5. data/lib/us_core_test_kit/generated/v3.1.1/bodytemp/bodytemp_must_support_test.rb +7 -7
  6. data/lib/us_core_test_kit/generated/v3.1.1/bodytemp/metadata.yml +11 -9
  7. data/lib/us_core_test_kit/generated/v3.1.1/bodyweight/bodyweight_must_support_test.rb +7 -7
  8. data/lib/us_core_test_kit/generated/v3.1.1/bodyweight/metadata.yml +11 -9
  9. data/lib/us_core_test_kit/generated/v3.1.1/bp/bp_must_support_test.rb +15 -7
  10. data/lib/us_core_test_kit/generated/v3.1.1/bp/metadata.yml +25 -12
  11. data/lib/us_core_test_kit/generated/v3.1.1/care_plan/metadata.yml +2 -1
  12. data/lib/us_core_test_kit/generated/v3.1.1/diagnostic_report_lab/metadata.yml +2 -1
  13. data/lib/us_core_test_kit/generated/v3.1.1/goal/metadata.yml +2 -1
  14. data/lib/us_core_test_kit/generated/v3.1.1/head_circumference/head_circumference_must_support_test.rb +7 -7
  15. data/lib/us_core_test_kit/generated/v3.1.1/head_circumference/metadata.yml +11 -9
  16. data/lib/us_core_test_kit/generated/v3.1.1/heartrate/heartrate_must_support_test.rb +7 -7
  17. data/lib/us_core_test_kit/generated/v3.1.1/heartrate/metadata.yml +11 -9
  18. data/lib/us_core_test_kit/generated/v3.1.1/metadata.yml +166 -121
  19. data/lib/us_core_test_kit/generated/v3.1.1/observation_lab/metadata.yml +2 -1
  20. data/lib/us_core_test_kit/generated/v3.1.1/organization/metadata.yml +2 -1
  21. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_bmi_for_age/metadata.yml +11 -9
  22. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_bmi_for_age/pediatric_bmi_for_age_must_support_test.rb +7 -7
  23. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_weight_for_height/metadata.yml +11 -9
  24. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_weight_for_height/pediatric_weight_for_height_must_support_test.rb +7 -7
  25. data/lib/us_core_test_kit/generated/v3.1.1/practitioner/metadata.yml +2 -1
  26. data/lib/us_core_test_kit/generated/v3.1.1/provenance/metadata.yml +6 -6
  27. data/lib/us_core_test_kit/generated/v3.1.1/provenance/provenance_must_support_test.rb +2 -1
  28. data/lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry/metadata.yml +33 -24
  29. data/lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry/pulse_oximetry_must_support_test.rb +21 -14
  30. data/lib/us_core_test_kit/generated/v3.1.1/resprate/metadata.yml +11 -9
  31. data/lib/us_core_test_kit/generated/v3.1.1/resprate/resprate_must_support_test.rb +7 -7
  32. data/lib/us_core_test_kit/generated/v3.1.1/smokingstatus/metadata.yml +2 -1
  33. data/lib/us_core_test_kit/generated/v4.0.0/allergy_intolerance/metadata.yml +2 -0
  34. data/lib/us_core_test_kit/generated/v4.0.0/blood_pressure/blood_pressure_must_support_test.rb +15 -8
  35. data/lib/us_core_test_kit/generated/v4.0.0/blood_pressure/metadata.yml +37 -20
  36. data/lib/us_core_test_kit/generated/v4.0.0/bmi/bmi_must_support_test.rb +7 -7
  37. data/lib/us_core_test_kit/generated/v4.0.0/bmi/metadata.yml +13 -9
  38. data/lib/us_core_test_kit/generated/v4.0.0/body_height/body_height_must_support_test.rb +7 -7
  39. data/lib/us_core_test_kit/generated/v4.0.0/body_height/metadata.yml +13 -9
  40. data/lib/us_core_test_kit/generated/v4.0.0/body_temperature/body_temperature_must_support_test.rb +7 -7
  41. data/lib/us_core_test_kit/generated/v4.0.0/body_temperature/metadata.yml +13 -9
  42. data/lib/us_core_test_kit/generated/v4.0.0/body_weight/body_weight_must_support_test.rb +7 -7
  43. data/lib/us_core_test_kit/generated/v4.0.0/body_weight/metadata.yml +13 -9
  44. data/lib/us_core_test_kit/generated/v4.0.0/care_plan/metadata.yml +4 -1
  45. data/lib/us_core_test_kit/generated/v4.0.0/care_team/metadata.yml +2 -0
  46. data/lib/us_core_test_kit/generated/v4.0.0/condition/metadata.yml +2 -0
  47. data/lib/us_core_test_kit/generated/v4.0.0/device/metadata.yml +2 -0
  48. data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_lab/metadata.yml +6 -1
  49. data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_note/metadata.yml +4 -0
  50. data/lib/us_core_test_kit/generated/v4.0.0/document_reference/metadata.yml +4 -0
  51. data/lib/us_core_test_kit/generated/v4.0.0/encounter/metadata.yml +4 -0
  52. data/lib/us_core_test_kit/generated/v4.0.0/goal/metadata.yml +2 -0
  53. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference/head_circumference_must_support_test.rb +7 -7
  54. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference/metadata.yml +13 -9
  55. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference_percentile/head_circumference_percentile_must_support_test.rb +7 -7
  56. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference_percentile/metadata.yml +13 -9
  57. data/lib/us_core_test_kit/generated/v4.0.0/heart_rate/heart_rate_must_support_test.rb +7 -7
  58. data/lib/us_core_test_kit/generated/v4.0.0/heart_rate/metadata.yml +13 -9
  59. data/lib/us_core_test_kit/generated/v4.0.0/immunization/metadata.yml +2 -0
  60. data/lib/us_core_test_kit/generated/v4.0.0/medication_request/metadata.yml +4 -0
  61. data/lib/us_core_test_kit/generated/v4.0.0/metadata.yml +275 -146
  62. data/lib/us_core_test_kit/generated/v4.0.0/observation_lab/metadata.yml +4 -1
  63. data/lib/us_core_test_kit/generated/v4.0.0/organization/metadata.yml +2 -1
  64. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_bmi_for_age/metadata.yml +13 -9
  65. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_bmi_for_age/pediatric_bmi_for_age_must_support_test.rb +7 -7
  66. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_weight_for_height/metadata.yml +13 -9
  67. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_weight_for_height/pediatric_weight_for_height_must_support_test.rb +7 -7
  68. data/lib/us_core_test_kit/generated/v4.0.0/practitioner/metadata.yml +2 -1
  69. data/lib/us_core_test_kit/generated/v4.0.0/procedure/metadata.yml +2 -0
  70. data/lib/us_core_test_kit/generated/v4.0.0/provenance/metadata.yml +8 -6
  71. data/lib/us_core_test_kit/generated/v4.0.0/provenance/provenance_must_support_test.rb +2 -1
  72. data/lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry/metadata.yml +38 -22
  73. data/lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry/pulse_oximetry_must_support_test.rb +15 -8
  74. data/lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/metadata.yml +13 -9
  75. data/lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/respiratory_rate_must_support_test.rb +7 -7
  76. data/lib/us_core_test_kit/generated/v4.0.0/smokingstatus/metadata.yml +8 -3
  77. data/lib/us_core_test_kit/generated/v5.0.1/allergy_intolerance/metadata.yml +2 -0
  78. data/lib/us_core_test_kit/generated/v5.0.1/blood_pressure/blood_pressure_must_support_test.rb +18 -8
  79. data/lib/us_core_test_kit/generated/v5.0.1/blood_pressure/metadata.yml +40 -20
  80. data/lib/us_core_test_kit/generated/v5.0.1/bmi/bmi_must_support_test.rb +7 -7
  81. data/lib/us_core_test_kit/generated/v5.0.1/bmi/metadata.yml +13 -9
  82. data/lib/us_core_test_kit/generated/v5.0.1/body_height/body_height_must_support_test.rb +7 -7
  83. data/lib/us_core_test_kit/generated/v5.0.1/body_height/metadata.yml +13 -9
  84. data/lib/us_core_test_kit/generated/v5.0.1/body_temperature/body_temperature_must_support_test.rb +7 -7
  85. data/lib/us_core_test_kit/generated/v5.0.1/body_temperature/metadata.yml +13 -9
  86. data/lib/us_core_test_kit/generated/v5.0.1/body_weight/body_weight_must_support_test.rb +7 -7
  87. data/lib/us_core_test_kit/generated/v5.0.1/body_weight/metadata.yml +13 -9
  88. data/lib/us_core_test_kit/generated/v5.0.1/care_plan/metadata.yml +4 -1
  89. data/lib/us_core_test_kit/generated/v5.0.1/care_team/metadata.yml +2 -0
  90. data/lib/us_core_test_kit/generated/v5.0.1/condition_encounter_diagnosis/metadata.yml +6 -1
  91. data/lib/us_core_test_kit/generated/v5.0.1/condition_problems_health_concerns/metadata.yml +6 -2
  92. data/lib/us_core_test_kit/generated/v5.0.1/device/metadata.yml +2 -0
  93. data/lib/us_core_test_kit/generated/v5.0.1/diagnostic_report_lab/metadata.yml +6 -1
  94. data/lib/us_core_test_kit/generated/v5.0.1/diagnostic_report_note/metadata.yml +6 -1
  95. data/lib/us_core_test_kit/generated/v5.0.1/document_reference/metadata.yml +6 -1
  96. data/lib/us_core_test_kit/generated/v5.0.1/encounter/metadata.yml +4 -0
  97. data/lib/us_core_test_kit/generated/v5.0.1/goal/metadata.yml +2 -0
  98. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference/head_circumference_must_support_test.rb +7 -7
  99. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference/metadata.yml +13 -9
  100. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference_percentile/head_circumference_percentile_must_support_test.rb +7 -7
  101. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference_percentile/metadata.yml +13 -9
  102. data/lib/us_core_test_kit/generated/v5.0.1/heart_rate/heart_rate_must_support_test.rb +7 -7
  103. data/lib/us_core_test_kit/generated/v5.0.1/heart_rate/metadata.yml +13 -9
  104. data/lib/us_core_test_kit/generated/v5.0.1/immunization/metadata.yml +2 -0
  105. data/lib/us_core_test_kit/generated/v5.0.1/medication_request/metadata.yml +6 -1
  106. data/lib/us_core_test_kit/generated/v5.0.1/metadata.yml +328 -161
  107. data/lib/us_core_test_kit/generated/v5.0.1/observation_clinical_test/metadata.yml +4 -1
  108. data/lib/us_core_test_kit/generated/v5.0.1/observation_imaging/metadata.yml +4 -1
  109. data/lib/us_core_test_kit/generated/v5.0.1/observation_lab/metadata.yml +4 -1
  110. data/lib/us_core_test_kit/generated/v5.0.1/observation_sdoh_assessment/metadata.yml +6 -2
  111. data/lib/us_core_test_kit/generated/v5.0.1/observation_sexual_orientation/metadata.yml +4 -1
  112. data/lib/us_core_test_kit/generated/v5.0.1/observation_social_history/metadata.yml +6 -2
  113. data/lib/us_core_test_kit/generated/v5.0.1/organization/metadata.yml +2 -1
  114. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_bmi_for_age/metadata.yml +13 -9
  115. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_bmi_for_age/pediatric_bmi_for_age_must_support_test.rb +7 -7
  116. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_weight_for_height/metadata.yml +13 -9
  117. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_weight_for_height/pediatric_weight_for_height_must_support_test.rb +7 -7
  118. data/lib/us_core_test_kit/generated/v5.0.1/practitioner/metadata.yml +2 -1
  119. data/lib/us_core_test_kit/generated/v5.0.1/procedure/metadata.yml +2 -0
  120. data/lib/us_core_test_kit/generated/v5.0.1/provenance/metadata.yml +8 -6
  121. data/lib/us_core_test_kit/generated/v5.0.1/provenance/provenance_must_support_test.rb +2 -1
  122. data/lib/us_core_test_kit/generated/v5.0.1/pulse_oximetry/metadata.yml +38 -22
  123. data/lib/us_core_test_kit/generated/v5.0.1/pulse_oximetry/pulse_oximetry_must_support_test.rb +15 -8
  124. data/lib/us_core_test_kit/generated/v5.0.1/questionnaire_response/metadata.yml +4 -1
  125. data/lib/us_core_test_kit/generated/v5.0.1/related_person/metadata.yml +2 -0
  126. data/lib/us_core_test_kit/generated/v5.0.1/respiratory_rate/metadata.yml +13 -9
  127. data/lib/us_core_test_kit/generated/v5.0.1/respiratory_rate/respiratory_rate_must_support_test.rb +7 -7
  128. data/lib/us_core_test_kit/generated/v5.0.1/service_request/metadata.yml +4 -1
  129. data/lib/us_core_test_kit/generated/v5.0.1/smokingstatus/metadata.yml +8 -3
  130. data/lib/us_core_test_kit/generated/v6.1.0/allergy_intolerance/metadata.yml +2 -0
  131. data/lib/us_core_test_kit/generated/v6.1.0/blood_pressure/blood_pressure_must_support_test.rb +18 -8
  132. data/lib/us_core_test_kit/generated/v6.1.0/blood_pressure/metadata.yml +40 -20
  133. data/lib/us_core_test_kit/generated/v6.1.0/bmi/bmi_must_support_test.rb +7 -7
  134. data/lib/us_core_test_kit/generated/v6.1.0/bmi/metadata.yml +17 -13
  135. data/lib/us_core_test_kit/generated/v6.1.0/body_height/body_height_must_support_test.rb +7 -7
  136. data/lib/us_core_test_kit/generated/v6.1.0/body_height/metadata.yml +17 -13
  137. data/lib/us_core_test_kit/generated/v6.1.0/body_temperature/body_temperature_must_support_test.rb +7 -7
  138. data/lib/us_core_test_kit/generated/v6.1.0/body_temperature/metadata.yml +17 -13
  139. data/lib/us_core_test_kit/generated/v6.1.0/body_weight/body_weight_must_support_test.rb +7 -7
  140. data/lib/us_core_test_kit/generated/v6.1.0/body_weight/metadata.yml +17 -13
  141. data/lib/us_core_test_kit/generated/v6.1.0/care_plan/metadata.yml +4 -1
  142. data/lib/us_core_test_kit/generated/v6.1.0/care_team/metadata.yml +2 -0
  143. data/lib/us_core_test_kit/generated/v6.1.0/condition_encounter_diagnosis/metadata.yml +6 -1
  144. data/lib/us_core_test_kit/generated/v6.1.0/condition_problems_health_concerns/metadata.yml +6 -2
  145. data/lib/us_core_test_kit/generated/v6.1.0/coverage/coverage_must_support_test.rb +5 -3
  146. data/lib/us_core_test_kit/generated/v6.1.0/coverage/metadata.yml +13 -7
  147. data/lib/us_core_test_kit/generated/v6.1.0/device/metadata.yml +2 -0
  148. data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_lab/metadata.yml +6 -1
  149. data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_note/metadata.yml +6 -1
  150. data/lib/us_core_test_kit/generated/v6.1.0/document_reference/metadata.yml +6 -1
  151. data/lib/us_core_test_kit/generated/v6.1.0/encounter/metadata.yml +4 -0
  152. data/lib/us_core_test_kit/generated/v6.1.0/goal/metadata.yml +2 -0
  153. data/lib/us_core_test_kit/generated/v6.1.0/head_circumference/head_circumference_must_support_test.rb +7 -7
  154. data/lib/us_core_test_kit/generated/v6.1.0/head_circumference/metadata.yml +17 -13
  155. data/lib/us_core_test_kit/generated/v6.1.0/head_circumference_percentile/head_circumference_percentile_must_support_test.rb +7 -7
  156. data/lib/us_core_test_kit/generated/v6.1.0/head_circumference_percentile/metadata.yml +17 -13
  157. data/lib/us_core_test_kit/generated/v6.1.0/heart_rate/heart_rate_must_support_test.rb +7 -7
  158. data/lib/us_core_test_kit/generated/v6.1.0/heart_rate/metadata.yml +17 -13
  159. data/lib/us_core_test_kit/generated/v6.1.0/immunization/metadata.yml +2 -0
  160. data/lib/us_core_test_kit/generated/v6.1.0/medication_dispense/metadata.yml +4 -0
  161. data/lib/us_core_test_kit/generated/v6.1.0/medication_request/metadata.yml +6 -1
  162. data/lib/us_core_test_kit/generated/v6.1.0/metadata.yml +417 -226
  163. data/lib/us_core_test_kit/generated/v6.1.0/observation_clinical_result/metadata.yml +4 -1
  164. data/lib/us_core_test_kit/generated/v6.1.0/observation_lab/metadata.yml +6 -1
  165. data/lib/us_core_test_kit/generated/v6.1.0/observation_occupation/metadata.yml +12 -7
  166. data/lib/us_core_test_kit/generated/v6.1.0/observation_occupation/observation_occupation_must_support_test.rb +2 -2
  167. data/lib/us_core_test_kit/generated/v6.1.0/observation_pregnancyintent/metadata.yml +8 -3
  168. data/lib/us_core_test_kit/generated/v6.1.0/observation_pregnancystatus/metadata.yml +8 -3
  169. data/lib/us_core_test_kit/generated/v6.1.0/observation_screening_assessment/metadata.yml +6 -2
  170. data/lib/us_core_test_kit/generated/v6.1.0/observation_sexual_orientation/metadata.yml +4 -1
  171. data/lib/us_core_test_kit/generated/v6.1.0/organization/metadata.yml +2 -1
  172. data/lib/us_core_test_kit/generated/v6.1.0/pediatric_bmi_for_age/metadata.yml +17 -13
  173. data/lib/us_core_test_kit/generated/v6.1.0/pediatric_bmi_for_age/pediatric_bmi_for_age_must_support_test.rb +7 -7
  174. data/lib/us_core_test_kit/generated/v6.1.0/pediatric_weight_for_height/metadata.yml +17 -13
  175. data/lib/us_core_test_kit/generated/v6.1.0/pediatric_weight_for_height/pediatric_weight_for_height_must_support_test.rb +7 -7
  176. data/lib/us_core_test_kit/generated/v6.1.0/practitioner/metadata.yml +2 -1
  177. data/lib/us_core_test_kit/generated/v6.1.0/procedure/metadata.yml +2 -0
  178. data/lib/us_core_test_kit/generated/v6.1.0/provenance/metadata.yml +8 -6
  179. data/lib/us_core_test_kit/generated/v6.1.0/provenance/provenance_must_support_test.rb +2 -1
  180. data/lib/us_core_test_kit/generated/v6.1.0/pulse_oximetry/metadata.yml +48 -31
  181. data/lib/us_core_test_kit/generated/v6.1.0/pulse_oximetry/pulse_oximetry_must_support_test.rb +19 -12
  182. data/lib/us_core_test_kit/generated/v6.1.0/questionnaire_response/metadata.yml +2 -0
  183. data/lib/us_core_test_kit/generated/v6.1.0/related_person/metadata.yml +2 -0
  184. data/lib/us_core_test_kit/generated/v6.1.0/respiratory_rate/metadata.yml +17 -13
  185. data/lib/us_core_test_kit/generated/v6.1.0/respiratory_rate/respiratory_rate_must_support_test.rb +7 -7
  186. data/lib/us_core_test_kit/generated/v6.1.0/service_request/metadata.yml +4 -1
  187. data/lib/us_core_test_kit/generated/v6.1.0/simple_observation/metadata.yml +4 -1
  188. data/lib/us_core_test_kit/generated/v6.1.0/smokingstatus/metadata.yml +6 -2
  189. data/lib/us_core_test_kit/generated/v6.1.0/specimen/metadata.yml +2 -0
  190. data/lib/us_core_test_kit/generator/must_support_metadata_extractor.rb +56 -26
  191. data/lib/us_core_test_kit/generator/must_support_test_generator.rb +1 -1
  192. data/lib/us_core_test_kit/must_support_test.rb +2 -5
  193. data/lib/us_core_test_kit/reference_resolution_test.rb +2 -2
  194. data/lib/us_core_test_kit/version.rb +1 -1
  195. metadata +2 -2
@@ -13,32 +13,39 @@ module USCoreTestKit
13
13
  found previously for the following must support elements:
14
14
 
15
15
  * Observation.category
16
- * Observation.category.coding
17
- * Observation.category.coding.code
18
- * Observation.category.coding.system
19
16
  * Observation.category:VSCat
17
+ * Observation.category:VSCat.coding
18
+ * Observation.category:VSCat.coding.code
19
+ * Observation.category:VSCat.coding.system
20
20
  * Observation.code
21
21
  * Observation.code.coding
22
22
  * Observation.code.coding:O2Sat
23
23
  * Observation.code.coding:PulseOx
24
24
  * Observation.component
25
25
  * Observation.component.code
26
- * Observation.component.code.coding.code
27
26
  * Observation.component.valueQuantity
28
- * Observation.component.valueQuantity.code
29
- * Observation.component.valueQuantity.system
30
- * Observation.component.valueQuantity.unit
31
- * Observation.component.valueQuantity.value
32
27
  * Observation.component:Concentration
28
+ * Observation.component:Concentration.code
29
+ * Observation.component:Concentration.valueQuantity
30
+ * Observation.component:Concentration.valueQuantity.code
31
+ * Observation.component:Concentration.valueQuantity.system
32
+ * Observation.component:Concentration.valueQuantity.unit
33
+ * Observation.component:Concentration.valueQuantity.value
33
34
  * Observation.component:FlowRate
35
+ * Observation.component:FlowRate.code
36
+ * Observation.component:FlowRate.valueQuantity
37
+ * Observation.component:FlowRate.valueQuantity.code
38
+ * Observation.component:FlowRate.valueQuantity.system
39
+ * Observation.component:FlowRate.valueQuantity.unit
40
+ * Observation.component:FlowRate.valueQuantity.value
34
41
  * Observation.effectiveDateTime
35
42
  * Observation.status
36
43
  * Observation.subject
37
44
  * Observation.valueQuantity
38
- * Observation.valueQuantity.code
39
- * Observation.valueQuantity.system
40
- * Observation.valueQuantity.unit
41
- * Observation.valueQuantity.value
45
+ * Observation.valueQuantity:valueQuantity.code
46
+ * Observation.valueQuantity:valueQuantity.system
47
+ * Observation.valueQuantity:valueQuantity.unit
48
+ * Observation.valueQuantity:valueQuantity.value
42
49
  * Observation.value[x]:valueQuantity
43
50
  )
44
51
 
@@ -142,6 +142,8 @@
142
142
  - :path: subject
143
143
  :types:
144
144
  - Reference
145
+ :target_profiles:
146
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
145
147
  - :path: authored
146
148
  - :path: author
147
149
  :types:
@@ -95,6 +95,8 @@
95
95
  - :path: patient
96
96
  :types:
97
97
  - Reference
98
+ :target_profiles:
99
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
98
100
  - :path: relationship
99
101
  - :path: name
100
102
  - :path: telecom
@@ -141,12 +141,14 @@
141
141
  :must_supports:
142
142
  :extensions: []
143
143
  :slices:
144
- - :name: Observation.value[x]:valueQuantity
144
+ - :slice_id: Observation.value[x]:valueQuantity
145
+ :slice_name: valueQuantity
145
146
  :path: value[x]
146
147
  :discriminator:
147
148
  :type: type
148
149
  :code: Quantity
149
- - :name: Observation.category:VSCat
150
+ - :slice_id: Observation.category:VSCat
151
+ :slice_name: VSCat
150
152
  :path: category
151
153
  :discriminator:
152
154
  :type: value
@@ -158,29 +160,31 @@
158
160
  :elements:
159
161
  - :path: status
160
162
  - :path: category
161
- - :path: category.coding
162
- - :path: category.coding.system
163
+ - :path: category:VSCat.coding
164
+ - :path: category:VSCat.coding.system
163
165
  :fixed_value: http://terminology.hl7.org/CodeSystem/observation-category
164
- - :path: category.coding.code
166
+ - :path: category:VSCat.coding.code
165
167
  :fixed_value: vital-signs
166
168
  - :path: code.coding.code
167
169
  :fixed_value: 9279-1
168
170
  - :path: subject
169
171
  :types:
170
172
  - Reference
173
+ :target_profiles:
174
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
171
175
  - :path: effectiveDateTime
172
176
  :original_path: effective[x]
173
177
  - :path: valueQuantity
174
178
  :original_path: value[x]
175
- - :path: valueQuantity.value
176
- :original_path: value[x].value
177
- - :path: valueQuantity.unit
178
- :original_path: value[x].unit
179
- - :path: valueQuantity.system
180
- :original_path: value[x].system
179
+ - :path: valueQuantity:valueQuantity.value
180
+ :original_path: value[x]:valueQuantity.value
181
+ - :path: valueQuantity:valueQuantity.unit
182
+ :original_path: value[x]:valueQuantity.unit
183
+ - :path: valueQuantity:valueQuantity.system
184
+ :original_path: value[x]:valueQuantity.system
181
185
  :fixed_value: http://unitsofmeasure.org
182
- - :path: valueQuantity.code
183
- :original_path: value[x].code
186
+ - :path: valueQuantity:valueQuantity.code
187
+ :original_path: value[x]:valueQuantity.code
184
188
  :fixed_value: "/min"
185
189
  :mandatory_elements:
186
190
  - Observation.status
@@ -13,19 +13,19 @@ module USCoreTestKit
13
13
  found previously for the following must support elements:
14
14
 
15
15
  * Observation.category
16
- * Observation.category.coding
17
- * Observation.category.coding.code
18
- * Observation.category.coding.system
19
16
  * Observation.category:VSCat
17
+ * Observation.category:VSCat.coding
18
+ * Observation.category:VSCat.coding.code
19
+ * Observation.category:VSCat.coding.system
20
20
  * Observation.code.coding.code
21
21
  * Observation.effectiveDateTime
22
22
  * Observation.status
23
23
  * Observation.subject
24
24
  * Observation.valueQuantity
25
- * Observation.valueQuantity.code
26
- * Observation.valueQuantity.system
27
- * Observation.valueQuantity.unit
28
- * Observation.valueQuantity.value
25
+ * Observation.valueQuantity:valueQuantity.code
26
+ * Observation.valueQuantity:valueQuantity.system
27
+ * Observation.valueQuantity:valueQuantity.unit
28
+ * Observation.valueQuantity:valueQuantity.value
29
29
  * Observation.value[x]:valueQuantity
30
30
  )
31
31
 
@@ -169,7 +169,8 @@
169
169
  :must_supports:
170
170
  :extensions: []
171
171
  :slices:
172
- - :name: ServiceRequest.category:us-core
172
+ - :slice_id: ServiceRequest.category:us-core
173
+ :slice_name: us-core
173
174
  :path: category
174
175
  :discriminator:
175
176
  :type: requiredBinding
@@ -194,6 +195,8 @@
194
195
  - :path: subject
195
196
  :types:
196
197
  - Reference
198
+ :target_profiles:
199
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
197
200
  - :path: occurrencePeriod
198
201
  :original_path: occurrence[x]
199
202
  - :path: authoredOn
@@ -152,7 +152,8 @@
152
152
  :must_supports:
153
153
  :extensions: []
154
154
  :slices:
155
- - :name: Observation.category:us-core
155
+ - :slice_id: Observation.category:us-core
156
+ :slice_name: us-core
156
157
  :path: category
157
158
  :discriminator:
158
159
  :type: requiredBinding
@@ -178,6 +179,8 @@
178
179
  - :path: subject
179
180
  :types:
180
181
  - Reference
182
+ :target_profiles:
183
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
181
184
  - :path: effectiveDateTime
182
185
  :original_path: effective[x]
183
186
  - :path: performer
@@ -135,14 +135,16 @@
135
135
  :must_supports:
136
136
  :extensions: []
137
137
  :slices:
138
- - :name: Observation.category:SocialHistory
138
+ - :slice_id: Observation.category:SocialHistory
139
+ :slice_name: SocialHistory
139
140
  :path: category
140
141
  :discriminator:
141
142
  :type: patternCodeableConcept
142
143
  :path: ''
143
144
  :code: social-history
144
145
  :system: http://terminology.hl7.org/CodeSystem/observation-category
145
- - :name: Observation.effective[x]:effectiveDateTime
146
+ - :slice_id: Observation.effective[x]:effectiveDateTime
147
+ :slice_name: effectiveDateTime
146
148
  :path: effective[x]
147
149
  :discriminator:
148
150
  :type: type
@@ -154,6 +156,8 @@
154
156
  - :path: subject
155
157
  :types:
156
158
  - Reference
159
+ :target_profiles:
160
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
157
161
  - :path: valueCodeableConcept
158
162
  :original_path: value[x]
159
163
  :mandatory_elements:
@@ -73,6 +73,8 @@
73
73
  - :path: subject
74
74
  :types:
75
75
  - Reference
76
+ :target_profiles:
77
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
76
78
  :mandatory_elements:
77
79
  - Specimen.type
78
80
  :bindings:
@@ -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 }
@@ -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)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module USCoreTestKit
4
- VERSION = '0.6.1'
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.1
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-11-06 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