us_core_test_kit 0.8.1 → 0.9.0

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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/us_core_test_kit/custom_groups/base_smart_granular_scopes_group.rb +87 -6
  3. data/lib/us_core_test_kit/custom_groups/smart_app_launch_group.rb +28 -6
  4. data/lib/us_core_test_kit/custom_groups/smart_ehr_launch_stu2_2.rb +40 -0
  5. data/lib/us_core_test_kit/custom_groups/smart_standalone_launch_stu2_2_group.rb +40 -0
  6. data/lib/us_core_test_kit/custom_groups/v3.1.1/capability_statement_group.rb +2 -2
  7. data/lib/us_core_test_kit/custom_groups/v3.1.1/{profile_support_test.rb → resource_support_test.rb} +1 -1
  8. data/lib/us_core_test_kit/custom_groups/v7.0.0/smart_app_launch_group.rb +3 -3
  9. data/lib/us_core_test_kit/custom_groups/v7.0.0/smart_app_launch_stu2_2_group.rb +16 -0
  10. data/lib/us_core_test_kit/custom_groups/v7.0.0/smart_discovery_stu2_2_group.rb +11 -0
  11. data/lib/us_core_test_kit/generated/v3.1.1/us_core_test_suite.rb +8 -2
  12. data/lib/us_core_test_kit/generated/v4.0.0/us_core_test_suite.rb +8 -2
  13. data/lib/us_core_test_kit/generated/v5.0.1/us_core_test_suite.rb +8 -2
  14. data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_note/diagnostic_report_note_must_support_test.rb +0 -2
  15. data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +0 -1
  16. data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_note/metadata.yml +0 -4
  17. data/lib/us_core_test_kit/generated/v6.1.0/metadata.yml +3 -16
  18. data/lib/us_core_test_kit/generated/v6.1.0/practitioner/metadata.yml +2 -6
  19. data/lib/us_core_test_kit/generated/v6.1.0/practitioner/practitioner_address_test.rb +32 -0
  20. data/lib/us_core_test_kit/generated/v6.1.0/practitioner/practitioner_must_support_test.rb +0 -6
  21. data/lib/us_core_test_kit/generated/v6.1.0/practitioner_group.rb +2 -0
  22. data/lib/us_core_test_kit/generated/v6.1.0/smokingstatus/metadata.yml +1 -6
  23. data/lib/us_core_test_kit/generated/v6.1.0/smokingstatus/smokingstatus_must_support_test.rb +1 -1
  24. data/lib/us_core_test_kit/generated/v6.1.0/us_core_test_suite.rb +16 -3
  25. data/lib/us_core_test_kit/generated/v7.0.0/diagnostic_report_note/diagnostic_report_note_must_support_test.rb +0 -2
  26. data/lib/us_core_test_kit/generated/v7.0.0/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +0 -1
  27. data/lib/us_core_test_kit/generated/v7.0.0/diagnostic_report_note/metadata.yml +0 -4
  28. data/lib/us_core_test_kit/generated/v7.0.0/metadata.yml +2 -10
  29. data/lib/us_core_test_kit/generated/v7.0.0/practitioner/metadata.yml +2 -6
  30. data/lib/us_core_test_kit/generated/v7.0.0/practitioner/practitioner_address_test.rb +32 -0
  31. data/lib/us_core_test_kit/generated/v7.0.0/practitioner/practitioner_must_support_test.rb +0 -6
  32. data/lib/us_core_test_kit/generated/v7.0.0/practitioner_group.rb +2 -0
  33. data/lib/us_core_test_kit/generated/v7.0.0/us_core_test_suite.rb +21 -5
  34. data/lib/us_core_test_kit/generator/group_generator.rb +1 -2
  35. data/lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_6.rb +23 -0
  36. data/lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_7.rb +5 -1
  37. data/lib/us_core_test_kit/generator/practitioner_address_test_generator.rb +68 -0
  38. data/lib/us_core_test_kit/generator/suite_generator.rb +15 -2
  39. data/lib/us_core_test_kit/generator.rb +6 -0
  40. data/lib/us_core_test_kit/must_support_test.rb +25 -22
  41. data/lib/us_core_test_kit/practitioner_address_test.rb +85 -0
  42. data/lib/us_core_test_kit/reference_resolution_test.rb +31 -23
  43. data/lib/us_core_test_kit/us_core_options.rb +9 -8
  44. data/lib/us_core_test_kit/version.rb +1 -1
  45. metadata +14 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bf568ad98ad25b70c1ae8993657adb8eccc83f9ffeee841e6bb3a51b79ed9f56
