us_core_test_kit 0.4.3 → 0.4.5

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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/lib/us_core_test_kit/custom_groups/capability_statement/profile_support_test.rb +14 -17
  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/v4.0.0/capability_statement_group.rb +1 -1
  5. data/lib/us_core_test_kit/custom_groups/v5.0.1/capability_statement_group.rb +1 -1
  6. data/lib/us_core_test_kit/generated/v3.1.1/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +7 -3
  7. data/lib/us_core_test_kit/generated/v3.1.1/bodyheight/bodyheight_reference_resolution_test.rb +7 -3
  8. data/lib/us_core_test_kit/generated/v3.1.1/bodytemp/bodytemp_reference_resolution_test.rb +7 -3
  9. data/lib/us_core_test_kit/generated/v3.1.1/bodyweight/bodyweight_reference_resolution_test.rb +7 -3
  10. data/lib/us_core_test_kit/generated/v3.1.1/bp/bp_reference_resolution_test.rb +7 -3
  11. data/lib/us_core_test_kit/generated/v3.1.1/care_plan/care_plan_reference_resolution_test.rb +7 -3
  12. data/lib/us_core_test_kit/generated/v3.1.1/care_team/care_team_reference_resolution_test.rb +7 -3
  13. data/lib/us_core_test_kit/generated/v3.1.1/condition/condition_reference_resolution_test.rb +7 -3
  14. data/lib/us_core_test_kit/generated/v3.1.1/device/device_reference_resolution_test.rb +7 -3
  15. data/lib/us_core_test_kit/generated/v3.1.1/diagnostic_report_lab/diagnostic_report_lab_reference_resolution_test.rb +7 -3
  16. data/lib/us_core_test_kit/generated/v3.1.1/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +7 -3
  17. data/lib/us_core_test_kit/generated/v3.1.1/document_reference/document_reference_reference_resolution_test.rb +7 -3
  18. data/lib/us_core_test_kit/generated/v3.1.1/encounter/encounter_reference_resolution_test.rb +7 -3
  19. data/lib/us_core_test_kit/generated/v3.1.1/goal/goal_reference_resolution_test.rb +7 -3
  20. data/lib/us_core_test_kit/generated/v3.1.1/head_circumference/head_circumference_reference_resolution_test.rb +7 -3
  21. data/lib/us_core_test_kit/generated/v3.1.1/heartrate/heartrate_reference_resolution_test.rb +7 -3
  22. data/lib/us_core_test_kit/generated/v3.1.1/immunization/immunization_reference_resolution_test.rb +7 -3
  23. data/lib/us_core_test_kit/generated/v3.1.1/medication_request/medication_request_reference_resolution_test.rb +7 -3
  24. data/lib/us_core_test_kit/generated/v3.1.1/observation_lab/observation_lab_reference_resolution_test.rb +7 -3
  25. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_bmi_for_age/pediatric_bmi_for_age_reference_resolution_test.rb +7 -3
  26. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_weight_for_height/pediatric_weight_for_height_reference_resolution_test.rb +7 -3
  27. data/lib/us_core_test_kit/generated/v3.1.1/procedure/procedure_reference_resolution_test.rb +7 -3
  28. data/lib/us_core_test_kit/generated/v3.1.1/provenance/provenance_reference_resolution_test.rb +7 -3
  29. data/lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry/pulse_oximetry_reference_resolution_test.rb +7 -3
  30. data/lib/us_core_test_kit/generated/v3.1.1/resprate/resprate_reference_resolution_test.rb +7 -3
  31. data/lib/us_core_test_kit/generated/v3.1.1/smokingstatus/smokingstatus_reference_resolution_test.rb +7 -3
  32. data/lib/us_core_test_kit/generated/v3.1.1/us_core_test_suite.rb +2 -2
  33. data/lib/us_core_test_kit/generated/v4.0.0/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +7 -3
  34. data/lib/us_core_test_kit/generated/v4.0.0/blood_pressure/blood_pressure_reference_resolution_test.rb +7 -3
  35. data/lib/us_core_test_kit/generated/v4.0.0/bmi/bmi_reference_resolution_test.rb +7 -3
  36. data/lib/us_core_test_kit/generated/v4.0.0/body_height/body_height_reference_resolution_test.rb +7 -3
  37. data/lib/us_core_test_kit/generated/v4.0.0/body_temperature/body_temperature_reference_resolution_test.rb +7 -3
  38. data/lib/us_core_test_kit/generated/v4.0.0/body_weight/body_weight_reference_resolution_test.rb +7 -3
  39. data/lib/us_core_test_kit/generated/v4.0.0/care_plan/care_plan_reference_resolution_test.rb +7 -3
  40. data/lib/us_core_test_kit/generated/v4.0.0/care_team/care_team_reference_resolution_test.rb +7 -3
  41. data/lib/us_core_test_kit/generated/v4.0.0/condition/condition_reference_resolution_test.rb +7 -3
  42. data/lib/us_core_test_kit/generated/v4.0.0/device/device_reference_resolution_test.rb +7 -3
  43. data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_lab/diagnostic_report_lab_reference_resolution_test.rb +7 -3
  44. data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +7 -3
  45. data/lib/us_core_test_kit/generated/v4.0.0/document_reference/document_reference_reference_resolution_test.rb +7 -3
  46. data/lib/us_core_test_kit/generated/v4.0.0/encounter/encounter_reference_resolution_test.rb +7 -3
  47. data/lib/us_core_test_kit/generated/v4.0.0/goal/goal_reference_resolution_test.rb +7 -3
  48. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference/head_circumference_reference_resolution_test.rb +7 -3
  49. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference_percentile/head_circumference_percentile_reference_resolution_test.rb +7 -3
  50. data/lib/us_core_test_kit/generated/v4.0.0/heart_rate/heart_rate_reference_resolution_test.rb +7 -3
  51. data/lib/us_core_test_kit/generated/v4.0.0/immunization/immunization_reference_resolution_test.rb +7 -3
  52. data/lib/us_core_test_kit/generated/v4.0.0/medication_request/medication_request_reference_resolution_test.rb +7 -3
  53. data/lib/us_core_test_kit/generated/v4.0.0/observation_lab/observation_lab_reference_resolution_test.rb +7 -3
  54. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_bmi_for_age/pediatric_bmi_for_age_reference_resolution_test.rb +7 -3
  55. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_weight_for_height/pediatric_weight_for_height_reference_resolution_test.rb +7 -3
  56. data/lib/us_core_test_kit/generated/v4.0.0/procedure/procedure_reference_resolution_test.rb +7 -3
  57. data/lib/us_core_test_kit/generated/v4.0.0/provenance/provenance_reference_resolution_test.rb +7 -3
  58. data/lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry/pulse_oximetry_reference_resolution_test.rb +7 -3
  59. data/lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/respiratory_rate_reference_resolution_test.rb +7 -3
  60. data/lib/us_core_test_kit/generated/v4.0.0/smokingstatus/smokingstatus_reference_resolution_test.rb +7 -3
  61. data/lib/us_core_test_kit/generated/v4.0.0/us_core_test_suite.rb +2 -2
  62. data/lib/us_core_test_kit/generated/v5.0.1/allergy_intolerance/allergy_intolerance_reference_resolution_test.rb +7 -3
  63. data/lib/us_core_test_kit/generated/v5.0.1/blood_pressure/blood_pressure_reference_resolution_test.rb +7 -3
  64. data/lib/us_core_test_kit/generated/v5.0.1/bmi/bmi_reference_resolution_test.rb +7 -3
  65. data/lib/us_core_test_kit/generated/v5.0.1/body_height/body_height_reference_resolution_test.rb +7 -3
  66. data/lib/us_core_test_kit/generated/v5.0.1/body_temperature/body_temperature_reference_resolution_test.rb +7 -3
  67. data/lib/us_core_test_kit/generated/v5.0.1/body_weight/body_weight_reference_resolution_test.rb +7 -3
  68. data/lib/us_core_test_kit/generated/v5.0.1/care_plan/care_plan_reference_resolution_test.rb +7 -3
  69. data/lib/us_core_test_kit/generated/v5.0.1/care_team/care_team_reference_resolution_test.rb +7 -3
  70. data/lib/us_core_test_kit/generated/v5.0.1/condition_encounter_diagnosis/condition_encounter_diagnosis_reference_resolution_test.rb +7 -3
  71. data/lib/us_core_test_kit/generated/v5.0.1/condition_problems_health_concerns/condition_problems_health_concerns_reference_resolution_test.rb +7 -3
  72. data/lib/us_core_test_kit/generated/v5.0.1/device/device_reference_resolution_test.rb +7 -3
  73. data/lib/us_core_test_kit/generated/v5.0.1/diagnostic_report_lab/diagnostic_report_lab_reference_resolution_test.rb +7 -3
  74. data/lib/us_core_test_kit/generated/v5.0.1/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +7 -3
  75. data/lib/us_core_test_kit/generated/v5.0.1/document_reference/document_reference_reference_resolution_test.rb +7 -3
  76. data/lib/us_core_test_kit/generated/v5.0.1/encounter/encounter_reference_resolution_test.rb +7 -3
  77. data/lib/us_core_test_kit/generated/v5.0.1/goal/goal_reference_resolution_test.rb +7 -3
  78. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference/head_circumference_reference_resolution_test.rb +7 -3
  79. data/lib/us_core_test_kit/generated/v5.0.1/head_circumference_percentile/head_circumference_percentile_reference_resolution_test.rb +7 -3
  80. data/lib/us_core_test_kit/generated/v5.0.1/heart_rate/heart_rate_reference_resolution_test.rb +7 -3
  81. data/lib/us_core_test_kit/generated/v5.0.1/immunization/immunization_reference_resolution_test.rb +7 -3
  82. data/lib/us_core_test_kit/generated/v5.0.1/medication_request/medication_request_reference_resolution_test.rb +7 -3
  83. data/lib/us_core_test_kit/generated/v5.0.1/observation_clinical_test/observation_clinical_test_reference_resolution_test.rb +7 -3
  84. data/lib/us_core_test_kit/generated/v5.0.1/observation_imaging/observation_imaging_reference_resolution_test.rb +7 -3
  85. data/lib/us_core_test_kit/generated/v5.0.1/observation_lab/observation_lab_reference_resolution_test.rb +7 -3
  86. data/lib/us_core_test_kit/generated/v5.0.1/observation_sdoh_assessment/observation_sdoh_assessment_reference_resolution_test.rb +7 -3
  87. data/lib/us_core_test_kit/generated/v5.0.1/observation_sexual_orientation/observation_sexual_orientation_reference_resolution_test.rb +7 -3
  88. data/lib/us_core_test_kit/generated/v5.0.1/observation_social_history/observation_social_history_reference_resolution_test.rb +7 -3
  89. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_bmi_for_age/pediatric_bmi_for_age_reference_resolution_test.rb +7 -3
  90. data/lib/us_core_test_kit/generated/v5.0.1/pediatric_weight_for_height/pediatric_weight_for_height_reference_resolution_test.rb +7 -3
  91. data/lib/us_core_test_kit/generated/v5.0.1/procedure/procedure_reference_resolution_test.rb +7 -3
  92. data/lib/us_core_test_kit/generated/v5.0.1/provenance/provenance_reference_resolution_test.rb +7 -3
  93. data/lib/us_core_test_kit/generated/v5.0.1/pulse_oximetry/pulse_oximetry_reference_resolution_test.rb +7 -3
  94. data/lib/us_core_test_kit/generated/v5.0.1/questionnaire_response/questionnaire_response_reference_resolution_test.rb +7 -3
  95. data/lib/us_core_test_kit/generated/v5.0.1/related_person/related_person_reference_resolution_test.rb +7 -3
  96. data/lib/us_core_test_kit/generated/v5.0.1/respiratory_rate/respiratory_rate_reference_resolution_test.rb +7 -3
  97. data/lib/us_core_test_kit/generated/v5.0.1/service_request/service_request_reference_resolution_test.rb +7 -3
  98. data/lib/us_core_test_kit/generated/v5.0.1/smokingstatus/smokingstatus_reference_resolution_test.rb +7 -3
  99. data/lib/us_core_test_kit/generated/v5.0.1/us_core_test_suite.rb +2 -2
  100. data/lib/us_core_test_kit/reference_resolution_test.rb +27 -4
  101. data/lib/us_core_test_kit/version.rb +1 -1
  102. metadata +2 -2
