onc_certification_g10_test_kit 8.0.0 → 8.0.2

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.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/config/presets/g10_reference_server_preset.json +2 -1
  3. data/execution_scripts/reference_server/g10_ref_server_usc6_smart2_bulk1_no_terminology_expected.json +1 -0
  4. data/execution_scripts/reference_server/g10_ref_server_usc6_smart2_bulk1_with_commands.yaml +281 -0
  5. data/execution_scripts/reference_server/g10_ref_server_usc6_smart2_bulk1_with_commands_expected.json +1 -0
  6. data/execution_scripts/reference_server/g10_ref_server_usc7_smart2_bulk1_no_terminology_expected.json +1 -0
  7. data/execution_scripts/reference_server/g10_ref_server_usc7_smart2_bulk1_with_commands.yaml +281 -0
  8. data/execution_scripts/reference_server/g10_ref_server_usc7_smart2_bulk1_with_commands_expected.json +4054 -0
  9. data/execution_scripts/reference_server/ref_server_authorize_85_all_scopes.rb +4 -0
  10. data/execution_scripts/reference_server/ref_server_authorize_85_granular_scopes.rb +15 -0
  11. data/execution_scripts/reference_server/ref_server_authorize_85_limited_scopes.rb +28 -0
  12. data/execution_scripts/reference_server/ref_server_authorize_launched_all_scopes.rb +4 -0
  13. data/execution_scripts/reference_server/ref_server_ehr_launch_85.rb +4 -0
  14. data/execution_scripts/reference_server/ref_server_invalid_launch_and_attest.rb +20 -0
  15. data/execution_scripts/reference_server/ref_server_revoke_token_and_run_group.rb +43 -0
  16. data/lib/inferno/terminology/codesystem.rb +2 -2
  17. data/lib/inferno/terminology/tasks/process_umls.rb +1 -1
  18. data/lib/inferno/terminology/tasks/process_umls_translations.rb +1 -1
  19. data/lib/inferno/terminology/tasks/unzip_umls.rb +1 -1
  20. data/lib/inferno/terminology/validator.rb +1 -1
  21. data/lib/inferno/terminology/value_set.rb +2 -2
  22. data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +2 -2
  23. data/lib/onc_certification_g10_test_kit/configuration_checker.rb +1 -1
  24. data/lib/onc_certification_g10_test_kit/resource_access_test.rb +2 -2
  25. data/lib/onc_certification_g10_test_kit/single_patient_us_core_6_api_group.rb +1 -1
  26. data/lib/onc_certification_g10_test_kit/single_patient_us_core_7_api_group.rb +1 -1
  27. data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +18 -3
  28. data/lib/onc_certification_g10_test_kit/terminology_binding_validator.rb +1 -1
  29. data/lib/onc_certification_g10_test_kit/version.rb +2 -2
  30. metadata +54 -17
