us_core_test_kit 0.8.2 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/us_core_test_kit/custom_groups/base_smart_granular_scopes_group.rb +87 -6
- data/lib/us_core_test_kit/custom_groups/smart_app_launch_group.rb +28 -6
- data/lib/us_core_test_kit/custom_groups/smart_ehr_launch_stu2_2.rb +40 -0
- data/lib/us_core_test_kit/custom_groups/smart_standalone_launch_stu2_2_group.rb +40 -0
- data/lib/us_core_test_kit/custom_groups/v3.1.1/capability_statement_group.rb +2 -2
- data/lib/us_core_test_kit/custom_groups/v3.1.1/{profile_support_test.rb → resource_support_test.rb} +1 -1
- data/lib/us_core_test_kit/custom_groups/v7.0.0/smart_app_launch_group.rb +3 -3
- data/lib/us_core_test_kit/custom_groups/v7.0.0/smart_app_launch_stu2_2_group.rb +16 -0
- data/lib/us_core_test_kit/custom_groups/v7.0.0/smart_discovery_stu2_2_group.rb +11 -0
- data/lib/us_core_test_kit/generated/v3.1.1/us_core_test_suite.rb +8 -2
- data/lib/us_core_test_kit/generated/v4.0.0/us_core_test_suite.rb +8 -2
- data/lib/us_core_test_kit/generated/v5.0.1/us_core_test_suite.rb +8 -2
- data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_note/diagnostic_report_note_must_support_test.rb +0 -2
- data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_note/diagnostic_report_note_reference_resolution_test.rb +0 -1
- data/lib/us_core_test_kit/generated/v6.1.0/diagnostic_report_note/metadata.yml +0 -4
- data/lib/us_core_test_kit/generated/v6.1.0/metadata.yml +0 -4
- data/lib/us_core_test_kit/generated/v6.1.0/us_core_test_suite.rb +14 -5
- data/lib/us_core_test_kit/generated/v7.0.0/us_core_test_suite.rb +19 -3
- data/lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_6.rb +9 -0
- data/lib/us_core_test_kit/generator/suite_generator.rb +8 -4
- data/lib/us_core_test_kit/us_core_options.rb +9 -8
- data/lib/us_core_test_kit/version.rb +1 -1
- metadata +9 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb236072789c9942dda9a6a795a2213f6e61d1f8ca0a7597361d6764b6c37314
|
4
|
+
data.tar.gz: 82c2446cdf9298a13a889b00b07e63a60e16b6a500533fb56b58460a89a31a19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc69744c6b52d9f8d11ed74d058ac519152bd9ce6b789c46853453dc9d1ea781477783a672b690856cedadc69ea10c7b86236f280a4004a9097fdb86efe4c6db
|
7
|
+
data.tar.gz: 9cfa1c3e2246e618fc1eb1e2c0a9663faacc6109ac187dadbfc2151e5a21b87a9cc27a10413320fa708c4eadd364c66eece4adf395eaaa33ac2960bd37318307
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'inferno'
|
2
2
|
require 'smart_app_launch_test_kit'
|
3
|
-
require_relative '
|
4
|
-
require_relative '
|
5
|
-
require_relative '
|
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 '
|
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 '
|
4
|
-
require_relative '
|
5
|
-
require_relative '
|
6
|
-
require_relative '
|
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 =
|
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 =
|
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 './
|
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: :
|
103
|
+
test from: :us_core_v311_resource_support do
|
104
104
|
config(
|
105
105
|
options: { us_core_resources: PROFILES.keys }
|
106
106
|
)
|
data/lib/us_core_test_kit/custom_groups/v3.1.1/{profile_support_test.rb → resource_support_test.rb}
RENAMED
@@ -1,7 +1,7 @@
|
|
1
1
|
module USCoreTestKit
|
2
2
|
module USCoreV311
|
3
3
|
class ProfileSupportTest < Inferno::Test
|
4
|
-
id :
|
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 '
|
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.
|
13
|
-
groups.
|
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
|
-
|
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
|
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
|
-
|
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
|
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
|
-
|
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
|
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
|
@@ -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
|
@@ -76,7 +76,7 @@ module USCoreTestKit
|
|
76
76
|
)
|
77
77
|
version VERSION
|
78
78
|
|
79
|
-
|
79
|
+
GENERAL_MESSAGE_FILTERS = [
|
80
80
|
%r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
|
81
81
|
%r{Sub-extension url 'revoke' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
|
82
82
|
/Observation\.effective\.ofType\(Period\): .*vs-1:/, # Invalid invariant in FHIR v4.0.1
|
@@ -89,11 +89,13 @@ module USCoreTestKit
|
|
89
89
|
].freeze
|
90
90
|
|
91
91
|
VERSION_SPECIFIC_MESSAGE_FILTERS = [
|
92
|
-
%r{Observation\.effective\.ofType\(Period\):.*http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus},
|
93
|
-
%r{Observation: Slice 'Observation\.effective\[x\]:effectiveDateTime':.*http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus},
|
94
|
-
%r{Observation\.effective\.ofType\(Period\)
|
92
|
+
%r{Observation\.effective\.ofType\(Period\):.*http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus|6.1.0},
|
93
|
+
%r{Observation: Slice 'Observation\.effective\[x\]:effectiveDateTime':.*http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus|6.1.0},
|
94
|
+
%r{Observation\.effective\.ofType\(Period\)\.end: This element is not allowed by the profile http://hl7.org/fhir/StructureDefinition/dateTime}
|
95
95
|
].freeze
|
96
96
|
|
97
|
+
VALIDATION_MESSAGE_FILTERS = GENERAL_MESSAGE_FILTERS + VERSION_SPECIFIC_MESSAGE_FILTERS
|
98
|
+
|
97
99
|
def self.metadata
|
98
100
|
@metadata ||= YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true)[:groups].map do |raw_metadata|
|
99
101
|
Generator::GroupMetadata.new(raw_metadata)
|
@@ -104,7 +106,7 @@ module USCoreTestKit
|
|
104
106
|
|
105
107
|
fhir_resource_validator do
|
106
108
|
igs 'hl7.fhir.us.core#6.1.0'
|
107
|
-
message_filters = VALIDATION_MESSAGE_FILTERS
|
109
|
+
message_filters = VALIDATION_MESSAGE_FILTERS
|
108
110
|
|
109
111
|
exclude_message do |message|
|
110
112
|
|
@@ -130,6 +132,10 @@ module USCoreTestKit
|
|
130
132
|
{
|
131
133
|
label: 'SMART App Launch 2.0.0',
|
132
134
|
value: USCoreOptions::SMART_2
|
135
|
+
},
|
136
|
+
{
|
137
|
+
label: 'SMART App Launch 2.2.0',
|
138
|
+
value: USCoreOptions::SMART_2_2
|
133
139
|
}
|
134
140
|
]
|
135
141
|
|
@@ -210,6 +216,9 @@ module USCoreTestKit
|
|
210
216
|
|
211
217
|
group from: :us_core_v610_smart_granular_scopes,
|
212
218
|
required_suite_options: USCoreOptions::SMART_2_REQUIREMENT
|
219
|
+
group from: :us_core_v610_smart_granular_scopes,
|
220
|
+
id: :us_core_v610_smart_granular_scopes_stu2_2,
|
221
|
+
required_suite_options: USCoreOptions::SMART_2_2_REQUIREMENT
|
213
222
|
|
214
223
|
end
|
215
224
|
end
|
@@ -9,6 +9,7 @@ require_relative '../../custom_groups/v7.0.0/screening_assessment_group'
|
|
9
9
|
require_relative '../../provenance_validator'
|
10
10
|
require_relative '../../us_core_options'
|
11
11
|
require_relative '../../custom_groups/v7.0.0/smart_app_launch_group'
|
12
|
+
require_relative '../../custom_groups/v7.0.0/smart_app_launch_stu2_2_group'
|
12
13
|
|
13
14
|
require_relative 'patient_group'
|
14
15
|
require_relative 'allergy_intolerance_group'
|
@@ -81,7 +82,7 @@ module USCoreTestKit
|
|
81
82
|
)
|
82
83
|
version VERSION
|
83
84
|
|
84
|
-
|
85
|
+
GENERAL_MESSAGE_FILTERS = [
|
85
86
|
%r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
|
86
87
|
%r{Sub-extension url 'revoke' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
|
87
88
|
/Observation\.effective\.ofType\(Period\): .*vs-1:/, # Invalid invariant in FHIR v4.0.1
|
@@ -95,6 +96,8 @@ module USCoreTestKit
|
|
95
96
|
|
96
97
|
VERSION_SPECIFIC_MESSAGE_FILTERS = [].freeze
|
97
98
|
|
99
|
+
VALIDATION_MESSAGE_FILTERS = GENERAL_MESSAGE_FILTERS + VERSION_SPECIFIC_MESSAGE_FILTERS
|
100
|
+
|
98
101
|
def self.metadata
|
99
102
|
@metadata ||= YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true)[:groups].map do |raw_metadata|
|
100
103
|
Generator::GroupMetadata.new(raw_metadata)
|
@@ -105,7 +108,7 @@ module USCoreTestKit
|
|
105
108
|
|
106
109
|
fhir_resource_validator do
|
107
110
|
igs 'hl7.fhir.us.core#7.0.0'
|
108
|
-
message_filters = VALIDATION_MESSAGE_FILTERS
|
111
|
+
message_filters = VALIDATION_MESSAGE_FILTERS
|
109
112
|
|
110
113
|
exclude_message do |message|
|
111
114
|
|
@@ -131,10 +134,20 @@ module USCoreTestKit
|
|
131
134
|
{
|
132
135
|
label: 'SMART App Launch 2.0.0',
|
133
136
|
value: USCoreOptions::SMART_2
|
137
|
+
},
|
138
|
+
{
|
139
|
+
label: 'SMART App Launch 2.2.0',
|
140
|
+
value: USCoreOptions::SMART_2_2
|
134
141
|
}
|
135
142
|
]
|
136
143
|
|
137
|
-
group from: :us_core_v700_smart_app_launch
|
144
|
+
group from: :us_core_v700_smart_app_launch,
|
145
|
+
required_suite_options: USCoreOptions::SMART_1_REQUIREMENT
|
146
|
+
group from: :us_core_v700_smart_app_launch,
|
147
|
+
required_suite_options: USCoreOptions::SMART_2_REQUIREMENT,
|
148
|
+
id: :us_core_v700_smart_app_launch_stu2
|
149
|
+
group from: :us_core_v700_smart_app_launch_stu2_2,
|
150
|
+
required_suite_options: USCoreOptions::SMART_2_2_REQUIREMENT
|
138
151
|
|
139
152
|
group do
|
140
153
|
input :smart_credentials,
|
@@ -215,6 +228,9 @@ module USCoreTestKit
|
|
215
228
|
|
216
229
|
group from: :us_core_v700_smart_granular_scopes,
|
217
230
|
required_suite_options: USCoreOptions::SMART_2_REQUIREMENT
|
231
|
+
group from: :us_core_v700_smart_granular_scopes,
|
232
|
+
id: :us_core_v700_smart_granular_scopes_stu2_2,
|
233
|
+
required_suite_options: USCoreOptions::SMART_2_2_REQUIREMENT
|
218
234
|
|
219
235
|
end
|
220
236
|
end
|
@@ -29,6 +29,7 @@ module USCoreTestKit
|
|
29
29
|
add_patient_uscdi_elements
|
30
30
|
update_smoking_status_effective
|
31
31
|
remove_practitioner_address
|
32
|
+
remove_diagnosticreport_media
|
32
33
|
end
|
33
34
|
|
34
35
|
def add_must_support_choices
|
@@ -92,11 +93,19 @@ module USCoreTestKit
|
|
92
93
|
must_supports[:elements] << { path: 'effective[x]' }
|
93
94
|
end
|
94
95
|
|
96
|
+
# US Core v6.1.0 Patch FHIR-44693, Add MustSupport choice between Practitioner.address and PractitionerRole
|
97
|
+
# This is fixed formally in US Core v7
|
95
98
|
def remove_practitioner_address
|
96
99
|
return unless profile.type == 'Practitioner'
|
97
100
|
|
98
101
|
must_supports[:elements].delete_if { |element| element[:path].start_with?('address') }
|
99
102
|
end
|
103
|
+
|
104
|
+
# US Core v6.1.0 Patch FHIR-46240, Remove the Must Support on media and media.link
|
105
|
+
def remove_diagnosticreport_media
|
106
|
+
return unless profile.id == 'us-core-diagnosticreport-note'
|
107
|
+
must_supports[:elements].delete_if { |element| element[:path].start_with?('media') }
|
108
|
+
end
|
100
109
|
end
|
101
110
|
end
|
102
111
|
end
|
@@ -21,9 +21,9 @@ module USCoreTestKit
|
|
21
21
|
case ig_metadata.reformatted_version
|
22
22
|
when 'v610'
|
23
23
|
[
|
24
|
-
%r{Observation\.effective\.ofType\(Period\):.*http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus},
|
25
|
-
%r{Observation: Slice 'Observation\.effective\[x\]:effectiveDateTime':.*http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus},
|
26
|
-
%r{Observation\.effective\.ofType\(Period\)
|
24
|
+
%r{Observation\.effective\.ofType\(Period\):.*http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus|6.1.0},
|
25
|
+
%r{Observation: Slice 'Observation\.effective\[x\]:effectiveDateTime':.*http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus|6.1.0},
|
26
|
+
%r{Observation\.effective\.ofType\(Period\)\.end: This element is not allowed by the profile http://hl7.org/fhir/StructureDefinition/dateTime}
|
27
27
|
]
|
28
28
|
else
|
29
29
|
[]
|
@@ -84,7 +84,7 @@ module USCoreTestKit
|
|
84
84
|
end
|
85
85
|
|
86
86
|
def generate
|
87
|
-
File.
|
87
|
+
File.write(output_file_name, output)
|
88
88
|
end
|
89
89
|
|
90
90
|
def groups
|
@@ -146,6 +146,10 @@ module USCoreTestKit
|
|
146
146
|
"../../custom_groups/#{ig_metadata.ig_version}/smart_app_launch_group"
|
147
147
|
end
|
148
148
|
|
149
|
+
def stu2_2_smart_app_launch_file_name
|
150
|
+
"../../custom_groups/#{ig_metadata.ig_version}/smart_app_launch_stu2_2_group"
|
151
|
+
end
|
152
|
+
|
149
153
|
def smart_app_launch_id
|
150
154
|
if us_core_7_and_above?
|
151
155
|
"us_core_#{ig_metadata.reformatted_version}_smart_app_launch"
|
@@ -1,10 +1,11 @@
|
|
1
1
|
module USCoreTestKit
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
2
|
+
module USCoreOptions
|
3
|
+
SMART_1 = 'smart_app_launch_1'.freeze
|
4
|
+
SMART_2 = 'smart_app_launch_2'.freeze
|
5
|
+
SMART_2_2 = 'smart_app_launch_2_2'.freeze
|
6
|
+
|
7
|
+
SMART_1_REQUIREMENT = { smart_app_launch_version: SMART_1 }.freeze
|
8
|
+
SMART_2_REQUIREMENT = { smart_app_launch_version: SMART_2 }.freeze
|
9
|
+
SMART_2_2_REQUIREMENT = { smart_app_launch_version: SMART_2_2 }.freeze
|
9
10
|
end
|
10
|
-
|
11
|
+
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
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen MacVicar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: inferno_core
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.4.
|
33
|
+
version: 0.4.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.4.
|
40
|
+
version: 0.4.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: tls_test_kit
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -131,13 +131,15 @@ files:
|
|
131
131
|
- lib/us_core_test_kit/custom_groups/smart_app_launch_group.rb
|
132
132
|
- lib/us_core_test_kit/custom_groups/smart_ehr_launch_stu1.rb
|
133
133
|
- lib/us_core_test_kit/custom_groups/smart_ehr_launch_stu2.rb
|
134
|
+
- lib/us_core_test_kit/custom_groups/smart_ehr_launch_stu2_2.rb
|
134
135
|
- lib/us_core_test_kit/custom_groups/smart_scopes_constants.rb
|
135
136
|
- lib/us_core_test_kit/custom_groups/smart_standalone_launch_stu1_group.rb
|
137
|
+
- lib/us_core_test_kit/custom_groups/smart_standalone_launch_stu2_2_group.rb
|
136
138
|
- lib/us_core_test_kit/custom_groups/smart_standalone_launch_stu2_group.rb
|
137
139
|
- lib/us_core_test_kit/custom_groups/smart_well_known_capabilities_test.rb
|
138
140
|
- lib/us_core_test_kit/custom_groups/v3.1.1/capability_statement_group.rb
|
139
141
|
- lib/us_core_test_kit/custom_groups/v3.1.1/clinical_notes_guidance_group.rb
|
140
|
-
- lib/us_core_test_kit/custom_groups/v3.1.1/
|
142
|
+
- lib/us_core_test_kit/custom_groups/v3.1.1/resource_support_test.rb
|
141
143
|
- lib/us_core_test_kit/custom_groups/v4.0.0/capability_statement_group.rb
|
142
144
|
- lib/us_core_test_kit/custom_groups/v4.0.0/clinical_notes_guidance_group.rb
|
143
145
|
- lib/us_core_test_kit/custom_groups/v4.0.0/document_reference_custodian_test.rb
|
@@ -148,6 +150,8 @@ files:
|
|
148
150
|
- lib/us_core_test_kit/custom_groups/v7.0.0/capability_statement_group.rb
|
149
151
|
- lib/us_core_test_kit/custom_groups/v7.0.0/screening_assessment_group.rb
|
150
152
|
- lib/us_core_test_kit/custom_groups/v7.0.0/smart_app_launch_group.rb
|
153
|
+
- lib/us_core_test_kit/custom_groups/v7.0.0/smart_app_launch_stu2_2_group.rb
|
154
|
+
- lib/us_core_test_kit/custom_groups/v7.0.0/smart_discovery_stu2_2_group.rb
|
151
155
|
- lib/us_core_test_kit/custom_groups/v7.0.0/smart_discovery_stu2_group.rb
|
152
156
|
- lib/us_core_test_kit/custom_groups/v7.0.0/smart_granular_scopes_group.rb
|
153
157
|
- lib/us_core_test_kit/date_search_validation.rb
|