onc_certification_g10_test_kit 5.2.0 → 5.3.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: 01ec685fbb0844163dcd6dc51e13e6d9e0fc479314e5bbe42d63a2ac532fc8d5
4
- data.tar.gz: c05c24e084ee322c5c0cd3b7027850392176d3c3aa660a8ed197e51f82c37ee5
3
+ metadata.gz: 9d020577f35711d3fd77f83f65687e592325aece0cf714a2cc16e199b233c417
4
+ data.tar.gz: 873a37519d331ef62b7ac1d9720b1b77f5538a3beb2c9be548ea1cd4cf6ecfdb
5
5
  SHA512:
6
- metadata.gz: 9c66f39b856ec474a72841e0671d28f7648ce08bfffd79cf20dd3b7ad5c6b4f175395443a9f855b3c1eef78c12d9fd060c7fbe5b9be5c65b93c4a1c54c9355e7
7
- data.tar.gz: b8835d04b51e3e93bf405261dda80aea3cda0dce67f681bdf539019be6a713bacb6382b6dfbc15dc5ba647ba469a2677bd3acaf09928a35ad33f9a956ccaeef9
6
+ metadata.gz: e766fbe14972448a02ef08c3e8a6eeae64f0b7a8812e5b5372f62642e49a1990c48fbbf28ef73e049ec5ed151df3c3128e9a6334c406859b5bfbf31ddcb1d2d5
7
+ data.tar.gz: 1703bdbab3f6c90cf4947076710eefa3510aa2a9f9d70953e9fd7cd85ca9c8e4a423cd2b961ea52d22eca993a00bbc23af5a392c081e1a245d154ead2e00f80b
@@ -205,8 +205,6 @@ module ONCCertificationG10TestKit
205
205
  output :bearer_token
206
206
 
207
207
  run do
208
- skip_if authentication_response.blank?, 'No authentication response received.'
209
-
210
208
  assert_valid_json(authentication_response)
211
209
  response_body = JSON.parse(authentication_response)
212
210
 
@@ -10,7 +10,8 @@ module ONCCertificationG10TestKit
10
10
  correct behavior.
11
11
  )
12
12
 
13
- input :bearer_token
13
+ input :bearer_token,
14
+ optional: true
14
15
  input :bulk_server_url,
15
16
  title: 'Bulk Data FHIR URL',
16
17
  description: 'The URL of the Bulk FHIR server.'
@@ -137,8 +137,6 @@ module ONCCertificationG10TestKit
137
137
  include ExportKickOffPerformer
138
138
 
139
139
  run do
140
- skip_if bearer_token.blank?, 'Could not verify this functionality when bearer token is not set'
141
-
142
140
  perform_export_kick_off_request(use_token: false)
143
141
  assert_response_status([400, 401])
144
142
  end
@@ -188,8 +186,6 @@ module ONCCertificationG10TestKit
188
186
  output :status_response, :requires_access_token
189
187
 
190
188
  run do
191
- skip 'Server response did not have Content-Location in header' unless polling_url.present?
192
-
193
189
  timeout = bulk_timeout.to_i
194
190
 
195
191
  if !timeout.positive?
@@ -262,8 +258,6 @@ module ONCCertificationG10TestKit
262
258
  output :status_output, :bulk_download_url
263
259
 
264
260
  run do
265
- assert status_response.present?, 'Bulk Data Server status response not found'
266
-
267
261
  assert_valid_json(status_response)
268
262
  status_output = JSON.parse(status_response)['output']
269
263
  assert status_output, 'Bulk Data Server status response does not contain output'
@@ -62,15 +62,11 @@ module ONCCertificationG10TestKit
62
62
  DESCRIPTION
63
63
  # link 'http://hl7.org/fhir/uv/bulkdata/STU1.0.1/export/index.html#file-request'
64
64
 
65
- input :bulk_download_url
65
+ input :bulk_download_url, :requires_access_token, :requires_access_token, :bearer_token
66
66
 
