onc_certification_g10_test_kit 5.4.2 → 6.0.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/lib/onc_certification_g10_test_kit/base_token_refresh_stu2_group.rb +49 -0
- data/lib/onc_certification_g10_test_kit/multi_patient_api_stu1.rb +13 -8
- data/lib/onc_certification_g10_test_kit/multi_patient_api_stu2.rb +12 -7
- data/lib/onc_certification_g10_test_kit/onc_program_procedure.yml +448 -468
- data/lib/onc_certification_g10_test_kit/short_id_map.yml +227 -17
- data/lib/onc_certification_g10_test_kit/single_patient_api_group.rb +6 -1
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_4_api_group.rb +6 -1
- data/lib/onc_certification_g10_test_kit/single_patient_us_core_6_api_group.rb +8 -5
- data/lib/onc_certification_g10_test_kit/smart_app_launch_invalid_aud_group.rb +16 -17
- data/lib/onc_certification_g10_test_kit/smart_asymmetric_launch_group.rb +194 -0
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group.rb +2 -4
- data/lib/onc_certification_g10_test_kit/smart_ehr_patient_launch_group_stu2.rb +7 -6
- data/lib/onc_certification_g10_test_kit/smart_ehr_practitioner_app_group.rb +23 -7
- data/lib/onc_certification_g10_test_kit/smart_fine_grained_scopes_group.rb +188 -0
- data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_group.rb +150 -0
- data/lib/onc_certification_g10_test_kit/smart_granular_scope_selection_test.rb +53 -0
- data/lib/onc_certification_g10_test_kit/smart_invalid_pkce_group.rb +6 -7
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group.rb +8 -10
- data/lib/onc_certification_g10_test_kit/smart_invalid_token_group_stu2.rb +7 -9
- data/lib/onc_certification_g10_test_kit/smart_limited_app_group.rb +5 -3
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group.rb +14 -16
- data/lib/onc_certification_g10_test_kit/smart_public_standalone_launch_group_stu2.rb +28 -4
- data/lib/onc_certification_g10_test_kit/smart_scopes_test.rb +34 -25
- data/lib/onc_certification_g10_test_kit/smart_standalone_patient_app_group.rb +20 -9
- data/lib/onc_certification_g10_test_kit/smart_v1_scopes_group.rb +241 -0
- data/lib/onc_certification_g10_test_kit/tasks/generate_matrix.rb +75 -51
- data/lib/onc_certification_g10_test_kit/token_introspection_group.rb +110 -0
- data/lib/onc_certification_g10_test_kit/token_revocation_group.rb +1 -1
- data/lib/onc_certification_g10_test_kit/version.rb +1 -1
- data/lib/onc_certification_g10_test_kit/visual_inspection_and_attestations_group.rb +57 -37
- data/lib/onc_certification_g10_test_kit.rb +84 -18
- metadata +13 -6
@@ -1909,6 +1909,8 @@ g10_certification-g10_single_patient_us_core_6_api-us_core_v610_specimen-us_core
|
|
1909
1909
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v400_clinical_notes_guidance: '10.45'
|
1910
1910
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v400_clinical_notes_guidance-us_core_clinical_note_types: 10.45.01
|
1911
1911
|
g10_certification-g10_single_patient_us_core_6_api-us_core_v400_clinical_notes_guidance-us_core_clinical_note_attachments: 10.45.02
|
1912
|
+
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_screening_assessment: '10.47'
|
1913
|
+
g10_certification-g10_single_patient_us_core_6_api-us_core_v610_screening_assessment-us_core_screening_assessment_category: 10.47.01
|
1912
1914
|
g10_certification-g10_single_patient_us_core_6_api-us_core_311_data_absent_reason: '10.46'
|
1913
1915
|
g10_certification-g10_single_patient_us_core_6_api-us_core_311_data_absent_reason-us_core_311_data_absent_reason_extension: 10.46.01
|
1914
1916
|
g10_certification-g10_single_patient_us_core_6_api-us_core_311_data_absent_reason-us_core_311_data_absent_reason_code_system: 10.46.02
|
@@ -2103,20 +2105,228 @@ g10_certification-Group06-g10_ehr_patient_launch_stu2-smart_token_response_body:
|
|
2103
2105
|
g10_certification-Group06-g10_ehr_patient_launch_stu2-smart_token_response_headers: 9.9.09
|
2104
2106
|
g10_certification-Group06-g10_ehr_patient_launch_stu2-g10_patient_context: 9.9.10
|
2105
2107
|
g10_certification-Group06-g10_ehr_patient_launch_stu2-g10_patient_scope: 9.9.11
|
2106
|
-
g10_certification-Group06-
|
2107
|
-
g10_certification-Group06-
|
2108
|
-
g10_certification-Group06-
|
2109
|
-
g10_certification-Group06-
|
2110
|
-
|
2111
|
-
g10_certification-Group06-
|
2112
|
-
|
2113
|
-
g10_certification-Group06-
|
2114
|
-
g10_certification-Group06-
|
2115
|
-
|
2116
|
-
g10_certification-Group06-
|
2117
|
-
|
2118
|
-
g10_certification-Group06-
|
2119
|
-
|
2120
|
-
g10_certification-Group06-
|
2121
|
-
|
2122
|
-
g10_certification-Group06-
|
2108
|
+
g10_certification-Group06-g10_token_introspection: '9.11'
|
2109
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group: 9.11.1
|
2110
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_discovery_stu2: 9.11.1.1
|
2111
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_discovery_stu2-well_known_endpoint
|
2112
|
+
: 9.11.1.1.01
|
2113
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_discovery_stu2-well_known_capabilities_stu2
|
2114
|
+
: 9.11.1.1.02
|
2115
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch_stu2: 9.11.1.2
|
2116
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch_stu2-standalone_auth_tls
|
2117
|
+
: 9.11.1.2.01
|
2118
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch_stu2-smart_app_redirect_stu2
|
2119
|
+
: 9.11.1.2.02
|
2120
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch_stu2-smart_code_received
|
2121
|
+
: 9.11.1.2.03
|
2122
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch_stu2-standalone_token_tls
|
2123
|
+
: 9.11.1.2.04
|
2124
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch_stu2-smart_token_exchange
|
2125
|
+
: 9.11.1.2.05
|
2126
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch_stu2-smart_token_response_body
|
2127
|
+
: 9.11.1.2.06
|
2128
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch_stu2-smart_token_response_headers
|
2129
|
+
: 9.11.1.2.07
|
2130
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_discovery: 9.11.1.3
|
2131
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_discovery-Test01: 9.11.1.3.01
|
2132
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_discovery-Test02: 9.11.1.3.02
|
2133
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_discovery-Test03: 9.11.1.3.03
|
2134
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_discovery-Test04: 9.11.1.3.04
|
2135
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch: 9.11.1.4
|
2136
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch-standalone_auth_tls
|
2137
|
+
: 9.11.1.4.01
|
2138
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch-smart_app_redirect
|
2139
|
+
: 9.11.1.4.02
|
2140
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch-smart_code_received
|
2141
|
+
: 9.11.1.4.03
|
2142
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch-standalone_token_tls
|
2143
|
+
: 9.11.1.4.04
|
2144
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch-smart_token_exchange
|
2145
|
+
: 9.11.1.4.05
|
2146
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch-smart_token_response_body
|
2147
|
+
: 9.11.1.4.06
|
2148
|
+
? g10_certification-Group06-g10_token_introspection-smart_token_introspection_access_token_group-smart_standalone_launch-smart_token_response_headers
|
2149
|
+
: 9.11.1.4.07
|
2150
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_request_group: 9.11.2
|
2151
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_request_group-Test01: 9.11.2.01
|
2152
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_request_group-Test02: 9.11.2.02
|
2153
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_response_group: 9.11.3
|
2154
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_response_group-Test01: 9.11.3.01
|
2155
|
+
g10_certification-Group06-g10_token_introspection-smart_token_introspection_response_group-Test02: 9.11.3.02
|
2156
|
+
g10_certification-Group06-g10_asymmetric_launch: '9.12'
|
2157
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_discovery_stu2: 9.12.1
|
2158
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_discovery_stu2-well_known_endpoint: 9.12.1.01
|
2159
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_discovery_stu2-well_known_capabilities_stu2: 9.12.1.02
|
2160
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_standalone_launch_stu2: 9.12.2
|
2161
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_standalone_launch_stu2-standalone_auth_tls: 9.12.2.01
|
2162
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_standalone_launch_stu2-smart_app_redirect_stu2: 9.12.2.02
|
2163
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_standalone_launch_stu2-smart_code_received: 9.12.2.03
|
2164
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_standalone_launch_stu2-standalone_token_tls: 9.12.2.04
|
2165
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_standalone_launch_stu2-smart_token_exchange: 9.12.2.05
|
2166
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_standalone_launch_stu2-smart_token_response_body: 9.12.2.06
|
2167
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_standalone_launch_stu2-smart_token_response_headers: 9.12.2.07
|
2168
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_standalone_launch_stu2-g10_patient_context: 9.12.2.08
|
2169
|
+
g10_certification-Group06-g10_asymmetric_launch-smart_standalone_launch_stu2-g10_asymmetric_launch_id_token: 9.12.2.09
|
2170
|
+
g10_certification-Group06-g10_asymmetric_launch-g10_smart_asymmetric_token_refresh: 9.12.3
|
2171
|
+
g10_certification-Group06-g10_asymmetric_launch-g10_smart_asymmetric_token_refresh-g10_token_refresh_without_scopes: 9.12.3.01
|
2172
|
+
g10_certification-Group06-g10_asymmetric_launch-g10_smart_asymmetric_token_refresh-g10_token_refresh_body_without_scopes: 9.12.3.02
|
2173
|
+
g10_certification-Group06-g10_asymmetric_launch-g10_smart_asymmetric_token_refresh-g10_token_refresh_with_scopes: 9.12.3.03
|
2174
|
+
g10_certification-Group06-g10_asymmetric_launch-g10_smart_asymmetric_token_refresh-g10_token_refresh_body_with_scopes: 9.12.3.04
|
2175
|
+
g10_certification-Group06-g10_asymmetric_launch-g10_smart_asymmetric_token_refresh-g10_patient_context: 9.12.3.05
|
2176
|
+
g10_certification-Group06-g10_asymmetric_launch-g10_smart_asymmetric_token_refresh-g10_invalid_token_refresh: 9.12.3.06
|
2177
|
+
g10_certification-Group06-g10_smart_v1_scopes: '9.13'
|
2178
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_discovery_stu2: 9.13.1
|
2179
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_discovery_stu2-well_known_endpoint: 9.13.1.01
|
2180
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_discovery_stu2-well_known_capabilities_stu2: 9.13.1.02
|
2181
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_discovery_stu2-g10_smart_well_known_capabilities: 9.13.1.03
|
2182
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2: 9.13.2
|
2183
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2-standalone_auth_tls: 9.13.2.01
|
2184
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2-smart_app_redirect_stu2: 9.13.2.02
|
2185
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2-smart_code_received: 9.13.2.03
|
2186
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2-standalone_token_tls: 9.13.2.04
|
2187
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2-smart_token_exchange: 9.13.2.05
|
2188
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2-smart_token_response_body: 9.13.2.06
|
2189
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2-smart_token_response_headers: 9.13.2.07
|
2190
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2-g10_smart_scopes: 9.13.2.08
|
2191
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2-g10_unauthorized_access: 9.13.2.09
|
2192
|
+
g10_certification-Group06-g10_smart_v1_scopes-smart_standalone_launch_stu2-g10_patient_context: 9.13.2.10
|
2193
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access: 9.13.3
|
2194
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-Test01: 9.13.3.01
|
2195
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_patient_unrestricted_access: 9.13.3.02
|
2196
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_allergy_intolerance_unrestricted_access: 9.13.3.03
|
2197
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_care_plan_unrestricted_access: 9.13.3.04
|
2198
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_care_team_unrestricted_access: 9.13.3.05
|
2199
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_condition_unrestricted_access: 9.13.3.06
|
2200
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_device_unrestricted_access: 9.13.3.07
|
2201
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_diagnostic_report_unrestricted_access: 9.13.3.08
|
2202
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_document_reference_unrestricted_access: 9.13.3.09
|
2203
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_goal_unrestricted_access: 9.13.3.10
|
2204
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_immunization_unrestricted_access: 9.13.3.11
|
2205
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_medication_request_access: 9.13.3.12
|
2206
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_observation_unrestricted_access: 9.13.3.13
|
2207
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_procedure_unrestricted_access: 9.13.3.14
|
2208
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_encounter_unrestricted_access: 9.13.3.15
|
2209
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_service_request_unrestricted_access: 9.13.3.16
|
2210
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_us_core_6_encounter_unrestricted_access: 9.13.3.17
|
2211
|
+
? g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_us_core_6_service_request_unrestricted_access
|
2212
|
+
: 9.13.3.18
|
2213
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_us_core_6_coverage_unrestricted_access: 9.13.3.19
|
2214
|
+
? g10_certification-Group06-g10_smart_v1_scopes-g10_unrestricted_resource_type_access-g10_us_core_6_medication_dispense_unrestricted_access
|
2215
|
+
: 9.13.3.20
|
2216
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_auth_incorrectly_permitted_tls_versions_messages_setup: 9.13.01
|
2217
|
+
g10_certification-Group06-g10_smart_v1_scopes-g10_token_incorrectly_permitted_tls_versions_messages_setup: 9.13.02
|
2218
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes: '9.14'
|
2219
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes-Group01: 9.14.1
|
2220
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2: 9.14.1.1
|
2221
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_discovery_stu2: 9.14.1.1.1
|
2222
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_discovery_stu2-well_known_endpoint
|
2223
|
+
: 9.14.1.1.1.01
|
2224
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_discovery_stu2-well_known_capabilities_stu2
|
2225
|
+
: 9.14.1.1.1.02
|
2226
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2
|
2227
|
+
: 9.14.1.1.2
|
2228
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-standalone_auth_tls
|
2229
|
+
: 9.14.1.1.2.01
|
2230
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-smart_app_redirect_stu2
|
2231
|
+
: 9.14.1.1.2.02
|
2232
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-smart_code_received
|
2233
|
+
: 9.14.1.1.2.03
|
2234
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-standalone_token_tls
|
2235
|
+
: 9.14.1.1.2.04
|
2236
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-smart_token_exchange
|
2237
|
+
: 9.14.1.1.2.05
|
2238
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-smart_token_response_body
|
2239
|
+
: 9.14.1.1.2.06
|
2240
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-smart_token_response_headers
|
2241
|
+
: 9.14.1.1.2.07
|
2242
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-us_core_granted_granular_scopes
|
2243
|
+
: 9.14.1.1.2.08
|
2244
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_v610_condition_granular_scope_1_group: 9.14.1.2
|
2245
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_v610_condition_granular_scope_1_group-us_core_v610_Condition_patient_category_granular_scope_search_test
|
2246
|
+
: 9.14.1.2.01
|
2247
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_v610_condition_granular_scope_1_group-us_core_v610_Condition_patient_granular_scope_search_test
|
2248
|
+
: 9.14.1.2.02
|
2249
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_v610_condition_granular_scope_1_group-us_core_v610_Condition_granular_scope_read_test
|
2250
|
+
: 9.14.1.2.03
|
2251
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_v610_observation_granular_scope_1_group: 9.14.1.3
|
2252
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_v610_observation_granular_scope_1_group-us_core_v610_Observation_patient_category_granular_scope_search_test
|
2253
|
+
: 9.14.1.3.01
|
2254
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_v610_observation_granular_scope_1_group-us_core_v610_Observation_patient_category_date_granular_scope_search_test
|
2255
|
+
: 9.14.1.3.02
|
2256
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_v610_observation_granular_scope_1_group-us_core_v610_Observation_patient_code_granular_scope_search_test
|
2257
|
+
: 9.14.1.3.03
|
2258
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group01-us_core_v610_observation_granular_scope_1_group-us_core_v610_Observation_granular_scope_read_test
|
2259
|
+
: 9.14.1.3.04
|
2260
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes-Group02: 9.14.2
|
2261
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2: 9.14.2.1
|
2262
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_discovery_stu2: 9.14.2.1.1
|
2263
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_discovery_stu2-well_known_endpoint
|
2264
|
+
: 9.14.2.1.1.01
|
2265
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_discovery_stu2-well_known_capabilities_stu2
|
2266
|
+
: 9.14.2.1.1.02
|
2267
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2
|
2268
|
+
: 9.14.2.1.2
|
2269
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-standalone_auth_tls
|
2270
|
+
: 9.14.2.1.2.01
|
2271
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-smart_app_redirect_stu2
|
2272
|
+
: 9.14.2.1.2.02
|
2273
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-smart_code_received
|
2274
|
+
: 9.14.2.1.2.03
|
2275
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-standalone_token_tls
|
2276
|
+
: 9.14.2.1.2.04
|
2277
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-smart_token_exchange
|
2278
|
+
: 9.14.2.1.2.05
|
2279
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-smart_token_response_body
|
2280
|
+
: 9.14.2.1.2.06
|
2281
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-smart_token_response_headers
|
2282
|
+
: 9.14.2.1.2.07
|
2283
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_smart_standalone_launch_stu2-smart_standalone_launch_stu2-us_core_granted_granular_scopes
|
2284
|
+
: 9.14.2.1.2.08
|
2285
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_v610_condition_granular_scope_2_group: 9.14.2.2
|
2286
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_v610_condition_granular_scope_2_group-us_core_v610_Condition_patient_category_granular_scope_search_test
|
2287
|
+
: 9.14.2.2.01
|
2288
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_v610_condition_granular_scope_2_group-us_core_v610_Condition_patient_granular_scope_search_test
|
2289
|
+
: 9.14.2.2.02
|
2290
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_v610_condition_granular_scope_2_group-us_core_v610_Condition_granular_scope_read_test
|
2291
|
+
: 9.14.2.2.03
|
2292
|
+
g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_v610_observation_granular_scope_2_group: 9.14.2.3
|
2293
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_v610_observation_granular_scope_2_group-us_core_v610_Observation_patient_category_granular_scope_search_test
|
2294
|
+
: 9.14.2.3.01
|
2295
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_v610_observation_granular_scope_2_group-us_core_v610_Observation_patient_category_date_granular_scope_search_test
|
2296
|
+
: 9.14.2.3.02
|
2297
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_v610_observation_granular_scope_2_group-us_core_v610_Observation_patient_code_granular_scope_search_test
|
2298
|
+
: 9.14.2.3.03
|
2299
|
+
? g10_certification-Group06-g10_smart_fine_grained_scopes-Group02-us_core_v610_observation_granular_scope_2_group-us_core_v610_Observation_granular_scope_read_test
|
2300
|
+
: 9.14.2.3.04
|
2301
|
+
g10_certification-Group06-g10_smart_granular_scope_selection: '9.15'
|
2302
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-smart_discovery_stu2: 9.15.1
|
2303
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-smart_discovery_stu2-well_known_endpoint: 9.15.1.01
|
2304
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-smart_discovery_stu2-well_known_capabilities_stu2: 9.15.1.02
|
2305
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-g10_granular_scope_selection_v2_scopes: 9.15.2
|
2306
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-g10_granular_scope_selection_v2_scopes-standalone_auth_tls: 9.15.2.01
|
2307
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-g10_granular_scope_selection_v2_scopes-smart_app_redirect_stu2: 9.15.2.02
|
2308
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-g10_granular_scope_selection_v2_scopes-smart_code_received: 9.15.2.03
|
2309
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-g10_granular_scope_selection_v2_scopes-standalone_token_tls: 9.15.2.04
|
2310
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-g10_granular_scope_selection_v2_scopes-smart_token_exchange: 9.15.2.05
|
2311
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-g10_granular_scope_selection_v2_scopes-smart_token_response_body: 9.15.2.06
|
2312
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-g10_granular_scope_selection_v2_scopes-smart_token_response_headers: 9.15.2.07
|
2313
|
+
g10_certification-Group06-g10_smart_granular_scope_selection-g10_granular_scope_selection_v2_scopes-g10_smart_scopes: 9.15.2.08
|
2314
|
+
? g10_certification-Group06-g10_smart_granular_scope_selection-g10_granular_scope_selection_v2_scopes-g10_smart_granular_scope_selection
|
2315
|
+
: 9.15.2.09
|
2316
|
+
g10_certification-g10_visual_inspection_and_attestations: '11'
|
2317
|
+
g10_certification-g10_visual_inspection_and_attestations-Test01: '11.01'
|
2318
|
+
g10_certification-g10_visual_inspection_and_attestations-Test02: '11.02'
|
2319
|
+
g10_certification-g10_visual_inspection_and_attestations-Test03: '11.03'
|
2320
|
+
g10_certification-g10_visual_inspection_and_attestations-Test04: '11.04'
|
2321
|
+
g10_certification-g10_visual_inspection_and_attestations-Test05: '11.05'
|
2322
|
+
g10_certification-g10_visual_inspection_and_attestations-Test07: '11.07'
|
2323
|
+
g10_certification-g10_visual_inspection_and_attestations-Test08: '11.08'
|
2324
|
+
g10_certification-g10_visual_inspection_and_attestations-Test09: '11.09'
|
2325
|
+
g10_certification-g10_visual_inspection_and_attestations-Test10: '11.10'
|
2326
|
+
g10_certification-g10_visual_inspection_and_attestations-Test11: '11.11'
|
2327
|
+
g10_certification-g10_visual_inspection_and_attestations-Test13: '11.13'
|
2328
|
+
g10_certification-g10_visual_inspection_and_attestations-g10_public_url_attestation: '11.14'
|
2329
|
+
g10_certification-g10_visual_inspection_and_attestations-g10_tls_version_attestation: '11.15'
|
2330
|
+
g10_certification-g10_visual_inspection_and_attestations-g10_refresh_token_refresh_attestation: '11.16'
|
2331
|
+
g10_certification-g10_visual_inspection_and_attestations-g10_bulk_v2_since_attestation: '11.17'
|
2332
|
+
g10_certification-g10_visual_inspection_and_attestations-g10_clinical_test_scope_attestation: '11.18'
|
@@ -8,8 +8,13 @@ module ONCCertificationG10TestKit
|
|
8
8
|
title 'Single Patient API (US Core 3.1.1)'
|
9
9
|
short_title 'Single Patient API'
|
10
10
|
description %(
|
11
|
+
This scenario verifies the ability of a system to provide a 'Single Patient API'
|
12
|
+
as described in the (g)(10) Standardized API certification criterion.
|
13
|
+
Prior to running this scenario, systems must recieve a verified access token
|
14
|
+
from one of the previous SMART App Launch scenarios.
|
15
|
+
|
11
16
|
For each of the relevant USCDI data elements provided in the
|
12
|
-
CapabilityStatement, this
|
17
|
+
CapabilityStatement, this scenario executes the [required supported
|
13
18
|
searches](http://www.hl7.org/fhir/us/core/STU3.1.1/CapabilityStatement-us-core-server.html)
|
14
19
|
as defined by the US Core Implementation Guide v3.1.1.
|
15
20
|
|
@@ -6,8 +6,13 @@ module ONCCertificationG10TestKit
|
|
6
6
|
title 'Single Patient API (US Core 4.0.0)'
|
7
7
|
short_title 'Single Patient API'
|
8
8
|
description %(
|
9
|
+
This scenario verifies the ability of a system to provide a 'Single Patient API'
|
10
|
+
as described in the (g)(10) Standardized API certification criterion.
|
11
|
+
Prior to running this scenario, systems must recieve a verified access token
|
12
|
+
from one of the previous SMART App Launch scenarios.
|
13
|
+
|
9
14
|
For each of the relevant USCDI data elements provided in the
|
10
|
-
CapabilityStatement, this
|
15
|
+
CapabilityStatement, this scenario executes the [required supported
|
11
16
|
searches](http://hl7.org/fhir/us/core/STU4/CapabilityStatement-us-core-server.html)
|
12
17
|
as defined by the US Core Implementation Guide v4.0.0.
|
13
18
|
|
@@ -6,8 +6,13 @@ module ONCCertificationG10TestKit
|
|
6
6
|
title 'Single Patient API (US Core 6.1.0)'
|
7
7
|
short_title 'Single Patient API'
|
8
8
|
description %(
|
9
|
+
This scenario verifies the ability of a system to provide a 'Single Patient API'
|
10
|
+
as described in the (g)(10) Standardized API certification criterion.
|
11
|
+
Prior to running this scenario, systems must recieve a verified access token
|
12
|
+
from one of the previous SMART App Launch scenarios.
|
13
|
+
|
9
14
|
For each of the relevant USCDI data elements provided in the
|
10
|
-
CapabilityStatement, this
|
15
|
+
CapabilityStatement, this scenario executes the [required supported
|
11
16
|
searches](http://hl7.org/fhir/us/core/STU6.1/CapabilityStatement-us-core-server.html)
|
12
17
|
as defined by the US Core Implementation Guide v6.1.0.
|
13
18
|
|
@@ -101,7 +106,8 @@ module ONCCertificationG10TestKit
|
|
101
106
|
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-relatedperson',
|
102
107
|
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-servicerequest',
|
103
108
|
'http://hl7.org/fhir/us/core/StructureDefinition/us-core-specimen'
|
104
|
-
]
|
109
|
+
],
|
110
|
+
tag_requests: true
|
105
111
|
}
|
106
112
|
)
|
107
113
|
|
@@ -165,9 +171,6 @@ module ONCCertificationG10TestKit
|
|
165
171
|
|
166
172
|
next if test_group.optional?
|
167
173
|
|
168
|
-
# TODO: Remove this line after ONC CCG release (FI-2804)
|
169
|
-
next if test_group.id.to_s.include? 'us_core_v610_screening_assessment'
|
170
|
-
|
171
174
|
id = test_group.id
|
172
175
|
|
173
176
|
group_config = {}
|
@@ -1,33 +1,32 @@
|
|
1
1
|
module ONCCertificationG10TestKit
|
2
2
|
class SMARTAppLaunchInvalidAudGroup < Inferno::TestGroup
|
3
|
-
title '
|
4
|
-
short_title '
|
3
|
+
title 'Invalid AUD Parameter'
|
4
|
+
short_title 'Invalid AUD Launch'
|
5
5
|
input_instructions %(
|
6
6
|
Register Inferno as a standalone application using the following information:
|
7
7
|
|
8
8
|
* Redirect URI: `#{SMARTAppLaunch::AppRedirectTest.config.options[:redirect_uri]}`
|
9
9
|
)
|
10
10
|
description %(
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
requirement is that Inferno is not granted a code to exchange for a valid
|
24
|
-
access token. Since this is a special case, it is tested independently in
|
25
|
-
a separate sequence.
|
11
|
+
This scenario verifies that a SMART Launch Sequence, specifically the
|
12
|
+
Standalone Launch Sequence, does not succeed in the case where the client
|
13
|
+
sends an invalid FHIR server as the `aud` parameter during launch. This
|
14
|
+
must fail to ensure that a genuine bearer token is not leaked to a
|
15
|
+
counterfit resource server.
|
16
|
+
|
17
|
+
This test is not included in earlier scenarios because it requires the
|
18
|
+
browser of the user to be redirected to the authorization service, and
|
19
|
+
there is no expectation that the authorization service redirects the user
|
20
|
+
back to Inferno with an error message. The only requirement is that
|
21
|
+
Inferno is not granted a code to exchange for a valid access token. Since
|
22
|
+
this is a special case, it is tested independently in a separate sequence.
|
26
23
|
|
27
24
|
Note that this test will launch a new browser window. The user is required
|
28
25
|
to 'Attest' in the Inferno user interface after the launch does not
|
29
26
|
succeed, if the server does not return an error code.
|
30
27
|
|
28
|
+
The following implementation specifications are relevant to this scenario:
|
29
|
+
|
31
30
|
* [Standalone Launch Sequence
|
32
31
|
(STU1)](http://hl7.org/fhir/smart-app-launch/1.0.0/index.html#standalone-launch-sequence)
|
33
32
|
* [Standalone Launch
|
@@ -0,0 +1,194 @@
|
|
1
|
+
require_relative 'base_token_refresh_stu2_group'
|
2
|
+
require_relative 'patient_context_test'
|
3
|
+
|
4
|
+
module ONCCertificationG10TestKit
|
5
|
+
class SMARTAsymmetricLaunchGroup < Inferno::TestGroup
|
6
|
+
title 'Asymmetric Client Standalone Launch'
|
7
|
+
short_title 'Asymmetric Client Launch'
|
8
|
+
description %(
|
9
|
+
The [Standalone
|
10
|
+
Launch Sequence](http://hl7.org/fhir/smart-app-launch/STU2/app-launch.html#launch-app-standalone-launch)
|
11
|
+
allows an app, like Inferno, to be launched independent of an
|
12
|
+
existing EHR session. It is one of the two launch methods described in
|
13
|
+
the SMART App Launch Framework alongside EHR Launch. The app will
|
14
|
+
request authorization for the provided scope from the authorization
|
15
|
+
endpoint, ultimately receiving an authorization token which can be used
|
16
|
+
to gain access to resources on the FHIR server.
|
17
|
+
|
18
|
+
These tests specifically verify a system's support for [confidential
|
19
|
+
asymmetric client
|
20
|
+
authentication](https://hl7.org/fhir/smart-app-launch/STU2/client-confidential-asymmetric.html),
|
21
|
+
which is not verified in earlier scenarios.
|
22
|
+
|
23
|
+
In this scenario, Inferno will redirect the user to the the authorization endpoint so that
|
24
|
+
they may provide any required credentials and authorize the application.
|
25
|
+
Upon successful authorization, Inferno will exchange the authorization
|
26
|
+
code provided for an access token.
|
27
|
+
|
28
|
+
For more information on the #{title}:
|
29
|
+
|
30
|
+
* [Standalone Launch Sequence](http://hl7.org/fhir/smart-app-launch/STU2/app-launch.html#launch-app-standalone-launch)
|
31
|
+
)
|
32
|
+
|
33
|
+
input_instructions %(
|
34
|
+
Register Inferno as a standalone application using the following information:
|
35
|
+
|
36
|
+
* Redirect URI: `#{SMARTAppLaunch::AppRedirectTest.config.options[:redirect_uri]}`
|
37
|
+
* JWKS URI (`jku`): `#{Inferno::Application[:base_url]}/custom/smart_stu2/.well-known/jwks.json`
|
38
|
+
|
39
|
+
Enter in the appropriate scopes to enable access to the Patient resource.
|
40
|
+
In addition, support for the OpenID Connect (openid fhirUser), refresh
|
41
|
+
tokens (offline_access), and patient context (launch/patient) are
|
42
|
+
required.
|
43
|
+
)
|
44
|
+
id :g10_asymmetric_launch
|
45
|
+
run_as_group
|
46
|
+
|
47
|
+
config(
|
48
|
+
inputs: {
|
49
|
+
client_id: {
|
50
|
+
name: :asymmetric_client_id,
|
51
|
+
title: 'Asymmetric Launch Client ID'
|
52
|
+
},
|
53
|
+
client_secret: {
|
54
|
+
name: :asymmetric_client_secret,
|
55
|
+
title: 'Asymmetric Launch Client Secret',
|
56
|
+
default: nil,
|
57
|
+
optional: true,
|
58
|
+
locked: true
|
59
|
+
},
|
60
|
+
requested_scopes: {
|
61
|
+
name: :asymmetric_requested_scopes,
|
62
|
+
title: 'Asymmetric Launch Scope',
|
63
|
+
default: %(
|
64
|
+
launch/patient openid fhirUser offline_access patient/Medication.rs
|
65
|
+
patient/AllergyIntolerance.rs patient/CarePlan.rs
|
66
|
+
patient/CareTeam.rs patient/Condition.rs patient/Device.rs
|
67
|
+
patient/DiagnosticReport.rs patient/DocumentReference.rs
|
68
|
+
patient/Encounter.rs patient/Goal.rs patient/Immunization.rs
|
69
|
+
patient/Location.rs patient/MedicationRequest.rs
|
70
|
+
patient/Observation.rs patient/Organization.rs patient/Patient.rs
|
71
|
+
patient/Practitioner.rs patient/Procedure.rs patient/Provenance.rs
|
72
|
+
patient/PractitionerRole.rs
|
73
|
+
).gsub(/\s{2,}/, ' ').strip
|
74
|
+
},
|
75
|
+
url: {
|
76
|
+
title: 'Asymmetric Launch FHIR Endpoint',
|
77
|
+
description: 'URL of the FHIR endpoint used by standalone applications'
|
78
|
+
},
|
79
|
+
code: {
|
80
|
+
name: :asymmetric_code
|
81
|
+
},
|
82
|
+
state: {
|
83
|
+
name: :asymmetric_state
|
84
|
+
},
|
85
|
+
smart_authorization_url: {
|
86
|
+
title: 'OAuth 2.0 Authorize Endpoint',
|
87
|
+
description: 'OAuth 2.0 Authorize Endpoint provided during the patient standalone launch'
|
88
|
+
},
|
89
|
+
smart_credentials: {
|
90
|
+
name: :asymmetric_smart_credentials
|
91
|
+
},
|
92
|
+
use_pkce: {
|
93
|
+
default: 'true',
|
94
|
+
locked: true
|
95
|
+
},
|
96
|
+
pkce_code_challenge_method: {
|
97
|
+
locked: true
|
98
|
+
},
|
99
|
+
client_auth_type: {
|
100
|
+
name: :asymmetric_client_auth_type,
|
101
|
+
locked: true,
|
102
|
+
default: 'confidential_asymmetric'
|
103
|
+
},
|
104
|
+
refresh_token: {
|
105
|
+
name: :asymmetric_refresh_token
|
106
|
+
},
|
107
|
+
received_scopes: {
|
108
|
+
name: :asymmetric_received_scopes
|
109
|
+
},
|
110
|
+
client_auth_encryption_method: {
|
111
|
+
name: :asymmetric_client_auth_encryption_method,
|
112
|
+
locked: false
|
113
|
+
}
|
114
|
+
},
|
115
|
+
outputs: {
|
116
|
+
access_token: { name: :asymmetric_access_token },
|
117
|
+
code: { name: :asymmetric_code },
|
118
|
+
encounter_id: { name: :asymmetric_encounter_id },
|
119
|
+
expires_in: { name: :asymmetric_expires_in },
|
120
|
+
id_token: { name: :asymmetric_id_token },
|
121
|
+
intent: { name: :asymmetric_intent },
|
122
|
+
patient_id: { name: :asymmetric_patient_id },
|
123
|
+
received_scopes: { name: :asymmetric_received_scopes },
|
124
|
+
refresh_token: { name: :asymmetric_refresh_token },
|
125
|
+
smart_credentials: { name: :asymmetric_smart_credentials },
|
126
|
+
state: { name: :asymmetric_state },
|
127
|
+
token_retrieval_time: { name: :asymmetric_token_retrieval_time }
|
128
|
+
},
|
129
|
+
requests: {
|
130
|
+
redirect: { name: :asymmetric_redirect },
|
131
|
+
token: { name: :asymmetric_token }
|
132
|
+
}
|
133
|
+
)
|
134
|
+
|
135
|
+
input_order :url,
|
136
|
+
:asymmetric_client_id,
|
137
|
+
:asymmetric_client_secret,
|
138
|
+
:asymmetric_requested_scopes,
|
139
|
+
:use_pkce,
|
140
|
+
:pkce_code_challenge_method,
|
141
|
+
:authorization_method,
|
142
|
+
:asymmetric_client_auth_type,
|
143
|
+
:client_auth_encryption_method
|
144
|
+
|
145
|
+
group from: :smart_discovery_stu2
|
146
|
+
|
147
|
+
group from: :smart_standalone_launch_stu2 do
|
148
|
+
test from: :g10_patient_context,
|
149
|
+
config: {
|
150
|
+
inputs: {
|
151
|
+
patient_id: { name: :asymmetric_patient_id },
|
152
|
+
smart_credentials: { name: :asymmetric_smart_credentials }
|
153
|
+
}
|
154
|
+
}
|
155
|
+
|
156
|
+
test do
|
157
|
+
title 'OAuth token exchange response contains OpenID Connect id_token'
|
158
|
+
description %(
|
159
|
+
This test requires that an OpenID Connect id_token is provided to
|
160
|
+
demonstrate authentication capabilies for asymmetric clients.
|
161
|
+
)
|
162
|
+
id :g10_asymmetric_launch_id_token
|
163
|
+
|
164
|
+
input :id_token,
|
165
|
+
name: :asymmetric_id_token,
|
166
|
+
locked: true,
|
167
|
+
optional: true
|
168
|
+
|
169
|
+
run do
|
170
|
+
assert id_token.present?, 'Token response did not provide an id_token as required.'
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
group from: :g10_token_refresh_stu2 do
|
176
|
+
id :g10_smart_asymmetric_token_refresh
|
177
|
+
|
178
|
+
test from: :g10_patient_context do
|
179
|
+
config(
|
180
|
+
inputs: {
|
181
|
+
patient_id: { name: :asymmetric_patient_id },
|
182
|
+
smart_credentials: { name: :asymmetric_smart_credentials }
|
183
|
+
},
|
184
|
+
options: {
|
185
|
+
refresh_test: true
|
186
|
+
}
|
187
|
+
)
|
188
|
+
uses_request :token_refresh
|
189
|
+
end
|
190
|
+
|
191
|
+
test from: :g10_invalid_token_refresh
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
@@ -4,10 +4,10 @@ module ONCCertificationG10TestKit
|
|
4
4
|
class SMARTEHRPatientLaunchGroup < SMARTAppLaunch::EHRLaunchGroup
|
5
5
|
title 'EHR Launch with Patient Scopes'
|
6
6
|
description %(
|
7
|
-
# Background
|
8
7
|
Systems are required to support the `permission-patient` capability as
|
9
8
|
part of the [Clinician Access for EHR Launch Capability
|
10
9
|
Set.](http://hl7.org/fhir/smart-app-launch/1.0.0/conformance/index.html#clinician-access-for-ehr-launch)
|
10
|
+
Previous scenarios do not verify this specific combination of capabilies.
|
11
11
|
|
12
12
|
Additionally, if an application launched from an EHR requests and is
|
13
13
|
granted a clinical scope restricted to a single patient, the EHR SHALL
|
@@ -19,9 +19,7 @@ module ONCCertificationG10TestKit
|
|
19
19
|
* Launch URI: `#{SMARTAppLaunch::AppLaunchTest.config.options[:launch_uri]}`
|
20
20
|
* Redirect URI: `#{SMARTAppLaunch::AppRedirectTest.config.options[:redirect_uri]}`
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
Inferno will attempt an EHR Launch with a clinical scope restricted to a
|
22
|
+
In this scenario, Inferno will attempt an EHR Launch with a clinical scope restricted to a
|
25
23
|
single patient and verify that a patient-level scope is granted and a
|
26
24
|
patient id is received.
|
27
25
|
|
@@ -4,10 +4,10 @@ module ONCCertificationG10TestKit
|
|
4
4
|
class SMARTEHRPatientLaunchGroupSTU2 < SMARTAppLaunch::EHRLaunchGroupSTU2
|
5
5
|
title 'EHR Launch with Patient Scopes'
|
6
6
|
description %(
|
7
|
-
# Background
|
8
7
|
Systems are required to support the `permission-patient` capability as
|
9
8
|
part of the [Clinician Access for EHR Launch Capability
|
10
9
|
Set.](http://hl7.org/fhir/smart-app-launch/STU2/conformance.html#clinician-access-for-ehr-launch)
|
10
|
+
Previous scenarios do not verify this specific combination of capabilies.
|
11
11
|
|
12
12
|
Additionally, if an application launched from an EHR requests and is
|
13
13
|
granted a clinical scope restricted to a single patient, the EHR SHALL
|
@@ -19,9 +19,7 @@ module ONCCertificationG10TestKit
|
|
19
19
|
* Launch URI: `#{SMARTAppLaunch::AppLaunchTest.config.options[:launch_uri]}`
|
20
20
|
* Redirect URI: `#{SMARTAppLaunch::AppRedirectTest.config.options[:redirect_uri]}`
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
Inferno will attempt an EHR Launch with a clinical scope restricted to a
|
22
|
+
In this scenario, Inferno will attempt an EHR Launch with a clinical scope restricted to a
|
25
23
|
single patient and verify that a patient-level scope is granted and a
|
26
24
|
patient id is received.
|
27
25
|
|
@@ -106,8 +104,7 @@ module ONCCertificationG10TestKit
|
|
106
104
|
:authorization_method,
|
107
105
|
:use_pkce,
|
108
106
|
:pkce_code_challenge_method,
|
109
|
-
:client_auth_type
|
110
|
-
:client_auth_encryption_method
|
107
|
+
:client_auth_type
|
111
108
|
|
112
109
|
test from: :g10_patient_context,
|
113
110
|
config: {
|
@@ -123,5 +120,9 @@ module ONCCertificationG10TestKit
|
|
123
120
|
scope_version: :v2
|
124
121
|
}
|
125
122
|
}
|
123
|
+
|
124
|
+
children.each do |child|
|
125
|
+
child.inputs.delete(:client_auth_encryption_method)
|
126
|
+
end
|
126
127
|
end
|
127
128
|
end
|