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.
- checksums.yaml +4 -4
- data/config/presets/g10_reference_server_preset.json +2 -1
- data/execution_scripts/reference_server/g10_ref_server_usc6_smart2_bulk1_no_terminology_expected.json +1 -0
- data/execution_scripts/reference_server/g10_ref_server_usc6_smart2_bulk1_with_commands.yaml +281 -0
- data/execution_scripts/reference_server/g10_ref_server_usc6_smart2_bulk1_with_commands_expected.json +1 -0
- data/execution_scripts/reference_server/g10_ref_server_usc7_smart2_bulk1_no_terminology_expected.json +1 -0
- data/execution_scripts/reference_server/g10_ref_server_usc7_smart2_bulk1_with_commands.yaml +281 -0
- data/execution_scripts/reference_server/g10_ref_server_usc7_smart2_bulk1_with_commands_expected.json +4054 -0
- data/execution_scripts/reference_server/ref_server_authorize_85_all_scopes.rb +4 -0
- data/execution_scripts/reference_server/ref_server_authorize_85_granular_scopes.rb +15 -0
- data/execution_scripts/reference_server/ref_server_authorize_85_limited_scopes.rb +28 -0
- data/execution_scripts/reference_server/ref_server_authorize_launched_all_scopes.rb +4 -0
- data/execution_scripts/reference_server/ref_server_ehr_launch_85.rb +4 -0
- data/execution_scripts/reference_server/ref_server_invalid_launch_and_attest.rb +20 -0
- data/execution_scripts/reference_server/ref_server_revoke_token_and_run_group.rb +43 -0
- data/lib/inferno/terminology/codesystem.rb +2 -2
- data/lib/inferno/terminology/tasks/process_umls.rb +1 -1
- data/lib/inferno/terminology/tasks/process_umls_translations.rb +1 -1
- data/lib/inferno/terminology/tasks/unzip_umls.rb +1 -1
- data/lib/inferno/terminology/validator.rb +1 -1
- data/lib/inferno/terminology/value_set.rb +2 -2
- data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +2 -2
- data/lib/onc_certification_g10_test_kit/configuration_checker.rb +1 -1
- data/lib/onc_certification_g10_test_kit/resource_access_test.rb +2 -2
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_6_api_group.rb +1 -1
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_7_api_group.rb +1 -1
- data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +18 -3
- data/lib/onc_certification_g10_test_kit/terminology_binding_validator.rb +1 -1
- data/lib/onc_certification_g10_test_kit/version.rb +2 -2
- metadata +54 -17
|
@@ -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,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
|
|
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
|
|
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(
|
|
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|
|
|
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|
|
|
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
|
-
#
|
|
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 =
|
|
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.
|
|
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].
|
|
24
|
-
|
|
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
|
|
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
|
|
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](#{
|
|
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](#{
|
|
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](#{
|
|
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?
|
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.
|
|
4
|
+
version: 8.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
7
|
+
- Inferno Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|