67
67
  run do
68
- skip_if bulk_download_url.blank?, 'Could not verify this functionality when no download link was provided'
69
- skip_if requires_access_token.blank?,
70
- 'Could not verify this functionality when requiresAccessToken is not provided'
71
68
  omit_if requires_access_token == 'false',
72
69
  'Could not verify this functionality when requiresAccessToken is false'
73
- skip_if bearer_token.blank?, 'Could not verify this functionality when Bearer Token is not provided'
74
70
 
75
71
  get(bulk_download_url, headers: { accept: 'application/fhir+ndjson' })
76
72
  assert_response_status([400, 401])
@@ -207,7 +203,7 @@ module ONCCertificationG10TestKit
207
203
  * http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition
208
204
 
209
205
 
210
- For US Core v5.0.1, evidence of support for the following two profiles must be demonstrated:
206
+ For US Core v6.1.0, evidence of support for the following two profiles must be demonstrated:
211
207
 
212
208
  * http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition-encounter-diagnosis
213
209
  * http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition-problems-health-concerns
@@ -392,28 +388,6 @@ module ONCCertificationG10TestKit
392
388
  * http://hl7.org/fhir/us/core/StructureDefinition/us-core-heart-rate
393
389
  * http://hl7.org/fhir/us/core/StructureDefinition/us-core-respiratory-rate
394
390
 
395
- For US Core v5.0.1, this test expects evidence of the following US Core profiles
396
-
397
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-clinical-test
398
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-imaging
399
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-sexual-orientation
400
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-social-history
401
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-sdoh-assessment
402
- * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-bmi-for-age
403
- * http://hl7.org/fhir/us/core/StructureDefinition/pediatric-weight-for-height
404
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
405
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-pulse-oximetry
406
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-smokingstatus
407
- * http://hl7.org/fhir/us/core/StructureDefinition/head-occipital-frontal-circumference-percentile
408
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-blood-pressure
409
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-bmi
410
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-head-circumference
411
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-height
412
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-weight
413
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-body-temperature
414
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-heart-rate
415
- * http://hl7.org/fhir/us/core/StructureDefinition/us-core-respiratory-rate
416
-
417
391
  For US Core v6.1.0, this test expects evidence of the following US Core profiles
418
392
  * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-lab
419
393
  * http://hl7.org/fhir/us/core/StructureDefinition/us-core-observation-occupation
@@ -3,6 +3,7 @@ require_relative '../inferno/terminology/tasks/check_built_terminology'
3
3
  module ONCCertificationG10TestKit
4
4
  class ConfigurationChecker
5
5
  EXPECTED_VALIDATOR_VERSION = '2.3.2'.freeze
6
+ EXPECTED_HL7_VALIDATOR_VERSION = '"6.3.0"'.freeze
6
7
 
7
8
  def configuration_messages
8
9
  validator_version_message + terminology_messages + version_message
@@ -21,8 +22,15 @@ module ONCCertificationG10TestKit
21
22
  end
22
23
 
23
24
  def validator_version_message
24
- response = Faraday.get "#{validator_url}/version"
25
+ if Feature.use_hl7_resource_validator?
26
+ expected_validator_version = EXPECTED_HL7_VALIDATOR_VERSION
27
+ validator_version_url = "#{validator_url}/validator/version"
28
+ else
29
+ expected_validator_version = EXPECTED_VALIDATOR_VERSION
30
+ validator_version_url = "#{validator_url}/version"
31
+ end
25
32
 
33
+ response = Faraday.get validator_version_url
26
34
  if response.body.starts_with? '{'
27
35
  version_json = JSON.parse(response.body)
28
36
  version = version_json['inferno-framework/fhir-validator-wrapper']
@@ -30,15 +38,15 @@ module ONCCertificationG10TestKit
30
38
  version = response.body
31
39
  end
32
40
 
