carin_for_blue_button_test_kit 0.16.0 → 0.16.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/lib/carin_for_blue_button_test_kit/carin_search_test.rb +1 -1
  3. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/authentication.rb +34 -11
  4. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/last_updated.rb +32 -10
  5. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_absent_reason.rb +31 -10
  6. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_display.rb +31 -10
  7. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_missing.rb +32 -10
  8. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/00_authorization_group/attestation_test_requirement_48.rb +40 -9
  9. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/00_authorization_group/attestation_test_requirement_60.rb +37 -8
  10. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/00_authorization_group/attestation_test_requirement_97.rb +40 -11
  11. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/01_must_support_group/attestation_test_requirement_10.rb +32 -9
  12. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/01_must_support_group/attestation_test_requirement_2.rb +32 -9
  13. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/01_must_support_group/attestation_test_requirement_5.rb +32 -9
  14. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/01_must_support_group/attestation_test_requirement_7.rb +34 -9
  15. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/01_must_support_group/attestation_test_requirement_9.rb +32 -9
  16. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_105.rb +32 -9
  17. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_108.rb +32 -9
  18. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_115.rb +30 -8
  19. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_116.rb +33 -9
  20. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_118.rb +33 -9
  21. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_119.rb +33 -9
  22. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_120.rb +32 -9
  23. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_124.rb +38 -11
  24. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/04_eob_inpatient_group/attestation_test_requirement_130.rb +32 -9
  25. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/04_eob_inpatient_group/attestation_test_requirement_132.rb +31 -9
  26. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/05_eob_outpatient_group/attestation_test_requirement_156.rb +34 -10
  27. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/05_eob_outpatient_group/attestation_test_requirement_157.rb +36 -11
  28. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/06_eob_oral_group/attestation_test_requirement_144.rb +36 -11
  29. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/06_eob_oral_group/attestation_test_requirement_148.rb +32 -9
  30. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/06_eob_oral_group/attestation_test_requirement_149.rb +31 -9
  31. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/06_eob_oral_group/attestation_test_requirement_150.rb +32 -9
  32. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/06_eob_oral_group/attestation_test_requirement_151.rb +31 -9
  33. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/06_eob_oral_group/attestation_test_requirement_152.rb +32 -9
  34. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/06_eob_oral_group/attestation_test_requirement_153.rb +33 -9
  35. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/07_eob_pharmacy_group/attestation_test_requirement_161.rb +31 -9
  36. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/07_eob_pharmacy_group/attestation_test_requirement_162.rb +31 -9
  37. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/07_eob_pharmacy_group/attestation_test_requirement_163.rb +31 -9
  38. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/07_eob_pharmacy_group/attestation_test_requirement_164.rb +29 -8
  39. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/07_eob_pharmacy_group/attestation_test_requirement_165.rb +31 -9
  40. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/08_eob_nonclinician_group/attestation_test_requirement_168_170.rb +32 -9
  41. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/08_eob_nonclinician_group/attestation_test_requirement_173.rb +32 -9
  42. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/09_organization_group/attestation_test_requirement_177.rb +32 -9
  43. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/09_organization_group/attestation_test_requirement_178.rb +31 -9
  44. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/10_practitioner_group/attestation_test_requirement_186.rb +31 -9
  45. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/adjudication_amount.rb +38 -14
  46. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/amount_calculations.rb +62 -23
  47. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/attestation_test_requirement_19.rb +33 -9
  48. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/attestation_test_requirement_28.rb +32 -9
  49. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/attestation_test_requirement_99.rb +32 -9
  50. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/coverage_reference_resource.rb +30 -9
  51. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/licensing.rb +31 -9
  52. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/meta_lastupdated.rb +44 -17
  53. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/c4bb_test_suite.rb +8 -2
  54. data/lib/carin_for_blue_button_test_kit/generator/templates/suite.rb.erb +9 -2
  55. data/lib/carin_for_blue_button_test_kit/version.rb +2 -2
  56. metadata +20 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d96d5c99e0c8e38c3bb31f61d960bf7b4439e16ace2ddda24e7bd7779d15c85