4
- data.tar.gz: 2c2761194d8edf9c70744ff832016d4f9643851041690c0c8bd71004e947083f
3
+ metadata.gz: d0b4059c21c91aac9937415541f2104a2f15ea911181d73e0e71b37efdb30d80
4
+ data.tar.gz: bc52f233f6620307ab10c64c03bfc3e223f7a9d6bd5e80e5bcecc4ace255a399
5
5
  SHA512:
6
- metadata.gz: ea6bce62760d108adaeb3905bca2611b52059391a99b5ade0515fa2de61069a4d8bfa7479bb4c79dc0637297c9123bd28c274a276776330c8076ae2c2065a8ac
7
- data.tar.gz: a29e81c48dd8965fa62a064ff69552e64e7b4cab0bab917c55e9b6ff402e3a8566d234c879852674d271156f46d656149d5de1b66023c853194327d43a06edba
6
+ metadata.gz: b786a061e34bb45029cebf15641f360607d89f6c5b4c2249bd11171b6ca74403958795c7579ef170bee76a8061cb4f4b23dac257a3cdee91675510de3901eed5
7
+ data.tar.gz: b8ebd86009a0fc9cd4b3ab35a5f8078320d4c81612f3445793d524367cc446096a537461c1f30aaf5686f27110282a6717ed44f3460415b7def5ddd61ab905ae
@@ -1,12 +1,12 @@
1
1
  require 'inferno'
2
2
  require 'smart_app_launch_test_kit'
3
- require_relative './smart_ehr_launch_stu2'
4
- require_relative './smart_scopes_constants'
5
- require_relative './smart_standalone_launch_stu2_group'
3
+ require_relative 'smart_ehr_launch_stu2'
4
+ require_relative 'smart_scopes_constants'
5
+ require_relative 'smart_standalone_launch_stu2_group'
6
6
  require_relative '../granular_scope_search_test'
7
7
  require_relative '../granular_scope_read_test'
8
8
  require_relative '../us_core_options'
9
- require_relative './granted_granular_scopes_test'
9
+ require_relative 'granted_granular_scopes_test'
10
10
 
11
11
  module USCoreTestKit
12
12
  class BaseSmartGranularScopesGroup < Inferno::TestGroup
@@ -54,8 +54,29 @@ module USCoreTestKit
54
54
  smart_credentials: {
55
55
  name: :granular_scopes_1_credentials
56
56
  }
57
- } )
57
+ }
58
+ )
58
59
  group from: :us_core_smart_standalone_launch_stu2,
60
+ required_suite_options: USCoreOptions::SMART_2_REQUIREMENT,
61
+ optional: true,
62
+ config: {
63
+ inputs: {
64
+ smart_credentials: {
65
+ name: :granular_scopes_1_credentials
66
+ }
67
+ }
68
+ } do
69
+ groups[1].test from: :us_core_granted_granular_scopes,
70
+ config: {
71
+ inputs: {
72
+ received_scopes: {
73
+ name: :standalone_received_scopes
74
+ }
75
+ }
76
+ }
77
+ end
78
+ group from: :us_core_smart_standalone_launch_stu2_2,
79
+ required_suite_options: USCoreOptions::SMART_2_2_REQUIREMENT,
59
80
  optional: true,
60
81
  config: {
61
82
  inputs: {
@@ -73,7 +94,28 @@ module USCoreTestKit
73
94
  }
74
95
  }
75
96
  end
97
+
76
98
  group from: :us_core_smart_ehr_launch_stu2,
99
+ required_suite_options: USCoreOptions::SMART_2_REQUIREMENT,
100
+ optional: true,
101
+ config: {
102
+ inputs: {
103
+ smart_credentials: {
104
+ name: :granular_scopes_1_credentials
105
+ }
106
+ }
107
+ } do
108
+ groups[1].test from: :us_core_granted_granular_scopes,
109
+ config: {
110
+ inputs: {
111
+ received_scopes: {
112
+ name: :ehr_received_scopes
113
+ }
114
+ }
115
+ }
116
+ end
117
+ group from: :us_core_smart_ehr_launch_stu2_2,
118
+ required_suite_options: USCoreOptions::SMART_2_2_REQUIREMENT,
77
119
  optional: true,