33
- if version == EXPECTED_VALIDATOR_VERSION
41
+ if version == expected_validator_version
34
42
  [{
35
43
  type: 'info',
36
- message: "FHIR validator is the expected version `#{EXPECTED_VALIDATOR_VERSION}`"
44
+ message: "FHIR validator is the expected version `#{expected_validator_version}`"
37
45
  }]
38
46
  else
39
47
  [{
40
48
  type: 'error',
41
- message: "Expected FHIR validator version `#{EXPECTED_VALIDATOR_VERSION}`, but found `#{version}`"
49
+ message: "Expected FHIR validator version `#{expected_validator_version}`, but found `#{version}`"
42
50
  }]
43
51
  end
44
52
  rescue JSON::ParserError => e
@@ -1,10 +1,9 @@
1
1
  module ONCCertificationG10TestKit
2
2
  module Feature
3
- class << self # rubocop:disable Lint/EmptyClass
4
- # This is how you can define feature flags to be used in the g10 test kit
5
- # def us_core_v4?
6
- # ENV.fetch('US_CORE_4_ENABLED', 'false')&.casecmp?('true')
7
- # end
3
+ class << self
4
+ def use_hl7_resource_validator?
5
+ ENV.fetch('USE_HL7_RESOURCE_VALIDATOR', 'false')&.casecmp?('true')
6
+ end
8
7
  end
9
8
  end
10
9
  end
@@ -5,6 +5,13 @@ module ONCCertificationG10TestKit
5
5
  US_CORE_5 = 'us_core_5'.freeze
6
6
  US_CORE_6 = 'us_core_6'.freeze
7
7
 
8
+ US_CORE_VERSION_NUMBERS = {
9
+ US_CORE_3 => '3.1.1',
10
+ US_CORE_4 => '4.0.0',
11
+ US_CORE_5 => '5.0.1',
12
+ US_CORE_6 => '6.1.0'
13
+ }.freeze
14
+
8
15
  BULK_DATA_1 = 'multi_patient_api_stu1'.freeze
9
16
  BULK_DATA_2 = 'multi_patient_api_stu2'.freeze
10
17
 
@@ -259,7 +259,7 @@ procedure:
259
259
  not include support for “plain”
260
260
 
261
261
  Additionally, the following “capabilities” must be supported if using
262
- US Core 5.0.1 or 6.1.0:
262
+ US Core 6.1.0:
263
263
  * "context-ehr-encounter"
264
264
  TLV: |
265
265
  [Both] The tester verifies the ability of the
@@ -282,7 +282,7 @@ procedure:
282
282
  not include support for “plain”
283
283
 
284
284
  Additionally, the following “capabilities” must be supported if using
285
- US Core 5.0.1 or 6.1.0:
285
+ US Core 6.1.0:
286
286
  * "context-ehr-encounter"
287
287
  inferno_supported: 'yes'
288
288
  inferno_tests:
@@ -515,7 +515,7 @@ procedure:
515
515
  adopted in § 170.213 and implementation specification adopted in
516
516
  § 170.215(a)(2).
517
517
 
518
- If using US Core 3.1.1, 4.0.0, 5.0.1, or 6.1.0 these resources include:
518
+ If using US Core 3.1.1, 4.0.0, or 6.1.0 these resources include:
519
519
 
520
520
  * “AllergyIntolerance”;
521
521
  * “CarePlan”;
@@ -533,11 +533,6 @@ procedure:
533
533
  * “Procedure”; and
534
534
  * “Provenance”.
535
535
 
536
- The following resources must also be supported if using US Core 5.0.1:
537
- * “Encounter”;
538
- * “RelatedPerson”; and
539
- * “ServiceRequest”
540
-
541
536
  The following resources must also be supported if using US Core 6.1.0:
542
537
  * "Encounter"
543
538
  * "Coverage"
@@ -554,7 +549,7 @@ procedure:
554
549
  associated with the profiles specified in the standard adopted in
555
550
  § 170.213 and implementation specification adopted in § 170.215(a)(2).
556
551
 