4
- data.tar.gz: 1e4afb65ed86d9421f3f0682349eac2ea1aa3df0be5eefc573c4ee9a9e08b60b
3
+ metadata.gz: d680d285101a8857f8f62e3e610f0e2179f70b187aa150ca2a2cf89c155a6bba
4
+ data.tar.gz: c3de78a66e608ba9004a31eb1ee71fda36aaa169604451d2366a5d87ac9c9ca9
5
5
  SHA512:
6
- metadata.gz: ce35bfb3ca475f9c7bbf2a841644f9ec0d33be3cdb8290d1abbb37f29d30d420c3e2ff486feeb2f0885b59be633388a662715292712f3d3c71c1c893a544997c
7
- data.tar.gz: 44e70501266e0ce800c2114dfac2f0a2e3fc8b1cfdeae59a32663cebe4ad4b8b6aa9dae37ad08add77f393dd49f058b87a7ee0e966aeea4ee13a428136b424ae
6
+ metadata.gz: 54e0235b88ac93056a8052af0079b6f6ff97477afba9de3f56b7fc7ab659abc37525094ef09192f13bf9f8cfedba2501a64349b412c8a7d2571cc98a1967fb17
7
+ data.tar.gz: 76cafa4ee9fc9da3e048e8bda33ee74eba3aa135c6d3e2879ab60171ecef5497bcdf6a32d0871151e2f6caa952a1f4163da86bf01f5db96378e82c027caa92b8
@@ -423,7 +423,7 @@ module CarinForBlueButtonTestKit
423
423
  def matched_base_resources(_resource, referenced_resource_types, returned_resources_all, values_found)
424
424
  included_refs = included_refs(returned_resources_all, referenced_resource_types)
425
425
 
426
- values_found.select do |base_resource_references|
426
+ values_found.select { |value| value.is_a?(FHIR::Reference) }.select do |base_resource_references|
427
427
  included_refs.any? do |referenced_resource|
428
428
  reference_match?(base_resource_references.reference, referenced_resource)
429
429
  end
@@ -11,20 +11,43 @@ module CarinForBlueButtonTestKit
11
11
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@1',
12
12
  'hl7.fhir.us.carin-bb_2.0.0@48'
13
13
 
