onc_certification_g10_test_kit 5.0.0 → 5.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +1 -1
- data/lib/onc_certification_g10_test_kit/configuration_checker.rb +1 -1
- data/lib/onc_certification_g10_test_kit/incorrectly_permitted_tls_versions_messages_setup_test.rb +2 -1
- data/lib/onc_certification_g10_test_kit/short_id_map.yml +4 -1
- data/lib/onc_certification_g10_test_kit/single_patient_api_group.rb +6 -2
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_4_api_group.rb +4 -2
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_5_api_group.rb +4 -2
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_6_api_group.rb +4 -2
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group.rb +6 -2
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group_stu2.rb +6 -3
- data/lib/onc_certification_g10_test_kit/token_revocation_group.rb +11 -6
- data/lib/onc_certification_g10_test_kit/version.rb +1 -1
- data/lib/onc_certification_g10_test_kit/visual_inspection_and_attestations_group.rb +1 -0
- data/lib/onc_certification_g10_test_kit.rb +12 -12
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01ec685fbb0844163dcd6dc51e13e6d9e0fc479314e5bbe42d63a2ac532fc8d5
|
4
|
+
data.tar.gz: c05c24e084ee322c5c0cd3b7027850392176d3c3aa660a8ed197e51f82c37ee5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c66f39b856ec474a72841e0671d28f7648ce08bfffd79cf20dd3b7ad5c6b4f175395443a9f855b3c1eef78c12d9fd060c7fbe5b9be5c65b93c4a1c54c9355e7
|
7
|
+
data.tar.gz: b8835d04b51e3e93bf405261dda80aea3cda0dce67f681bdf539019be6a713bacb6382b6dfbc15dc5ba647ba469a2677bd3acaf09928a35ad33f9a956ccaeef9
|
@@ -92,7 +92,7 @@ module ONCCertificationG10TestKit
|
|
92
92
|
end
|
93
93
|
|
94
94
|
def determine_profile(resource)
|
95
|
-
return if resource.resourceType == 'Device' && !predefined_device_type?(resource)
|
95
|
+
return [] if resource.resourceType == 'Device' && !predefined_device_type?(resource)
|
96
96
|
|
97
97
|
select_profile(resource)
|
98
98
|
end
|
@@ -2,7 +2,7 @@ require_relative '../inferno/terminology/tasks/check_built_terminology'
|
|
2
2
|
|
3
3
|
module ONCCertificationG10TestKit
|
4
4
|
class ConfigurationChecker
|
5
|
-
EXPECTED_VALIDATOR_VERSION = '2.3.
|
5
|
+
EXPECTED_VALIDATOR_VERSION = '2.3.2'.freeze
|
6
6
|
|
7
7
|
def configuration_messages
|
8
8
|
validator_version_message + terminology_messages + version_message
|
data/lib/onc_certification_g10_test_kit/incorrectly_permitted_tls_versions_messages_setup_test.rb
CHANGED
@@ -3,7 +3,8 @@ module ONCCertificationG10TestKit
|
|
3
3
|
id :g10_incorrectly_permitted_tls_versions_messages_setup
|
4
4
|
title 'Handle TLS Warning Messages'
|
5
5
|
|
6
|
-
input :incorrectly_permitted_tls_versions_messages
|
6
|
+
input :incorrectly_permitted_tls_versions_messages,
|
7
|
+
optional: true
|
7
8
|
output :unique_incorrectly_permitted_tls_versions_messages,
|
8
9
|
:tls_documentation_required
|
9
10
|
|
@@ -1341,6 +1341,8 @@ g10_certification-g10_single_patient_us_core_5_api-us_core_v501_organization-us_
|
|
1341
1341
|
g10_certification-g10_single_patient_us_core_5_api-us_core_v501_organization-us_core_v501_organization_must_support_test: 6.37.03
|
1342
1342
|
g10_certification-g10_single_patient_us_core_5_api-us_core_v501_practitioner: '6.38'
|
1343
1343
|
g10_certification-g10_single_patient_us_core_5_api-us_core_v501_practitioner-us_core_v501_practitioner_read_test: 6.38.01
|
1344
|
+
g10_certification-g10_single_patient_us_core_5_api-us_core_v501_practitioner-us_core_v501_practitioner_name_search_test: 6.38.04
|
1345
|
+
g10_certification-g10_single_patient_us_core_5_api-us_core_v501_practitioner-us_core_v501_practitioner_identifier_search_test: 6.38.05
|
1344
1346
|
g10_certification-g10_single_patient_us_core_5_api-us_core_v501_practitioner-us_core_v501_practitioner_validation_test: 6.38.02
|
1345
1347
|
g10_certification-g10_single_patient_us_core_5_api-us_core_v501_practitioner-us_core_v501_practitioner_must_support_test: 6.38.03
|
1346
1348
|
g10_certification-g10_single_patient_us_core_5_api-us_core_v501_provenance: '6.39'
|
@@ -1888,6 +1890,8 @@ g10_certification-g10_single_patient_us_core_6_api-us_core_v610_organization-us_
|
|
1888
1890
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_organization-us_core_v610_organization_must_support_test: 10.40.03
|
1889
1891
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_practitioner: '10.41'
|
1890
1892
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_practitioner-us_core_v610_practitioner_read_test: 10.41.01
|
1893
|
+
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_practitioner-us_core_v610_practitioner_name_search_test: 10.41.04
|
1894
|
+
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_practitioner-us_core_v610_practitioner_identifier_search_test: 10.41.05
|
1891
1895
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_practitioner-us_core_v610_practitioner_validation_test: 10.41.02
|
1892
1896
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_practitioner-us_core_v610_practitioner_must_support_test: 10.41.03
|
1893
1897
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_provenance: '10.42'
|
@@ -1903,7 +1907,6 @@ g10_certification-g10_single_patient_us_core_6_api-us_core_v610_related_person-u
|
|
1903
1907
|
: 10.43.04
|
1904
1908
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_specimen: '10.44'
|
1905
1909
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_specimen-us_core_v610_specimen_read_test: 10.44.01
|
1906
|
-
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_specimen-us_core_v610_specimen__id_search_test: 10.44.02
|
1907
1910
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_specimen-us_core_v610_specimen_validation_test: 10.44.03
|
1908
1911
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_specimen-us_core_v610_specimen_must_support_test: 10.44.04
|
1909
1912
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_specimen-us_core_v610_specimen_reference_resolution_test: 10.44.05
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# TODO: remove this require with the next US Core test kit release
|
2
|
+
require 'us_core_test_kit/generator/special_cases'
|
1
3
|
require_relative 'incorrectly_permitted_tls_versions_messages_setup_test'
|
2
4
|
|
3
5
|
module ONCCertificationG10TestKit
|
@@ -104,7 +106,7 @@ module ONCCertificationG10TestKit
|
|
104
106
|
end
|
105
107
|
end
|
106
108
|
|
107
|
-
USCoreTestKit::USCoreV311::USCoreTestSuite.groups.each do |group|
|
109
|
+
USCoreTestKit::USCoreV311::USCoreTestSuite.groups[1].groups.each do |group|
|
108
110
|
test_group = group.ancestors[1]
|
109
111
|
|
110
112
|
next if test_group.optional?
|
@@ -112,7 +114,9 @@ module ONCCertificationG10TestKit
|
|
112
114
|
id = test_group.id
|
113
115
|
|
114
116
|
group_config = {}
|
115
|
-
if test_group.respond_to?(:metadata) &&
|
117
|
+
if test_group.respond_to?(:metadata) &&
|
118
|
+
test_group.metadata.delayed? &&
|
119
|
+
!test_group.metadata.searchable_delayed_resource?
|
116
120
|
test_group.children.reject! { |child| child.include? USCoreTestKit::SearchTest }
|
117
121
|
group_config[:options] = { read_all_resources: true }
|
118
122
|
end
|
@@ -118,7 +118,7 @@ module ONCCertificationG10TestKit
|
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
121
|
-
USCoreTestKit::USCoreV400::USCoreTestSuite.groups.each do |group|
|
121
|
+
USCoreTestKit::USCoreV400::USCoreTestSuite.groups[1].groups.each do |group|
|
122
122
|
test_group = group.ancestors[1]
|
123
123
|
|
124
124
|
next if test_group.optional?
|
@@ -126,7 +126,9 @@ module ONCCertificationG10TestKit
|
|
126
126
|
id = test_group.id
|
127
127
|
|
128
128
|
group_config = {}
|
129
|
-
if test_group.respond_to?(:metadata) &&
|
129
|
+
if test_group.respond_to?(:metadata) &&
|
130
|
+
test_group.metadata.delayed? &&
|
131
|
+
!test_group.metadata.searchable_delayed_resource?
|
130
132
|
test_group.children.reject! { |child| child.include? USCoreTestKit::SearchTest }
|
131
133
|
group_config[:options] = { read_all_resources: true }
|
132
134
|
end
|
@@ -137,7 +137,7 @@ module ONCCertificationG10TestKit
|
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
140
|
-
USCoreTestKit::USCoreV501::USCoreTestSuite.groups.each do |group|
|
140
|
+
USCoreTestKit::USCoreV501::USCoreTestSuite.groups[1].groups.each do |group|
|
141
141
|
test_group = group.ancestors[1]
|
142
142
|
|
143
143
|
next if test_group.optional?
|
@@ -145,7 +145,9 @@ module ONCCertificationG10TestKit
|
|
145
145
|
id = test_group.id
|
146
146
|
|
147
147
|
group_config = {}
|
148
|
-
if test_group.respond_to?(:metadata) &&
|
148
|
+
if test_group.respond_to?(:metadata) &&
|
149
|
+
test_group.metadata.delayed? &&
|
150
|
+
!test_group.metadata.searchable_delayed_resource?
|
149
151
|
test_group.children.reject! { |child| child.include? USCoreTestKit::SearchTest }
|
150
152
|
group_config[:options] = { read_all_resources: true }
|
151
153
|
end
|
@@ -160,7 +160,7 @@ module ONCCertificationG10TestKit
|
|
160
160
|
end
|
161
161
|
end
|
162
162
|
|
163
|
-
USCoreTestKit::USCoreV610::USCoreTestSuite.groups.each do |group|
|
163
|
+
USCoreTestKit::USCoreV610::USCoreTestSuite.groups[1].groups.each do |group|
|
164
164
|
test_group = group.ancestors[1]
|
165
165
|
|
166
166
|
next if test_group.optional?
|
@@ -168,7 +168,9 @@ module ONCCertificationG10TestKit
|
|
168
168
|
id = test_group.id
|
169
169
|
|
170
170
|
group_config = {}
|
171
|
-
if test_group.respond_to?(:metadata) &&
|
171
|
+
if test_group.respond_to?(:metadata) &&
|
172
|
+
test_group.metadata.delayed? &&
|
173
|
+
!test_group.metadata.searchable_delayed_resource?
|
172
174
|
test_group.children.reject! { |child| child.include? USCoreTestKit::SearchTest }
|
173
175
|
group_config[:options] = { read_all_resources: true }
|
174
176
|
end
|
@@ -142,7 +142,9 @@ module ONCCertificationG10TestKit
|
|
142
142
|
)
|
143
143
|
uses_request :redirect
|
144
144
|
|
145
|
-
input :use_pkce, :
|
145
|
+
input :use_pkce, :client_id, :client_secret, :smart_token_url
|
146
|
+
input :pkce_code_verifier,
|
147
|
+
optional: true
|
146
148
|
|
147
149
|
run do
|
148
150
|
skip_if request.query_parameters['error'].present?, 'Error during authorization request'
|
@@ -177,7 +179,9 @@ module ONCCertificationG10TestKit
|
|
177
179
|
)
|
178
180
|
uses_request :redirect
|
179
181
|
|
180
|
-
input :use_pkce, :
|
182
|
+
input :use_pkce, :code, :smart_token_url, :client_secret
|
183
|
+
input :pkce_code_verifier,
|
184
|
+
optional: true
|
181
185
|
|
182
186
|
run do
|
183
187
|
skip_if request.query_parameters['error'].present?, 'Error during authorization request'
|
@@ -148,8 +148,9 @@ module ONCCertificationG10TestKit
|
|
148
148
|
)
|
149
149
|
uses_request :redirect
|
150
150
|
|
151
|
-
input :use_pkce, :
|
152
|
-
|
151
|
+
input :use_pkce, :client_id, :client_secret, :smart_token_url
|
152
|
+
input :pkce_code_verifier,
|
153
|
+
optional: true
|
153
154
|
run do
|
154
155
|
skip_if request.query_parameters['error'].present?, 'Error during authorization request'
|
155
156
|
|
@@ -183,7 +184,9 @@ module ONCCertificationG10TestKit
|
|
183
184
|
)
|
184
185
|
uses_request :redirect
|
185
186
|
|
186
|
-
input :use_pkce, :
|
187
|
+
input :use_pkce, :code, :smart_token_url, :client_secret
|
188
|
+
input :pkce_code_verifier,
|
189
|
+
optional: true
|
187
190
|
|
188
191
|
run do
|
189
192
|
skip_if request.query_parameters['error'].present?, 'Error during authorization request'
|
@@ -1,7 +1,11 @@
|
|
1
1
|
module ONCCertificationG10TestKit
|
2
2
|
class TokenRevocationGroup < Inferno::TestGroup
|
3
3
|
title 'Token Revocation'
|
4
|
-
description
|
4
|
+
description %(
|
5
|
+
Demonstrate the Health IT module is capable of revoking access granted to
|
6
|
+
an application at the direction of a patient. Access to the application
|
7
|
+
must be revoked within one hour of the patient's request.
|
8
|
+
)
|
5
9
|
id :g10_token_revocation
|
6
10
|
run_as_group
|
7
11
|
|
@@ -16,14 +20,15 @@ module ONCCertificationG10TestKit
|
|
16
20
|
:standalone_client_secret
|
17
21
|
|
18
22
|
test do
|
19
|
-
title 'Health IT developer demonstrated the ability of the Health IT Module to revoke tokens.'
|
23
|
+
title 'Health IT developer demonstrated the ability of the Health IT Module to revoke tokens within one hour of a patient\'s request.' # rubocop:disable Layout/LineLength
|
20
24
|
description %(
|
21
25
|
Health IT developer demonstrated the ability of the Health IT Module /
|
22
|
-
authorization server to revoke tokens
|
26
|
+
authorization server to revoke tokens at a patient's direction within one
|
27
|
+
hour of the request.
|
23
28
|
)
|
24
29
|
|
25
30
|
input :token_revocation_attestation,
|
26
|
-
title: '
|
31
|
+
title: 'The Health IT developer demonstrated a patient\'s request for revoking the tokens provided during the patient standalone launch within the last hour', # rubocop:disable Layout/LineLength
|
27
32
|
type: 'radio',
|
28
33
|
default: 'false',
|
29
34
|
options: {
|
@@ -45,7 +50,7 @@ module ONCCertificationG10TestKit
|
|
45
50
|
|
46
51
|
run do
|
47
52
|
assert token_revocation_attestation == 'true',
|
48
|
-
'Health IT Module did not demonstrate the
|
53
|
+
'Health IT Module did not demonstrate a patient\'s request for revoking the tokens within the last hour.'
|
49
54
|
pass token_revocation_notes if token_revocation_notes.present?
|
50
55
|
end
|
51
56
|
end
|
@@ -90,7 +95,7 @@ module ONCCertificationG10TestKit
|
|
90
95
|
test do
|
91
96
|
title 'Token refresh fails after token revocation.'
|
92
97
|
description %(
|
93
|
-
This test checks that refreshing token fails after token
|
98
|
+
This test checks that refreshing token fails after token revocation.
|
94
99
|
)
|
95
100
|
|
96
101
|
input :smart_token_url,
|
@@ -506,6 +506,7 @@ module ONCCertificationG10TestKit
|
|
506
506
|
title: 'Health IT developers must document how the Health IT Module enforces TLs version 1.2 or above.',
|
507
507
|
type: 'radio',
|
508
508
|
default: 'false',
|
509
|
+
optional: true,
|
509
510
|
locked: true,
|
510
511
|
options: {
|
511
512
|
list_options: [
|
@@ -62,6 +62,15 @@ module ONCCertificationG10TestKit
|
|
62
62
|
/Unknown ValueSet/
|
63
63
|
].freeze
|
64
64
|
|
65
|
+
ERROR_FILTERS = [
|
66
|
+
/\A\S+: \S+: Unknown Code/,
|
67
|
+
/\A\S+: \S+: None of the codings provided are in the value set/,
|
68
|
+
/\A\S+: \S+: The code provided \(\S*\) is not in the value set/,
|
69
|
+
/\A\S+: \S+: The Coding provided \(\S*\) is not in the value set/,
|
70
|
+
/\A\S+: \S+: The Coding provided \(\S*\) was not found in the value set/,
|
71
|
+
/\A\S+: \S+: A definition for CodeSystem '.*' could not be found, so the code cannot be validated/
|
72
|
+
].freeze
|
73
|
+
|
65
74
|
[
|
66
75
|
G10Options::US_CORE_3_REQUIREMENT,
|
67
76
|
G10Options::US_CORE_4_REQUIREMENT,
|
@@ -90,14 +99,7 @@ module ONCCertificationG10TestKit
|
|
90
99
|
filter.match? message.message
|
91
100
|
end) ||
|
92
101
|
us_core_message_filters.any? { |filter| filter.match? message.message } ||
|
93
|
-
(
|
94
|
-
message.type == 'error' && (
|
95
|
-
message.message.match?(/\A\S+: \S+: Unknown Code/) ||
|
96
|
-
message.message.match?(/\A\S+: \S+: None of the codings provided are in the value set/) ||
|
97
|
-
message.message.match?(/\A\S+: \S+: The code provided \(\S*\) is not in the value set/) ||
|
98
|
-
message.message.match?(/\A\S+: \S+: The Coding provided \(\S*\) is not in the value set/)
|
99
|
-
)
|
100
|
-
)
|
102
|
+
(message.type == 'error' && ERROR_FILTERS.any? { |filter| message.message.match? filter })
|
101
103
|
true
|
102
104
|
else
|
103
105
|
false
|
@@ -227,8 +229,7 @@ module ONCCertificationG10TestKit
|
|
227
229
|
The ONC Certification (g)(10) Standardized API Test Kit is a testing tool for
|
228
230
|
Health Level 7 (HL7®) Fast Healthcare Interoperability Resources (FHIR®)
|
229
231
|
services seeking to meet the requirements of the Standardized API for
|
230
|
-
Patient and Population Services criterion § 170.315(g)(10) in the
|
231
|
-
Edition Cures Update.
|
232
|
+
Patient and Population Services criterion § 170.315(g)(10) in the ONC Certification Program.
|
232
233
|
|
233
234
|
To get started, please first register the Inferno client as a SMART App
|
234
235
|
with the following information:
|
@@ -248,8 +249,7 @@ module ONCCertificationG10TestKit
|
|
248
249
|
The ONC Certification (g)(10) Standardized API Test Kit is a testing tool
|
249
250
|
for Health Level 7 (HL7®) Fast Healthcare Interoperability Resources
|
250
251
|
(FHIR®) services seeking to meet the requirements of the Standardized API
|
251
|
-
for Patient and Population Services criterion § 170.315(g)(10) in the
|
252
|
-
Edition Cures Update rule.
|
252
|
+
for Patient and Population Services criterion § 170.315(g)(10) in the ONC Certification Program.
|
253
253
|
|
254
254
|
Systems may adopt later versions of standards than those named in the rule
|
255
255
|
as approved by the ONC Standards Version Advancement Process (SVAP).
|
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: 5.
|
4
|
+
version: 5.2.0
|
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-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bloomer
|
@@ -114,42 +114,42 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - '='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.4.
|
117
|
+
version: 0.4.1
|
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.4.
|
124
|
+
version: 0.4.1
|
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.2.
|
131
|
+
version: 0.2.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.2.
|
138
|
+
version: 0.2.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.6.
|
145
|
+
version: 0.6.4
|
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.6.
|
152
|
+
version: 0.6.4
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: database_cleaner-sequel
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|