onc_certification_g10_test_kit 7.0.3 → 7.1.0
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 +1291 -0
- data/lib/inferno/ext/bloomer.rb +1 -1
- data/lib/inferno/terminology/tasks/process_umls.rb +1 -1
- data/lib/onc_certification_g10_test_kit/bulk_data_authorization.rb +4 -4
- data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +3 -3
- data/lib/onc_certification_g10_test_kit/configuration_checker.rb +4 -12
- data/lib/onc_certification_g10_test_kit/feature.rb +5 -4
- data/lib/onc_certification_g10_test_kit/igs/01-us-core-v400.tgz +0 -0
- data/lib/onc_certification_g10_test_kit/igs/03-us-core-v311.tgz +0 -0
- data/lib/onc_certification_g10_test_kit/igs/04-us-core-610.tgz +0 -0
- data/lib/onc_certification_g10_test_kit/metadata.rb +103 -0
- data/lib/onc_certification_g10_test_kit/patient_scope_test.rb +1 -1
- data/lib/onc_certification_g10_test_kit/single_patient_api_group.rb +17 -16
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_4_api_group.rb +17 -16
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_5_api_group.rb +17 -16
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_6_api_group.rb +19 -18
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_7_api_group.rb +19 -18
- data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +1 -1
- data/lib/onc_certification_g10_test_kit/smart_asymmetric_launch_group.rb +1 -1
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group.rb +2 -2
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2.rb +2 -2
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2_2.rb +2 -2
- data/lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb +4 -4
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group.rb +1 -1
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group_stu2_2.rb +1 -1
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group.rb +1 -1
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_us_core_7_group_stu2_2.rb +1 -1
- data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_group.rb +4 -4
- data/lib/onc_certification_g10_test_kit/smart_invalid_pkce_group.rb +6 -6
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group.rb +3 -3
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group_stu2.rb +3 -3
- data/lib/onc_certification_g10_test_kit/smart_limited_app_group.rb +3 -3
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group.rb +2 -2
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2.rb +2 -2
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2_2.rb +2 -2
- data/lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb +2 -2
- data/lib/onc_certification_g10_test_kit/smart_v1_scopes_group.rb +2 -2
- data/lib/onc_certification_g10_test_kit/tasks/generate_matrix.rb +1 -1
- data/lib/onc_certification_g10_test_kit/urls.rb +4 -0
- data/lib/onc_certification_g10_test_kit/version.rb +2 -1
- data/lib/onc_certification_g10_test_kit.rb +15 -25
- metadata +19 -68
data/lib/inferno/ext/bloomer.rb
CHANGED
@@ -37,7 +37,7 @@ module Inferno
|
|
37
37
|
case code_system
|
38
38
|
when 'SNOMEDCT_US'
|
39
39
|
code_system = 'SNOMED'
|
40
|
-
include_code =
|
40
|
+
include_code = row[4] == 'PF' && ['FN', 'OAF'].include?(row[12])
|
41
41
|
when 'LNC'
|
42
42
|
code_system = 'LOINC'
|
43
43
|
include_code = true
|
@@ -87,7 +87,7 @@ module ONCCertificationG10TestKit
|
|
87
87
|
aud: bulk_token_endpoint,
|
88
88
|
grant_type: 'not_a_grant_type')
|
89
89
|
|
90
|
-
post(
|
90
|
+
post(client: :token_endpoint, **post_request_content)
|
91
91
|
|
92
92
|
assert_response_status(400)
|
93
93
|
end
|
@@ -118,7 +118,7 @@ module ONCCertificationG10TestKit
|
|
118
118
|
aud: bulk_token_endpoint,
|
119
119
|
client_assertion_type: 'not_an_assertion_type')
|
120
120
|
|
121
|
-
post(
|
121
|
+
post(client: :token_endpoint, **post_request_content)
|
122
122
|
|
123
123
|
assert_response_status(400)
|
124
124
|
end
|
@@ -157,7 +157,7 @@ module ONCCertificationG10TestKit
|
|
157
157
|
sub: bulk_client_id,
|
158
158
|
aud: bulk_token_endpoint)
|
159
159
|
|
160
|
-
post(
|
160
|
+
post(client: :token_endpoint, **post_request_content)
|
161
161
|
|
162
162
|
assert_response_status([400, 401])
|
163
163
|
end
|
@@ -179,7 +179,7 @@ module ONCCertificationG10TestKit
|
|
179
179
|
sub: bulk_client_id,
|
180
180
|
aud: bulk_token_endpoint)
|
181
181
|
|
182
|
-
authentication_response = post(
|
182
|
+
authentication_response = post(client: :token_endpoint, **post_request_content)
|
183
183
|
|
184
184
|
assert_response_status([200, 201])
|
185
185
|
|
@@ -43,13 +43,13 @@ module ONCCertificationG10TestKit
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def stream_ndjson(endpoint, headers, process_chunk_line, process_response) # rubocop:disable Metrics/CyclomaticComplexity
|
46
|
-
hanging_chunk =
|
46
|
+
hanging_chunk = ''
|
47
47
|
|
48
48
|
process_body = proc { |chunk|
|
49
49
|
hanging_chunk << chunk
|
50
50
|
chunk_by_lines = hanging_chunk.lines
|
51
51
|
|
52
|
-
hanging_chunk = chunk_by_lines.pop ||
|
52
|
+
hanging_chunk = chunk_by_lines.pop || ''
|
53
53
|
|
54
54
|
chunk_by_lines.each do |elem|
|
55
55
|
process_chunk_line.call(elem)
|
@@ -89,7 +89,7 @@ module ONCCertificationG10TestKit
|
|
89
89
|
coding.code if coding.system.nil? || coding.system == 'http://snomed.info/sct'
|
90
90
|
end
|
91
91
|
|
92
|
-
(
|
92
|
+
expected.intersect?(actual)
|
93
93
|
end
|
94
94
|
|
95
95
|
def determine_profile(resource)
|
@@ -2,8 +2,6 @@ require_relative '../inferno/terminology/tasks/check_built_terminology'
|
|
2
2
|
|
3
3
|
module ONCCertificationG10TestKit
|
4
4
|
class ConfigurationChecker
|
5
|
-
EXPECTED_VALIDATOR_VERSION = '2.3.2'.freeze
|
6
|
-
INFERNO_VALIDATOR_VERSION_KEY = 'inferno-framework/fhir-validator-wrapper'.freeze
|
7
5
|
EXPECTED_HL7_VALIDATOR_VERSION = '1.0.60'.freeze
|
8
6
|
HL7_VALIDATOR_VERSION_KEY = 'validatorWrapperVersion'.freeze
|
9
7
|
|
@@ -24,15 +22,9 @@ module ONCCertificationG10TestKit
|
|
24
22
|
end
|
25
23
|
|
26
24
|
def validator_version_message
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
validator_version_url = "#{validator_url}/validator/version"
|
31
|
-
else
|
32
|
-
expected_validator_version = EXPECTED_VALIDATOR_VERSION
|
33
|
-
validator_version_key = INFERNO_VALIDATOR_VERSION_KEY
|
34
|
-
validator_version_url = "#{validator_url}/version"
|
35
|
-
end
|
25
|
+
expected_validator_version = EXPECTED_HL7_VALIDATOR_VERSION
|
26
|
+
validator_version_key = HL7_VALIDATOR_VERSION_KEY
|
27
|
+
validator_version_url = "#{validator_url}/validator/version"
|
36
28
|
|
37
29
|
response = Faraday.get validator_version_url
|
38
30
|
if response.body.starts_with? '{'
|
@@ -71,7 +63,7 @@ module ONCCertificationG10TestKit
|
|
71
63
|
|
72
64
|
cs_metadata = YAML.load_file(path)
|
73
65
|
message = "Terminology was generated based on the following code system versions:\n"
|
74
|
-
cs_metadata.
|
66
|
+
cs_metadata.each_value do |metadata|
|
75
67
|
message += "* #{metadata[:name]}: version #{metadata[:versions].join(', ')}\n"
|
76
68
|
end
|
77
69
|
|
@@ -1,9 +1,10 @@
|
|
1
1
|
module ONCCertificationG10TestKit
|
2
2
|
module Feature
|
3
|
-
class << self
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
7
8
|
end
|
8
9
|
end
|
9
10
|
end
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,103 @@
|
|
1
|
+
require_relative 'version'
|
2
|
+
|
3
|
+
module ONCCertificationG10TestKit
|
4
|
+
class Metadata < Inferno::TestKit
|
5
|
+
id :onc_certification_g10_test_kit
|
6
|
+
title 'ONC Certification (g)(10) Standardized API Test Kit'
|
7
|
+
description <<~DESCRIPTION
|
8
|
+
The ONC Certification (g)(10) Standardized API Test Kit is a testing tool for
|
9
|
+
Health IT systems seeking to meet the requirements of the Standardized API for
|
10
|
+
Patient and Population Services criterion § 170.315(g)(10) in the ONC
|
11
|
+
Certification Program. It is an approved test method for the [§ 170.315(g)(10)
|
12
|
+
test
|
13
|
+
procedure](https://www.healthit.gov/test-method/standardized-api-patient-and-population-services#test_procedure).
|
14
|
+
<!-- break -->
|
15
|
+
|
16
|
+
Systems may adopt later versions of standards than those named in the rule as
|
17
|
+
approved by the ONC Standards Version Advancement Process (SVAP). Please note
|
18
|
+
that US Core Implementation Guide v.7.0.0 should only be used with SMART
|
19
|
+
App Launch Guide v2.0.0 or above due to granular scope support
|
20
|
+
requirements within this version of US Core.
|
21
|
+
|
22
|
+
Please select which approved version of each standard to use, and click 'Create
|
23
|
+
Test Session' to begin testing.
|
24
|
+
|
25
|
+
This test kit includes a [simulated conformant FHIR
|
26
|
+
API](https://inferno.healthit.gov/reference-server/) that can be used to
|
27
|
+
demonstrate success for all tests. This simulated API is open source and is
|
28
|
+
available on
|
29
|
+
[GitHub](https://github.com/inferno-framework/inferno-reference-server). Visit
|
30
|
+
the
|
31
|
+
[walkthrough](https://github.com/onc-healthit/onc-certification-g10-test-kit/wiki/Walkthrough)
|
32
|
+
for a demonstration of using these tests against the provided simulated FHIR
|
33
|
+
API.
|
34
|
+
|
35
|
+
## Status
|
36
|
+
|
37
|
+
The ONC Certification (g)(10) Standardized API is actively developed and updates
|
38
|
+
are released monthly.
|
39
|
+
|
40
|
+
The test kit currently tests all requirements for the [Standardized API for
|
41
|
+
Patient and Population Services criterion §
|
42
|
+
170.315(g)(10)](https://www.healthit.gov/test-method/standardized-api-patient-and-population-services),
|
43
|
+
including updates from the [HTI-1 Final
|
44
|
+
Rule](https://www.healthit.gov/topic/laws-regulation-and-policy/health-data-technology-and-interoperability-certification-program).
|
45
|
+
This includes:
|
46
|
+
- SMART App Standalone Launch with full system access
|
47
|
+
- SMART App Standalone Launch with limited system access
|
48
|
+
- SMART App Standalone Launch with OpenID Connect
|
49
|
+
- SMART App EHR Launch with user scopes
|
50
|
+
- SMART App EHR Launch with patient scopes
|
51
|
+
- SMART App Launch Invalid AUD Parameter
|
52
|
+
- SMART App Launch Invalid Access Token Request
|
53
|
+
- SMART App Launch Token Introspection
|
54
|
+
- SMART App Launch v1 and v2 scopes
|
55
|
+
- SMART App Launch finer-grained scope access
|
56
|
+
- Support for Capability Statement
|
57
|
+
- Support for all US Core Profiles
|
58
|
+
- Searches required for each resource
|
59
|
+
- Support for Must Support Elements
|
60
|
+
- Profile Validation
|
61
|
+
- Reference Validation
|
62
|
+
- Export of multiple patients using the FHIR Bulk Data Access IG
|
63
|
+
|
64
|
+
See the test descriptions within the test kit for detail on the specific
|
65
|
+
validations performed as part of testing these requirements.
|
66
|
+
|
67
|
+
## Repository and Resources
|
68
|
+
|
69
|
+
The ONC Certification (g)(10) Standardized API Test Kit can be [downloaded from
|
70
|
+
its GitHub
|
71
|
+
repository](https://github.com/onc-healthit/onc-certification-g10-test-kit),
|
72
|
+
where additional resources and documentation are also available to help users
|
73
|
+
get started with the testing process. The repository
|
74
|
+
[Wiki](https://github.com/onc-healthit/onc-certification-g10-test-kit/wiki/FAQ)
|
75
|
+
provides a
|
76
|
+
[FAQ](https://github.com/onc-healthit/onc-certification-g10-test-kit/wiki/FAQ)
|
77
|
+
for testers, and the
|
78
|
+
[Releases](https://github.com/onc-healthit/onc-certification-g10-test-kit/releases)
|
79
|
+
page provides information about each new release.
|
80
|
+
|
81
|
+
## Providing Feedback and Reporting Issues
|
82
|
+
|
83
|
+
We welcome feedback on the tests, including but not limited to the following areas:
|
84
|
+
|
85
|
+
- Validation logic, such as potential bugs, lax checks, and unexpected failures.
|
86
|
+
- Requirements coverage, such as requirements that have been missed, tests that
|
87
|
+
necessitate features that the IG does not require, or other issues with the
|
88
|
+
interpretation of the IG's requirements.
|
89
|
+
- User experience, such as confusing or missing information in the test UI.
|
90
|
+
|
91
|
+
Please report any issues with this set of tests in the [issues
|
92
|
+
section](https://github.com/onc-healthit/onc-certification-g10-test-kit/issues)
|
93
|
+
of the repository.
|
94
|
+
DESCRIPTION
|
95
|
+
suite_ids [:g10_certification]
|
96
|
+
tags ['SMART App Launch', 'US Core', 'Bulk Data']
|
97
|
+
last_updated LAST_UPDATED
|
98
|
+
version VERSION
|
99
|
+
maturity 'High'
|
100
|
+
authors ['Stephen MacVicar']
|
101
|
+
repo 'https://github.com/onc-healthit/onc-certification-g10-test-kit'
|
102
|
+
end
|
103
|
+
end
|
@@ -22,7 +22,7 @@ module ONCCertificationG10TestKit
|
|
22
22
|
|
23
23
|
run do
|
24
24
|
expected_scopes =
|
25
|
-
if
|
25
|
+
if [:v2, :v22].include?(scope_version)
|
26
26
|
[
|
27
27
|
Regexp.new(scope_regex_string('patient/Patient.rs').gsub('.rs', '.r?s')),
|
28
28
|
Regexp.new(scope_regex_string('patient/Patient.rs').gsub('.rs', '.rs?'))
|
@@ -111,24 +111,25 @@ module ONCCertificationG10TestKit
|
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
114
|
-
USCoreTestKit::USCoreV311::USCoreTestSuite
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
test_group.
|
126
|
-
|
114
|
+
USCoreTestKit::USCoreV311::USCoreTestSuite
|
115
|
+
.groups
|
116
|
+
.find { |g| g.title == 'US Core FHIR API' }
|
117
|
+
.groups
|
118
|
+
.each do |group|
|
119
|
+
test_group = group.ancestors[1]
|
120
|
+
|
121
|
+
next if test_group.optional?
|
122
|
+
|
123
|
+
group(from: test_group.id, exclude_optional: true)
|
124
|
+
|
125
|
+
if test_group.respond_to?(:metadata) && # rubocop:disable Style/Next
|
126
|
+
test_group.metadata.delayed? &&
|
127
|
+
!test_group.metadata.searchable_delayed_resource?
|
128
|
+
groups.last.children.reject! { |child| child.include? USCoreTestKit::SearchTest }
|
129
|
+
groups.last.config(options: { read_all_resources: true })
|
130
|
+
end
|
127
131
|
end
|
128
132
|
|
129
|
-
group(from: id, exclude_optional: true, config: group_config)
|
130
|
-
end
|
131
|
-
|
132
133
|
groups.first.description %(
|
133
134
|
The Capability Statement test verifies a FHIR server's ability support the
|
134
135
|
[capabilities
|
@@ -123,24 +123,25 @@ module ONCCertificationG10TestKit
|
|
123
123
|
end
|
124
124
|
end
|
125
125
|
|
126
|
-
USCoreTestKit::USCoreV400::USCoreTestSuite
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
test_group.
|
138
|
-
|
126
|
+
USCoreTestKit::USCoreV400::USCoreTestSuite
|
127
|
+
.groups
|
128
|
+
.find { |g| g.title == 'US Core FHIR API' }
|
129
|
+
.groups
|
130
|
+
.each do |group|
|
131
|
+
test_group = group.ancestors[1]
|
132
|
+
|
133
|
+
next if test_group.optional?
|
134
|
+
|
135
|
+
group(from: test_group.id, exclude_optional: true)
|
136
|
+
|
137
|
+
if test_group.respond_to?(:metadata) && # rubocop:disable Style/Next
|
138
|
+
test_group.metadata.delayed? &&
|
139
|
+
!test_group.metadata.searchable_delayed_resource?
|
140
|
+
groups.last.children.reject! { |child| child.include? USCoreTestKit::SearchTest }
|
141
|
+
groups.last.config(options: { read_all_resources: true })
|
142
|
+
end
|
139
143
|
end
|
140
144
|
|
141
|
-
group(from: id, exclude_optional: true, config: group_config)
|
142
|
-
end
|
143
|
-
|
144
145
|
groups.first.description %(
|
145
146
|
The Capability Statement test verifies a FHIR server's ability support the
|
146
147
|
[capabilities
|
@@ -137,24 +137,25 @@ module ONCCertificationG10TestKit
|
|
137
137
|
end
|
138
138
|
end
|
139
139
|
|
140
|
-
USCoreTestKit::USCoreV501::USCoreTestSuite
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
test_group.
|
152
|
-
|
140
|
+
USCoreTestKit::USCoreV501::USCoreTestSuite
|
141
|
+
.groups
|
142
|
+
.find { |g| g.title == 'US Core FHIR API' }
|
143
|
+
.groups
|
144
|
+
.each do |group|
|
145
|
+
test_group = group.ancestors[1]
|
146
|
+
|
147
|
+
next if test_group.optional?
|
148
|
+
|
149
|
+
group(from: test_group.id, exclude_optional: true)
|
150
|
+
|
151
|
+
if test_group.respond_to?(:metadata) && # rubocop:disable Style/Next
|
152
|
+
test_group.metadata.delayed? &&
|
153
|
+
!test_group.metadata.searchable_delayed_resource?
|
154
|
+
groups.last.children.reject! { |child| child.include? USCoreTestKit::SearchTest }
|
155
|
+
groups.last.config(options: { read_all_resources: true })
|
156
|
+
end
|
153
157
|
end
|
154
158
|
|
155
|
-
group(from: id, exclude_optional: true, config: group_config)
|
156
|
-
end
|
157
|
-
|
158
159
|
groups.first.description %(
|
159
160
|
The Capability Statement test verifies a FHIR server's ability support the
|
160
161
|
[capabilities
|
@@ -166,27 +166,28 @@ module ONCCertificationG10TestKit
|
|
166
166
|
end
|
167
167
|
end
|
168
168
|
|
169
|
-
USCoreTestKit::USCoreV610::USCoreTestSuite
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
test_group.
|
181
|
-
|
182
|
-
|
169
|
+
USCoreTestKit::USCoreV610::USCoreTestSuite
|
170
|
+
.groups
|
171
|
+
.find { |g| g.title == 'US Core FHIR API' }
|
172
|
+
.groups
|
173
|
+
.each do |group|
|
174
|
+
test_group = group.ancestors[1]
|
175
|
+
|
176
|
+
next if test_group.optional?
|
177
|
+
|
178
|
+
group(from: test_group.id, exclude_optional: true)
|
179
|
+
|
180
|
+
if test_group.respond_to?(:metadata) && # rubocop:disable Style/Next
|
181
|
+
test_group.metadata.delayed? &&
|
182
|
+
!test_group.metadata.searchable_delayed_resource?
|
183
|
+
groups.last.children.reject! do |child|
|
184
|
+
child.include?(USCoreTestKit::SearchTest) &&
|
185
|
+
!child.include?(USCoreTestKit::PractitionerAddressTest)
|
186
|
+
end
|
187
|
+
groups.last.config(options: { read_all_resources: true })
|
183
188
|
end
|
184
|
-
group_config[:options] = { read_all_resources: true }
|
185
189
|
end
|
186
190
|
|
187
|
-
group(from: id, exclude_optional: true, config: group_config)
|
188
|
-
end
|
189
|
-
|
190
191
|
groups.first.description %(
|
191
192
|
The Capability Statement test verifies a FHIR server's ability support the
|
192
193
|
[capabilities
|
@@ -171,27 +171,28 @@ module ONCCertificationG10TestKit
|
|
171
171
|
end
|
172
172
|
end
|
173
173
|
|
174
|
-
USCoreTestKit::USCoreV700::USCoreTestSuite
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
test_group.
|
186
|
-
|
187
|
-
|
174
|
+
USCoreTestKit::USCoreV700::USCoreTestSuite
|
175
|
+
.groups
|
176
|
+
.find { |g| g.title == 'US Core FHIR API' }
|
177
|
+
.groups
|
178
|
+
.each do |group|
|
179
|
+
test_group = group.ancestors[1]
|
180
|
+
|
181
|
+
next if test_group.optional?
|
182
|
+
|
183
|
+
group(from: test_group.id, exclude_optional: true)
|
184
|
+
|
185
|
+
if test_group.respond_to?(:metadata) && # rubocop:disable Style/Next
|
186
|
+
test_group.metadata.delayed? &&
|
187
|
+
!test_group.metadata.searchable_delayed_resource?
|
188
|
+
groups.last.children.reject! do |child|
|
189
|
+
child.include?(USCoreTestKit::SearchTest) &&
|
190
|
+
!child.include?(USCoreTestKit::PractitionerAddressTest)
|
191
|
+
end
|
192
|
+
groups.last.config(options: { read_all_resources: true })
|
188
193
|
end
|
189
|
-
group_config[:options] = { read_all_resources: true }
|
190
194
|
end
|
191
195
|
|
192
|
-
group(from: id, exclude_optional: true, config: group_config)
|
193
|
-
end
|
194
|
-
|
195
196
|
groups.first.description %(
|
196
197
|
The Capability Statement test verifies a FHIR server's ability support the
|
197
198
|
[capabilities
|
@@ -5,7 +5,7 @@ module ONCCertificationG10TestKit
|
|
5
5
|
input_instructions %(
|
6
6
|
Register Inferno as a standalone application using the following information:
|
7
7
|
|
8
|
-
* Redirect URI: `#{
|
8
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
9
9
|
)
|
10
10
|
description %(
|
11
11
|
This scenario verifies that a SMART Launch Sequence, specifically the
|
@@ -33,7 +33,7 @@ module ONCCertificationG10TestKit
|
|
33
33
|
input_instructions %(
|
34
34
|
Register Inferno as a standalone application using the following information:
|
35
35
|
|
36
|
-
* Redirect URI: `#{
|
36
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
37
37
|
* JWKS URI (`jku`): `#{Inferno::Application[:base_url]}/custom/smart_stu2/.well-known/jwks.json`
|
38
38
|
|
39
39
|
Enter in the appropriate scopes to enable access to the Patient resource.
|
@@ -16,8 +16,8 @@ module ONCCertificationG10TestKit
|
|
16
16
|
Register Inferno as an EHR-launched application using patient-level scopes
|
17
17
|
and the following URIs:
|
18
18
|
|
19
|
-
* Launch URI: `#{
|
20
|
-
* Redirect URI: `#{
|
19
|
+
* Launch URI: `#{LAUNCH_URI}`
|
20
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
21
21
|
|
22
22
|
In this scenario, Inferno will attempt an EHR Launch with a clinical scope restricted to a
|
23
23
|
single patient and verify that a patient-level scope is granted and a
|
@@ -16,8 +16,8 @@ module ONCCertificationG10TestKit
|
|
16
16
|
Register Inferno as an EHR-launched application using patient-level scopes
|
17
17
|
and the following URIs:
|
18
18
|
|
19
|
-
* Launch URI: `#{
|
20
|
-
* Redirect URI: `#{
|
19
|
+
* Launch URI: `#{LAUNCH_URI}`
|
20
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
21
21
|
|
22
22
|
In this scenario, Inferno will attempt an EHR Launch with a clinical scope restricted to a
|
23
23
|
single patient and verify that a patient-level scope is granted and a
|
@@ -16,8 +16,8 @@ module ONCCertificationG10TestKit
|
|
16
16
|
Register Inferno as an EHR-launched application using patient-level scopes
|
17
17
|
and the following URIs:
|
18
18
|
|
19
|
-
* Launch URI: `#{
|
20
|
-
* Redirect URI: `#{
|
19
|
+
* Launch URI: `#{LAUNCH_URI}`
|
20
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
21
21
|
|
22
22
|
In this scenario, Inferno will attempt an EHR Launch with a clinical scope restricted to a
|
23
23
|
single patient and verify that a patient-level scope is granted and a
|
@@ -12,8 +12,8 @@ module ONCCertificationG10TestKit
|
|
12
12
|
input_instructions %(
|
13
13
|
Register Inferno as an EHR-launched application using the following information:
|
14
14
|
|
15
|
-
* Launch URI: `#{
|
16
|
-
* Redirect URI: `#{
|
15
|
+
* Launch URI: `#{LAUNCH_URI}`
|
16
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
17
17
|
|
18
18
|
Enter in the appropriate scope to enable user-level access to all relevant
|
19
19
|
resources. If using SMART v2, v2-style scopes must be used. In addition,
|
@@ -44,8 +44,8 @@ module ONCCertificationG10TestKit
|
|
44
44
|
Prior to running this test, register Inferno as an EHR-launched
|
45
45
|
application using the following information:
|
46
46
|
|
47
|
-
* Launch URI: `#{
|
48
|
-
* Redirect URI: `#{
|
47
|
+
* Launch URI: `#{LAUNCH_URI}`
|
48
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
49
49
|
|
50
50
|
For EHRs that use Internet Explorer 11 to display embedded apps,
|
51
51
|
please review [instructions on how to complete the EHR Practitioner App
|
@@ -6,7 +6,7 @@ module ONCCertificationG10TestKit
|
|
6
6
|
input_instructions %(
|
7
7
|
If necessary, register Inferno as a standalone application using the following information:
|
8
8
|
|
9
|
-
* Redirect URI: `#{
|
9
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
10
10
|
|
11
11
|
Inferno may be registered multiple times with different `client_ids`, or this
|
12
12
|
may reuse a single registration of Inferno.`
|
@@ -6,7 +6,7 @@ module ONCCertificationG10TestKit
|
|
6
6
|
input_instructions %(
|
7
7
|
If necessary, register Inferno as a standalone application using the following information:
|
8
8
|
|
9
|
-
* Redirect URI: `#{
|
9
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
10
10
|
|
11
11
|
Inferno may be registered multiple times with different `client_ids`, or this
|
12
12
|
may reuse a single registration of Inferno.`
|
@@ -6,7 +6,7 @@ module ONCCertificationG10TestKit
|
|
6
6
|
input_instructions %(
|
7
7
|
If necessary, register Inferno as a standalone application using the following information:
|
8
8
|
|
9
|
-
* Redirect URI: `#{
|
9
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
10
10
|
|
11
11
|
Inferno may be registered multiple times with different `client_ids`, or this
|
12
12
|
may reuse a single registration of Inferno.`
|
@@ -6,7 +6,7 @@ module ONCCertificationG10TestKit
|
|
6
6
|
input_instructions %(
|
7
7
|
If necessary, register Inferno as a standalone application using the following information:
|
8
8
|
|
9
|
-
* Redirect URI: `#{
|
9
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
10
10
|
|
11
11
|
Inferno may be registered multiple times with different `client_ids`, or this
|
12
12
|
may reuse a single registration of Inferno.`
|
@@ -10,10 +10,10 @@ module ONCCertificationG10TestKit
|
|
10
10
|
input_instructions %(
|
11
11
|
If necessary, register Inferno as a standalone application using the following information:
|
12
12
|
|
13
|
-
* Redirect URI: `#{
|
13
|
+
* Redirect URI: `#{REDIRECT_URI}`
|
14
14
|
|
15
15
|
Once the test is running, Inferno will perform a launch. The tester must grant
|
16
|
-
a sub-resource scope for each
|
16
|
+
a sub-resource scope for each Condition and Observation, instead of granting
|
17
17
|
access to all Condition and Observation resources:
|
18
18
|
|
19
19
|
* “Condition” sub-resource scopes “Encounter Diagnosis”, “Problem List”,
|
@@ -128,7 +128,7 @@ module ONCCertificationG10TestKit
|
|
128
128
|
[Follow this link to authorize with the SMART server](#{auth_url}).
|
129
129
|
|
130
130
|
Tests will resume once Inferno receives a request at
|
131
|
-
`#{
|
131
|
+
`#{REDIRECT_URI}` with a state of `#{state}`.
|
132
132
|
)
|
133
133
|
end,
|
134
134
|
ignore_missing_scopes_check: true
|
@@ -190,7 +190,7 @@ module ONCCertificationG10TestKit
|
|
190
190
|
[Follow this link to authorize with the SMART server](#{auth_url}).
|
191
191
|
|
192
192
|
Tests will resume once Inferno receives a request at
|
193
|
-
`#{
|
193
|
+
`#{REDIRECT_URI}` with a state of `#{state}`.
|
194
194
|
)
|
195
195
|
end,
|
196
196
|
ignore_missing_scopes_check: true
|