@@ -0,0 +1,4 @@
1
+ gem_dir = Gem::Specification.find_by_name('smart_app_launch_test_kit').gem_dir
2
+ load "#{gem_dir}/execution_scripts/reference_server/base_ref_server_authorize.rb"
3
+
4
+ ref_server_authorize(ARGV[0], target_patient_id: '85')
@@ -0,0 +1,15 @@
1
+ gem_dir = Gem::Specification.find_by_name('smart_app_launch_test_kit').gem_dir
2
+ load "#{gem_dir}/execution_scripts/reference_server/base_ref_server_authorize.rb"
3
+
4
+ GRANULAR_SCOPE_SELECTIONS_TO_CLICK = ['patient/Condition.rs',
5
+ 'patient/Condition.rs?category=http://hl7.org/fhir/us/core/CodeSystem/condition-category|health-concern',
6
+ 'patient/Condition.rs?category=http://terminology.hl7.org/CodeSystem/condition-category|encounter-diagnosis',
7
+ 'patient/Condition.rs?category=http://terminology.hl7.org/CodeSystem/condition-category|problem-list-item',
8
+ 'patient/Observation.rs',
9
+ 'patient/Observation.rs?category=http://hl7.org/fhir/us/core/CodeSystem/us-core-category|sdoh',
10
+ 'patient/Observation.rs?category=http://terminology.hl7.org/CodeSystem/observation-category|social-history',
11
+ 'patient/Observation.rs?category=http://terminology.hl7.org/CodeSystem/observation-category|laboratory',
12
+ 'patient/Observation.rs?category=http://terminology.hl7.org/CodeSystem/observation-category|survey',
13
+ 'patient/Observation.rs?category=http://terminology.hl7.org/CodeSystem/observation-category|vital-signs'].freeze
14
+
15
+ ref_server_authorize(ARGV[0], target_patient_id: '85', click_scopes: GRANULAR_SCOPE_SELECTIONS_TO_CLICK)
@@ -0,0 +1,28 @@
1
+ gem_dir = Gem::Specification.find_by_name('smart_app_launch_test_kit').gem_dir
2
+ load "#{gem_dir}/execution_scripts/reference_server/base_ref_server_authorize.rb"
3
+
4
+ LIMITED_SCOPES_TO_UNCHECK = ['patient/AllergyIntolerance.rs',
5
+ 'patient/CarePlan.rs',
6
+ 'patient/CareTeam.rs',
7
+ 'patient/Coverage.rs',
8
+ 'patient/Device.rs',
9
+ 'patient/DocumentReference.rs',
10
+ 'patient/DiagnosticReport.rs',
11
+ 'patient/Encounter.rs',
12
+ 'patient/Goal.rs',
13
+ 'patient/Immunization.rs',
14
+ 'patient/Location.rs',
15
+ 'patient/Medication.rs',
16
+ 'patient/MedicationDispense.rs',
17
+ 'patient/MedicationRequest.rs',
18
+ 'patient/Organization.rs',
19
+ 'patient/Practitioner.rs',
20
+ 'patient/PractitionerRole.rs',
21
+ 'patient/Procedure.rs',
22
+ 'patient/Provenance.rs',
23
+ 'patient/QuestionnaireResponse.rs',
24
+ 'patient/RelatedPerson.rs',
25
+ 'patient/ServiceRequest.rs',
26
+ 'patient/Specimen.rs'].freeze
27
+
28
+ ref_server_authorize(ARGV[0], target_patient_id: '85', click_scopes: LIMITED_SCOPES_TO_UNCHECK)
@@ -0,0 +1,4 @@
1
+ gem_dir = Gem::Specification.find_by_name('smart_app_launch_test_kit').gem_dir
2
+ load "#{gem_dir}/execution_scripts/reference_server/base_ref_server_authorize.rb"
3
+
4
+ ref_server_authorize(ARGV[0])
@@ -0,0 +1,4 @@
1
+ gem_dir = Gem::Specification.find_by_name('smart_app_launch_test_kit').gem_dir
2
+ load "#{gem_dir}/execution_scripts/reference_server/base_ref_server_ehr_launch.rb"
3
+
4
+ ref_server_ehr_launch(ARGV[0], ARGV[1], 85)
@@ -0,0 +1,20 @@
1
+ begin
2
+ require 'selenium-webdriver'
3
+ rescue LoadError
4
+ warn 'selenium-webdriver is required to run this command script.'
5
+ warn "Add it to your Gemfile: gem 'selenium-webdriver'"
6
+ exit(1)
7
+ end
8
+
9
+ launch_url = ARGV[0]
10
+ attest_url = ARGV[1]
11
+
12
+ options = Selenium::WebDriver::Options.chrome(args: ['--headless=new'])
13
+ driver = Selenium::WebDriver.for(:chrome, options: options)
14
+ wait = Selenium::WebDriver::Wait.new(timeout: 10)
15
+ driver.get launch_url
16
+ wait.until { driver.find_element(id: 'errorMessage') }
17
+ driver.get attest_url
18
+ wait.until { driver.find_element(:xpath, '//title') }
19
+ driver.quit
20
+ exit(0)
@@ -0,0 +1,43 @@
1
+ begin
2
+ require 'selenium-webdriver'
3
+ rescue LoadError
4
+ warn 'selenium-webdriver is required to run this command script.'
5
+ warn "Add it to your Gemfile: gem 'selenium-webdriver'"
6
+ exit(1)
7
+ end
8
+
9
+ def ref_server_revoke_token(session_id, inferno_host)
10
+ inputs_cli_command = "bundle exec inferno session data #{session_id}#{" -I #{inferno_host}" unless inferno_host.nil?}"
11
+ inputs = JSON.parse(`#{inputs_cli_command}`)
12
+
13
+ token_to_revoke = token_to_revoke(inputs)
14
+ raise StandardError, 'could not find access token to revoke' if token_to_revoke.nil? || token_to_revoke == ''
15
+
16
+ reference_server_url = inputs.find { |input| input['name'] == 'url' }&.dig('value')
17
+ revocation_url = "#{reference_server_url.chomp('/r4')}/oauth/token/revoke-token"
18
+
19
+ options = Selenium::WebDriver::Options.chrome(args: ['--headless=new'])
20
+ driver = Selenium::WebDriver.for(:chrome, options: options)
21
+ wait = Selenium::WebDriver::Wait.new(timeout: 10)
22
+ driver.get revocation_url
23
+ wait.until { driver.find_element(id: 'revokeToken') }.send_keys(token_to_revoke)
24
+ driver.find_element(id: 'revokeTokenButton').click
25
+ wait.until { driver.find_element(id: 'errorMessage').text.include?('successfully') }
26
+ driver.quit
27
+ end
28
+
29
+ def token_to_revoke(inputs)
30
+ JSON.parse(inputs.find { |input| input['name'] == 'smart_auth_info' }&.dig('value'))&.dig('access_token')
31
+ rescue JSON::ParserError
32
+ nil
33
+ end
34
+
35
+ session_id = ARGV[0]
36
+ revoke_token_group = ARGV[1]
37
+ inferno_host = ARGV[2]
38
+
39
+ ref_server_revoke_token(session_id, inferno_host)
40
+ start_run_cli_command =
41
+ "bundle exec inferno session start_run #{session_id} #{revoke_token_group}" \
42
+ "#{" -I #{inferno_host}" unless inferno_host.nil?}"
43
+ exec(start_run_cli_command)
@@ -30,14 +30,14 @@ module Inferno
30
30
  end
