onc_certification_g10_test_kit 2.0.0 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/lib/inferno/terminology/tasks/check_built_terminology.rb +14 -12
  3. data/lib/onc_certification_g10_test_kit/bulk_data_authorization.rb +7 -4
  4. data/lib/onc_certification_g10_test_kit/bulk_data_group_export.rb +60 -17
  5. data/lib/onc_certification_g10_test_kit/bulk_data_group_export_validation.rb +10 -6
  6. data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +48 -18
  7. data/lib/onc_certification_g10_test_kit/configuration_checker.rb +6 -5
  8. data/lib/onc_certification_g10_test_kit/multi_patient_api.rb +11 -0
  9. data/lib/onc_certification_g10_test_kit/onc_program_procedure.yml +1451 -0
  10. data/lib/onc_certification_g10_test_kit/profile_guesser.rb +2 -2
  11. data/lib/onc_certification_g10_test_kit/restricted_resource_type_access_group.rb +13 -13
  12. data/lib/onc_certification_g10_test_kit/single_patient_api_group.rb +93 -0
  13. data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +13 -12
  14. data/lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb +11 -5
  15. data/lib/onc_certification_g10_test_kit/smart_invalid_launch_group.rb +13 -16
  16. data/lib/onc_certification_g10_test_kit/smart_invalid_token_group.rb +11 -4
  17. data/lib/onc_certification_g10_test_kit/smart_limited_app_group.rb +18 -4
  18. data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group.rb +15 -3
  19. data/lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb +8 -3
  20. data/lib/onc_certification_g10_test_kit/tasks/generate_matrix.rb +247 -0
  21. data/lib/onc_certification_g10_test_kit/tasks/test_procedure.rb +65 -0
  22. data/lib/onc_certification_g10_test_kit/token_revocation_group.rb +60 -60
  23. data/lib/onc_certification_g10_test_kit/unrestricted_resource_type_access_group.rb +13 -13
  24. data/lib/onc_certification_g10_test_kit/version.rb +1 -1
  25. data/lib/onc_certification_g10_test_kit/visual_inspection_and_attestations_group.rb +7 -6
  26. data/lib/onc_certification_g10_test_kit.rb +15 -82
  27. 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
- USCoreTestKit::USCoreTestSuite::VALIDATION_MESSAGE_FILTERS.any? { |filter| filter.match? message.message }
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", and is
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 do
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.0.0
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-03-06 00:00:00.000000000 Z
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.1.3
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.1.3
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.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.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.0
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.0
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.1.1
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.1.1
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