14
+ input :c4bb_authentication_options,
15
+ title: 'Uses appropriate authentication',
16
+ description: %(
17
+ I attest that the Health IT Module
18
+ - Directed communication through authenticated, authorized, and secure channels.
19
+ - Used the SMART App Launch Framework’s standalone launch.
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 :c4bb_authentication_note,
36
+ title: 'Notes, if applicable:',
37
+ type: 'textarea',
38
+ optional: true
39
+
14
40
  run do
15
- identifier = SecureRandom.hex(32)
16
- wait(
17
- identifier:,
18
- message: <<~MESSAGE
19
- I attest that the Health IT Module
20
- - Directed communication through authenticated, authorized, and secure channels.
21
- - Used the SMART App Launch Framework’s standalone launch.
41
+ assert c4bb_authentication_options == 'true', %(
42
+ The following was not satisfied:
22
43
 
23
- [Click here](#{resume_pass_url}?token=#{identifier}) if the tester visually confirmed system **meets** these requirements.
44
+ The Health IT Module must
45
+ - Direct communication through authenticated, authorized, and secure channels.
46
+ - Use the SMART App Launch Framework’s standalone launch.
24
47
 
25
- [Click here](#{resume_fail_url}?token=#{identifier}) if the tester visually confirmed system **does not meet** these requirements.
26
- MESSAGE
27
48
  )
49
+ pass c4bb_authentication_note if c4bb_authentication_note.present?
28
50
  end
51
+
29
52
  end
30
- end
53
+ end
@@ -13,19 +13,41 @@ module CarinForBlueButtonTestKit
13
13
  'hl7.fhir.us.carin-bb_2.0.0@184',
14
14
  'hl7.fhir.us.carin-bb_2.0.0@188'
15
15
 
16
+ input :c4bb_last_updated_options,
17
+ title: 'Uses meta.lastUpdated value appropriately',
18
+ description: %(
19
+ The developer of the Health IT Module attests that the Health IT Module used the
20
+ meta.lastUpdated value to determine if the associated data is accurate as of the date of service or as of the current date.
21
+ ),
22
+ type: 'radio',
23
+ default: 'false',
24
+ options: {
25
+ list_options: [
26
+ {
27
+ label: 'Yes',
28
+ value: 'true'
29
+ },
30
+ {
31
+ label: 'No',
32
+ value: 'false'
33
+ }
34
+ ]
35
+ }
36
+ input :c4bb_last_updated_note,
37
+ title: 'Notes, if applicable:',
38
+ type: 'textarea',
39
+ optional: true
40
+
16
41
  run do
17
- identifier = SecureRandom.hex(32)
18
- wait(
19
- identifier:,
20
- message: <<~MESSAGE
21
- The developer of the Health IT Module attests that the Health IT Module used the
22
- meta.lastUpdated value to determine if the associated data is accurate as of the date of service or as of the current date.
42
+ assert c4bb_last_updated_options == 'true', %(
43
+ The following was not satisfied:
23
44
 
24
- [Click here](#{resume_pass_url}?token=#{identifier}) if the tester visually confirmed system **meets** these requirements.
45
+ The Health IT Module must use the meta.lastUpdated value to determine if the associated data is
46
+ accurate as of the date of service or as of the current date.
25
47
 
26
- [Click here](#{resume_fail_url}?token=#{identifier}) if the tester visually confirmed system **does not meet** these requirements.
27
- MESSAGE
28
48
  )
49
+ pass c4bb_last_updated_note if c4bb_last_updated_note.present?
29
50
  end
51
+
30
52
  end
31
- end
53
+ end
@@ -8,19 +8,40 @@ module CarinForBlueButtonTestKit
8
8
 
9
9
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@8'
10
10
 
11
+ input :c4bb_must_support_absent_reason_options,
12
+ title: 'Processes Must Support elements that assert missing information',
13
+ description: %(
14
+ The developer of the Health IT Module attests that the Health IT Module processed
15
+ Must Support elements that asserted missing information.
16
+ ),
17
+ type: 'radio',
18
+ default: 'false',
19
+ options: {
20
+ list_options: [
21
+ {
22
+ label: 'Yes',
23
+ value: 'true'
24
+ },
25
+ {
26
+ label: 'No',
27
+ value: 'false'
28
+ }
29
+ ]
30
+ }
31
+ input :c4bb_must_support_absent_reason_note,
32
+ title: 'Notes, if applicable:',
33
+ type: 'textarea',
34
+ optional: true
35
+
11
36
  run do
12
- identifier = SecureRandom.hex(32)
13
- wait(
14
- identifier:,
15
- message: <<~MESSAGE
16
- The developer of the Health IT Module attests that the Health IT Module processed
17
- Must Support elements that asserted missing information.
37
+ assert c4bb_must_support_absent_reason_options == 'true', %(
38
+ The following was not satisfied:
18
39
 
19
- [Click here](#{resume_pass_url}?token=#{identifier}) if the tester visually confirmed system **meets** this requirement.
40
+ The Health IT Module must process Must Support elements that assert missing information.
20
41
 
21
- [Click here](#{resume_fail_url}?token=#{identifier}) if the tester visually confirmed system **does not meet** this requirement.
22
- MESSAGE
23
42
  )
43
+ pass c4bb_must_support_absent_reason_note if c4bb_must_support_absent_reason_note.present?
24
44
  end
45
+
25
46
  end
26
- end
47
+ end
@@ -8,19 +8,40 @@ module CarinForBlueButtonTestKit
8
8
 
9
9
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@4'
10
10
 
11
+ input :c4bb_must_support_display_options,
12
+ title: 'Can display Must Support data elements',
13
+ description: %(
14
+ The developer of the Health IT Module attests that the Health IT Module can display all
15
+ Must Support data elements for human use.
16
+ ),
17
+ type: 'radio',
18
+ default: 'false',
19
+ options: {
20
+ list_options: [
21
+ {
22
+ label: 'Yes',
23
+ value: 'true'
24
+ },
25
+ {
26
+ label: 'No',
27
+ value: 'false'
28
+ }
29
+ ]
30
+ }
31
+ input :c4bb_must_support_display_note,
32
+ title: 'Notes, if applicable:',
33
+ type: 'textarea',
34
+ optional: true
35
+
11
36
  run do
12
- identifier = SecureRandom.hex(32)
13
- wait(
14
- identifier:,
15
- message: <<~MESSAGE
16
- The developer of the Health IT Module attests that the Health IT Module can display all
17
- Must Support data elements for human use.
37
+ assert c4bb_must_support_display_options == 'true', %(
38
+ The following was not satisfied:
18
39
 
19
- [Click here](#{resume_pass_url}?token=#{identifier}) if the tester visually confirmed system **meets** this requirement.
40
+ The Health IT Module must be capable of displaying all Must Support data elements.
20
41
 
21
- [Click here](#{resume_fail_url}?token=#{identifier}) if the tester visually confirmed system **does not meet** this requirement.
22
- MESSAGE
23
42
  )
43
+ pass c4bb_must_support_display_note if c4bb_must_support_display_note.present?
24
44
  end
45
+
25
46
  end
26
- end
47
+ end
@@ -9,19 +9,41 @@ module CarinForBlueButtonTestKit
9
9
 
10
10
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@6'
11
11
 
12
+ input :c4bb_must_support_missing_options,
13
+ title: 'Interprets missing Must Support data elements',
14
+ description: %(
15
+ The developer of the Health IT Module attests that the Health IT Module interpreted missing Must Support
16
+ data elements within resource instances as data not present in the Health Plan API actors system.
17
+ ),
18
+ type: 'radio',
19
+ default: 'false',
20
+ options: {
21
+ list_options: [
22
+ {
23
+ label: 'Yes',
24
+ value: 'true'
25
+ },
26
+ {
27
+ label: 'No',
28
+ value: 'false'
29
+ }
30
+ ]
31
+ }
32
+ input :c4bb_must_support_missing_note,
33
+ title: 'Notes, if applicable:',
34
+ type: 'textarea',
35
+ optional: true
36
+
12
37
  run do
13
- identifier = SecureRandom.hex(32)
14
- wait(
15
- identifier:,
16
- message: <<~MESSAGE
17
- The developer of the Health IT Module attests that the Health IT Module interpreted missing Must Support
18
- data elements within resource instances as data not present in the Health Plan API actors system.
38
+ assert c4bb_must_support_missing_options == 'true', %(
39
+ The following was not satisfied:
19
40
 
20
- [Click here](#{resume_pass_url}?token=#{identifier}) if the tester visually confirmed system **meets** this requirement.
41
+ The Health IT Module must interpret missing Must Support data elements within resource instances as
42
+ data not present in the Health Plan API actors system.
21
43
 
22
- [Click here](#{resume_fail_url}?token=#{identifier}) if the tester visually confirmed system **does not meet** this requirement.
23
- MESSAGE
24
44
  )
45
+ pass c4bb_must_support_missing_note if c4bb_must_support_missing_note.present?
25
46
  end
47
+
26
48
  end
27
- end
49
+ end
@@ -23,12 +23,45 @@ module CarinForBlueButtonTestKit
23
23
  'hl7.fhir.us.carin-bb_2.0.0@55',
24
24
  'hl7.fhir.us.carin-bb_2.0.0@57'
25
25
 
26
+ input :carin_server_requirement_48_57_attestation_options,
27
+ title: 'Secures data',
28
+ description: %(
29
+ I attest that the Health IT Module
30
+ - Enables members to direct the communication of CARIN4BB data through authenticated, authorized, and secure channels.
31
+ - Protects CARIN4BB data with proper security and privacy protections to avoid malicious or unintentional exposure of
32
+ such information.
33
+ - Secures all consumer-directed payer data exchanges in transit and limits access only to authorized individuals.
34
+ - Ensures that APIs fully and successfully implement privacy and security features such as, but not limited to, those
35
+ required to comply with HIPAA privacy and security requirements and other applicable law protecting the privacy and
36
+ security of protected health information.
37
+ - Uses either current or the immediately prior release of Transport Level Security (TLS) as specified by the current release
38
+ of NIST guidelines (SP 800-52).
39
+ - Supports the FHIR US Core [Patient Privacy and Security requirements](https://www.hl7.org/fhir/us/core/security.html).
40
+ ),
41
+ type: 'radio',
42
+ default: 'false',
43
+ options: {
44
+ list_options: [
45
+ {
46
+ label: 'Yes',
47
+ value: 'true'
48
+ },
49
+ {
50
+ label: 'No',
51
+ value: 'false'
52
+ }
53
+ ]
54
+ }
55
+ input :carin_server_requirement_48_57_attestation_note,
56
+ title: 'Notes, if applicable:',
57
+ type: 'textarea',
58
+ optional: true
59
+
26
60
  run do
27
- identifier = SecureRandom.hex(32)
28
- wait(
29
- identifier:,
30
- message: <<~MESSAGE
31
- I attest that the Health IT Module
61
+ assert carin_server_requirement_48_57_attestation_options == 'true', %(
62
+ The following was not satisfied:
63
+
64
+ The Health IT Module
32
65
  - Enables members to direct the communication of CARIN4BB data through authenticated, authorized, and secure channels.
33
66
  - Protects CARIN4BB data with proper security and privacy protections to avoid malicious or unintentional exposure of
34
67
  such information.
@@ -40,11 +73,9 @@ module CarinForBlueButtonTestKit
40
73
  of NIST guidelines (SP 800-52).
41
74
  - Supports the FHIR US Core [Patient Privacy and Security requirements](https://www.hl7.org/fhir/us/core/security.html).
42
75
 
43
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
44
-
45
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
46
- MESSAGE
47
76
  )
77
+ pass carin_server_requirement_48_57_attestation_note if carin_server_requirement_48_57_attestation_note.present?
48
78
  end
79
+
49
80
  end
50
81
  end
@@ -23,11 +23,42 @@ module CarinForBlueButtonTestKit
23
23
  'hl7.fhir.us.carin-bb_2.0.0@66',
24
24
  'hl7.fhir.us.carin-bb_2.0.0@67'
25
25
 
26
+ input :carin_server_requirement_60_67_attestation_options,
27
+ title: 'Supports SMART Core Capabilities',
28
+ description: %(
29
+ The Health IT Module supports the following “SMART Core Capabilities”:
30
+ - `launch-standalone`: support for SMART’s Standalone Launch mode
31
+ - `client-public`: support for SMART’s public client profile (no client authentication)
32
+ - `client-confidential-symmetric`: support for SMART’s confidential client profile
33
+ - `sso-openid-connect`: support for SMART’s OpenID Connect profile
34
+ - `context-standalone-patient`: support for patient-level launch context (requested by launch/patient scope, conveyed via patient token parameter)
35
+ - `permission-offline`: support for refresh tokens (requested by offline_access scope)
36
+ - `permission-patient`: support for patient-level scopes (e.g. patient Observation.read)
37
+ - `permission-user`: support for user-level scopes (e.g. user/Appointment.read)
38
+ ),
39
+ type: 'radio',
40
+ default: 'false',
41
+ options: {
42
+ list_options: [
43
+ {
44
+ label: 'Yes',
45
+ value: 'true'
46
+ },
47
+ {
48
+ label: 'No',
49
+ value: 'false'
50
+ }
51
+ ]
52
+ }
53
+ input :carin_server_requirement_60_67_attestation_note,
54
+ title: 'Notes, if applicable:',
55
+ type: 'textarea',
56
+ optional: true
57
+
26
58
  run do
27
- identifier = SecureRandom.hex(32)
28
- wait(
29
- identifier:,
30
- message: <<~MESSAGE
59
+ assert carin_server_requirement_60_67_attestation_options == 'true', %(
60
+ The following was not satisfied:
61
+
31
62
  The Health IT Module supports the following “SMART Core Capabilities”:
32
63
  - `launch-standalone`: support for SMART’s Standalone Launch mode
33
64
  - `client-public`: support for SMART’s public client profile (no client authentication)
@@ -38,11 +69,9 @@ module CarinForBlueButtonTestKit
38
69
  - `permission-patient`: support for patient-level scopes (e.g. patient Observation.read)
39
70
  - `permission-user`: support for user-level scopes (e.g. user/Appointment.read)
40
71
 
41
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
42
-
43
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
44
- MESSAGE
45
72
  )
73
+ pass carin_server_requirement_60_67_attestation_note if carin_server_requirement_60_67_attestation_note.present?
46
74
  end
75
+
47
76
  end
48
77
  end
@@ -16,26 +16,55 @@ module CarinForBlueButtonTestKit
16
16
 
17
17
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@97', 'hl7.fhir.us.carin-bb_2.0.0@102'
18
18
 
19
+ input :carin_server_requirement_97_attestation_options,
20
+ title: 'Responds with appropriate error codes',
21
+ description: %(
22
+ I attest that the Health IT Module returns the following response classes:
23
+ - (Status 400): invalid parameter
24
+ - (Status 401/4xx): unauthorized request
25
+ - (Status 403): insufficient scope
26
+ - (Status 404): unknown resource
27
+ - (Status 410): deleted resource
28
+
29
+ I further attest that the Health IT Module rejects any unauthorized request by returning an HTTP 401 "Unauthorized",
30
+ HTTP 403 "Forbidden", or HTTP 404 "Not Found".
31
+ ),
32
+ type: 'radio',
33
+ default: 'false',
34
+ options: {
35
+ list_options: [
36
+ {
37
+ label: 'Yes',
38
+ value: 'true'
39
+ },
40
+ {
41
+ label: 'No',
42
+ value: 'false'
43
+ }
44
+ ]
45
+ }
46
+ input :carin_server_requirement_97_attestation_note,
47
+ title: 'Notes, if applicable:',
48
+ type: 'textarea',
49
+ optional: true
50
+
19
51
  run do
20
- identifier = SecureRandom.hex(32)
21
- wait(
22
- identifier:,
23
- message: <<~MESSAGE
24
- I attest that the Health IT Module returns the following response classes:
52
+ assert carin_server_requirement_97_attestation_options == 'true', %(
53
+ The following was not satisfied:
54
+
55
+ The Health IT Module returns the following response classes:
25
56
  - (Status 400): invalid parameter
26
57
  - (Status 401/4xx): unauthorized request
27
58
  - (Status 403): insufficient scope
28
59
  - (Status 404): unknown resource
29
60
  - (Status 410): deleted resource
30
61
 
31
- I further attest that the Health IT Module rejects any unauthorized request by returning an HTTP 401 "Unauthorized",
32
- HTTP 403 "Forbidden", or HTTP 404 "Not Found".
62
+ The Health IT Module rejects any unauthorized request by returning an HTTP 401 "Unauthorized", HTTP 403 "Forbidden",
63
+ or HTTP 404 "Not Found".
33
64
 
34
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
35
-
36
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
37
- MESSAGE
38
65
  )
66
+ pass carin_server_requirement_97_attestation_note if carin_server_requirement_97_attestation_note.present?
39
67
  end
68
+
40
69
  end
41
70
  end
@@ -9,18 +9,41 @@ module CarinForBlueButtonTestKit
9
9
 
10
10
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@10'
11
11
 
12
+ input :carin_server_requirement_10_attestation_options,
13
+ title: 'Follows FHIR and US Core guidance when data is unavailable',
14
+ description: %(
15
+ I attest that the Health IT Module applies FHIR and US Core guidance
16
+ when the source system lacks data for required elements with minimum cardinality > 0.
17
+ ),
18
+ type: 'radio',
19
+ default: 'false',
20
+ options: {
21
+ list_options: [
22
+ {
23
+ label: 'Yes',
24
+ value: 'true'
25
+ },
26
+ {
27
+ label: 'No',
28
+ value: 'false'
29
+ }
30
+ ]
31
+ }
32
+ input :carin_server_requirement_10_attestation_note,
33
+ title: 'Notes, if applicable:',
34
+ type: 'textarea',
35
+ optional: true
36
+
12
37
  run do
13
- identifier = SecureRandom.hex(32)
14
- wait(
15
- identifier:,
16
- message: <<~MESSAGE
17
- I attest that the Health IT Module applies FHIR and US Core guidance
18
- when the source system lacks data for required elements with minimum cardinality > 0.
38
+ assert carin_server_requirement_10_attestation_options == 'true', %(
39
+ The following was not satisfied:
40
+
41
+ The Health IT Module follows the FHIR core specification and US Core guidance when no data is available
42
+ for required data elements (minimum cardinality > 0).
19
43
 
20
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
21
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
22
- MESSAGE
23
44
  )
45
+ pass carin_server_requirement_10_attestation_note if carin_server_requirement_10_attestation_note.present?
24
46
  end
47
+
25
48
  end
26
49
  end
@@ -10,20 +10,43 @@ module CarinForBlueButtonTestKit
10
10
 
11
11
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@2'
12
12
 
13
+ input :carin_server_requirement_2_attestation_options,
14
+ title: 'Returns maintained data',
15
+ description: %(
16
+ I attest that the Health IT Module is capable of populating and returning all data elements maintained
17
+ by the payer as part of the query results, as specified by the CARIN Blue Button Health Plan API
18
+ CapabilityStatement.
19
+ ),
20
+ type: 'radio',
21
+ default: 'false',
22
+ options: {
23
+ list_options: [
24
+ {
25
+ label: 'Yes',
26
+ value: 'true'
27
+ },
28
+ {
29
+ label: 'No',
30
+ value: 'false'
31
+ }
32
+ ]
33
+ }
34
+ input :carin_server_requirement_2_attestation_note,
35
+ title: 'Notes, if applicable:',
36
+ type: 'textarea',
37
+ optional: true
38
+
13
39
  run do
14
- identifier = SecureRandom.hex(32)
15
- wait(
16
- identifier:,
17
- message: <<~MESSAGE
18
- I attest that the Health IT Module is capable of populating and returning all data elements maintained
40
+ assert carin_server_requirement_2_attestation_options == 'true', %(
41
+ The following was not satisfied:
42
+
43
+ The Health IT Module is capable of populating and returning all data elements maintained
19
44
  by the payer as part of the query results, as specified by the CARIN Blue Button Health Plan API
20
45
  CapabilityStatement.
21
46
 
22
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
23
-
24
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
25
- MESSAGE
26
47
  )
48
+ pass carin_server_requirement_2_attestation_note if carin_server_requirement_2_attestation_note.present?
27
49
  end
50
+
28
51
  end
29
52
  end
@@ -10,20 +10,43 @@ module CarinForBlueButtonTestKit
10
10
 
11
11
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@5'
12
12
 
13
+ input :carin_server_requirement_5_attestation_options,
14
+ title: 'Does not include absent data with unknown reason',
15
+ description: %(
16
+ I attest that in situations where information for a particular data element is not present and
17
+ the reason for its absence is unknown, the Health IT Module does not include the data element in
18
+ the resource instance returned as part of the query results.
19
+ ),
20
+ type: 'radio',
21
+ default: 'false',
22
+ options: {
23
+ list_options: [
24
+ {
25
+ label: 'Yes',
26
+ value: 'true'
27
+ },
28
+ {
29
+ label: 'No',
30
+ value: 'false'
31
+ }
32
+ ]
33
+ }
34
+ input :carin_server_requirement_5_attestation_note,
35
+ title: 'Notes, if applicable:',
36
+ type: 'textarea',
37
+ optional: true
38
+
13
39
  run do
14
- identifier = SecureRandom.hex(32)
15
- wait(
16
- identifier:,
17
- message: <<~MESSAGE
18
- I attest that in situations where information for a particular data element is not present and
40
+ assert carin_server_requirement_5_attestation_options == 'true', %(
41
+ The following was not satisfied:
42
+
43
+ In situations where information for a particular data element is not present and
19
44
  the reason for its absence is unknown, the Health IT Module does not include the data element in
20
45
  the resource instance returned as part of the query results.
21
46
 
22
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
23
-
24
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
25
- MESSAGE
26
47
  )
48
+ pass carin_server_requirement_5_attestation_note if carin_server_requirement_5_attestation_note.present?
27
49
  end
50
+
28
51
  end
29
52
  end