31
31
  end
32
32
 
33
- def is_a_concept_filter?(filter) # rubocop:disable Naming/PredicateName
33
+ def concept_filter?(filter)
34
34
  (filter.op == 'is-a') && (codesystem_model.hierarchyMeaning == 'is-a') && (filter.property == 'concept')
35
35
  end
36
36
 
37
37
  def filter_codes(filter = nil)
38
38
  if filter.nil?
39
39
  all_codes_in_concept(codesystem_model.concept)
40
- elsif is_a_concept_filter? filter
40
+ elsif concept_filter? filter
41
41
  parent_concept = find_concept(filter.value)
42
42
  all_codes_in_concept([parent_concept])
43
43
  else
@@ -22,7 +22,7 @@ module Inferno
22
22
  if input_file
23
23
  start = Time.now
24
24
  output_filename = File.join(versioned_temp_dir, 'terminology_umls.txt')
25
- output = File.open(output_filename, 'w:UTF-8')
25
+ output = File.open(output_filename, 'w:UTF-8') # rubocop:disable Style/FileOpen
26
26
  line = 0
27
27
  excluded = 0
28
28
  excluded_systems = Hash.new(0)
@@ -14,7 +14,7 @@ module Inferno
14
14
  if input_file
15
15
  start = Time.now
16
16
  output_filename = File.join(TEMP_DIR, 'translations_umls.txt')
17
- output = File.open(output_filename, 'w:UTF-8')
17
+ output = File.open(output_filename, 'w:UTF-8') # rubocop:disable Style/FileOpen
18
18
  line = 0
19
19
  excluded_systems = Hash.new(0)
20
20
  begin
@@ -30,7 +30,7 @@ module Inferno
30
30
  Zip::File.open(File.expand_path("#{Dir[wildcard_path][0]}/mmsys.zip")) do |zip_file|
31
31
  zip_file.each do |entry|
32
32
  Inferno.logger.info "Extracting #{entry.name}"
33
- f_path = File.join((Dir[wildcard_path][0]).to_s, entry.name)
33
+ f_path = File.join(Dir[wildcard_path][0].to_s, entry.name)
34
34
  FileUtils.mkdir_p(File.dirname(f_path))
35
35
  zip_file.extract(entry, f_path) unless File.exist?(f_path)
36
36
  end
@@ -15,7 +15,7 @@ module Inferno
15
15
  @bloom_filter = metadata[:bloom_filter]