557
- If using US Core 3.1.1, 4.0.0, 5.0.1, or 6.1.0 these resources include:
552
+ If using US Core 3.1.1, 4.0.0, or 6.1.0 these resources include:
558
553
 
559
554
  * “AllergyIntolerance”;
560
555
  * “CarePlan”;
@@ -572,11 +567,6 @@ procedure:
572
567
  * “Procedure”; and
573
568
  * “Provenance”.
574
569
 
575
- The following resources must also be supported if using US Core 5.0.1:
576
- * “Encounter”;
577
- * “RelatedPerson”; and
578
- * “ServiceRequest”
579
-
580
570
  The following resources must also be supported if using US Core 6.1.0:
581
571
  * "Encounter"
582
572
  * "Coverage"
@@ -815,8 +805,7 @@ procedure:
815
805
  * “smart_style_url” (to support “context-style” “SMART on FHIR® Core
816
806
  Capability” for EHR-Launch mode only).
817
807
 
818
- Additionally, the following must be supported if using US Core 5.0.1
819
- or 6.1.0:
808
+ Additionally, the following must be supported if using US Core 6.1.0:
820
809
  * “encounter” (to support "context-ehr-encounter" “SMART on FHIR®
821
810
  Capability”)
822
811
  TLV: |
@@ -841,8 +830,7 @@ procedure:
841
830
  * “smart_style_url” (to support “context-style” “SMART on FHIR® Core
842
831
  Capability” for EHR-Launch mode only).
843
832
 
844
- Additionally, the following must be supported if using US Core 5.0.1
845
- or 6.1.0:
833
+ Additionally, the following must be supported if using US Core 6.1.0:
846
834
  * “encounter” (to support"context-ehr-encounter" “SMART on FHIR®
847
835
  Capability”)
848
836
  inferno_supported: 'yes'
@@ -924,14 +912,14 @@ procedure:
924
912
  - 9.9.10
925
913
  - id: AUT-PAT-32
926
914
  SUT: |
927
- [EHR-Launch] The following must be supported if using US Core 5.0.1 or
928
- 6.1.0: The health IT developer demonstrates the ability of the Health
915
+ [EHR-Launch] The following must be supported if using US Core 6.1.0:
916
+ The health IT developer demonstrates the ability of the Health
929
917
  IT Module to return an “Encounter” FHIR® resource that matches the
930
918
  encounter context provided in step AUT-PAT-9 of this section according
931
919
  to the implementation specification adopted in § 170.215(a)(2).
932
920
  TLV: |
933
- [EHR-Launch] The following must be supported if using US Core 5.0.1 or
934
- 6.1.0: The tester verifies the ability of the Health IT Module to
921
+ [EHR-Launch] The following must be supported if using US Core 6.1.0:
922
+ The tester verifies the ability of the Health IT Module to
935
923
  return an “Encounter” FHIR® resource that matches the encounter
936
924
  context provided in step AUT-PAT-9 of this section according to the
937
925
  implementation specification adopted in § 170.215(a)(2).
@@ -1931,7 +1919,7 @@ procedure:
1931
1919
  * For coded data elements, including support for the
1932
1920
  “DataAbsentReason” Code System.
1933
1921
  inferno_supported: 'yes'
1934
- inferno_tests:
1922
+ inferno_tests:
1935
1923
  - 4.32.01 - 4.32.02
1936
1924
  - 5.34.01 - 5.34.02
1937
1925
  - 10.46.01 - 10.46.02
@@ -12,8 +12,6 @@ module ONCCertificationG10TestKit
12
12
  input :client_secret, optional: true
13
13
 
14
14
  run do
15
- skip_if refresh_token.blank?, 'No refresh token was received'
16
-
17
15
  oauth2_params = {
18
16
  'grant_type' => 'refresh_token',
19
17
  'refresh_token' => SecureRandom.uuid
@@ -1,3 +1,3 @@
1
1
  module ONCCertificationG10TestKit
2
- VERSION = '5.2.0'.freeze
2
+ VERSION = '5.3.0'.freeze
3
3
  end
@@ -63,23 +63,39 @@ module ONCCertificationG10TestKit
63
63
  ].freeze
