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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83389ac3e83644313336d270953a0c3f70e101c7b86cc18c3f367395f3d8db42
4
- data.tar.gz: f039dbde0030ac8cd1ee389b4a38ca0d8cdb6afecaafac53af2b360ede008837
3
+ metadata.gz: 01ec685fbb0844163dcd6dc51e13e6d9e0fc479314e5bbe42d63a2ac532fc8d5
4
+ data.tar.gz: c05c24e084ee322c5c0cd3b7027850392176d3c3aa660a8ed197e51f82c37ee5
5
5
  SHA512:
6
- metadata.gz: eb785eec56a192ae32934ff14925820ea010c976fedd3d0ed8d29602814b93e8af7b77c373e611b9edaf1fdda62426d024d72521bee81b5f4cc76be74b33d59f
7
- data.tar.gz: 62d32f4cbd30fa25a09e8ddc3300cc3162d197a5fab14d6dd7119dadd2c342ca4ee75518ecbbf9afe47bda189f69bae95a0c423a9824b594ca88a3532c070209
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.1'.freeze
5
+ EXPECTED_VALIDATOR_VERSION = '2.3.2'.freeze
6
6
 
7
7
  def configuration_messages
8
8
  validator_version_message + terminology_messages + version_message
@@ -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) && test_group.metadata.delayed?
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) && test_group.metadata.delayed?
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) && test_group.metadata.delayed?
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) && test_group.metadata.resource != 'Specimen' && test_group.metadata.delayed?
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, :pkce_code_verifier, :client_id, :client_secret, :smart_token_url
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, :pkce_code_verifier, :code, :smart_token_url, :client_secret
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, :pkce_code_verifier, :client_id, :client_secret, :smart_token_url
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, :pkce_code_verifier, :code, :smart_token_url, :client_secret
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 'Demonstrate the Health IT module is capable of revoking access granted to an application.'
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: 'Prior to executing test, Health IT developer demonstrated revoking tokens provided during patient standalone launch.', # rubocop:disable Layout/LineLength
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 ability to revoke tokens.'
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 revokation.
98
+ This test checks that refreshing token fails after token revocation.
94
99
  )
95
100
 
96
101
  input :smart_token_url,
@@ -1,3 +1,3 @@
1
1
  module ONCCertificationG10TestKit
2
- VERSION = '5.0.0'.freeze
2
+ VERSION = '5.2.0'.freeze
3
3
  end
@@ -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 2015
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 2015
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.0.0
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-01-10 00:00:00.000000000 Z
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.0
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.0
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.0
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.0
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.2
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.2
152
+ version: 0.6.4
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: database_cleaner-sequel
155
155
  requirement: !ruby/object:Gem::Requirement