16
16
  end
17
17
 
18
- def validate(code:, system: nil)
18
+ def validate(code:, system: nil) # rubocop:disable Naming/PredicateMethod
19
19
  if system
20
20
  raise ProhibitedSystemException, system if TerminologyConfiguration.system_prohibited?(system)
21
21
 
@@ -394,7 +394,7 @@ module Inferno
394
394
  end
395
395
  end
396
396
 
397
- filter_clause = lambda do |filter| # rubocop:disable Lint/ShadowingOuterLocalVariable
397
+ filter_clause = lambda do |filter|
398
398
  where = +''
399
399
  case filter.op
400
400
  when 'in'
@@ -472,7 +472,7 @@ module Inferno
472
472
  # @return [Set] the filtered codes
473
473
  def filter_is_a(system, filter)
474
474
  children = {}
475
- find_children = lambda do |_parent, system| # rubocop:disable Lint/ShadowingOuterLocalVariable
475
+ find_children = lambda do |_parent, system|
476
476
  @db.execute("SELECT c1.code, c2.code
477
477
  FROM mrrel r
478
478
  JOIN mrconso c1 ON c1.aui=r.aui1
@@ -14,7 +14,7 @@ module ONCCertificationG10TestKit
14
14
  MIN_RESOURCE_COUNT = 2
15
15
 
16
16
  # Remove us-core-observation-sexual-orientation from bulk data validation as directed by
17
- # ASTP/ONC enforcement discretion issued on March 21, 2025:
17
+ # ONC enforcement discretion issued on March 21, 2025:
18
18
  # https://www.healthit.gov/topic/certification-ehrs/enforcement-discretion
19
19
  # The enforcement discretion allies to US Core v6 and v7. US Core v5 also inlcude this profile.
20
20
  # Since (g)(10) certification test kit does not cover US Core v5, adding profile url to this list
@@ -179,7 +179,7 @@ module ONCCertificationG10TestKit
179
179
  end
180
180
 
181
181
  process_headers = proc { |response|
182
- value = (response[:headers].find { |header| header.name.downcase == 'content-type' })&.value
182
+ value = response[:headers].find { |header| header.name.downcase == 'content-type' }&.value
183
183
  unless value&.start_with?('application/fhir+ndjson')
184
184
  skip "Content type must have 'application/fhir+ndjson' but found '#{value}'"
185
185
  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_HL7_VALIDATOR_VERSION = '1.0.67'.freeze
5
+ EXPECTED_HL7_VALIDATOR_VERSION = '1.0.78'.freeze
6
6
  HL7_VALIDATOR_VERSION_KEY = 'validatorWrapperVersion'.freeze
7
7
 
8
8
  def configuration_messages
@@ -20,8 +20,8 @@ module ONCCertificationG10TestKit
20
20
 
21
21
  def search_params
22
22
  @search_params ||=
23
- resource_group.metadata.searches.first[:names].each_with_object({}) do |name, params|
24
- params[name] = search_param_value(name)
23
+ resource_group.metadata.searches.first[:names].to_h do |name|
24
+ [name, search_param_value(name)]
25
25
  end
26
26
  end
27
27
 
@@ -174,7 +174,7 @@ module ONCCertificationG10TestKit
174
174
 
175
175
  next if test_group.optional?
176
176
 
177
- # Observation Sexual Orientation is removed as directed by ASTP/ONC enforcement discretion
177
+ # Observation Sexual Orientation is removed as directed by ONC enforcement discretion
178
178
  # issued on March 21, 2025:
179
179
  # https://www.healthit.gov/topic/certification-ehrs/enforcement-discretion
180
180
  next if test_group.id.include?('us_core_v610_observation_sexual_orientation')
@@ -179,7 +179,7 @@ module ONCCertificationG10TestKit
179
179
 
180
180
  next if test_group.optional?
181
181
 
182
- # Observation Sexual Orientation is removed as directed by ASTP/ONC enforcement discretion
182
+ # Observation Sexual Orientation is removed as directed by ONC enforcement discretion
183
183
  # issued on March 21, 2025:
184
184
  # https://www.healthit.gov/topic/certification-ehrs/enforcement-discretion
185
185
  next if test_group.id.include?('us_core_v700_observation_sexual_orientation')
@@ -93,12 +93,17 @@ module ONCCertificationG10TestKit
93
93
  }
94
94
  }