78
120
  config: {
79
121
  inputs: {
@@ -113,6 +155,26 @@ module USCoreTestKit
113
155
  )
114
156
 
115
157
  group from: :us_core_smart_standalone_launch_stu2,
158
+ required_suite_options: USCoreOptions::SMART_2_REQUIREMENT,
159
+ optional: true,
160
+ config: {
161
+ inputs: {
162
+ smart_credentials: {
163
+ name: :granular_scopes_2_credentials
164
+ }
165
+ }
166
+ } do
167
+ groups[1].test from: :us_core_granted_granular_scopes,
168
+ config: {
169
+ inputs: {
170
+ received_scopes: {
171
+ name: :standalone_received_scopes
172
+ }
173
+ }
174
+ }
175
+ end
176
+ group from: :us_core_smart_standalone_launch_stu2_2,
177
+ required_suite_options: USCoreOptions::SMART_2_2_REQUIREMENT,
116
178
  optional: true,
117
179
  config: {
118
180
  inputs: {
@@ -130,9 +192,28 @@ module USCoreTestKit
130
192
  }
131
193
  }
132
194
  end
133
-
134
195
 
135
196
  group from: :us_core_smart_ehr_launch_stu2,
197
+ required_suite_options: USCoreOptions::SMART_2_REQUIREMENT,
198
+ optional: true,
199
+ config: {
200
+ inputs: {
201
+ smart_credentials: {
202
+ name: :granular_scopes_2_credentials
203
+ }
204
+ }
205
+ } do
206
+ groups[1].test from: :us_core_granted_granular_scopes,
207
+ config: {
208
+ inputs: {
209
+ received_scopes: {
210
+ name: :ehr_received_scopes
211
+ }
212
+ }
213
+ }
214
+ end
215
+ group from: :us_core_smart_ehr_launch_stu2_2,
216
+ required_suite_options: USCoreOptions::SMART_2_2_REQUIREMENT,
136
217
  optional: true,
137
218
  config: {
138
219
  inputs: {
@@ -1,18 +1,22 @@
1
1
  require 'smart_app_launch_test_kit'
2
2
  require_relative '../us_core_options'
3
- require_relative './smart_ehr_launch_stu1'
4
- require_relative './smart_ehr_launch_stu2'
5
- require_relative './smart_standalone_launch_stu1_group'
6
- require_relative './smart_standalone_launch_stu2_group'
3
+ require_relative 'smart_ehr_launch_stu1'
4
+ require_relative 'smart_ehr_launch_stu2'
5
+ require_relative 'smart_ehr_launch_stu2_2'
6
+ require_relative 'smart_standalone_launch_stu1_group'
7
+ require_relative 'smart_standalone_launch_stu2_group'
8
+ require_relative 'smart_standalone_launch_stu2_2_group'
7
9
 
8
10
  module USCoreTestKit
9
11
  class SmartAppLaunchGroup < Inferno::TestGroup
10
12
  id :us_core_smart_app_launch
11
13
  title 'SMART App Launch'
12
14
 
13
- SMART_V1_RESOURCE_LEVEL_SCOPES = "launch/patient openid fhirUser offline_access patient/Medication.read patient/AllergyIntolerance.read patient/CarePlan.read patient/CareTeam.read patient/Condition.read patient/Device.read patient/DiagnosticReport.read patient/DocumentReference.read patient/Encounter.read patient/Goal.read patient/Immunization.read patient/Location.read patient/MedicationRequest.read patient/Observation.read patient/Organization.read patient/Patient.read patient/Practitioner.read patient/Procedure.read patient/Provenance.read patient/PractitionerRole.read patient/ServiceRequest.read patient/RelatedPerson.read patient/Specimen.read patient/MedicationDispense.read patient/Coverage.read patient/Location.read patient/media.read".freeze
15
+ SMART_V1_RESOURCE_LEVEL_SCOPES = 'launch/patient openid fhirUser offline_access patient/Medication.read patient/AllergyIntolerance.read patient/CarePlan.read patient/CareTeam.read patient/Condition.read patient/Device.read patient/DiagnosticReport.read patient/DocumentReference.read patient/Encounter.read patient/Goal.read patient/Immunization.read patient/Location.read patient/MedicationRequest.read patient/Observation.read patient/Organization.read patient/Patient.read patient/Practitioner.read patient/Procedure.read patient/Provenance.read patient/PractitionerRole.read patient/ServiceRequest.read patient/RelatedPerson.read patient/Specimen.read patient/MedicationDispense.read patient/Coverage.read patient/Location.read patient/media.read'.freeze
14
16
 
15
- SMART_V2_RESOURCE_LEVEL_SCOPES = "launch/patient openid fhirUser offline_access patient/Medication.rs patient/AllergyIntolerance.rs patient/CarePlan.rs patient/CareTeam.rs patient/Condition.rs patient/Device.rs patient/DiagnosticReport.rs patient/DocumentReference.rs patient/Encounter.rs patient/Goal.rs patient/Immunization.rs patient/Location.rs patient/MedicationRequest.rs patient/Observation.rs patient/Organization.rs patient/Patient.rs patient/Practitioner.rs patient/Procedure.rs patient/Provenance.rs patient/PractitionerRole.rs patient/ServiceRequest.rs patient/RelatedPerson.rs patient/Specimen.rs patient/MedicationDispense.rs patient/Coverage.rs patient/Location.rs patient/Media.rs".freeze
17
+ SMART_V2_RESOURCE_LEVEL_SCOPES = 'launch/patient openid fhirUser offline_access patient/Medication.rs patient/AllergyIntolerance.rs patient/CarePlan.rs patient/CareTeam.rs patient/Condition.rs patient/Device.rs patient/DiagnosticReport.rs patient/DocumentReference.rs patient/Encounter.rs patient/Goal.rs patient/Immunization.rs patient/Location.rs patient/MedicationRequest.rs patient/Observation.rs patient/Organization.rs patient/Patient.rs patient/Practitioner.rs patient/Procedure.rs patient/Provenance.rs patient/PractitionerRole.rs patient/ServiceRequest.rs patient/RelatedPerson.rs patient/Specimen.rs patient/MedicationDispense.rs patient/Coverage.rs patient/Location.rs patient/Media.rs'.freeze
18
+
19
+ SMART_V2_2_RESOURCE_LEVEL_SCOPES = 'launch/patient openid fhirUser offline_access patient/Medication.rs patient/AllergyIntolerance.rs patient/CarePlan.rs patient/CareTeam.rs patient/Condition.rs patient/Device.rs patient/DiagnosticReport.rs patient/DocumentReference.rs patient/Encounter.rs patient/Goal.rs patient/Immunization.rs patient/Location.rs patient/MedicationRequest.rs patient/Observation.rs patient/Organization.rs patient/Patient.rs patient/Practitioner.rs patient/Procedure.rs patient/Provenance.rs patient/PractitionerRole.rs patient/ServiceRequest.rs patient/RelatedPerson.rs patient/Specimen.rs patient/MedicationDispense.rs patient/Coverage.rs patient/Location.rs patient/Media.rs'.freeze
16
20
 
17
21
  group from: :us_core_smart_standalone_launch_stu1,
18
22
  required_suite_options: USCoreOptions::SMART_1_REQUIREMENT,
@@ -49,5 +53,23 @@ module USCoreTestKit
49
53
  requested_scopes: { default: SmartAppLaunchGroup::SMART_V2_RESOURCE_LEVEL_SCOPES }
50
54
  }
51
55
  }
56
+
57
+ group from: :us_core_smart_standalone_launch_stu2_2,
58
+ required_suite_options: USCoreOptions::SMART_2_2_REQUIREMENT,
59
+ optional: true,
60
+ config: {
61
+ inputs: {
62
+ requested_scopes: { default: SmartAppLaunchGroup::SMART_V2_2_RESOURCE_LEVEL_SCOPES }
63
+ }
64
+ }
65
+
66
+ group from: :us_core_smart_ehr_launch_stu2_2,
67
+ required_suite_options: USCoreOptions::SMART_2_2_REQUIREMENT,
68
+ optional: true,
69
+ config: {
70
+ inputs: {
71
+ requested_scopes: { default: SmartAppLaunchGroup::SMART_V2_2_RESOURCE_LEVEL_SCOPES }
72
+ }
73
+ }
52
74
  end
53
75
  end
@@ -0,0 +1,40 @@
1
+ module USCoreTestKit
2
+ class SmartEHRLaunchSTU22 < Inferno::TestGroup
3
+ id :us_core_smart_ehr_launch_stu2_2
4
+ title 'EHR Launch'
5
+
6
+ run_as_group
7
+
8
+ group from: :smart_discovery_stu2_2,
9
+ run_as_group: true
10
+ group from: :smart_ehr_launch_stu2_2,
11
+ run_as_group: true
12
+
13
+ group from: :smart_openid_connect_stu2_2 do
14
+ run_as_group
15
+ optional
16
+ config(
17
+ inputs: {
18
+ id_token: { name: :ehr_id_token },
19
+ client_id: { name: :ehr_client_id },
20
+ requested_scopes: { name: :ehr_requested_scopes },
21
+ access_token: { name: :ehr_access_token },
22
+ smart_credentials: { name: :ehr_smart_credentials }
23
+ }
24
+ )
25
+ end
26
+
27
+ group from: :smart_token_refresh_stu2 do
28
+ run_as_group
29
+ optional
30
+ config(
31
+ inputs: {
32
+ refresh_token: { name: :ehr_refresh_token },
33
+ client_id: { name: :ehr_client_id },
34
+ client_secret: { name: :ehr_client_secret },
35
+ received_scopes: { name: :ehr_received_scopes }
36
+ }
37
+ )
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ module USCoreTestKit
2
+ class SmartStandaloneLaunchSTU22 < Inferno::TestGroup
3
+ id :us_core_smart_standalone_launch_stu2_2
4
+ title 'Standalone Launch'
5
+
6
+ run_as_group
7
+
8
+ group from: :smart_discovery_stu2_2,
9
+ run_as_group: true
10
+ group from: :smart_standalone_launch_stu2_2,
11
+ run_as_group: true
12
+
13
+ group from: :smart_openid_connect_stu2_2 do
14
+ run_as_group
15
+ optional
16
+ config(
17
+ inputs: {
18
+ id_token: { name: :standalone_id_token },
19
+ client_id: { name: :standalone_client_id },
20
+ requested_scopes: { name: :standalone_requested_scopes },
21
+ access_token: { name: :standalone_access_token },
22
+ smart_credentials: { name: :standalone_smart_credentials }
23
+ }
24
+ )
25
+ end
26
+
27
+ group from: :smart_token_refresh_stu2 do
28
+ run_as_group
29
+ optional
30
+ config(
31
+ inputs: {
32
+ refresh_token: { name: :standalone_refresh_token },
33
+ client_id: { name: :standalone_client_id },
34
+ client_secret: { name: :standalone_client_secret },
35
+ received_scopes: { name: :standalone_received_scopes }
36
+ }
37
+ )
38
+ end
39
+ end
40
+ end
@@ -2,7 +2,7 @@ require 'tls_test_kit'
2
2
  require_relative '../capability_statement/conformance_support_test'
3
3
  require_relative '../capability_statement/fhir_version_test'
4
4
  require_relative '../capability_statement/json_support_test'
5
- require_relative './profile_support_test'
5
+ require_relative './resource_support_test'
6
6
 
7
7
  module USCoreTestKit
8
8
  module USCoreV311
@@ -100,7 +100,7 @@ module USCoreTestKit
100
100
  test from: :us_core_fhir_version
101
101
  test from: :us_core_json_support
102
102
 
103
- test from: :us_core_profile_support do
103
+ test from: :us_core_v311_resource_support do
104
104
  config(
105
105
  options: { us_core_resources: PROFILES.keys }
106
106
  )
@@ -1,7 +1,7 @@
1
1
  module USCoreTestKit
2
2
  module USCoreV311
3
3
  class ProfileSupportTest < Inferno::Test
4
- id :us_core_profile_support
4
+ id :us_core_v311_resource_support
5
5
  title 'Capability Statement lists support for required US Core Resoruce Types'
6
6
  description %(
7
7
  The US Core Implementation Guide states:
@@ -1,5 +1,5 @@
1
1
  require_relative '../smart_app_launch_group'
2
- require_relative './smart_discovery_stu2_group'
2
+ require_relative 'smart_discovery_stu2_group'
3
3
 
4
4
  module USCoreTestKit
5
5
  module USCoreV700
@@ -9,8 +9,8 @@ module USCoreTestKit
9
9
  groups[2].group from: :us_core_v700_smart_discovery_stu2
10
10
  groups[2].children[0] = groups[2].children.pop
11
11
 
12
- groups.last.group from: :us_core_v700_smart_discovery_stu2
13
- groups.last.children[0] = groups.last.children.pop
12
+ groups[3].group from: :us_core_v700_smart_discovery_stu2
13
+ groups[3].children[0] = groups[3].children.pop
14
14
  end
15
15
  end
16
16
  end
@@ -0,0 +1,16 @@
1
+ require_relative '../smart_app_launch_group'
2
+ require_relative 'smart_discovery_stu2_2_group'
3
+
4
+ module USCoreTestKit
5
+ module USCoreV700
6
+ class SmartAppLaunchSTU22Group < USCoreTestKit::SmartAppLaunchGroup
7
+ id :us_core_v700_smart_app_launch_stu2_2
8
+
9
+ groups[4].group from: :us_core_v700_smart_discovery_stu2_2
10
+ groups[4].children[0] = groups[4].children.pop
11
+
12
+ groups.last.group from: :us_core_v700_smart_discovery_stu2_2
13
+ groups.last.children[0] = groups.last.children.pop
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ require_relative '../smart_well_known_capabilities_test'
2
+
3
+ module USCoreTestKit
4
+ module USCoreV700
5
+ class USCoreDiscoverySTU22Group < SMARTAppLaunch::DiscoverySTU22Group
6
+ id :us_core_v700_smart_discovery_stu2_2
7
+
8
+ test from: :us_core_smart_well_known_capabilities
9
+ end
10
+ end
11
+ end
@@ -57,7 +57,7 @@ module USCoreTestKit
57
57
  )
58
58
  version VERSION
59
59
 
60
- VALIDATION_MESSAGE_FILTERS = [
60
+ GENERAL_MESSAGE_FILTERS = [
61
61
  %r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
62
62
  %r{Sub-extension url 'revoke' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
63
63
  /Observation\.effective\.ofType\(Period\): .*vs-1:/, # Invalid invariant in FHIR v4.0.1
@@ -71,6 +71,8 @@ module USCoreTestKit
71
71
 
72
72
  VERSION_SPECIFIC_MESSAGE_FILTERS = [].freeze
73
73
 
74
+ VALIDATION_MESSAGE_FILTERS = GENERAL_MESSAGE_FILTERS + VERSION_SPECIFIC_MESSAGE_FILTERS
75
+
74
76
  def self.metadata
75
77
  @metadata ||= YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true)[:groups].map do |raw_metadata|
76
78
  Generator::GroupMetadata.new(raw_metadata)
@@ -81,7 +83,7 @@ module USCoreTestKit
81
83
 
82
84
  fhir_resource_validator do
83
85
  igs 'hl7.fhir.us.core#3.1.1'
84
- message_filters = VALIDATION_MESSAGE_FILTERS + VERSION_SPECIFIC_MESSAGE_FILTERS
86
+ message_filters = VALIDATION_MESSAGE_FILTERS
85
87
 
86
88
  exclude_message do |message|
87
89
 
@@ -107,6 +109,10 @@ module USCoreTestKit
107
109
  {
108
110
  label: 'SMART App Launch 2.0.0',
109
111
  value: USCoreOptions::SMART_2
112
+ },
113
+ {
114
+ label: 'SMART App Launch 2.2.0',
115
+ value: USCoreOptions::SMART_2_2
110
116
  }
111
117
  ]
112
118
 
@@ -59,7 +59,7 @@ module USCoreTestKit
59
59
  )
60
60
  version VERSION
61
61
 
62
- VALIDATION_MESSAGE_FILTERS = [
62
+ GENERAL_MESSAGE_FILTERS = [
63
63
  %r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
64
64
  %r{Sub-extension url 'revoke' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
65
65
  /Observation\.effective\.ofType\(Period\): .*vs-1:/, # Invalid invariant in FHIR v4.0.1
@@ -73,6 +73,8 @@ module USCoreTestKit
73
73
 
74
74
  VERSION_SPECIFIC_MESSAGE_FILTERS = [].freeze
75
75
 
76
+ VALIDATION_MESSAGE_FILTERS = GENERAL_MESSAGE_FILTERS + VERSION_SPECIFIC_MESSAGE_FILTERS
77
+
76
78
  def self.metadata
77
79
  @metadata ||= YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true)[:groups].map do |raw_metadata|
78
80
  Generator::GroupMetadata.new(raw_metadata)
@@ -83,7 +85,7 @@ module USCoreTestKit
83
85
 
84
86
  fhir_resource_validator do
85
87
  igs 'hl7.fhir.us.core#4.0.0'
86
- message_filters = VALIDATION_MESSAGE_FILTERS + VERSION_SPECIFIC_MESSAGE_FILTERS
88
+ message_filters = VALIDATION_MESSAGE_FILTERS
87
89
 
88
90
  exclude_message do |message|
89
91
 
@@ -109,6 +111,10 @@ module USCoreTestKit
109
111
  {
110
112
  label: 'SMART App Launch 2.0.0',
111
113
  value: USCoreOptions::SMART_2
114
+ },
115
+ {
116
+ label: 'SMART App Launch 2.2.0',
117
+ value: USCoreOptions::SMART_2_2
112
118
  }
113
119
  ]
114
120
 
@@ -69,7 +69,7 @@ module USCoreTestKit
69
69
  )
70
70
  version VERSION
71
71
 
72
- VALIDATION_MESSAGE_FILTERS = [
72
+ GENERAL_MESSAGE_FILTERS = [
73
73
  %r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
74
74
  %r{Sub-extension url 'revoke' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
75
75
  /Observation\.effective\.ofType\(Period\): .*vs-1:/, # Invalid invariant in FHIR v4.0.1
@@ -83,6 +83,8 @@ module USCoreTestKit
83
83
 
84
84
  VERSION_SPECIFIC_MESSAGE_FILTERS = [].freeze
85
85
 
86
+ VALIDATION_MESSAGE_FILTERS = GENERAL_MESSAGE_FILTERS + VERSION_SPECIFIC_MESSAGE_FILTERS
87
+
86
88
  def self.metadata
87
89
  @metadata ||= YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true)[:groups].map do |raw_metadata|
88
90
  Generator::GroupMetadata.new(raw_metadata)
@@ -93,7 +95,7 @@ module USCoreTestKit
93
95
 
94
96
  fhir_resource_validator do
95
97
  igs 'hl7.fhir.us.core#5.0.1'
96
- message_filters = VALIDATION_MESSAGE_FILTERS + VERSION_SPECIFIC_MESSAGE_FILTERS
98
+ message_filters = VALIDATION_MESSAGE_FILTERS
97
99
 
98
100
  exclude_message do |message|
99
101
 
@@ -119,6 +121,10 @@ module USCoreTestKit
119
121
  {
120
122
  label: 'SMART App Launch 2.0.0',
121
123
  value: USCoreOptions::SMART_2
124
+ },
125
+ {
126
+ label: 'SMART App Launch 2.2.0',
127
+ value: USCoreOptions::SMART_2_2
122
128
  }
123
129
  ]
124
130
 
@@ -18,8 +18,6 @@ module USCoreTestKit
18
18
  * DiagnosticReport.effectiveDateTime
19
19
  * DiagnosticReport.encounter
20
20
  * DiagnosticReport.issued
21
- * DiagnosticReport.media
22
- * DiagnosticReport.media.link
23
21
  * DiagnosticReport.performer
24
22
  * DiagnosticReport.presentedForm
25
23
  * DiagnosticReport.result
@@ -16,7 +16,6 @@ module USCoreTestKit
16
16
  Elements which may provide external references include:
17
17
 
18
18
  * DiagnosticReport.encounter
19
- * DiagnosticReport.media.link
20
19
  * DiagnosticReport.performer
21
20
  * DiagnosticReport.result
22
21
  * DiagnosticReport.subject
@@ -192,10 +192,6 @@
192
192
  :target_profiles:
193
193
  - http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
194
194
  - http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-clinical-result
195
- - :path: media
196
- - :path: media.link
197
- :types:
198
- - Reference
199
195
  - :path: presentedForm
200
196
  :mandatory_elements:
201
197
  - DiagnosticReport.status
@@ -1887,10 +1887,6 @@
1887
1887
  :target_profiles:
1888
1888
  - http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
1889
1889
  - http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-clinical-result
1890
- - :path: media
1891
- - :path: media.link
1892
- :types:
1893
- - Reference
1894
1890
  - :path: presentedForm
1895
1891
  :mandatory_elements:
1896
1892
  - DiagnosticReport.status
@@ -7111,12 +7107,6 @@
7111
7107
  :path: ''
7112
7108
  :code: social-history
7113
7109
  :system: http://terminology.hl7.org/CodeSystem/observation-category
7114
- - :slice_id: Observation.effective[x]:effectiveDateTime
7115
- :slice_name: effectiveDateTime
7116
- :path: effective[x]
7117
- :discriminator:
7118
- :type: type
7119
- :code: DateTime
7120
7110
  :elements:
7121
7111
  - :path: status
7122
7112
  - :path: category
@@ -7128,6 +7118,7 @@
7128
7118
  - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
7129
7119
  - :path: valueCodeableConcept
7130
7120
  :original_path: value[x]
7121
+ - :path: effective[x]
7131
7122
  :mandatory_elements:
7132
7123
  - Observation.status
7133
7124
  - Observation.category
@@ -10732,12 +10723,6 @@
10732
10723
  - :path: telecom
10733
10724
  - :path: telecom.system
10734
10725
  - :path: telecom.value
10735
- - :path: address
10736
- - :path: address.line
10737
- - :path: address.city
10738
- - :path: address.state
10739
- - :path: address.postalCode
10740
- - :path: address.country
10741
10726
  :mandatory_elements:
10742
10727
  - Practitioner.identifier
10743
10728
  - Practitioner.identifier.system
@@ -10794,6 +10779,8 @@
10794
10779
  :file_name: practitioner_validation_test.rb
10795
10780
  - :id: us_core_v610_practitioner_must_support_test
10796
10781
  :file_name: practitioner_must_support_test.rb
10782
+ - :id: us_core_v610_practitioner_address_test
10783
+ :file_name: practitioner_address_test.rb
10797
10784
  :id: us_core_v610_practitioner
10798
10785
  :file_name: practitioner_group.rb
10799
10786
  :delayed_references: []
@@ -100,12 +100,6 @@
100
100
  - :path: telecom
101
101
  - :path: telecom.system
102
102
  - :path: telecom.value
103
- - :path: address
104
- - :path: address.line
105
- - :path: address.city
106
- - :path: address.state
107
- - :path: address.postalCode
108
- - :path: address.country
109
103
  :mandatory_elements:
110
104
  - Practitioner.identifier
111
105
  - Practitioner.identifier.system
@@ -162,6 +156,8 @@
162
156
  :file_name: practitioner_validation_test.rb
163
157
  - :id: us_core_v610_practitioner_must_support_test
164
158
  :file_name: practitioner_must_support_test.rb
159
+ - :id: us_core_v610_practitioner_address_test
160
+ :file_name: practitioner_address_test.rb
165
161
  :id: us_core_v610_practitioner
166
162
  :file_name: practitioner_group.rb
167
163
  :delayed_references: []
@@ -0,0 +1,32 @@
1
+ require_relative '../../../practitioner_address_test'
2
+
3
+ module USCoreTestKit
4
+ module USCoreV610
5
+ class PractitionerAddressTest < Inferno::Test
6
+ include USCoreTestKit::PractitionerAddressTest
7
+
8
+ title 'Server support either Practitioner.address or PractitionerRole'
9
+ description %(
10
+ US Core Responders SHALL support either US Core PractitionerRole Profile or
11
+ these data elements in US Core Practitioner Profile
12
+
13
+ * Practitioner.address
14
+ * Practitioner.address.city
15
+ * Practitioner.address.country
16
+ * Practitioner.address.line
17
+ * Practitioner.address.postalCode
18
+ * Practitioner.address.state
19
+ )
20
+
21
+ id :us_core_v610_practitioner_address_test
22
+
23
+ def self.metadata
24
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
25
+ end
26
+
27
+ run do
28
+ verify_practitioner_address
29
+ end
30
+ end
31
+ end
32
+ end
@@ -12,12 +12,6 @@ module USCoreTestKit
12
12
  Statement. This test will look through the Practitioner resources
13
13
  found previously for the following must support elements:
14
14
 
15
- * Practitioner.address
16
- * Practitioner.address.city
17
- * Practitioner.address.country
18
- * Practitioner.address.line
19
- * Practitioner.address.postalCode
20
- * Practitioner.address.state
21
15
  * Practitioner.identifier
22
16
  * Practitioner.identifier.system
23
17
  * Practitioner.identifier.value
@@ -4,6 +4,7 @@ require_relative 'practitioner/practitioner_name_search_test'
4
4
  require_relative 'practitioner/practitioner_identifier_search_test'
5
5
  require_relative 'practitioner/practitioner_validation_test'
6
6
  require_relative 'practitioner/practitioner_must_support_test'
7
+ require_relative 'practitioner/practitioner_address_test'
7
8
 
8
9
  module USCoreTestKit
9
10
  module USCoreV610
@@ -82,6 +83,7 @@ read succeeds.
82
83
  test from: :us_core_v610_practitioner_identifier_search_test
83
84
  test from: :us_core_v610_practitioner_validation_test
84
85
  test from: :us_core_v610_practitioner_must_support_test
86
+ test from: :us_core_v610_practitioner_address_test
85
87
  end
86
88
  end
87
89
  end
@@ -144,12 +144,6 @@
144
144
  :path: ''
145
145
  :code: social-history
146
146
  :system: http://terminology.hl7.org/CodeSystem/observation-category
147
- - :slice_id: Observation.effective[x]:effectiveDateTime
148
- :slice_name: effectiveDateTime
149
- :path: effective[x]
150
- :discriminator:
151
- :type: type
152
- :code: DateTime
153
147
  :elements:
154
148
  - :path: status
155
149
  - :path: category
@@ -161,6 +155,7 @@
161
155
  - http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
162
156
  - :path: valueCodeableConcept
163
157
  :original_path: value[x]
158
+ - :path: effective[x]
164
159
  :mandatory_elements:
165
160
  - Observation.status
166
161
  - Observation.category