@@ -7,11 +7,15 @@ module USCoreTestKit
7
7
  include USCoreTestKit::ReferenceResolutionTest
8
8
  include ResourceList
9
9
 
10
- title 'MustSupport references within Observation resources can be read'
10
+ title 'MustSupport references within Observation resources are valid'
11
11
  description %(
12
12
  This test will attempt to read external references provided within elements
13
- marked as 'MustSupport', if any are available. Elements which may provide
14
- external references include:
13
+ marked as 'MustSupport', if any are available.
14
+
15
+ It verifies that at least one external reference for each MustSupport Reference element
16
+ can be accessed by the test client, and conforms to corresponding US Core profile.
17
+
18
+ Elements which may provide external references include:
15
19
 
16
20
  * Observation.subject
17
21
  )
@@ -7,11 +7,15 @@ module USCoreTestKit
7
7
  include USCoreTestKit::ReferenceResolutionTest
8
8
  include ResourceList
9
9
 
10
- title 'MustSupport references within ServiceRequest resources can be read'
10
+ title 'MustSupport references within ServiceRequest resources are valid'
11
11
  description %(
12
12
  This test will attempt to read external references provided within elements
13
- marked as 'MustSupport', if any are available. Elements which may provide
14
- external references include:
13
+ marked as 'MustSupport', if any are available.
14
+
15
+ It verifies that at least one external reference for each MustSupport Reference element
16
+ can be accessed by the test client, and conforms to corresponding US Core profile.
17
+
18
+ Elements which may provide external references include:
15
19
 
16
20
  * ServiceRequest.requester
17
21
  * ServiceRequest.subject
@@ -7,11 +7,15 @@ module USCoreTestKit
7
7
  include USCoreTestKit::ReferenceResolutionTest
8
8
  include ResourceList
9
9
 
10
- title 'MustSupport references within Observation resources can be read'
10
+ title 'MustSupport references within Observation resources are valid'
11
11
  description %(
12
12
  This test will attempt to read external references provided within elements
13
- marked as 'MustSupport', if any are available. Elements which may provide
14
- external references include:
13
+ marked as 'MustSupport', if any are available.
14
+
15
+ It verifies that at least one external reference for each MustSupport Reference element
16
+ can be accessed by the test client, and conforms to corresponding US Core profile.
17
+
18
+ Elements which may provide external references include:
15
19
 
16
20
  * Observation.subject
17
21
  )
@@ -65,8 +65,8 @@ module USCoreTestKit
65
65
  version VERSION
66
66
 
67
67
  VALIDATION_MESSAGE_FILTERS = [
68
- %r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris$},
69
- %r{Sub-extension url 'revoke' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris$},
68
+ %r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
69
+ %r{Sub-extension url 'revoke' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
70
70
  /Observation\.effective\.ofType\(Period\): .*vs-1:/, # Invalid invariant in FHIR v4.0.1
71
71
  /Observation\.effective\.ofType\(Period\): .*us-core-1:/, # Invalid invariant in US Core v3.1.1
72
72
  /Provenance.agent\[\d*\]: Rule provenance-1/ #Invalid invariant in US Core v5.0.1
@@ -23,8 +23,31 @@ module USCoreTestKit
23
23
  unresolved_reference_hash.map { |path, profiles| "#{path}#{"(#{profiles.join('|')})" unless profiles.first.empty?}" }
24
24
  end
25
25
 
26
- def record_resolved_reference(reference)
27
- resolved_references.add?(reference.reference)
26
+ def record_resolved_reference(reference, target_profile)
27
+ saved_reference = resolved_references.find { |item| item[:reference] == reference.reference }
28
+
29
+ if saved_reference.present?
30
+ if target_profile.present? && !saved_reference[:profiles].include?(target_profile)
31
+ saved_reference[:profiles] << target_profile
32
+ end
33
+ else
34
+ saved_reference = {
35
+ reference: reference.reference,
36
+ profiles: []
37
+ }
38
+
39
+ saved_reference[:profiles] << target_profile if target_profile.present?
40
+ resolved_references.add(saved_reference)
41
+ end
42
+ end
43
+
44
+ def is_reference_resolved?(reference, target_profile)
45
+ resolved_references.any? do |item|
46
+ item[:reference] == reference.reference &&
47
+ (
48
+ target_profile.blank? || item[:profiles].include?(target_profile)
49
+ )
50
+ end
28
51
  end
29
52
 
30
53
  def resolved_references
@@ -87,7 +110,7 @@ module USCoreTestKit
87
110
  end
88
111
 
89
112
  def validate_reference_resolution(resource, reference, target_profile)
90
- return true if resolved_references.include?(reference.reference) && target_profile.blank?
113
+ return true if is_reference_resolved?(reference, target_profile)
91
114
 
92
115
  if reference.contained?
93
116
  # if reference_id is blank it is referring to itself, so we know it exists
@@ -129,7 +152,7 @@ module USCoreTestKit
129
152
 
130
153
  return false unless resource_is_valid_with_target_profile?(resolved_resource, target_profile)
131
154
 
132
- record_resolved_reference(reference)
155
+ record_resolved_reference(reference, target_profile)
133
156
  true
134
157
  end
135
158
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module USCoreTestKit
4
- VERSION = '0.4.3'
4
+ VERSION = '0.4.5'
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.4.3
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen MacVicar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-09 00:00:00.000000000 Z
11
+ date: 2023-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core