95
95
  )
96
+ output :attest_launch_failed_url
96
97
 
97
98
  def aud
98
99
  'https://inferno.healthit.gov/invalid_aud'
99
100
  end
100
101
 
101
102
  def wait_message(auth_url)
103
+ attest_launch_failed_url =
104
+ "#{Inferno::Application['base_url']}/custom/smart/redirect?state=#{state}&confirm_fail=true"
105
+ output(attest_launch_failed_url:)
106
+
102
107
  %(
103
108
  Inferno will redirect you to an external website for authorization.
104
109
  **It is expected this will fail**. If the server does not return to
@@ -108,7 +113,7 @@ module ONCCertificationG10TestKit
108
113
 
109
114
  * [Perform Invalid Launch](#{auth_url})
110
115
  * [Attest launch
111
- failed](#{Inferno::Application['base_url']}/custom/smart/redirect?state=#{state}&confirm_fail=true)
116
+ failed](#{attest_launch_failed_url})
112
117
  )
113
118
  end
114
119
  end
@@ -156,12 +161,17 @@ module ONCCertificationG10TestKit
156
161
  }
157
162
  }
158
163
  )
164
+ output :attest_launch_failed_url
159
165
 
160
166
  def aud
161
167
  'https://inferno.healthit.gov/invalid_aud'
162
168
  end
163
169
 
164
170
  def wait_message(auth_url)
171
+ attest_launch_failed_url =
172
+ "#{Inferno::Application['base_url']}/custom/smart/redirect?state=#{state}&confirm_fail=true"
173
+ output(attest_launch_failed_url:)
174
+
165
175
  %(
166
176
  Inferno will redirect you to an external website for authorization.
167
177
  **It is expected this will fail**. If the server does not return to
@@ -171,7 +181,7 @@ module ONCCertificationG10TestKit
171
181
 
172
182
  * [Perform Invalid Launch](#{auth_url})
173
183
  * [Attest launch
174
- failed](#{Inferno::Application['base_url']}/custom/smart/redirect?state=#{state}&confirm_fail=true)
184
+ failed](#{attest_launch_failed_url})
175
185
  )
176
186
  end
177
187
  end
@@ -218,12 +228,17 @@ module ONCCertificationG10TestKit
218
228
  }
219
229
  }
220
230
  )
231
+ output :attest_launch_failed_url
221
232
 
222
233
  def aud
223
234
  'https://inferno.healthit.gov/invalid_aud'
224
235
  end
225
236
 
226
237
  def wait_message(auth_url)
