davinci_pdex_test_kit 0.13.0 → 0.13.1
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/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/authentication.rb +33 -11
- data/lib/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/must_support.rb +33 -9
- data/lib/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/provenance.rb +32 -11
- data/lib/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/receive_must_support.rb +33 -11
- data/lib/davinci_pdex_test_kit/pdex_payer_client_suite.rb +7 -0
- data/lib/davinci_pdex_test_kit/pdex_payer_server/coverage_to_link_minimal_data_validation.rb +2 -1
- data/lib/davinci_pdex_test_kit/pdex_payer_server/coverage_to_link_must_support_validation.rb +2 -1
- data/lib/davinci_pdex_test_kit/pdex_payer_server/member_match_request_local_references_validation.rb +2 -1
- data/lib/davinci_pdex_test_kit/pdex_payer_server/multiple_member_matches_group.rb +2 -1
- data/lib/davinci_pdex_test_kit/pdex_payer_server/no_member_matches_group.rb +2 -1
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/bulk_data_transmission_restrictions.rb +30 -10
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/consent_failure.rb +35 -13
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/consent_requirements.rb +33 -9
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/hrex_must_support.rb +32 -11
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/licensing.rb +31 -9
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/member_auth.rb +54 -12
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/mtls.rb +44 -11
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/payer_consent_compliance.rb +30 -10
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/prior_authorization_decisions.rb +32 -12
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/provenance_records.rb +33 -10
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/read_and_search_hrex.rb +31 -10
- data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/resources_in_capability_statement.rb +31 -10
- data/lib/davinci_pdex_test_kit/pdex_payer_server/workflow_member_match_group.rb +4 -2
- data/lib/davinci_pdex_test_kit/pdex_payer_server_suite.rb +9 -1
- data/lib/davinci_pdex_test_kit/pdex_provider_client_suite.rb +4 -1
- data/lib/davinci_pdex_test_kit/remove_input.rb +10 -0
- data/lib/davinci_pdex_test_kit/version.rb +2 -2
- metadata +33 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f6f235c5cf1860b9317eaf9337e0795f6430a02ebf1bdada2d6b4f521fd02410
|
|
4
|
+
data.tar.gz: 24c44fcc9f852843a72c8eb7b9f6b7132108b3197b898e8212db02c144a94765
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d0b1646225ebe4917d608546733fd466b986d1fff843896f93de42bb810025820f0f642b31297531050069dffe65418d8909327ab2e0d248c8e992da2dac428e
|
|
7
|
+
data.tar.gz: 9e8af22b5582a1305bc2b63c348499210526cdb890dcf4a84c7b715cdecc5e61ba93d3e01d47782c028d2206124cdc6fac6757bb62aaf61e3fe4969bd6e8e877
|
data/lib/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/authentication.rb
CHANGED
|
@@ -13,22 +13,44 @@ module DaVinciPDexTestKit
|
|
|
13
13
|
|
|
14
14
|
verifies_requirements 'hl7.fhir.us.davinci-pdex_2.0.0@10'
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
wait(
|
|
20
|
-
identifier:,
|
|
21
|
-
message: <<~MESSAGE
|
|
16
|
+
input :pdex_member_authentication_test_options,
|
|
17
|
+
title: 'Uses recognized Health Plan credentials',
|
|
18
|
+
description: %(
|
|
22
19
|
I attest that the Health IT Module requires members to authenticate
|
|
20
|
+
using credentials issued or recognized by the Health Plan, such as credentials used to access
|
|
21
|
+
a member portal, and accepts only those credentials when processing member-authorized requests.
|
|
22
|
+
),
|
|
23
|
+
type: 'radio',
|
|
24
|
+
default: 'false',
|
|
25
|
+
options: {
|
|
26
|
+
list_options: [
|
|
27
|
+
{
|
|
28
|
+
label: 'Yes',
|
|
29
|
+
value: 'true'
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
label: 'No',
|
|
33
|
+
value: 'false'
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
input :pdex_member_authentication_test_note,
|
|
38
|
+
title: 'Notes, if applicable:',
|
|
39
|
+
type: 'textarea',
|
|
40
|
+
optional: true
|
|
41
|
+
|
|
42
|
+
run do
|
|
43
|
+
assert pdex_member_authentication_test_options == 'true', %(
|
|
44
|
+
The following was not satisfied:
|
|
45
|
+
|
|
46
|
+
The Health IT Module requires members to authenticate
|
|
23
47
|
using credentials issued or recognized by the Health Plan, such as credentials used to access
|
|
24
48
|
a member portal, and accepts only those credentials when processing member-authorized requests.
|
|
25
49
|
|
|
26
|
-
|
|
50
|
+
)
|
|
51
|
+
pass pdex_member_authentication_test_note if pdex_member_authentication_test_note.present?
|
|
52
|
+
end
|
|
27
53
|
|
|
28
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
|
|
29
|
-
MESSAGE
|
|
30
|
-
)
|
|
31
|
-
end
|
|
32
54
|
end
|
|
33
55
|
end
|
|
34
56
|
end
|
data/lib/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/must_support.rb
CHANGED
|
@@ -17,24 +17,48 @@ module DaVinciPDexTestKit
|
|
|
17
17
|
'hl7.fhir.us.davinci-pdex_2.0.0@6',
|
|
18
18
|
'hl7.fhir.us.davinci-pdex_2.0.0@8'
|
|
19
19
|
|
|
20
|
+
input :pdex_client_must_support_interpretation_test_options,
|
|
21
|
+
title: 'Interprets Must Support according to US Core and HRex',
|
|
22
|
+
description: %(
|
|
23
|
+
The developer of the Health IT Module attests that:
|
|
24
|
+
|
|
25
|
+
- For US Core profiles, Must Support elements are interpreted according to the US Core IG.
|
|
26
|
+
- For HRex profiles, Must Support elements are interpreted according to the HRex IG.
|
|
27
|
+
- For PDex profiles, Must Support elements are interpreted according to the US Core IG.
|
|
28
|
+
),
|
|
29
|
+
type: 'radio',
|
|
30
|
+
default: 'false',
|
|
31
|
+
options: {
|
|
32
|
+
list_options: [
|
|
33
|
+
{
|
|
34
|
+
label: 'Yes',
|
|
35
|
+
value: 'true'
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
label: 'No',
|
|
39
|
+
value: 'false'
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
input :pdex_client_must_support_interpretation_test_note,
|
|
44
|
+
title: 'Notes, if applicable:',
|
|
45
|
+
type: 'textarea',
|
|
46
|
+
optional: true
|
|
47
|
+
|
|
20
48
|
run do
|
|
21
|
-
|
|
49
|
+
assert pdex_client_must_support_interpretation_test_options == 'true', %(
|
|
50
|
+
The following was not satisfied:
|
|
22
51
|
|
|
23
|
-
|
|
24
|
-
identifier:,
|
|
25
|
-
message: <<~MESSAGE
|
|
26
|
-
The developer of the Health IT Module attests that:
|
|
52
|
+
The Health IT Module applies Must Support rules for all profiles it implements as follows:
|
|
27
53
|
|
|
28
54
|
- For US Core profiles, Must Support elements are interpreted according to the US Core IG.
|
|
29
55
|
- For HRex profiles, Must Support elements are interpreted according to the HRex IG.
|
|
30
56
|
- For PDex profiles, Must Support elements are interpreted according to the US Core IG.
|
|
31
57
|
|
|
32
|
-
[Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
|
|
33
|
-
|
|
34
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
|
|
35
|
-
MESSAGE
|
|
36
58
|
)
|
|
59
|
+
pass pdex_client_must_support_interpretation_test_note if pdex_client_must_support_interpretation_test_note.present?
|
|
37
60
|
end
|
|
61
|
+
|
|
38
62
|
end
|
|
39
63
|
end
|
|
40
64
|
end
|
data/lib/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/provenance.rb
CHANGED
|
@@ -12,21 +12,42 @@ module DaVinciPDexTestKit
|
|
|
12
12
|
|
|
13
13
|
verifies_requirements 'hl7.fhir.us.davinci-pdex_2.0.0@28'
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
wait(
|
|
19
|
-
identifier:,
|
|
20
|
-
message: <<~MESSAGE
|
|
15
|
+
input :pdex_accept_retain_provenance_test_options,
|
|
16
|
+
title: 'Accepts and retains Provenance in member-authorized payer-to-payer exchange',
|
|
17
|
+
description: %(
|
|
21
18
|
I attest that the Health IT Module accepts and retains
|
|
19
|
+
Provenance records received with data as part of a member-authorized payer-to-payer exchange.
|
|
20
|
+
),
|
|
21
|
+
type: 'radio',
|
|
22
|
+
default: 'false',
|
|
23
|
+
options: {
|
|
24
|
+
list_options: [
|
|
25
|
+
{
|
|
26
|
+
label: 'Yes',
|
|
27
|
+
value: 'true'
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
label: 'No',
|
|
31
|
+
value: 'false'
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
input :pdex_accept_retain_provenance_test_note,
|
|
36
|
+
title: 'Notes, if applicable:',
|
|
37
|
+
type: 'textarea',
|
|
38
|
+
optional: true
|
|
39
|
+
|
|
40
|
+
run do
|
|
41
|
+
assert pdex_accept_retain_provenance_test_options == 'true', %(
|
|
42
|
+
The following was not satisfied:
|
|
43
|
+
|
|
44
|
+
The Health IT Module accepts and retains
|
|
22
45
|
Provenance records received with data as part of a member-authorized payer-to-payer exchange.
|
|
23
46
|
|
|
24
|
-
|
|
47
|
+
)
|
|
48
|
+
pass pdex_accept_retain_provenance_test_note if pdex_accept_retain_provenance_test_note.present?
|
|
49
|
+
end
|
|
25
50
|
|
|
26
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
|
|
27
|
-
MESSAGE
|
|
28
|
-
)
|
|
29
|
-
end
|
|
30
51
|
end
|
|
31
52
|
end
|
|
32
53
|
end
|
|
@@ -13,22 +13,44 @@ module DaVinciPDexTestKit
|
|
|
13
13
|
|
|
14
14
|
verifies_requirements 'hl7.fhir.us.davinci-pdex_2.0.0@53'
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
wait(
|
|
20
|
-
identifier:,
|
|
21
|
-
message: <<~MESSAGE
|
|
16
|
+
input :pdex_must_support_sub_element_handling_test_options,
|
|
17
|
+
title: 'Accepts Must Support elements without error',
|
|
18
|
+
description: %(
|
|
22
19
|
The developer of the Health IT Module attests that the Health IT System can accept sub-elements marked Must Support
|
|
20
|
+
without generating errors — unless those sub-elements belong to a parent element
|
|
21
|
+
that has a minimum cardinality of 0 and no Must Support flag.
|
|
22
|
+
),
|
|
23
|
+
type: 'radio',
|
|
24
|
+
default: 'false',
|
|
25
|
+
options: {
|
|
26
|
+
list_options: [
|
|
27
|
+
{
|
|
28
|
+
label: 'Yes',
|
|
29
|
+
value: 'true'
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
label: 'No',
|
|
33
|
+
value: 'false'
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
input :pdex_must_support_sub_element_handling_test_note,
|
|
38
|
+
title: 'Notes, if applicable:',
|
|
39
|
+
type: 'textarea',
|
|
40
|
+
optional: true
|
|
41
|
+
|
|
42
|
+
run do
|
|
43
|
+
assert pdex_must_support_sub_element_handling_test_options == 'true', %(
|
|
44
|
+
The following was not satisfied:
|
|
45
|
+
|
|
46
|
+
The Health IT Module ensures that it can accept sub-elements marked Must Support
|
|
23
47
|
without generating errors — unless those sub-elements belong to a parent element
|
|
24
48
|
that has a minimum cardinality of 0 and no Must Support flag.
|
|
25
49
|
|
|
26
|
-
|
|
50
|
+
)
|
|
51
|
+
pass pdex_must_support_sub_element_handling_test_note if pdex_must_support_sub_element_handling_test_note.present?
|
|
52
|
+
end
|
|
27
53
|
|
|
28
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
|
|
29
|
-
MESSAGE
|
|
30
|
-
)
|
|
31
|
-
end
|
|
32
54
|
end
|
|
33
55
|
end
|
|
34
56
|
end
|
|
@@ -6,6 +6,8 @@ require_relative 'pdex_payer_client/mock_server'
|
|
|
6
6
|
# require_relative 'must_support_test'
|
|
7
7
|
# require_relative 'pdex_payer_client/client_validation_test'
|
|
8
8
|
|
|
9
|
+
require_relative 'remove_input'
|
|
10
|
+
|
|
9
11
|
require_relative 'pdex_payer_client/client_registration_group'
|
|
10
12
|
require_relative 'pdex_payer_client/client_auth_smart_alca_group'
|
|
11
13
|
require_relative 'pdex_payer_client/client_auth_smart_alcs_group'
|
|
@@ -73,6 +75,10 @@ module DaVinciPDexTestKit
|
|
|
73
75
|
igs 'hl7.fhir.us.davinci-pdex#2.0.0'
|
|
74
76
|
# hrex 1.0.0 and other dependencies will auto-load
|
|
75
77
|
|
|
78
|
+
validation_context do
|
|
79
|
+
snomedCT '731000124108'
|
|
80
|
+
end
|
|
81
|
+
|
|
76
82
|
exclude_message do |message|
|
|
77
83
|
message.message.match?(/\A\S+: \S+: URL value '.*' does not resolve/)
|
|
78
84
|
end
|
|
@@ -189,6 +195,7 @@ module DaVinciPDexTestKit
|
|
|
189
195
|
group from: :pdex_client_visual_inspection_and_attestation do
|
|
190
196
|
optional
|
|
191
197
|
end
|
|
198
|
+
RemoveInput::recursive_remove_input(groups.last, :url)
|
|
192
199
|
|
|
193
200
|
|
|
194
201
|
# TODO: must support validation
|
data/lib/davinci_pdex_test_kit/pdex_payer_server/coverage_to_link_minimal_data_validation.rb
CHANGED
|
@@ -29,7 +29,7 @@ module DaVinciPDexTestKit
|
|
|
29
29
|
class CoverageToLinkMinimalDataValidation < Inferno::Test
|
|
30
30
|
|
|
31
31
|
id :pdex_coverage_to_link_minimal_validation
|
|
32
|
-
title '
|
|
32
|
+
title 'CoverageToLink parameter should not include any data elements not marked as mustSupport'
|
|
33
33
|
optional
|
|
34
34
|
description %{
|
|
35
35
|
This test will skip if there is no CoverageToLink parameter in the member match request input for one match.
|
|
@@ -43,6 +43,7 @@ module DaVinciPDexTestKit
|
|
|
43
43
|
See [notes](https://hl7.org/fhir/us/davinci-hrex/STU1/OperationDefinition-member-match.html#notes) in HRex Implementation Guide,
|
|
44
44
|
as required by PDex Implementation Guide.
|
|
45
45
|
}
|
|
46
|
+
simulation_verification
|
|
46
47
|
|
|
47
48
|
input :member_match_request
|
|
48
49
|
|
data/lib/davinci_pdex_test_kit/pdex_payer_server/coverage_to_link_must_support_validation.rb
CHANGED
|
@@ -30,9 +30,10 @@ module DaVinciPDexTestKit
|
|
|
30
30
|
class CoverageToLinkMustSupportValidation < Inferno::Test
|
|
31
31
|
|
|
32
32
|
id :pdex_coverage_to_link_ms_validation
|
|
33
|
-
title '
|
|
33
|
+
title 'CoverageToLink parameter is optional for generic FHIR clients, but required for Payer systems.'
|
|
34
34
|
description 'See [CoverageToLink parameter documentation](https://hl7.org/fhir/us/davinci-hrex/STU1/OperationDefinition-member-match.html).'
|
|
35
35
|
optional
|
|
36
|
+
simulation_verification
|
|
36
37
|
|
|
37
38
|
input :member_match_request
|
|
38
39
|
|
data/lib/davinci_pdex_test_kit/pdex_payer_server/member_match_request_local_references_validation.rb
CHANGED
|
@@ -29,7 +29,7 @@ module DaVinciPDexTestKit
|
|
|
29
29
|
class MemberMatchRequestLocalReferencesValidation < Inferno::Test
|
|
30
30
|
id :pdex_member_match_local_ref_validation
|
|
31
31
|
|
|
32
|
-
title '
|
|
32
|
+
title 'Member match request only uses local references'
|
|
33
33
|
|
|
34
34
|
description %{
|
|
35
35
|
This test confirms that all Patient references inside the Consent and CoverageToMatch parameters are local references to the MemberPatient
|
|
@@ -37,6 +37,7 @@ module DaVinciPDexTestKit
|
|
|
37
37
|
[resolving parameter references](https://hl7.org/fhir/us/davinci-hrex/STU1/OperationDefinition-member-match.html#resolving-parameter-references)
|
|
38
38
|
from the HRex 1.0.0. Implementation Guide.
|
|
39
39
|
}
|
|
40
|
+
simulation_verification
|
|
40
41
|
|
|
41
42
|
input :member_match_request
|
|
42
43
|
|
|
@@ -22,13 +22,14 @@ module DaVinciPDexTestKit
|
|
|
22
22
|
test from: :pdex_member_match_profile_validation do
|
|
23
23
|
id :pdex_multiple_match_profile_validation
|
|
24
24
|
config(group_config)
|
|
25
|
-
title '
|
|
25
|
+
title 'Member match request for multiple matches is valid'
|
|
26
26
|
description %{
|
|
27
27
|
This test validates the conformity of the user input to the
|
|
28
28
|
[HRex Member Match Request Profile](https://hl7.org/fhir/us/davinci-hrex/STU1/StructureDefinition-hrex-parameters-member-match-in.html),
|
|
29
29
|
ensuring subsequent tests can accurately simulate content. It also checks conformance to the [Parameters Resource](https://hl7.org/fhir/R4/parameters.html),
|
|
30
30
|
mandatory elements, and terminology. It also checks that the Patient reference with the Consent and CoverageToMatch parameters are local references.
|
|
31
31
|
}
|
|
32
|
+
simulation_verification
|
|
32
33
|
|
|
33
34
|
# Inherits
|
|
34
35
|
end
|
|
@@ -23,13 +23,14 @@ module DaVinciPDexTestKit
|
|
|
23
23
|
id :pdex_no_match_profile_validation
|
|
24
24
|
config(group_config)
|
|
25
25
|
|
|
26
|
-
title '
|
|
26
|
+
title 'Member match request for no matches is valid'
|
|
27
27
|
description %{
|
|
28
28
|
Regardless of having no intended matches, this test validates the conformity of the user input to the
|
|
29
29
|
[HRex Member Match Request Profile](https://hl7.org/fhir/us/davinci-hrex/STU1/StructureDefinition-hrex-parameters-member-match-in.html),
|
|
30
30
|
ensuring subsequent tests can accurately simulate content. It also checks conformance to the [Parameters Resource](https://hl7.org/fhir/R4/parameters.html),
|
|
31
31
|
mandatory elements, and terminology. It also checks that the Patient reference with the Consent and CoverageToMatch parameters are local references.
|
|
32
32
|
}
|
|
33
|
+
simulation_verification
|
|
33
34
|
end
|
|
34
35
|
|
|
35
36
|
test from: :pdex_member_match_local_ref_validation, config: group_config
|
|
@@ -14,20 +14,40 @@ module DaVinciPDexTestKit
|
|
|
14
14
|
|
|
15
15
|
verifies_requirements 'hl7.fhir.us.davinci-pdex_2.0.0@11'
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
input :pdex_bulk_data_transmission_restrictions_test_options,
|
|
18
|
+
title: 'Properly restricts Bulk Data transmission of individual member data',
|
|
19
|
+
description: %(
|
|
20
|
+
The developer of the Health IT Module attests that the Health IT Module's use of the Bulk FHIR specification for transmission of individual member data
|
|
21
|
+
honors jurisdictional and personal privacy restrictions that are relevant to a member's health record.
|
|
22
|
+
),
|
|
23
|
+
type: 'radio',
|
|
24
|
+
default: 'false',
|
|
25
|
+
options: {
|
|
26
|
+
list_options: [
|
|
27
|
+
{
|
|
28
|
+
label: 'Yes',
|
|
29
|
+
value: 'true'
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
label: 'No',
|
|
33
|
+
value: 'false'
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
input :pdex_bulk_data_transmission_restrictions_test_note,
|
|
38
|
+
title: 'Notes, if applicable:',
|
|
39
|
+
type: 'textarea',
|
|
40
|
+
optional: true
|
|
19
41
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
The developer of the Health IT Module attests that the Health IT Module's use of the Bulk FHIR specification for transmission of individual member data
|
|
24
|
-
honors jurisdictional and personal privacy restrictions that are relevant to a member's health record.
|
|
42
|
+
run do
|
|
43
|
+
assert pdex_bulk_data_transmission_restrictions_test_options == 'true', %(
|
|
44
|
+
The following was not satisfied:
|
|
25
45
|
|
|
26
|
-
|
|
46
|
+
The Health IT Module's use of the Bulk FHIR specification for transmission of individual member data honors jurisdictional and personal privacy restrictions.
|
|
27
47
|
|
|
28
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
|
|
29
|
-
MESSAGE
|
|
30
48
|
)
|
|
49
|
+
pass pdex_bulk_data_transmission_restrictions_test_note if pdex_bulk_data_transmission_restrictions_test_note.present?
|
|
31
50
|
end
|
|
51
|
+
|
|
32
52
|
end
|
|
33
53
|
end
|
|
@@ -18,23 +18,45 @@ module DaVinciPDexTestKit
|
|
|
18
18
|
verifies_requirements 'hl7.fhir.us.davinci-pdex_2.0.0@38',
|
|
19
19
|
'hl7.fhir.us.davinci-pdex_2.0.0@39'
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
input :pdex_member_match_consent_failure_test_options,
|
|
22
|
+
title: 'Handles consent non-compliance correctly during $member-match',
|
|
23
|
+
description: %(
|
|
24
|
+
The developer of the Health IT Module attests that during the `$member-match` operation:
|
|
25
|
+
|
|
26
|
+
- If a unique match to a member is found but the consent request cannot be honored (e.g., due to unsupported data segmentation policies), the system does not return a Patient ID in the response.
|
|
27
|
+
|
|
28
|
+
- In such cases, the system returns an HTTP 422 status code with an accompanying Operation Outcome that explains why the consent request could not be honored.
|
|
29
|
+
),
|
|
30
|
+
type: 'radio',
|
|
31
|
+
default: 'false',
|
|
32
|
+
options: {
|
|
33
|
+
list_options: [
|
|
34
|
+
{
|
|
35
|
+
label: 'Yes',
|
|
36
|
+
value: 'true'
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
label: 'No',
|
|
40
|
+
value: 'false'
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
input :pdex_member_match_consent_failure_test_note,
|
|
45
|
+
title: 'Notes, if applicable:',
|
|
46
|
+
type: 'textarea',
|
|
47
|
+
optional: true
|
|
30
48
|
|
|
31
|
-
|
|
49
|
+
run do
|
|
50
|
+
assert pdex_member_match_consent_failure_test_options == 'true', %(
|
|
51
|
+
The following was not satisfied:
|
|
32
52
|
|
|
33
|
-
|
|
53
|
+
The Health IT Module correctly handles situations where during the `$member-match` operation:
|
|
54
|
+
- If a unique match to a member is found but the consent request cannot be honored (e.g., due to unsupported data segmentation policies), the system does not return a Patient ID in the response.
|
|
55
|
+
- In such cases, the system returns an HTTP 422 status code with an accompanying Operation Outcome that explains why the consent request could not be honored.
|
|
34
56
|
|
|
35
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
|
|
36
|
-
MESSAGE
|
|
37
57
|
)
|
|
58
|
+
pass pdex_member_match_consent_failure_test_note if pdex_member_match_consent_failure_test_note.present?
|
|
38
59
|
end
|
|
60
|
+
|
|
39
61
|
end
|
|
40
62
|
end
|
|
@@ -18,23 +18,47 @@ module DaVinciPDexTestKit
|
|
|
18
18
|
|
|
19
19
|
verifies_requirements 'hl7.fhir.us.davinci-pdex_2.0.0@40'
|
|
20
20
|
|
|
21
|
+
input :pdex_consent_requirements_test_options,
|
|
22
|
+
title: 'Assesses consent requirements',
|
|
23
|
+
description: %(
|
|
24
|
+
The developer of the Health IT Module attests that the Health IT Module considers consent requirements to be met only if:
|
|
25
|
+
- Member Identity is matched
|
|
26
|
+
- Consent Policy (Everything or only Non-Sensitive data) matches the data release segmentation capabilities of the receiving payer
|
|
27
|
+
- Date period for consent is valid
|
|
28
|
+
- Payer requesting retrieval of data is matched.
|
|
29
|
+
),
|
|
30
|
+
type: 'radio',
|
|
31
|
+
default: 'false',
|
|
32
|
+
options: {
|
|
33
|
+
list_options: [
|
|
34
|
+
{
|
|
35
|
+
label: 'Yes',
|
|
36
|
+
value: 'true'
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
label: 'No',
|
|
40
|
+
value: 'false'
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
input :pdex_consent_requirements_test_note,
|
|
45
|
+
title: 'Notes, if applicable:',
|
|
46
|
+
type: 'textarea',
|
|
47
|
+
optional: true
|
|
48
|
+
|
|
21
49
|
run do
|
|
22
|
-
|
|
50
|
+
assert pdex_consent_requirements_test_options == 'true', %(
|
|
51
|
+
The following was not satisfied:
|
|
23
52
|
|
|
24
|
-
|
|
25
|
-
identifier:,
|
|
26
|
-
message: <<~MESSAGE
|
|
27
|
-
The developer of the Health IT Module attests that the Health IT Module considers consent requirements to be met only if:
|
|
53
|
+
The Health IT Module considers consent requirements to be met only if:
|
|
28
54
|
- Member Identity is matched
|
|
29
55
|
- Consent Policy (Everything or only Non-Sensitive data) matches the data release segmentation capabilities of the receiving payer
|
|
30
56
|
- Date period for consent is valid
|
|
31
57
|
- Payer requesting retrieval of data is matched.
|
|
32
58
|
|
|
33
|
-
[Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
|
|
34
|
-
|
|
35
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
|
|
36
|
-
MESSAGE
|
|
37
59
|
)
|
|
60
|
+
pass pdex_consent_requirements_test_note if pdex_consent_requirements_test_note.present?
|
|
38
61
|
end
|
|
62
|
+
|
|
39
63
|
end
|
|
40
64
|
end
|
|
@@ -15,21 +15,42 @@ module DaVinciPDexTestKit
|
|
|
15
15
|
|
|
16
16
|
verifies_requirements 'hl7.fhir.us.davinci-pdex_2.0.0@5'
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
input :pdex_must_support_defined_by_hrex_test_options,
|
|
19
|
+
title: 'Uses HRex Must Support definitions for HRex profiles',
|
|
20
|
+
description: %(
|
|
21
|
+
The developer of the Health IT Module attests that the system applies the definition
|
|
22
|
+
of "Must Support" as defined by the Da Vinci HRex Implementation Guide for all
|
|
23
|
+
HRex profiles referenced in PDex.
|
|
24
|
+
),
|
|
25
|
+
type: 'radio',
|
|
26
|
+
default: 'false',
|
|
27
|
+
options: {
|
|
28
|
+
list_options: [
|
|
29
|
+
{
|
|
30
|
+
label: 'Yes',
|
|
31
|
+
value: 'true'
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
label: 'No',
|
|
35
|
+
value: 'false'
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
input :pdex_must_support_defined_by_hrex_test_note,
|
|
40
|
+
title: 'Notes, if applicable:',
|
|
41
|
+
type: 'textarea',
|
|
42
|
+
optional: true
|
|
20
43
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
The developer of the Health IT Module attests that the system applies the definition
|
|
25
|
-
of "Must Support" as defined by the Da Vinci HRex Implementation Guide for all
|
|
26
|
-
HRex profiles referenced in PDex.
|
|
44
|
+
run do
|
|
45
|
+
assert pdex_must_support_defined_by_hrex_test_options == 'true', %(
|
|
46
|
+
The following was not satisfied:
|
|
27
47
|
|
|
28
|
-
|
|
48
|
+
The Health IT Module applies the definition of "Must Support" as defined
|
|
49
|
+
by the Da Vinci HRex Implementation Guide for all HRex profiles referenced in PDex.
|
|
29
50
|
|
|
30
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
|
|
31
|
-
MESSAGE
|
|
32
51
|
)
|
|
52
|
+
pass pdex_must_support_defined_by_hrex_test_note if pdex_must_support_defined_by_hrex_test_note.present?
|
|
33
53
|
end
|
|
54
|
+
|
|
34
55
|
end
|
|
35
56
|
end
|
data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/licensing.rb
CHANGED
|
@@ -17,21 +17,43 @@ module DaVinciPDexTestKit
|
|
|
17
17
|
verifies_requirements 'hl7.fhir.us.davinci-pdex_2.0.0@1',
|
|
18
18
|
'hl7.fhir.us.davinci-pdex_2.0.0@2'
|
|
19
19
|
|
|
20
|
+
input :pdex_licensing_test_options,
|
|
21
|
+
title: 'Complies with licensing requirements',
|
|
22
|
+
description: %(
|
|
23
|
+
The developer of the Health IT Module attests that the Health IT Module abides by the license
|
|
24
|
+
requirements for each terminology content artifact utilized within a functioning implementation and obtained
|
|
25
|
+
terminology licenses from the Third-Party IP owner for each code system and/or other specified artifact used.
|
|
26
|
+
),
|
|
27
|
+
type: 'radio',
|
|
28
|
+
default: 'false',
|
|
29
|
+
options: {
|
|
30
|
+
list_options: [
|
|
31
|
+
{
|
|
32
|
+
label: 'Yes',
|
|
33
|
+
value: 'true'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
label: 'No',
|
|
37
|
+
value: 'false'
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
input :pdex_licensing_test_note,
|
|
42
|
+
title: 'Notes, if applicable:',
|
|
43
|
+
type: 'textarea',
|
|
44
|
+
optional: true
|
|
45
|
+
|
|
20
46
|
run do
|
|
21
|
-
|
|
47
|
+
assert pdex_licensing_test_options == 'true', %(
|
|
48
|
+
The following was not satisfied:
|
|
22
49
|
|
|
23
|
-
|
|
24
|
-
identifier:,
|
|
25
|
-
message: <<~MESSAGE
|
|
26
|
-
The developer of the Health IT Module attests that the Health IT Module abides by the license
|
|
50
|
+
The Health IT Module abides by the license
|
|
27
51
|
requirements for each terminology content artifact utilized within a functioning implementation and obtained
|
|
28
52
|
terminology licenses from the Third-Party IP owner for each code system and/or other specified artifact used.
|
|
29
53
|
|
|
30
|
-
[Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
|
|
31
|
-
|
|
32
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
|
|
33
|
-
MESSAGE
|
|
34
54
|
)
|
|
55
|
+
pass pdex_licensing_test_note if pdex_licensing_test_note.present?
|
|
35
56
|
end
|
|
57
|
+
|
|
36
58
|
end
|
|
37
59
|
end
|