onc_certification_g10_test_kit 2.0.0.rc1
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 +7 -0
- data/LICENSE +201 -0
- data/lib/inferno/exceptions.rb +31 -0
- data/lib/inferno/ext/bloomer.rb +24 -0
- data/lib/inferno/repositiories/validators.rb +17 -0
- data/lib/inferno/repositiories/value_sets.rb +26 -0
- data/lib/inferno/terminology/bcp47.rb +95 -0
- data/lib/inferno/terminology/bcp_13.rb +26 -0
- data/lib/inferno/terminology/codesystem.rb +49 -0
- data/lib/inferno/terminology/expected_manifest.yml +1123 -0
- data/lib/inferno/terminology/fhir_package_manager.rb +69 -0
- data/lib/inferno/terminology/loader.rb +298 -0
- data/lib/inferno/terminology/tasks/check_built_terminology.rb +77 -0
- data/lib/inferno/terminology/tasks/cleanup.rb +13 -0
- data/lib/inferno/terminology/tasks/cleanup_precursors.rb +23 -0
- data/lib/inferno/terminology/tasks/count_codes_in_value_set.rb +20 -0
- data/lib/inferno/terminology/tasks/create_value_set_validators.rb +34 -0
- data/lib/inferno/terminology/tasks/download_fhir_terminology.rb +27 -0
- data/lib/inferno/terminology/tasks/download_umls.rb +109 -0
- data/lib/inferno/terminology/tasks/download_umls_notice.rb +20 -0
- data/lib/inferno/terminology/tasks/expand_value_set_to_file.rb +36 -0
- data/lib/inferno/terminology/tasks/process_umls.rb +91 -0
- data/lib/inferno/terminology/tasks/process_umls_translations.rb +85 -0
- data/lib/inferno/terminology/tasks/run_umls_jar.rb +75 -0
- data/lib/inferno/terminology/tasks/temp_dir.rb +27 -0
- data/lib/inferno/terminology/tasks/unzip_umls.rb +42 -0
- data/lib/inferno/terminology/tasks/validate_code.rb +36 -0
- data/lib/inferno/terminology/tasks.rb +11 -0
- data/lib/inferno/terminology/terminology_configuration.rb +52 -0
- data/lib/inferno/terminology/terminology_validation.rb +42 -0
- data/lib/inferno/terminology/validator.rb +64 -0
- data/lib/inferno/terminology/value_set.rb +462 -0
- data/lib/inferno/terminology.rb +16 -0
- data/lib/onc_certification_g10_test_kit/authorization_request_builder.rb +87 -0
- data/lib/onc_certification_g10_test_kit/base_token_refresh_group.rb +48 -0
- data/lib/onc_certification_g10_test_kit/bulk_data_authorization.rb +235 -0
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export.rb +255 -0
- data/lib/onc_certification_g10_test_kit/bulk_data_group_export_validation.rb +474 -0
- data/lib/onc_certification_g10_test_kit/bulk_data_jwks.json +58 -0
- data/lib/onc_certification_g10_test_kit/bulk_export_validation_tester.rb +171 -0
- data/lib/onc_certification_g10_test_kit/configuration_checker.rb +104 -0
- data/lib/onc_certification_g10_test_kit/export_kick_off_performer.rb +12 -0
- data/lib/onc_certification_g10_test_kit/igs/StructureDefinition-bodyheight.json +3772 -0
- data/lib/onc_certification_g10_test_kit/igs/StructureDefinition-bodytemp.json +3772 -0
- data/lib/onc_certification_g10_test_kit/igs/StructureDefinition-bodyweight.json +3772 -0
- data/lib/onc_certification_g10_test_kit/igs/StructureDefinition-bp.json +6034 -0
- data/lib/onc_certification_g10_test_kit/igs/StructureDefinition-heartrate.json +3756 -0
- data/lib/onc_certification_g10_test_kit/igs/StructureDefinition-resprate.json +3756 -0
- data/lib/onc_certification_g10_test_kit/limited_scope_grant_test.rb +66 -0
- data/lib/onc_certification_g10_test_kit/multi_patient_api.rb +43 -0
- data/lib/onc_certification_g10_test_kit/patient_context_test.rb +30 -0
- data/lib/onc_certification_g10_test_kit/profile_guesser.rb +69 -0
- data/lib/onc_certification_g10_test_kit/resource_access_test.rb +96 -0
- data/lib/onc_certification_g10_test_kit/restricted_access_test.rb +12 -0
- data/lib/onc_certification_g10_test_kit/restricted_resource_type_access_group.rb +303 -0
- data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +136 -0
- data/lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb +209 -0
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group.rb +197 -0
- data/lib/onc_certification_g10_test_kit/smart_limited_app_group.rb +123 -0
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group.rb +113 -0
- data/lib/onc_certification_g10_test_kit/smart_scopes_test.rb +153 -0
- data/lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb +177 -0
- data/lib/onc_certification_g10_test_kit/terminology_binding_validator.rb +140 -0
- data/lib/onc_certification_g10_test_kit/token_revocation_group.rb +133 -0
- data/lib/onc_certification_g10_test_kit/unauthorized_access_test.rb +25 -0
- data/lib/onc_certification_g10_test_kit/unrestricted_resource_type_access_group.rb +375 -0
- data/lib/onc_certification_g10_test_kit/version.rb +3 -0
- data/lib/onc_certification_g10_test_kit/visual_inspection_and_attestations_group.rb +470 -0
- data/lib/onc_certification_g10_test_kit/well_known_capabilities_test.rb +37 -0
- data/lib/onc_certification_g10_test_kit.rb +223 -0
- metadata +310 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
module ONCCertificationG10TestKit
|
|
2
|
+
class TokenRevocationGroup < Inferno::TestGroup
|
|
3
|
+
title 'Token Revocation'
|
|
4
|
+
description 'Demonstrate the Health IT module is capable of revoking access granted to an application.'
|
|
5
|
+
id :g10_token_revocation
|
|
6
|
+
run_as_group
|
|
7
|
+
input :token_revocation_attestation,
|
|
8
|
+
title: 'Prior to executing test, Health IT developer demonstrated revoking tokens provided during patient standalone launch.', # rubocop:disable Layout/LineLength
|
|
9
|
+
type: 'radio',
|
|
10
|
+
default: 'false',
|
|
11
|
+
options: {
|
|
12
|
+
list_options: [
|
|
13
|
+
{
|
|
14
|
+
label: 'Yes',
|
|
15
|
+
value: 'true'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
label: 'No',
|
|
19
|
+
value: 'false'
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
input :token_revocation_notes,
|
|
24
|
+
title: 'Notes, if applicable:',
|
|
25
|
+
type: 'textarea',
|
|
26
|
+
optional: true
|
|
27
|
+
input :url, :access_token, :refresh_token, :smart_token_url, :patient_id, :client_id, :client_secret
|
|
28
|
+
|
|
29
|
+
config(
|
|
30
|
+
inputs: {
|
|
31
|
+
url: {
|
|
32
|
+
title: 'FHIR Endpoint',
|
|
33
|
+
description: 'URL of the FHIR endpoint used by standalone applications'
|
|
34
|
+
},
|
|
35
|
+
smart_token_url: {
|
|
36
|
+
title: 'OAuth 2.0 Token Endpoint',
|
|
37
|
+
description: 'OAuth token endpoint provided during the patient standalone launch'
|
|
38
|
+
},
|
|
39
|
+
access_token: {
|
|
40
|
+
name: :standalone_access_token,
|
|
41
|
+
title: 'Revoked Bearer Token',
|
|
42
|
+
description: 'Prior to the test, please revoke this bearer token from patient standalone launch.'
|
|
43
|
+
},
|
|
44
|
+
refresh_token: {
|
|
45
|
+
name: :standalone_refresh_token,
|
|
46
|
+
title: 'Revoked Refresh Token',
|
|
47
|
+
description: 'Prior to the test, please revoke this refresh token from patient standalone launch.'
|
|
48
|
+
},
|
|
49
|
+
patient_id: {
|
|
50
|
+
name: :standalone_patient_id,
|
|
51
|
+
title: 'Patient ID',
|
|
52
|
+
description: 'Patient ID associated with revoked tokens provided as context in the patient standalone launch. This will be used to verify access is no longer granted using the revoked token.' # rubocop:disable Layout/LineLength
|
|
53
|
+
},
|
|
54
|
+
client_id: {
|
|
55
|
+
name: :standalone_client_id,
|
|
56
|
+
title: 'Standalone Client ID',
|
|
57
|
+
description: 'Client ID provided during registration of Inferno as a standalone application',
|
|
58
|
+
locked: true
|
|
59
|
+
},
|
|
60
|
+
client_secret: {
|
|
61
|
+
name: :standalone_client_secret,
|
|
62
|
+
title: 'Standalone Client Secret',
|
|
63
|
+
description: 'Client Secret provided during registration of Inferno as a standalone application',
|
|
64
|
+
locked: true
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
test do
|
|
70
|
+
title 'Health IT developer demonstrated the ability of the Health IT Module to revoke tokens.'
|
|
71
|
+
description %(
|
|
72
|
+
Health IT developer demonstrated the ability of the Health IT Module /
|
|
73
|
+
authorization server to revoke tokens.
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
run do
|
|
77
|
+
assert token_revocation_attestation == 'true',
|
|
78
|
+
'Health IT Module did not demonstrate support for application registration for single patients.'
|
|
79
|
+
pass token_revocation_notes if token_revocation_notes.present?
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
test do
|
|
84
|
+
title 'Access to Patient resource returns unauthorized after token revocation.'
|
|
85
|
+
description %(
|
|
86
|
+
This test checks that the Patient resource returns unuathorized after token revocation.
|
|
87
|
+
)
|
|
88
|
+
|
|
89
|
+
fhir_client :revoked_token do
|
|
90
|
+
url :url
|
|
91
|
+
bearer_token :access_token
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
run do
|
|
95
|
+
skip_if patient_id.blank?,
|
|
96
|
+
'Patient ID not provided to test. The patient ID is typically provided ' \
|
|
97
|
+
'during a SMART launch context.'
|
|
98
|
+
skip_if access_token.blank?,
|
|
99
|
+
'Bearer token not provided. This test verifies that the bearer token can ' \
|
|
100
|
+
'no longer be used to access a Patient resource.'
|
|
101
|
+
|
|
102
|
+
fhir_read(:patient, patient_id, client: :revoked_token)
|
|
103
|
+
|
|
104
|
+
assert_response_status([401, 403, 404])
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
test do
|
|
109
|
+
title 'Token refresh fails after token revocation.'
|
|
110
|
+
description %(
|
|
111
|
+
This test checks that refreshing token fails after token revokation.
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
run do
|
|
115
|
+
skip_if refresh_token.blank?,
|
|
116
|
+
'Refresh token not provided to test.'
|
|
117
|
+
oauth2_params = {
|
|
118
|
+
'grant_type' => 'refresh_token',
|
|
119
|
+
'refresh_token' => refresh_token
|
|
120
|
+
}
|
|
121
|
+
client_credentials = "#{client_id}:#{client_secret}"
|
|
122
|
+
oauth2_headers = {
|
|
123
|
+
'Content-Type' => 'application/x-www-form-urlencoded',
|
|
124
|
+
'Authorization' => "Basic #{Base64.strict_encode64(client_credentials)}"
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
post(smart_token_url, body: oauth2_params, headers: oauth2_headers)
|
|
128
|
+
|
|
129
|
+
assert_response_status([400, 401])
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module ONCCertificationG10TestKit
|
|
2
|
+
class UnauthorizedAccessTest < Inferno::Test
|
|
3
|
+
title 'Server rejects unauthorized access'
|
|
4
|
+
description %(
|
|
5
|
+
A server SHALL reject any unauthorized requests by returning an HTTP 401
|
|
6
|
+
unauthorized response code.
|
|
7
|
+
)
|
|
8
|
+
id :g10_unauthorized_access
|
|
9
|
+
input :patient_id, :url
|
|
10
|
+
uses_request :token
|
|
11
|
+
|
|
12
|
+
fhir_client :unauthenticated do
|
|
13
|
+
url :url
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
run do
|
|
17
|
+
skip_if request.status != 200, 'Token exchange was unsuccessful'
|
|
18
|
+
skip_if patient_id.blank?, 'Patient context expected to verify unauthorized read.'
|
|
19
|
+
|
|
20
|
+
fhir_read(:patient, patient_id, client: :unauthenticated)
|
|
21
|
+
|
|
22
|
+
assert_response_status(401)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
require_relative 'resource_access_test'
|
|
2
|
+
|
|
3
|
+
module ONCCertificationG10TestKit
|
|
4
|
+
class UnrestrictedResourceTypeAccessGroup < Inferno::TestGroup
|
|
5
|
+
title 'Unrestricted Resource Type Access'
|
|
6
|
+
description %(
|
|
7
|
+
This test ensures that apps have full access to USCDI resources if granted
|
|
8
|
+
access by the tester. The tester must grant access to the following
|
|
9
|
+
resources during the SMART Launch process, and this test ensures they all
|
|
10
|
+
can be accessed:
|
|
11
|
+
|
|
12
|
+
* AllergyIntolerance
|
|
13
|
+
* CarePlan
|
|
14
|
+
* CareTeam
|
|
15
|
+
* Condition
|
|
16
|
+
* Device
|
|
17
|
+
* DiagnosticReport
|
|
18
|
+
* DocumentReference
|
|
19
|
+
* Goal
|
|
20
|
+
* Immunization
|
|
21
|
+
* MedicationRequest
|
|
22
|
+
* Observation
|
|
23
|
+
* Procedure
|
|
24
|
+
* Patient
|
|
25
|
+
* Provenance
|
|
26
|
+
* Encounter
|
|
27
|
+
* Practitioner
|
|
28
|
+
* Organization
|
|
29
|
+
|
|
30
|
+
For each of the resource types that can be mapped to USCDI data class or
|
|
31
|
+
elements, this set of tests performs a minimum number of requests to
|
|
32
|
+
determine that the resource type can be accessed given the scope granted.
|
|
33
|
+
In the case of the Patient resource, this test simply performs a read
|
|
34
|
+
request. For other resources, it performs a search by patient that must be
|
|
35
|
+
supported by the server. In some cases, servers can return an error
|
|
36
|
+
message if a status search parameter is not provided. For these, the test
|
|
37
|
+
will perform an additional search with the required status search
|
|
38
|
+
parameter.
|
|
39
|
+
|
|
40
|
+
This set of tests does not attempt to access resources that do not
|
|
41
|
+
directly map to USCDI v1, including Encounter, Location, Organization, and
|
|
42
|
+
Practitioner. It also does not test Provenance, as this resource type is
|
|
43
|
+
accessed by queries through other resource types. These resources types
|
|
44
|
+
are accessed in the more comprehensive Single Patient Query tests.
|
|
45
|
+
|
|
46
|
+
However, the authorization system must indicate that access is granted to
|
|
47
|
+
the Encounter, Practitioner and Organization resource types by providing
|
|
48
|
+
them in the returned scopes because they are required to support the read
|
|
49
|
+
interaction.
|
|
50
|
+
)
|
|
51
|
+
id :g10_unrestricted_resource_type_access
|
|
52
|
+
|
|
53
|
+
input :url, :smart_credentials, :patient_id, :received_scopes
|
|
54
|
+
input :smart_credentials, type: :oauth_credentials
|
|
55
|
+
|
|
56
|
+
fhir_client do
|
|
57
|
+
url :url
|
|
58
|
+
oauth_credentials :smart_credentials
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
test do
|
|
62
|
+
title 'Scope granted enables access to all US Core resource types.'
|
|
63
|
+
description %(
|
|
64
|
+
This test confirms that the scopes granted during authorization are
|
|
65
|
+
sufficient to access all relevant US Core resources.
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
def all_resources
|
|
69
|
+
[
|
|
70
|
+
'AllergyIntolerance',
|
|
71
|
+
'CarePlan',
|
|
72
|
+
'CareTeam',
|
|
73
|
+
'Condition',
|
|
74
|
+
'Device',
|
|
75
|
+
'DiagnosticReport',
|
|
76
|
+
'DocumentReference',
|
|
77
|
+
'Goal',
|
|
78
|
+
'Immunization',
|
|
79
|
+
'MedicationRequest',
|
|
80
|
+
'Observation',
|
|
81
|
+
'Procedure',
|
|
82
|
+
'Patient',
|
|
83
|
+
'Provenance',
|
|
84
|
+
'Encounter',
|
|
85
|
+
'Practitioner',
|
|
86
|
+
'Organization'
|
|
87
|
+
]
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def non_patient_compartment_resources
|
|
91
|
+
[
|
|
92
|
+
'Encounter',
|
|
93
|
+
'Device',
|
|
94
|
+
'Location',
|
|
95
|
+
'Medication',
|
|
96
|
+
'Organization',
|
|
97
|
+
'Practitioner',
|
|
98
|
+
'PractitionerRole',
|
|
99
|
+
'RelatedPerson'
|
|
100
|
+
]
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def scope_granting_access?(resource_type)
|
|
104
|
+
received_scopes.split.find do |scope|
|
|
105
|
+
return true if non_patient_compartment_resources.include?(resource_type) &&
|
|
106
|
+
["user/#{resource_type}.read", "user/#{resource_type}.*"].include?(scope)
|
|
107
|
+
|
|
108
|
+
[
|
|
109
|
+
'patient/*.read',
|
|
110
|
+
'patient/*.*',
|
|
111
|
+
"patient/#{resource_type}.read",
|
|
112
|
+
"patient/#{resource_type}.*"
|
|
113
|
+
].include?(scope)
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
run do
|
|
118
|
+
skip_if received_scopes.blank?, 'A list of granted scopes was not provided to this test as required.'
|
|
119
|
+
|
|
120
|
+
allowed_resources = all_resources.select { |resource_type| scope_granting_access?(resource_type) }
|
|
121
|
+
denied_resources = all_resources - allowed_resources
|
|
122
|
+
|
|
123
|
+
assert denied_resources.empty?, %(
|
|
124
|
+
This test requires access to all US Core resources with patient
|
|
125
|
+
information, but the received scope:
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
`#{received_scopes}`
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
does not grant access to the `#{denied_resources.join(', ')}` resource
|
|
134
|
+
type(s).
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
pass 'Scopes received indicate access to all necessary resources.'
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
test from: :g10_resource_access_test do
|
|
142
|
+
title 'Access to Patient resources granted'
|
|
143
|
+
description %(
|
|
144
|
+
This test ensures that access to the Patient is granted or
|
|
145
|
+
denied based on the selection by the tester prior to the execution of
|
|
146
|
+
the test. If the tester indicated that access will be granted to this
|
|
147
|
+
resource, this test verifies that a search by patient in this resource
|
|
148
|
+
does not result in an access denied result. If the tester indicated that
|
|
149
|
+
access will be denied for this resource, this verifies that search by
|
|
150
|
+
patient in the resource results in an access denied result.
|
|
151
|
+
)
|
|
152
|
+
id :g10_patient_unrestricted_access
|
|
153
|
+
|
|
154
|
+
def resource_group
|
|
155
|
+
USCoreTestKit::PatientGroup
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
test from: :g10_resource_access_test do
|
|
160
|
+
title 'Access to AllergyIntolerance resources granted'
|
|
161
|
+
description %(
|
|
162
|
+
This test ensures that access to the AllergyIntolerance is granted or
|
|
163
|
+
denied based on the selection by the tester prior to the execution of
|
|
164
|
+
the test. If the tester indicated that access will be granted to this
|
|
165
|
+
resource, this test verifies that a search by patient in this resource
|
|
166
|
+
does not result in an access denied result. If the tester indicated that
|
|
167
|
+
access will be denied for this resource, this verifies that search by
|
|
168
|
+
patient in the resource results in an access denied result.
|
|
169
|
+
)
|
|
170
|
+
id :g10_allergy_intolerance_unrestricted_access
|
|
171
|
+
|
|
172
|
+
def resource_group
|
|
173
|
+
USCoreTestKit::AllergyIntoleranceGroup
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
test from: :g10_resource_access_test do
|
|
178
|
+
title 'Access to CarePlan resources granted'
|
|
179
|
+
description %(
|
|
180
|
+
This test ensures that access to the CarePlan is granted or
|
|
181
|
+
denied based on the selection by the tester prior to the execution of
|
|
182
|
+
the test. If the tester indicated that access will be granted to this
|
|
183
|
+
resource, this test verifies that a search by patient in this resource
|
|
184
|
+
does not result in an access denied result. If the tester indicated that
|
|
185
|
+
access will be denied for this resource, this verifies that search by
|
|
186
|
+
patient in the resource results in an access denied result.
|
|
187
|
+
)
|
|
188
|
+
id :g10_care_plan_unrestricted_access
|
|
189
|
+
|
|
190
|
+
def resource_group
|
|
191
|
+
USCoreTestKit::CarePlanGroup
|
|
192
|
+
end
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
test from: :g10_resource_access_test do
|
|
196
|
+
title 'Access to CareTeam resources granted'
|
|
197
|
+
description %(
|
|
198
|
+
This test ensures that access to the CareTeam is granted or
|
|
199
|
+
denied based on the selection by the tester prior to the execution of
|
|
200
|
+
the test. If the tester indicated that access will be granted to this
|
|
201
|
+
resource, this test verifies that a search by patient in this resource
|
|
202
|
+
does not result in an access denied result. If the tester indicated that
|
|
203
|
+
access will be denied for this resource, this verifies that search by
|
|
204
|
+
patient in the resource results in an access denied result.
|
|
205
|
+
)
|
|
206
|
+
id :g10_care_team_unrestricted_access
|
|
207
|
+
|
|
208
|
+
def resource_group
|
|
209
|
+
USCoreTestKit::CareTeamGroup
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
test from: :g10_resource_access_test do
|
|
214
|
+
title 'Access to Condition resources granted'
|
|
215
|
+
description %(
|
|
216
|
+
This test ensures that access to the Condition is granted or
|
|
217
|
+
denied based on the selection by the tester prior to the execution of
|
|
218
|
+
the test. If the tester indicated that access will be granted to this
|
|
219
|
+
resource, this test verifies that a search by patient in this resource
|
|
220
|
+
does not result in an access denied result. If the tester indicated that
|
|
221
|
+
access will be denied for this resource, this verifies that search by
|
|
222
|
+
patient in the resource results in an access denied result.
|
|
223
|
+
)
|
|
224
|
+
id :g10_condition_unrestricted_access
|
|
225
|
+
|
|
226
|
+
def resource_group
|
|
227
|
+
USCoreTestKit::ConditionGroup
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
test from: :g10_resource_access_test do
|
|
232
|
+
title 'Access to Device resources granted'
|
|
233
|
+
description %(
|
|
234
|
+
This test ensures that access to the Device is granted or
|
|
235
|
+
denied based on the selection by the tester prior to the execution of
|
|
236
|
+
the test. If the tester indicated that access will be granted to this
|
|
237
|
+
resource, this test verifies that a search by patient in this resource
|
|
238
|
+
does not result in an access denied result. If the tester indicated that
|
|
239
|
+
access will be denied for this resource, this verifies that search by
|
|
240
|
+
patient in the resource results in an access denied result.
|
|
241
|
+
)
|
|
242
|
+
id :g10_device_unrestricted_access
|
|
243
|
+
|
|
244
|
+
def resource_group
|
|
245
|
+
USCoreTestKit::DeviceGroup
|
|
246
|
+
end
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
test from: :g10_resource_access_test do
|
|
250
|
+
title 'Access to DiagnosticReport resources granted'
|
|
251
|
+
description %(
|
|
252
|
+
This test ensures that access to the DiagnosticReport is granted or
|
|
253
|
+
denied based on the selection by the tester prior to the execution of
|
|
254
|
+
the test. If the tester indicated that access will be granted to this
|
|
255
|
+
resource, this test verifies that a search by patient in this resource
|
|
256
|
+
does not result in an access denied result. If the tester indicated that
|
|
257
|
+
access will be denied for this resource, this verifies that search by
|
|
258
|
+
patient in the resource results in an access denied result.
|
|
259
|
+
)
|
|
260
|
+
id :g10_diagnostic_report_unrestricted_access
|
|
261
|
+
|
|
262
|
+
def resource_group
|
|
263
|
+
USCoreTestKit::DiagnosticReportLabGroup
|
|
264
|
+
end
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
test from: :g10_resource_access_test do
|
|
268
|
+
title 'Access to DocumentReference resources granted'
|
|
269
|
+
description %(
|
|
270
|
+
This test ensures that access to the DocumentReference is granted or
|
|
271
|
+
denied based on the selection by the tester prior to the execution of
|
|
272
|
+
the test. If the tester indicated that access will be granted to this
|
|
273
|
+
resource, this test verifies that a search by patient in this resource
|
|
274
|
+
does not result in an access denied result. If the tester indicated that
|
|
275
|
+
access will be denied for this resource, this verifies that search by
|
|
276
|
+
patient in the resource results in an access denied result.
|
|
277
|
+
)
|
|
278
|
+
id :g10_document_reference_unrestricted_access
|
|
279
|
+
|
|
280
|
+
def resource_group
|
|
281
|
+
USCoreTestKit::DocumentReferenceGroup
|
|
282
|
+
end
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
test from: :g10_resource_access_test do
|
|
286
|
+
title 'Access to Goal resources granted'
|
|
287
|
+
description %(
|
|
288
|
+
This test ensures that access to the Goal is granted or
|
|
289
|
+
denied based on the selection by the tester prior to the execution of
|
|
290
|
+
the test. If the tester indicated that access will be granted to this
|
|
291
|
+
resource, this test verifies that a search by patient in this resource
|
|
292
|
+
does not result in an access denied result. If the tester indicated that
|
|
293
|
+
access will be denied for this resource, this verifies that search by
|
|
294
|
+
patient in the resource results in an access denied result.
|
|
295
|
+
)
|
|
296
|
+
id :g10_goal_unrestricted_access
|
|
297
|
+
|
|
298
|
+
def resource_group
|
|
299
|
+
USCoreTestKit::GoalGroup
|
|
300
|
+
end
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
test from: :g10_resource_access_test do
|
|
304
|
+
title 'Access to Immunization resources granted'
|
|
305
|
+
description %(
|
|
306
|
+
This test ensures that access to the Immunization is granted or
|
|
307
|
+
denied based on the selection by the tester prior to the execution of
|
|
308
|
+
the test. If the tester indicated that access will be granted to this
|
|
309
|
+
resource, this test verifies that a search by patient in this resource
|
|
310
|
+
does not result in an access denied result. If the tester indicated that
|
|
311
|
+
access will be denied for this resource, this verifies that search by
|
|
312
|
+
patient in the resource results in an access denied result.
|
|
313
|
+
)
|
|
314
|
+
id :g10_immunization_unrestricted_access
|
|
315
|
+
|
|
316
|
+
def resource_group
|
|
317
|
+
USCoreTestKit::ImmunizationGroup
|
|
318
|
+
end
|
|
319
|
+
end
|
|
320
|
+
|
|
321
|
+
test from: :g10_resource_access_test do
|
|
322
|
+
title 'Access to MedicationRequest resources granted'
|
|
323
|
+
description %(
|
|
324
|
+
This test ensures that access to the MedicationRequest is granted or
|
|
325
|
+
denied based on the selection by the tester prior to the execution of
|
|
326
|
+
the test. If the tester indicated that access will be granted to this
|
|
327
|
+
resource, this test verifies that a search by patient in this resource
|
|
328
|
+
does not result in an access denied result. If the tester indicated that
|
|
329
|
+
access will be denied for this resource, this verifies that search by
|
|
330
|
+
patient in the resource results in an access denied result.
|
|
331
|
+
)
|
|
332
|
+
id :g10_medication_request_access
|
|
333
|
+
|
|
334
|
+
def resource_group
|
|
335
|
+
USCoreTestKit::MedicationRequestGroup
|
|
336
|
+
end
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
test from: :g10_resource_access_test do
|
|
340
|
+
title 'Access to Observation resources granted'
|
|
341
|
+
description %(
|
|
342
|
+
This test ensures that access to the Observation is granted or
|
|
343
|
+
denied based on the selection by the tester prior to the execution of
|
|
344
|
+
the test. If the tester indicated that access will be granted to this
|
|
345
|
+
resource, this test verifies that a search by patient in this resource
|
|
346
|
+
does not result in an access denied result. If the tester indicated that
|
|
347
|
+
access will be denied for this resource, this verifies that search by
|
|
348
|
+
patient in the resource results in an access denied result.
|
|
349
|
+
)
|
|
350
|
+
id :g10_observation_unrestricted_access
|
|
351
|
+
|
|
352
|
+
def resource_group
|
|
353
|
+
USCoreTestKit::PulseOximetryGroup
|
|
354
|
+
end
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
test from: :g10_resource_access_test do
|
|
358
|
+
title 'Access to Procedure resources granted'
|
|
359
|
+
description %(
|
|
360
|
+
This test ensures that access to the Procedure is granted or
|
|
361
|
+
denied based on the selection by the tester prior to the execution of
|
|
362
|
+
the test. If the tester indicated that access will be granted to this
|
|
363
|
+
resource, this test verifies that a search by patient in this resource
|
|
364
|
+
does not result in an access denied result. If the tester indicated that
|
|
365
|
+
access will be denied for this resource, this verifies that search by
|
|
366
|
+
patient in the resource results in an access denied result.
|
|
367
|
+
)
|
|
368
|
+
id :g10_procedure_unrestricted_access
|
|
369
|
+
|
|
370
|
+
def resource_group
|
|
371
|
+
USCoreTestKit::ProcedureGroup
|
|
372
|
+
end
|
|
373
|
+
end
|
|
374
|
+
end
|
|
375
|
+
end
|