238
+ attest_launch_failed_url =
239
+ "#{Inferno::Application['base_url']}/custom/smart/redirect?state=#{state}&confirm_fail=true"
240
+ output(attest_launch_failed_url:)
241
+
227
242
  %(
228
243
  Inferno will redirect you to an external website for authorization.
229
244
  **It is expected this will fail**. If the server does not return to
@@ -233,7 +248,7 @@ module ONCCertificationG10TestKit
233
248
 
234
249
  * [Perform Invalid Launch](#{auth_url})
235
250
  * [Attest launch
236
- failed](#{Inferno::Application['base_url']}/custom/smart/redirect?state=#{state}&confirm_fail=true)
251
+ failed](#{attest_launch_failed_url})
237
252
  )
238
253
  end
239
254
  end
@@ -122,7 +122,7 @@ module ONCCertificationG10TestKit
122
122
  end
123
123
  end
124
124
 
125
- def invalid_codeable_concept?(element)
125
+ def invalid_codeable_concept?(element) # rubocop:disable Naming/PredicateMethod
126
126
  return unless element.is_a? FHIR::CodeableConcept
127
127
 
128
128
  if binding_definition[:system].present?
@@ -1,4 +1,4 @@
1
1
  module ONCCertificationG10TestKit
2
- VERSION = '8.0.0'.freeze
3
- LAST_UPDATED = '2026-03-09'.freeze # TODO: update next release
2
+ VERSION = '8.0.2'.freeze
3
+ LAST_UPDATED = '2026-05-27'.freeze # TODO: update next release
4
4
  end
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: 8.0.0
4
+ version: 8.0.2
5
5
  platform: ruby
6
6
  authors:
7
- - Stephen MacVicar
7
+ - Inferno Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-09 00:00:00.000000000 Z
11
+ date: 2026-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bloomer
@@ -44,14 +44,20 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.1'
47
+ version: '1.2'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 1.2.2
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
55
  - - "~>"
53
56
  - !ruby/object:Gem::Version
54
- version: '1.1'
57
+ version: '1.2'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.2.2
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: json-jwt
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -112,44 +118,62 @@ dependencies:
112
118
  name: smart_app_launch_test_kit
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
- - - '='
121
+ - - "~>"
116
122
  - !ruby/object:Gem::Version
117
- version: 1.0.0
123
+ version: '1.0'
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 1.0.2
118
127
  type: :runtime
119
128
  prerelease: false
120
129
  version_requirements: !ruby/object:Gem::Requirement
121
130
  requirements:
122
- - - '='
131
+ - - "~>"
123
132
  - !ruby/object:Gem::Version
124
- version: 1.0.0
133
+ version: '1.0'
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: 1.0.2
125
137
  - !ruby/object:Gem::Dependency
126
138
  name: tls_test_kit
127
139
  requirement: !ruby/object:Gem::Requirement
128
140
  requirements:
129
- - - '='
141
+ - - "~>"
130
142
  - !ruby/object:Gem::Version
131
- version: 1.0.0
143
+ version: '1.0'
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: 1.0.2
132
147
  type: :runtime
133
148
  prerelease: false
134
149
  version_requirements: !ruby/object:Gem::Requirement
135
150
  requirements:
136
- - - '='
151
+ - - "~>"
137
152
  - !ruby/object:Gem::Version
138
- version: 1.0.0
153
+ version: '1.0'
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: 1.0.2
139
157
  - !ruby/object:Gem::Dependency
140
158
  name: us_core_test_kit
141
159
  requirement: !ruby/object:Gem::Requirement
142
160
  requirements:
143
- - - '='
161
+ - - "~>"
144
162
  - !ruby/object:Gem::Version
145
- version: 1.1.1
163
+ version: '1.1'
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: 1.1.3
146
167
  type: :runtime
147
168
  prerelease: false
148
169
  version_requirements: !ruby/object:Gem::Requirement
149
170
  requirements:
150
- - - '='
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '1.1'
174
+ - - ">="
151
175
  - !ruby/object:Gem::Version
152
- version: 1.1.1
176
+ version: 1.1.3
153
177
  description: ONC Certification (g)(10) Standardized API for Patient and Population
154
178
  Services Test Kit
155
179
  email:
@@ -159,6 +183,19 @@ extra_rdoc_files: []
159
183
  files:
160
184
  - LICENSE
161
185
  - config/presets/g10_reference_server_preset.json
186
+ - execution_scripts/reference_server/g10_ref_server_usc6_smart2_bulk1_no_terminology_expected.json
187
+ - execution_scripts/reference_server/g10_ref_server_usc6_smart2_bulk1_with_commands.yaml
188
+ - execution_scripts/reference_server/g10_ref_server_usc6_smart2_bulk1_with_commands_expected.json
189
+ - execution_scripts/reference_server/g10_ref_server_usc7_smart2_bulk1_no_terminology_expected.json
190
+ - execution_scripts/reference_server/g10_ref_server_usc7_smart2_bulk1_with_commands.yaml
191
+ - execution_scripts/reference_server/g10_ref_server_usc7_smart2_bulk1_with_commands_expected.json
192
+ - execution_scripts/reference_server/ref_server_authorize_85_all_scopes.rb
193
+ - execution_scripts/reference_server/ref_server_authorize_85_granular_scopes.rb
194
+ - execution_scripts/reference_server/ref_server_authorize_85_limited_scopes.rb
195
+ - execution_scripts/reference_server/ref_server_authorize_launched_all_scopes.rb
196
+ - execution_scripts/reference_server/ref_server_ehr_launch_85.rb
197
+ - execution_scripts/reference_server/ref_server_invalid_launch_and_attest.rb
198
+ - execution_scripts/reference_server/ref_server_revoke_token_and_run_group.rb
162
199
  - lib/inferno/exceptions.rb
163
200
  - lib/inferno/ext/bloomer.rb
164
201
  - lib/inferno/repositiories/validators.rb