us_core_test_kit 0.4.3 → 0.4.5

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