64
64
 
65
65
  ERROR_FILTERS = [
66
- /\A\S+: \S+: Unknown Code/,
66
+ /\A\S+: \S+: Unknown [Cc]ode/,
67
67
  /\A\S+: \S+: None of the codings provided are in the value set/,
68
68
  /\A\S+: \S+: The code provided \(\S*\) is not in the value set/,
69
69
  /\A\S+: \S+: The Coding provided \(\S*\) is not in the value set/,
70
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/
71
+ /\A\S+: \S+: A definition for CodeSystem '.*' could not be found, so the code cannot be validated/,
72
+ /\A\S+: \S+: URL value '.*' does not resolve/,
73
+ /\A\S+: \S+: .*\[No server available\]/ # Catch-all for certain errors when TX server is disabled
72
74
  ].freeze
73
75
 
74
- [
75
- G10Options::US_CORE_3_REQUIREMENT,
76
- G10Options::US_CORE_4_REQUIREMENT,
77
- G10Options::US_CORE_5_REQUIREMENT,
78
- G10Options::US_CORE_6_REQUIREMENT
76
+ def self.setup_validator(us_core_version_requirement) # rubocop:disable Metrics/CyclomaticComplexity
77
+ validator_method = if Feature.use_hl7_resource_validator?
78
+ method(:fhir_resource_validator)
79
+ else
80
+ method(:validator)
81
+ end
82
+
83
+ validator_method.call :default, required_suite_options: us_core_version_requirement do
84
+ if Feature.use_hl7_resource_validator?
85
+ url ENV.fetch('G10_FHIR_RESOURCE_VALIDATOR_URL', 'http://hl7_validator_service:3500')
86
+
87
+ cli_context do
88
+ txServer nil
89
+ displayWarnings true
90
+ disableDefaultResourceFetcher true
91
+ end
79
92
 
80
- ].each do |us_core_version_requirement|
81
- validator :default, required_suite_options: us_core_version_requirement do
82
- url ENV.fetch('G10_VALIDATOR_URL', 'http://validator_service:4567')
93
+ us_core_version_num = G10Options::US_CORE_VERSION_NUMBERS[us_core_version_requirement[:us_core_version]]
94
+
95
+ igs("hl7.fhir.us.core##{us_core_version_num}")
96
+ else
97
+ url ENV.fetch('G10_VALIDATOR_URL', 'http://validator_service:4567')
98
+ end
83
99
 
84
100
  us_core_message_filters =
85
101
  case (us_core_version_requirement[:us_core_version])
@@ -148,6 +164,16 @@ module ONCCertificationG10TestKit
148
164
  end
149
165
  end
150
166
 
167
+ [
168
+ G10Options::US_CORE_3_REQUIREMENT,
169
+ G10Options::US_CORE_4_REQUIREMENT,
170
+ G10Options::US_CORE_5_REQUIREMENT,
171
+ G10Options::US_CORE_6_REQUIREMENT
172
+
173
+ ].each do |us_core_version_requirement|
174
+ setup_validator(us_core_version_requirement)
175
+ end
176
+
151
177
  def self.jwks_json
152
178
  bulk_data_jwks = JSON.parse(File.read(
153
179
  ENV.fetch('G10_BULK_DATA_JWKS',
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.2.0
4
+ version: 5.3.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-03-11 00:00:00.000000000 Z
11
+ date: 2024-04-09 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.4.20
47
+ version: 0.4.34
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.4.20
54
+ version: 0.4.34
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: json-jwt
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 0.4.1
117
+ version: 0.4.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.4.1
124
+ version: 0.4.2
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: tls_test_kit
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 0.6.4
145
+ version: 0.6.5
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.4
152
+ version: 0.6.5
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: database_cleaner-sequel
155
155
  requirement: !ruby/object:Gem::Requirement