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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/lib/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/authentication.rb +33 -11
  3. data/lib/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/must_support.rb +33 -9
  4. data/lib/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/provenance.rb +32 -11
  5. data/lib/davinci_pdex_test_kit/pdex_payer_client/visual_inspection_and_attestation/receive_must_support.rb +33 -11
  6. data/lib/davinci_pdex_test_kit/pdex_payer_client_suite.rb +7 -0
  7. data/lib/davinci_pdex_test_kit/pdex_payer_server/coverage_to_link_minimal_data_validation.rb +2 -1
  8. data/lib/davinci_pdex_test_kit/pdex_payer_server/coverage_to_link_must_support_validation.rb +2 -1
  9. data/lib/davinci_pdex_test_kit/pdex_payer_server/member_match_request_local_references_validation.rb +2 -1
  10. data/lib/davinci_pdex_test_kit/pdex_payer_server/multiple_member_matches_group.rb +2 -1
  11. data/lib/davinci_pdex_test_kit/pdex_payer_server/no_member_matches_group.rb +2 -1
  12. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/bulk_data_transmission_restrictions.rb +30 -10
  13. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/consent_failure.rb +35 -13
  14. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/consent_requirements.rb +33 -9
  15. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/hrex_must_support.rb +32 -11
  16. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/licensing.rb +31 -9
  17. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/member_auth.rb +54 -12
  18. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/mtls.rb +44 -11
  19. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/payer_consent_compliance.rb +30 -10
  20. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/prior_authorization_decisions.rb +32 -12
  21. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/provenance_records.rb +33 -10
  22. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/read_and_search_hrex.rb +31 -10
  23. data/lib/davinci_pdex_test_kit/pdex_payer_server/visual_inspection_and_attestation/resources_in_capability_statement.rb +31 -10
  24. data/lib/davinci_pdex_test_kit/pdex_payer_server/workflow_member_match_group.rb +4 -2
  25. data/lib/davinci_pdex_test_kit/pdex_payer_server_suite.rb +9 -1
  26. data/lib/davinci_pdex_test_kit/pdex_provider_client_suite.rb +4 -1
  27. data/lib/davinci_pdex_test_kit/remove_input.rb +10 -0
  28. data/lib/davinci_pdex_test_kit/version.rb +2 -2
  29. metadata +33 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad5fcf2a6613c6b09173a7624314b6de408ab31211043329d15f6b005aec75b4
4
- data.tar.gz: 37e0d604d542ad4a8d4855ba445ff1724abcf1aa6f99b37d02bdb23df774dda0
3
+ metadata.gz: f6f235c5cf1860b9317eaf9337e0795f6430a02ebf1bdada2d6b4f521fd02410
4
+ data.tar.gz: 24c44fcc9f852843a72c8eb7b9f6b7132108b3197b898e8212db02c144a94765
5
5
  SHA512:
6
- metadata.gz: fc788ca26009d51e5002410baf601c33889d6427ffb4ee5d5f591ef2695a32fc9abf6f8686b2599bb6bb5849eb2ae58c238f3f8b82dd0fe02ae4b92660a8de73
7
- data.tar.gz: c734e19ce44a994fb1d21a546e73e919230472502a247920699f84c90ee95189d000fefadd3bfa1c55c6fd6fdba839db33a839c41bfefcec9967d5a67aea1bfe
6
+ metadata.gz: d0b1646225ebe4917d608546733fd466b986d1fff843896f93de42bb810025820f0f642b31297531050069dffe65418d8909327ab2e0d248c8e992da2dac428e
7
+ data.tar.gz: 9e8af22b5582a1305bc2b63c348499210526cdb890dcf4a84c7b715cdecc5e61ba93d3e01d47782c028d2206124cdc6fac6757bb62aaf61e3fe4969bd6e8e877
@@ -13,22 +13,44 @@ module DaVinciPDexTestKit
13
13
 
14
14
  verifies_requirements 'hl7.fhir.us.davinci-pdex_2.0.0@10'
15
15
 
16
- run do
17
- identifier = SecureRandom.hex(32)
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
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
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
@@ -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
- identifier = SecureRandom.hex(32)
49
+ assert pdex_client_must_support_interpretation_test_options == 'true', %(
50
+ The following was not satisfied:
22
51
 
23
- wait(
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
@@ -12,21 +12,42 @@ module DaVinciPDexTestKit
12
12
 
13
13
  verifies_requirements 'hl7.fhir.us.davinci-pdex_2.0.0@28'
14
14
 
15
- run do
16
- identifier = SecureRandom.hex(32)
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
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
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
- run do
17
- identifier = SecureRandom.hex(32)
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
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
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
@@ -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 '[USER INPUT VALIDATION] CoverageToLink parameter should not include any data elements not marked as mustSupport'
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
 
@@ -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 '[USER INPUT VALIDATION] CoverageToLink parameter is optional for generic FHIR clients, but required for Payer systems.'
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
 
@@ -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 '[USER INPUT VALIDATION] Member match request only uses local references'
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 '[USER INPUT VALIDATION] Member match request for multiple matches is valid'
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 '[USER INPUT VALIDATION] Member match request for no matches is valid'
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
- run do
18
- identifier = SecureRandom.hex(32)
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
- wait(
21
- identifier:,
22
- message: <<~MESSAGE
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
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
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
- run do
22
- identifier = SecureRandom.hex(32)
23
-
24
- wait(
25
- identifier:,
26
- message: <<~MESSAGE
27
- The developer of the Health IT Module attests that during the `$member-match` operation:
28
-
29
- - 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.
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
- - 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.
49
+ run do
50
+ assert pdex_member_match_consent_failure_test_options == 'true', %(
51
+ The following was not satisfied:
32
52
 
33
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
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
- identifier = SecureRandom.hex(32)
50
+ assert pdex_consent_requirements_test_options == 'true', %(
51
+ The following was not satisfied:
23
52
 
24
- wait(
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
- run do
19
- identifier = SecureRandom.hex(32)
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
- wait(
22
- identifier:,
23
- message: <<~MESSAGE
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
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
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
@@ -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
- identifier = SecureRandom.hex(32)
47
+ assert pdex_licensing_test_options == 'true', %(
48
+ The following was not satisfied:
22
49
 
23
- wait(
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