onc_certification_g10_test_kit 2.0.0 → 2.1.1
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.
- checksums.yaml +4 -4
- data/lib/inferno/terminology/tasks/check_built_terminology.rb +14 -12
- data/lib/onc_certification_g10_test_kit/bulk_data_authorization.rb +7 -4
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export.rb +60 -17
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_validation.rb +10 -6
- data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +48 -18
- data/lib/onc_certification_g10_test_kit/configuration_checker.rb +6 -5
- data/lib/onc_certification_g10_test_kit/multi_patient_api.rb +11 -0
- data/lib/onc_certification_g10_test_kit/onc_program_procedure.yml +1451 -0
- data/lib/onc_certification_g10_test_kit/profile_guesser.rb +2 -2
- data/lib/onc_certification_g10_test_kit/restricted_resource_type_access_group.rb +13 -13
- data/lib/onc_certification_g10_test_kit/single_patient_api_group.rb +93 -0
- data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +13 -12
- data/lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb +11 -5
- data/lib/onc_certification_g10_test_kit/smart_invalid_launch_group.rb +13 -16
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group.rb +11 -4
- data/lib/onc_certification_g10_test_kit/smart_limited_app_group.rb +18 -4
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group.rb +15 -3
- data/lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb +8 -3
- data/lib/onc_certification_g10_test_kit/tasks/generate_matrix.rb +247 -0
- data/lib/onc_certification_g10_test_kit/tasks/test_procedure.rb +65 -0
- data/lib/onc_certification_g10_test_kit/token_revocation_group.rb +60 -60
- data/lib/onc_certification_g10_test_kit/unrestricted_resource_type_access_group.rb +13 -13
- data/lib/onc_certification_g10_test_kit/version.rb +1 -1
- data/lib/onc_certification_g10_test_kit/visual_inspection_and_attestations_group.rb +7 -6
- data/lib/onc_certification_g10_test_kit.rb +15 -82
- metadata +14 -10
@@ -1,9 +1,10 @@
|
|
1
1
|
require 'smart_app_launch_test_kit'
|
2
|
-
require 'us_core_test_kit'
|
2
|
+
require 'us_core_test_kit/generated/v3.1.1/us_core_test_suite'
|
3
3
|
|
4
4
|
require_relative 'onc_certification_g10_test_kit/configuration_checker'
|
5
5
|
require_relative 'onc_certification_g10_test_kit/version'
|
6
6
|
|
7
|
+
require_relative 'onc_certification_g10_test_kit/single_patient_api_group'
|
7
8
|
require_relative 'onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group'
|
8
9
|
require_relative 'onc_certification_g10_test_kit/smart_invalid_launch_group'
|
9
10
|
require_relative 'onc_certification_g10_test_kit/smart_invalid_token_group'
|
@@ -37,17 +38,26 @@ module ONCCertificationG10TestKit
|
|
37
38
|
|
38
39
|
validator do
|
39
40
|
url ENV.fetch('G10_VALIDATOR_URL', 'http://validator_service:4567')
|
41
|
+
|
40
42
|
exclude_message do |message|
|
43
|
+
us_core_message_filters = USCoreTestKit::USCoreV311::USCoreTestSuite::VALIDATION_MESSAGE_FILTERS
|
41
44
|
if message.type == 'info' ||
|
42
45
|
(message.type == 'warning' && WARNING_INCLUSION_FILTERS.none? { |filter| filter.match? message.message }) ||
|
43
|
-
|
46
|
+
us_core_message_filters.any? { |filter| filter.match? message.message } ||
|
47
|
+
(
|
48
|
+
message.type == 'error' && (
|
49
|
+
message.message.match?(/\A\S+: Unknown Code/) ||
|
50
|
+
message.message.match?(/\A\S+: None of the codings provided are in the value set/)
|
51
|
+
)
|
52
|
+
)
|
44
53
|
true
|
45
54
|
else
|
46
55
|
false
|
47
56
|
end
|
48
57
|
end
|
58
|
+
|
49
59
|
perform_additional_validation do |resource, profile_url|
|
50
|
-
metadata = USCoreTestKit::USCoreTestSuite.metadata.find do |metadata_candidate|
|
60
|
+
metadata = USCoreTestKit::USCoreV311::USCoreTestSuite.metadata.find do |metadata_candidate|
|
51
61
|
metadata_candidate.profile_url == profile_url
|
52
62
|
end
|
53
63
|
|
@@ -84,8 +94,7 @@ module ONCCertificationG10TestKit
|
|
84
94
|
Patient and Population Services criterion § 170.315(g)(10) in the 2015
|
85
95
|
Edition Cures Update.
|
86
96
|
|
87
|
-
This test kit is the successor to "Inferno Program Edition"
|
88
|
-
currently in preview status. Please [create an
|
97
|
+
This test kit is the successor to "Inferno Program Edition". Please [create an
|
89
98
|
issue](https://github.com/inferno-framework/g10-certification-test-kit/issues)
|
90
99
|
if there are discrepencies between these tests and the "Inferno Program
|
91
100
|
Edition v1.9" tests.
|
@@ -122,58 +131,7 @@ module ONCCertificationG10TestKit
|
|
122
131
|
|
123
132
|
group from: 'g10_smart_ehr_practitioner_app'
|
124
133
|
|
125
|
-
group
|
126
|
-
id :single_patient_api
|
127
|
-
title 'Single Patient API'
|
128
|
-
description %(
|
129
|
-
For each of the relevant USCDI data elements provided in the
|
130
|
-
CapabilityStatement, this test executes the [required supported
|
131
|
-
searches](http://www.hl7.org/fhir/us/core/STU3.1.1/CapabilityStatement-us-core-server.html)
|
132
|
-
as defined by the US Core Implementation Guide v3.1.1. The test begins
|
133
|
-
by searching by one or more patients, with the expectation that the
|
134
|
-
Bearer token provided to the test grants access to all USCDI resources.
|
135
|
-
It uses results returned from that query to generate other queries and
|
136
|
-
checks that the results are consistent with the provided search
|
137
|
-
parameters. It then performs a read on each Resource returned and
|
138
|
-
validates the response against the relevant
|
139
|
-
[profile](http://www.hl7.org/fhir/us/core/STU3.1.1/profiles.html) as
|
140
|
-
currently defined in the US Core Implementation Guide. All MUST SUPPORT
|
141
|
-
elements must be seen before the test can pass, as well as Data Absent
|
142
|
-
Reason to demonstrate that the server can properly handle missing data.
|
143
|
-
Note that Encounter, Organization and Practitioner resources must be
|
144
|
-
accessible as references in some US Core profiles to satisfy must
|
145
|
-
support requirements, and those references will be validated to their US
|
146
|
-
Core profile. These resources will not be tested for FHIR search
|
147
|
-
support.
|
148
|
-
)
|
149
|
-
run_as_group
|
150
|
-
|
151
|
-
input :url,
|
152
|
-
title: 'FHIR Endpoint',
|
153
|
-
description: 'URL of the FHIR endpoint used by SMART applications'
|
154
|
-
input :smart_credentials,
|
155
|
-
title: 'SMART App Launch Credentials',
|
156
|
-
type: :oauth_credentials,
|
157
|
-
locked: true
|
158
|
-
|
159
|
-
fhir_client do
|
160
|
-
url :url
|
161
|
-
oauth_credentials :smart_credentials
|
162
|
-
end
|
163
|
-
|
164
|
-
USCoreTestKit::USCoreTestSuite.groups.each do |group|
|
165
|
-
test_group = group.ancestors[1]
|
166
|
-
id = test_group.id
|
167
|
-
|
168
|
-
group_config = {}
|
169
|
-
if test_group.respond_to?(:metadata) && test_group.metadata.delayed?
|
170
|
-
test_group.children.reject! { |child| child.include? USCoreTestKit::SearchTest }
|
171
|
-
group_config[:options] = { read_all_resources: true }
|
172
|
-
end
|
173
|
-
|
174
|
-
group(from: id, exclude_optional: true, config: group_config)
|
175
|
-
end
|
176
|
-
end
|
134
|
+
group from: 'g10_single_patient_api'
|
177
135
|
|
178
136
|
group from: 'multi_patient_api'
|
179
137
|
|
@@ -198,28 +156,3 @@ module ONCCertificationG10TestKit
|
|
198
156
|
end
|
199
157
|
end
|
200
158
|
end
|
201
|
-
|
202
|
-
# TODO: address this input issue in core
|
203
|
-
Inferno::Repositories::Tests.new
|
204
|
-
.find('g10_certification-g10_smart_limited_app-smart_standalone_launch-standalone_auth_tls')
|
205
|
-
.config(
|
206
|
-
inputs: {
|
207
|
-
url: {
|
208
|
-
title: 'Standalone Authorization URL',
|
209
|
-
description: '',
|
210
|
-
default: ''
|
211
|
-
}
|
212
|
-
}
|
213
|
-
)
|
214
|
-
|
215
|
-
Inferno::Repositories::Tests.new
|
216
|
-
.find('g10_certification-g10_smart_limited_app-smart_standalone_launch-standalone_token_tls')
|
217
|
-
.config(
|
218
|
-
inputs: {
|
219
|
-
url: {
|
220
|
-
title: 'Standalone Token URL',
|
221
|
-
description: '',
|
222
|
-
default: ''
|
223
|
-
}
|
224
|
-
}
|
225
|
-
)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onc_certification_g10_test_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.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: 2022-
|
11
|
+
date: 2022-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bloomer
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ">"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.2.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: 0.2.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: json-jwt
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,42 +114,42 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - '='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.1.
|
117
|
+
version: 0.1.2
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - '='
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0.1.
|
124
|
+
version: 0.1.2
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: tls_test_kit
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - '='
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.1.
|
131
|
+
version: 0.1.1
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - '='
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0.1.
|
138
|
+
version: 0.1.1
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: us_core_test_kit
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - '='
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
145
|
+
version: 0.2.1
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - '='
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
152
|
+
version: 0.2.1
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: database_cleaner-sequel
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -263,11 +263,13 @@ files:
|
|
263
263
|
- lib/onc_certification_g10_test_kit/igs/StructureDefinition-resprate.json
|
264
264
|
- lib/onc_certification_g10_test_kit/limited_scope_grant_test.rb
|
265
265
|
- lib/onc_certification_g10_test_kit/multi_patient_api.rb
|
266
|
+
- lib/onc_certification_g10_test_kit/onc_program_procedure.yml
|
266
267
|
- lib/onc_certification_g10_test_kit/patient_context_test.rb
|
267
268
|
- lib/onc_certification_g10_test_kit/profile_guesser.rb
|
268
269
|
- lib/onc_certification_g10_test_kit/resource_access_test.rb
|
269
270
|
- lib/onc_certification_g10_test_kit/restricted_access_test.rb
|
270
271
|
- lib/onc_certification_g10_test_kit/restricted_resource_type_access_group.rb
|
272
|
+
- lib/onc_certification_g10_test_kit/single_patient_api_group.rb
|
271
273
|
- lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb
|
272
274
|
- lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb
|
273
275
|
- lib/onc_certification_g10_test_kit/smart_invalid_launch_group.rb
|
@@ -276,6 +278,8 @@ files:
|
|
276
278
|
- lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group.rb
|
277
279
|
- lib/onc_certification_g10_test_kit/smart_scopes_test.rb
|
278
280
|
- lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb
|
281
|
+
- lib/onc_certification_g10_test_kit/tasks/generate_matrix.rb
|
282
|
+
- lib/onc_certification_g10_test_kit/tasks/test_procedure.rb
|
279
283
|
- lib/onc_certification_g10_test_kit/terminology_binding_validator.rb
|
280
284
|
- lib/onc_certification_g10_test_kit/token_revocation_group.rb
|
281
285
|
- lib/onc_certification_g10_test_kit/unauthorized_access_test.rb
|