us_core_test_kit 0.6.1 → 0.6.2

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