davinci_crd_test_kit 0.14.1 → 0.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/presets/{inferno_crd_server_suite.json.erb → client_against_inferno_crd_server_suite.json.erb} +0 -33
- data/config/presets/{ri_crd_request_generator.json.erb → client_against_ri_crd_request_generator.json.erb} +1 -14
- data/config/presets/client_v221_against_inferno_crd_server_suite.json.erb +84 -0
- data/config/presets/client_v221_against_ri_br_provider.json.erb +31 -0
- data/config/presets/{ri_crd_request_generator.json_v221.json.erb → client_v221_against_ri_crd_request_generator.json.erb} +1 -1
- data/config/presets/{inferno_crd_client_suite.json.erb → server_against_inferno_crd_client_suite.json.erb} +0 -43
- data/config/presets/{ri_crd_server.json.erb → server_against_ri_crd_server.json.erb} +1 -44
- data/config/presets/{inferno_crd_client_suite_v221.json.erb → server_v221_against_inferno_crd_client_suite.json.erb} +0 -61
- data/config/presets/{inferno_crd_client_suite_prefetch_subset_v221.json.erb → server_v221_against_inferno_crd_client_suite_prefetch_subset.json.erb} +0 -46
- data/config/presets/server_v221_against_inferno_g31_suite.json.erb +49 -0
- data/lib/davinci_crd_test_kit/client/cross_hook_helper.rb +26 -0
- data/lib/davinci_crd_test_kit/client/endpoints/custom_service_response.rb +7 -7
- data/lib/davinci_crd_test_kit/client/endpoints/gather_response_generation_data.rb +4 -1
- data/lib/davinci_crd_test_kit/client/endpoints/hook_request_endpoint.rb +63 -38
- data/lib/davinci_crd_test_kit/client/endpoints/mock_service_response.rb +26 -7
- data/lib/davinci_crd_test_kit/client/endpoints/scenario_service_response.rb +54 -0
- data/lib/davinci_crd_test_kit/client/tagged_request_load_helper.rb +8 -27
- data/lib/davinci_crd_test_kit/client/v2.0.1/auth/retrieve_jwks_test.rb +35 -23
- data/lib/davinci_crd_test_kit/client/v2.0.1/auth/token_payload_test.rb +34 -21
- data/lib/davinci_crd_test_kit/client/v2.0.1/cds-services-v201.json +20 -20
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_appointment_book_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_encounter_discharge_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_encounter_start_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_hooks_group.rb +5 -5
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_dispatch_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_select_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/client_order_sign_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_coverage_information.rb +3 -36
- data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_external_reference.rb +3 -36
- data/lib/davinci_crd_test_kit/client/v2.0.1/must_support/client_card_must_support_instructions.rb +3 -36
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_fetched_data_test.rb +4 -13
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_request/hook_request_prefetch_equals_queried_test.rb +3 -13
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_response/client_display_cards_attest.rb +3 -13
- data/lib/davinci_crd_test_kit/client/v2.0.1/verify_response/inferno_response_validation.rb +3 -13
- data/lib/davinci_crd_test_kit/client/v2.2.1/api/client_coverage_info_update_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/attestation_instructions.rb +10 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_authorized_scope_attestation_test.rb +45 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_coverage_based_invocation_attestation_test.rb +44 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_data_element_expectations_attestation_test.rb +44 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_hook_invocation_logging_attestation_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_must_support_exposure_attestation_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_must_support_use_attestation_test.rb +41 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_order_sign_support_attestation_test.rb +42 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_prefetch_key_omission_attestation_test.rb +42 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_resource_identifiers_attestation_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_response_case_distinction_attestation_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_security_and_privacy_attestation_test.rb +43 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_workflow_integration_attestation_test.rb +44 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/auth/decode_auth_token_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/auth/retrieve_jwks_test.rb +29 -18
- data/lib/davinci_crd_test_kit/client/v2.2.1/auth/token_payload_test.rb +35 -22
- data/lib/davinci_crd_test_kit/client/v2.2.1/cds-services-prefetch-subset-v221.json +47 -47
- data/lib/davinci_crd_test_kit/client/v2.2.1/cds-services-v221.json +50 -50
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_appointment_book_group.rb +16 -14
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_attestations_group.rb +49 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_cross_hook_group.rb +22 -6
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_cross_hook_interaction_group.rb +98 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_encounter_discharge_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_encounter_start_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_fhir_api_group.rb +14 -12
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_hooks_group.rb +9 -9
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_long_running_hook_group.rb +2 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_dispatch_group.rb +16 -14
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_select_group.rb +12 -10
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_order_sign_group.rb +16 -14
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_scenarios_group.rb +26 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_self_pay_hook_group.rb +36 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/client_unknown_content_hook_group.rb +34 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/crd_client_suite.rb +19 -3
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_card_must_support_coverage_information_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_fhirpath_collection_as_comma_delimited_string_test.rb +4 -11
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_hook_instances_unique_test.rb +1 -9
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_location_address_propagation_test.rb +6 -2
- data/lib/davinci_crd_test_kit/client/v2.2.1/cross_hook/client_prefetch_complete_and_subset_test.rb +3 -12
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/appointment_book_receive_request_test.rb +8 -89
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/base_hook_invocation_receive_request_test.rb +163 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/cross_hooks_receive_request_test.rb +97 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/encounter_discharge_receive_request_test.rb +8 -90
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/encounter_start_receive_request_test.rb +8 -90
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_dispatch_receive_request_test.rb +8 -98
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_select_receive_request_test.rb +8 -98
- data/lib/davinci_crd_test_kit/client/v2.2.1/invocation/order_sign_receive_request_test.rb +8 -98
- data/lib/davinci_crd_test_kit/client/v2.2.1/long_running/client_long_running_receive_request_test.rb +10 -2
- data/lib/davinci_crd_test_kit/client/v2.2.1/long_running/client_skip_long_running_attestation_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/self_pay/client_self_pay_no_request_test.rb +30 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/self_pay/client_self_pay_workflow_test.rb +55 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/unknown_content/client_unknown_content_attestation_test.rb +99 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/unknown_content/client_unknown_content_receive_request_test.rb +62 -0
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_conformance_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_coverage_verification_test.rb +10 -2
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_data_fetch_verification_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_granted_scopes_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_prefetch_complete_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_prefetch_profiles_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_requested_version_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_request/hook_request_secured_transport_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/client_display_cards_attest.rb +52 -20
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/hook_response_support_coverage_information_test.rb +1 -1
- data/lib/davinci_crd_test_kit/client/v2.2.1/verify_response/inferno_response_validation.rb +6 -3
- data/lib/davinci_crd_test_kit/cross_suite/cards_identification.rb +9 -0
- data/lib/davinci_crd_test_kit/cross_suite/logical_models_override_helper.rb +30 -13
- data/lib/davinci_crd_test_kit/cross_suite/prefetch_profile_validation.rb +2 -0
- data/lib/davinci_crd_test_kit/cross_suite/requests_logical_model_validation.rb +26 -27
- data/lib/davinci_crd_test_kit/cross_suite/response_logical_model_validation.rb +48 -41
- data/lib/davinci_crd_test_kit/cross_suite/tags.rb +3 -0
- data/lib/davinci_crd_test_kit/requirements/cds-hooks_3.0.0-ballot_requirements.xlsx +0 -0
- data/lib/davinci_crd_test_kit/requirements/davinci_crd_test_kit_requirements.csv +6 -2
- data/lib/davinci_crd_test_kit/requirements/generated/crd_client_requirements_coverage.csv +107 -107
- data/lib/davinci_crd_test_kit/requirements/generated/crd_client_v221_requirements_coverage.csv +101 -97
- data/lib/davinci_crd_test_kit/requirements/generated/crd_server_requirements_coverage.csv +18 -18
- data/lib/davinci_crd_test_kit/requirements/generated/crd_server_v221_requirements_coverage.csv +36 -32
- data/lib/davinci_crd_test_kit/requirements/hl7.fhir.us.davinci-crd_2.2.1_requirements.xlsx +0 -0
- data/lib/davinci_crd_test_kit/server/v2.0.1/crd_server_suite.rb +1 -1
- data/lib/davinci_crd_test_kit/server/v2.0.1/server_hooks_group.rb +5 -5
- data/lib/davinci_crd_test_kit/server/v2.2.1/discovery/discovery_standard_prefetch_expressions_test.rb +1 -2
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_demonstrate_hook_response_group.rb +2 -2
- data/lib/davinci_crd_test_kit/server/v2.2.1/server_hooks_group.rb +5 -5
- data/lib/davinci_crd_test_kit/version.rb +2 -2
- metadata +40 -12
- data/config/presets/inferno_crd_server_suite_v221.json.erb +0 -94
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
require_relative '../../../cross_suite/prefetch_contents_validation'
|
|
2
|
+
require_relative '../../tagged_request_load_helper'
|
|
2
3
|
|
|
3
4
|
module DaVinciCRDTestKit
|
|
4
5
|
module V201
|
|
5
6
|
class HookRequestPrefetchEqualsQueriedTest < Inferno::Test
|
|
6
7
|
include PrefetchContentsValidation
|
|
8
|
+
include TaggedRequestLoadHelper
|
|
7
9
|
|
|
8
10
|
id :crd_v201_hook_request_prefetch_equals_queried
|
|
9
11
|
title 'Prefetched data is equivalent to queried data'
|
|
@@ -39,18 +41,6 @@ module DaVinciCRDTestKit
|
|
|
39
41
|
override_access_token.present? ? override_access_token : client_access_token
|
|
40
42
|
end
|
|
41
43
|
|
|
42
|
-
def hook_name
|
|
43
|
-
config.options[:hook_name]
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def crd_test_group
|
|
47
|
-
config.options[:crd_test_group]
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def tags_to_load
|
|
51
|
-
crd_test_group.present? ? [hook_name, crd_test_group] : [hook_name]
|
|
52
|
-
end
|
|
53
|
-
|
|
54
44
|
def cds_services_json
|
|
55
45
|
JSON.parse(File.read(File.join(
|
|
56
46
|
__dir__, '..', 'cds-services-v201.json'
|
|
@@ -67,7 +57,7 @@ module DaVinciCRDTestKit
|
|
|
67
57
|
end
|
|
68
58
|
|
|
69
59
|
run do
|
|
70
|
-
hook_requests =
|
|
60
|
+
hook_requests = load_interaction_group_requests
|
|
71
61
|
|
|
72
62
|
skip_if hook_requests.blank?, 'No Hook Requests to verify.'
|
|
73
63
|
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
require_relative '../client_urls'
|
|
2
2
|
require_relative '../../../cross_suite/cards_identification'
|
|
3
|
+
require_relative '../../tagged_request_load_helper'
|
|
3
4
|
|
|
4
5
|
module DaVinciCRDTestKit
|
|
5
6
|
module V201
|
|
6
7
|
class ClientCardDisplayAttest < Inferno::Test
|
|
7
8
|
include ClientURLs
|
|
8
9
|
include CardsIdentification
|
|
10
|
+
include TaggedRequestLoadHelper
|
|
9
11
|
|
|
10
12
|
id :crd_v201_card_display_attest_test
|
|
11
13
|
title 'Check that returned decision support details are displayed to the user'
|
|
@@ -16,18 +18,6 @@ module DaVinciCRDTestKit
|
|
|
16
18
|
if warranted.
|
|
17
19
|
)
|
|
18
20
|
|
|
19
|
-
def hook_name
|
|
20
|
-
config.options[:hook_name]
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def crd_test_group
|
|
24
|
-
config.options[:crd_test_group]
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def tags_to_load
|
|
28
|
-
crd_test_group.present? ? [hook_name, crd_test_group] : [hook_name]
|
|
29
|
-
end
|
|
30
|
-
|
|
31
21
|
def responded_card_types
|
|
32
22
|
list_card_types_in_requests(requests)
|
|
33
23
|
end
|
|
@@ -54,7 +44,7 @@ module DaVinciCRDTestKit
|
|
|
54
44
|
output :attest_false_url
|
|
55
45
|
|
|
56
46
|
run do
|
|
57
|
-
|
|
47
|
+
load_interaction_group_requests
|
|
58
48
|
skip_if responded_card_types.blank?, 'No responses sent to the client.'
|
|
59
49
|
|
|
60
50
|
identifier = SecureRandom.hex(32)
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
require_relative '../../../cross_suite/cards_validation'
|
|
2
|
+
require_relative '../../tagged_request_load_helper'
|
|
2
3
|
|
|
3
4
|
module DaVinciCRDTestKit
|
|
4
5
|
module V201
|
|
5
6
|
class InfernoResponseValidationTest < Inferno::Test
|
|
6
7
|
include CardsValidation
|
|
8
|
+
include TaggedRequestLoadHelper
|
|
7
9
|
|
|
8
10
|
title 'Inferno CDS Service Response is Conformant'
|
|
9
11
|
description %(
|
|
@@ -22,18 +24,6 @@ module DaVinciCRDTestKit
|
|
|
22
24
|
|
|
23
25
|
input :custom_response_template, optional: true
|
|
24
26
|
|
|
25
|
-
def hook_name
|
|
26
|
-
config.options[:hook_name]
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def crd_test_group
|
|
30
|
-
config.options[:crd_test_group]
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def tags_to_load
|
|
34
|
-
crd_test_group.present? ? [hook_name, crd_test_group] : [hook_name]
|
|
35
|
-
end
|
|
36
|
-
|
|
37
27
|
def response_label(index = nil)
|
|
38
28
|
response_type = (custom_response_template.present? ? 'Custom built' : 'Mocked')
|
|
39
29
|
"#{response_type} response#{" #{index}" if index.present?}"
|
|
@@ -52,7 +42,7 @@ module DaVinciCRDTestKit
|
|
|
52
42
|
end
|
|
53
43
|
|
|
54
44
|
run do
|
|
55
|
-
|
|
45
|
+
load_interaction_group_requests
|
|
56
46
|
|
|
57
47
|
skip_if request.blank?, "No #{response_label.downcase}s to verify."
|
|
58
48
|
|
|
@@ -43,7 +43,7 @@ module DaVinciCRDTestKit
|
|
|
43
43
|
run do
|
|
44
44
|
supported_resource_types = extract_supported_resource_types(resource) # extract before loading other requests
|
|
45
45
|
|
|
46
|
-
loaded_requests =
|
|
46
|
+
loaded_requests = load_requests_for_cross_hook_analysis
|
|
47
47
|
skip_if loaded_requests.blank?, 'No hook requests found, run hook tests first.'
|
|
48
48
|
|
|
49
49
|
resources_to_check, unsupported = find_coverage_info_responses(loaded_requests)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
module DaVinciCRDTestKit
|
|
2
|
+
module V221
|
|
3
|
+
ATTESTATION_INPUT_INSTRUCTIONS = %(
|
|
4
|
+
Testers are responsible for confirming that their system meets all requirements associated with a test
|
|
5
|
+
before selecting "Yes" on the attestation input with the same name as the test. The text of the
|
|
6
|
+
attested requirement(s) for each input can be reviewed by clicking the "View Specification Requirements" link
|
|
7
|
+
in the "About" tab of the test with the same name.
|
|
8
|
+
).freeze
|
|
9
|
+
end
|
|
10
|
+
end
|
data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_authorized_scope_attestation_test.rb
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class AuthorizedScopeAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_authorized_scope_attestation
|
|
7
|
+
ATTESTATION_TITLE = "Health IT module takes the user's authorized scope into account when providing data " \
|
|
8
|
+
'during CDS Hook invocations'.freeze
|
|
9
|
+
title ATTESTATION_TITLE
|
|
10
|
+
description %(
|
|
11
|
+
During this test, the tester will confirm that the Health IT module limits the data it makes available to CDS
|
|
12
|
+
Services to what the current user is authorized to access.
|
|
13
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
14
|
+
test.
|
|
15
|
+
)
|
|
16
|
+
attestation
|
|
17
|
+
verifies_requirements 'cds-hooks_3.0.0-ballot@42', 'cds-hooks_3.0.0-ballot@63', 'cds-hooks_3.0.0-ballot@64',
|
|
18
|
+
'cds-hooks_3.0.0-ballot@173'
|
|
19
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
20
|
+
|
|
21
|
+
input :authorized_scope_attestation,
|
|
22
|
+
title: ATTESTATION_TITLE,
|
|
23
|
+
description: %(
|
|
24
|
+
I attest that the Health IT module limits the data it makes available to CDS Services to what the
|
|
25
|
+
current user is authorized to access.
|
|
26
|
+
),
|
|
27
|
+
type: 'radio',
|
|
28
|
+
default: 'false',
|
|
29
|
+
options: {
|
|
30
|
+
list_options: [
|
|
31
|
+
{ label: 'Yes', value: 'true' },
|
|
32
|
+
{ label: 'No', value: 'false' }
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
input :authorized_scope_attestation_note,
|
|
36
|
+
title: 'Notes, if applicable:',
|
|
37
|
+
type: 'textarea',
|
|
38
|
+
optional: true
|
|
39
|
+
|
|
40
|
+
run do
|
|
41
|
+
assert authorized_scope_attestation == 'true'
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class CoverageBasedInvocationAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_coverage_based_invocation_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module invokes hooks appropriately based on active coverage(s)'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module invokes hooks on payer services
|
|
11
|
+
appropriately based on the patient's active coverages.
|
|
12
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
13
|
+
test.
|
|
14
|
+
)
|
|
15
|
+
attestation
|
|
16
|
+
verifies_requirements 'hl7.fhir.us.davinci-crd_2.2.1@dev-28', 'hl7.fhir.us.davinci-crd_2.2.1@dev-30',
|
|
17
|
+
'hl7.fhir.us.davinci-crd_2.2.1@dev-32'
|
|
18
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
19
|
+
|
|
20
|
+
input :coverage_based_invocation_attestation,
|
|
21
|
+
title: ATTESTATION_TITLE,
|
|
22
|
+
description: %(
|
|
23
|
+
I attest that the Health IT module invokes hooks on payer services appropriately based on the
|
|
24
|
+
patient's active coverages.
|
|
25
|
+
),
|
|
26
|
+
type: 'radio',
|
|
27
|
+
default: 'false',
|
|
28
|
+
options: {
|
|
29
|
+
list_options: [
|
|
30
|
+
{ label: 'Yes', value: 'true' },
|
|
31
|
+
{ label: 'No', value: 'false' }
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
input :coverage_based_invocation_attestation_note,
|
|
35
|
+
title: 'Notes, if applicable:',
|
|
36
|
+
type: 'textarea',
|
|
37
|
+
optional: true
|
|
38
|
+
|
|
39
|
+
run do
|
|
40
|
+
assert coverage_based_invocation_attestation == 'true'
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class DataElementExpectationsAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_data_element_expectations_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module does not set additional expectations for data elements'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module does not set expectations for data
|
|
11
|
+
elements beyond those the CRD specification requires.
|
|
12
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
13
|
+
test.
|
|
14
|
+
)
|
|
15
|
+
attestation
|
|
16
|
+
verifies_requirements 'hl7.fhir.us.davinci-crd_2.2.1@conf-12',
|
|
17
|
+
'hl7.fhir.us.davinci-crd_2.2.1@conf-13', 'hl7.fhir.us.davinci-crd_2.2.1@found-33'
|
|
18
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
19
|
+
|
|
20
|
+
input :data_element_expectations_attestation,
|
|
21
|
+
title: ATTESTATION_TITLE,
|
|
22
|
+
description: %(
|
|
23
|
+
I attest that the Health IT module does not set expectations for data elements beyond those the CRD
|
|
24
|
+
specification requires.
|
|
25
|
+
),
|
|
26
|
+
type: 'radio',
|
|
27
|
+
default: 'false',
|
|
28
|
+
options: {
|
|
29
|
+
list_options: [
|
|
30
|
+
{ label: 'Yes', value: 'true' },
|
|
31
|
+
{ label: 'No', value: 'false' }
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
input :data_element_expectations_attestation_note,
|
|
35
|
+
title: 'Notes, if applicable:',
|
|
36
|
+
type: 'textarea',
|
|
37
|
+
optional: true
|
|
38
|
+
|
|
39
|
+
run do
|
|
40
|
+
assert data_element_expectations_attestation == 'true'
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class HookInvocationLoggingAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_hook_invocation_logging_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module retains logs of all CRD-related hook invocations'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module retains logs of all CRD-related hook
|
|
11
|
+
invocations and their responses.
|
|
12
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
13
|
+
test.
|
|
14
|
+
)
|
|
15
|
+
attestation
|
|
16
|
+
verifies_requirements 'hl7.fhir.us.davinci-crd_2.2.1@found-37'
|
|
17
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
18
|
+
|
|
19
|
+
input :hook_invocation_logging_attestation,
|
|
20
|
+
title: ATTESTATION_TITLE,
|
|
21
|
+
description: %(
|
|
22
|
+
I attest that the Health IT module retains logs of all CRD-related hook invocations and their
|
|
23
|
+
responses.
|
|
24
|
+
),
|
|
25
|
+
type: 'radio',
|
|
26
|
+
default: 'false',
|
|
27
|
+
options: {
|
|
28
|
+
list_options: [
|
|
29
|
+
{ label: 'Yes', value: 'true' },
|
|
30
|
+
{ label: 'No', value: 'false' }
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
input :hook_invocation_logging_attestation_note,
|
|
34
|
+
title: 'Notes, if applicable:',
|
|
35
|
+
type: 'textarea',
|
|
36
|
+
optional: true
|
|
37
|
+
|
|
38
|
+
run do
|
|
39
|
+
assert hook_invocation_logging_attestation == 'true'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class MustSupportExposureAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_must_support_exposure_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module exposes maintained must support elements'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module exposes the mustSupport elements it
|
|
11
|
+
maintains and surfaces to users in its FHIR interface.
|
|
12
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
13
|
+
test.
|
|
14
|
+
)
|
|
15
|
+
attestation
|
|
16
|
+
verifies_requirements 'hl7.fhir.us.davinci-crd_2.2.1@conf-3'
|
|
17
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
18
|
+
|
|
19
|
+
input :must_support_exposure_attestation,
|
|
20
|
+
title: ATTESTATION_TITLE,
|
|
21
|
+
description: %(
|
|
22
|
+
I attest that the Health IT module exposes the mustSupport elements it maintains and surfaces to
|
|
23
|
+
users in its FHIR interface.
|
|
24
|
+
),
|
|
25
|
+
type: 'radio',
|
|
26
|
+
default: 'false',
|
|
27
|
+
options: {
|
|
28
|
+
list_options: [
|
|
29
|
+
{ label: 'Yes', value: 'true' },
|
|
30
|
+
{ label: 'No', value: 'false' }
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
input :must_support_exposure_attestation_note,
|
|
34
|
+
title: 'Notes, if applicable:',
|
|
35
|
+
type: 'textarea',
|
|
36
|
+
optional: true
|
|
37
|
+
|
|
38
|
+
run do
|
|
39
|
+
assert must_support_exposure_attestation == 'true'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
data/lib/davinci_crd_test_kit/client/v2.2.1/attestations/client_must_support_use_attestation_test.rb
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class MustSupportUseAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_must_support_use_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module uses received must support data'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module uses the mustSupport data it receives.
|
|
11
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
12
|
+
test.
|
|
13
|
+
)
|
|
14
|
+
attestation
|
|
15
|
+
verifies_requirements 'hl7.fhir.us.davinci-crd_2.2.1@conf-6'
|
|
16
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
17
|
+
|
|
18
|
+
input :must_support_use_attestation,
|
|
19
|
+
title: ATTESTATION_TITLE,
|
|
20
|
+
description: %(
|
|
21
|
+
I attest that the Health IT module uses the mustSupport data it receives.
|
|
22
|
+
),
|
|
23
|
+
type: 'radio',
|
|
24
|
+
default: 'false',
|
|
25
|
+
options: {
|
|
26
|
+
list_options: [
|
|
27
|
+
{ label: 'Yes', value: 'true' },
|
|
28
|
+
{ label: 'No', value: 'false' }
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
input :must_support_use_attestation_note,
|
|
32
|
+
title: 'Notes, if applicable:',
|
|
33
|
+
type: 'textarea',
|
|
34
|
+
optional: true
|
|
35
|
+
|
|
36
|
+
run do
|
|
37
|
+
assert must_support_use_attestation == 'true'
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class OrderSignSupportAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_order_sign_support_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module supports order-sign for all types of orders that can be placed'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module supports the `order-sign` hook for all
|
|
11
|
+
order types it can place.
|
|
12
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
13
|
+
test.
|
|
14
|
+
)
|
|
15
|
+
attestation
|
|
16
|
+
verifies_requirements 'hl7.fhir.us.davinci-crd_2.2.1@hook-3'
|
|
17
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
18
|
+
|
|
19
|
+
input :order_sign_support_attestation,
|
|
20
|
+
title: ATTESTATION_TITLE,
|
|
21
|
+
description: %(
|
|
22
|
+
I attest that the Health IT module supports the `order-sign` hook for all order types it can place.
|
|
23
|
+
),
|
|
24
|
+
type: 'radio',
|
|
25
|
+
default: 'false',
|
|
26
|
+
options: {
|
|
27
|
+
list_options: [
|
|
28
|
+
{ label: 'Yes', value: 'true' },
|
|
29
|
+
{ label: 'No', value: 'false' }
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
input :order_sign_support_attestation_note,
|
|
33
|
+
title: 'Notes, if applicable:',
|
|
34
|
+
type: 'textarea',
|
|
35
|
+
optional: true
|
|
36
|
+
|
|
37
|
+
run do
|
|
38
|
+
assert order_sign_support_attestation == 'true'
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class PrefetchKeyOmissionAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_prefetch_key_omission_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module omits prefetch keys when data not available'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module omits prefetch keys when the relevant
|
|
11
|
+
data cannot be provided.
|
|
12
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
13
|
+
test.
|
|
14
|
+
)
|
|
15
|
+
attestation
|
|
16
|
+
verifies_requirements 'cds-hooks_3.0.0-ballot@51'
|
|
17
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
18
|
+
|
|
19
|
+
input :prefetch_key_omission_attestation,
|
|
20
|
+
title: ATTESTATION_TITLE,
|
|
21
|
+
description: %(
|
|
22
|
+
I attest that the Health IT module omits prefetch keys when the relevant data cannot be provided.
|
|
23
|
+
),
|
|
24
|
+
type: 'radio',
|
|
25
|
+
default: 'false',
|
|
26
|
+
options: {
|
|
27
|
+
list_options: [
|
|
28
|
+
{ label: 'Yes', value: 'true' },
|
|
29
|
+
{ label: 'No', value: 'false' }
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
input :prefetch_key_omission_attestation_note,
|
|
33
|
+
title: 'Notes, if applicable:',
|
|
34
|
+
type: 'textarea',
|
|
35
|
+
optional: true
|
|
36
|
+
|
|
37
|
+
run do
|
|
38
|
+
assert prefetch_key_omission_attestation == 'true'
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class ResourceIdentifiersAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_resource_identifiers_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module does not use business identifiers in resource identifiers'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module does not expose resource identifiers
|
|
11
|
+
that have a determinable relationship with business identifiers.
|
|
12
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
13
|
+
test.
|
|
14
|
+
)
|
|
15
|
+
attestation
|
|
16
|
+
verifies_requirements 'hl7.fhir.us.davinci-crd_2.2.1@sec-7'
|
|
17
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
18
|
+
|
|
19
|
+
input :resource_identifiers_attestation,
|
|
20
|
+
title: ATTESTATION_TITLE,
|
|
21
|
+
description: %(
|
|
22
|
+
I attest that the Health IT module does not expose resource identifiers that have a determinable
|
|
23
|
+
relationship with business identifiers.
|
|
24
|
+
),
|
|
25
|
+
type: 'radio',
|
|
26
|
+
default: 'false',
|
|
27
|
+
options: {
|
|
28
|
+
list_options: [
|
|
29
|
+
{ label: 'Yes', value: 'true' },
|
|
30
|
+
{ label: 'No', value: 'false' }
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
input :resource_identifiers_attestation_note,
|
|
34
|
+
title: 'Notes, if applicable:',
|
|
35
|
+
type: 'textarea',
|
|
36
|
+
optional: true
|
|
37
|
+
|
|
38
|
+
run do
|
|
39
|
+
assert resource_identifiers_attestation == 'true'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class ResponseCaseDistinctionAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_response_case_distinction_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module distinguishes different response cases to users'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module distinguishes the different CRD
|
|
11
|
+
response cases when presenting results to users.
|
|
12
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
13
|
+
test.
|
|
14
|
+
)
|
|
15
|
+
attestation
|
|
16
|
+
verifies_requirements 'hl7.fhir.us.davinci-crd_2.2.1@impl-1'
|
|
17
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
18
|
+
|
|
19
|
+
input :response_case_distinction_attestation,
|
|
20
|
+
title: ATTESTATION_TITLE,
|
|
21
|
+
description: %(
|
|
22
|
+
I attest that the Health IT module distinguishes the different CRD response cases when presenting
|
|
23
|
+
results to users.
|
|
24
|
+
),
|
|
25
|
+
type: 'radio',
|
|
26
|
+
default: 'false',
|
|
27
|
+
options: {
|
|
28
|
+
list_options: [
|
|
29
|
+
{ label: 'Yes', value: 'true' },
|
|
30
|
+
{ label: 'No', value: 'false' }
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
input :response_case_distinction_attestation_note,
|
|
34
|
+
title: 'Notes, if applicable:',
|
|
35
|
+
type: 'textarea',
|
|
36
|
+
optional: true
|
|
37
|
+
|
|
38
|
+
run do
|
|
39
|
+
assert response_case_distinction_attestation == 'true'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class SecurityAndPrivacyAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_security_and_privacy_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module adheres to security and privacy requirements'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module adheres to the security and privacy
|
|
11
|
+
rules that CRD inherits from the specifications it builds on.
|
|
12
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
13
|
+
test.
|
|
14
|
+
)
|
|
15
|
+
attestation
|
|
16
|
+
verifies_requirements 'hl7.fhir.us.davinci-crd_2.2.1@sec-1'
|
|
17
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
18
|
+
|
|
19
|
+
input :security_and_privacy_attestation,
|
|
20
|
+
title: ATTESTATION_TITLE,
|
|
21
|
+
description: %(
|
|
22
|
+
I attest that the Health IT module adheres to the security and privacy rules that CRD inherits from
|
|
23
|
+
the specifications it builds on.
|
|
24
|
+
),
|
|
25
|
+
type: 'radio',
|
|
26
|
+
default: 'false',
|
|
27
|
+
options: {
|
|
28
|
+
list_options: [
|
|
29
|
+
{ label: 'Yes', value: 'true' },
|
|
30
|
+
{ label: 'No', value: 'false' }
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
input :security_and_privacy_attestation_note,
|
|
34
|
+
title: 'Notes, if applicable:',
|
|
35
|
+
type: 'textarea',
|
|
36
|
+
optional: true
|
|
37
|
+
|
|
38
|
+
run do
|
|
39
|
+
assert security_and_privacy_attestation == 'true'
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
require_relative 'attestation_instructions'
|
|
2
|
+
|
|
3
|
+
module DaVinciCRDTestKit
|
|
4
|
+
module V221
|
|
5
|
+
class WorkflowIntegrationAttestationTest < Inferno::Test
|
|
6
|
+
id :crd_v221_workflow_integration_attestation
|
|
7
|
+
ATTESTATION_TITLE = 'Health IT module integrates hook invocations transparently into user workflows'.freeze
|
|
8
|
+
title ATTESTATION_TITLE
|
|
9
|
+
description %(
|
|
10
|
+
During this test, the tester will confirm that the Health IT module integrates CRD hook invocations
|
|
11
|
+
transparently into the regular user workflow.
|
|
12
|
+
To see the specifics of the attested requirements, click the "View Specification Requirements" link for this
|
|
13
|
+
test.
|
|
14
|
+
)
|
|
15
|
+
attestation
|
|
16
|
+
verifies_requirements 'hl7.fhir.us.davinci-crd_2.2.1@hook-7', 'hl7.fhir.us.davinci-crd_2.2.1@hook-8',
|
|
17
|
+
'hl7.fhir.us.davinci-crd_2.2.1@resp-48'
|
|
18
|
+
input_instructions ATTESTATION_INPUT_INSTRUCTIONS
|
|
19
|
+
|
|
20
|
+
input :workflow_integration_attestation,
|
|
21
|
+
title: ATTESTATION_TITLE,
|
|
22
|
+
description: %(
|
|
23
|
+
I attest that the Health IT module integrates CRD hook invocations transparently into the regular
|
|
24
|
+
user workflow.
|
|
25
|
+
),
|
|
26
|
+
type: 'radio',
|
|
27
|
+
default: 'false',
|
|
28
|
+
options: {
|
|
29
|
+
list_options: [
|
|
30
|
+
{ label: 'Yes', value: 'true' },
|
|
31
|
+
{ label: 'No', value: 'false' }
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
input :workflow_integration_attestation_note,
|
|
35
|
+
title: 'Notes, if applicable:',
|
|
36
|
+
type: 'textarea',
|
|
37
|
+
optional: true
|
|
38
|
+
|
|
39
|
+
run do
|
|
40
|
+
assert workflow_integration_attestation == 'true'
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|