carin_for_blue_button_test_kit 0.16.0 → 0.16.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.
Files changed (65) 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/client/v2.0.0/c4bb_client_test_suite.rb +4 -0
  4. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/authentication.rb +34 -11
  5. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/last_updated.rb +32 -10
  6. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_absent_reason.rb +31 -10
  7. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_display.rb +31 -10
  8. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_missing.rb +32 -10
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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
  39. 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
  40. 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
  41. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/adjudication_amount.rb +38 -14
  47. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/amount_calculations.rb +62 -23
  48. 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
  49. 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
  50. 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
  51. 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
  52. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/licensing.rb +31 -9
  53. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/meta_lastupdated.rb +44 -17
  54. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/c4bb_test_suite.rb +4 -0
  55. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/metadata.yml +3 -0
  56. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/patient/metadata.yml +3 -0
  57. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/c4bb_test_suite.rb +12 -2
  58. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/metadata.yml +3 -0
  59. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/patient/metadata.yml +3 -0
  60. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0-dev-nonfinancial/c4bb_test_suite.rb +4 -0
  61. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0-dev-nonfinancial/metadata.yml +3 -0
  62. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0-dev-nonfinancial/patient/metadata.yml +3 -0
  63. data/lib/carin_for_blue_button_test_kit/generator/templates/suite.rb.erb +13 -2
  64. data/lib/carin_for_blue_button_test_kit/version.rb +2 -2
  65. metadata +20 -8
@@ -8,18 +8,39 @@ module CarinForBlueButtonTestKit
8
8
 
9
9
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@164'
10
10
 
11
+ input :carin_server_requirement_164_attestation_options,
12
+ title: 'Populates "quantity" for all compound code values',
13
+ description: %(
14
+ I attest that the `item.quantity` element is populated for all Compound Code values.
15
+ ),
16
+ type: 'radio',
17
+ default: 'false',
18
+ options: {
19
+ list_options: [
20
+ {
21
+ label: 'Yes',
22
+ value: 'true'
23
+ },
24
+ {
25
+ label: 'No',
26
+ value: 'false'
27
+ }
28
+ ]
29
+ }
30
+ input :carin_server_requirement_164_attestation_note,
31
+ title: 'Notes, if applicable:',
32
+ type: 'textarea',
33
+ optional: true
34
+
11
35
  run do
12
- identifier = SecureRandom.hex(32)
13
- wait(
14
- identifier:,
15
- message: <<~MESSAGE
16
- I attest that the `item.quantity` element is populated for all Compound Code values.
36
+ assert carin_server_requirement_164_attestation_options == 'true', %(
37
+ The following was not satisfied:
17
38
 
18
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
39
+ The `item.quantity` element is populated for all Compound Code values.
19
40
 
20
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
21
- MESSAGE
22
41
  )
42
+ pass carin_server_requirement_164_attestation_note if carin_server_requirement_164_attestation_note.present?
23
43
  end
44
+
24
45
  end
25
46
  end
@@ -9,19 +9,41 @@ module CarinForBlueButtonTestKit
9
9
 
10
10
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@165'
11
11
 
12
+ input :carin_server_requirement_165_attestation_options,
13
+ title: 'Adds ingredient quantity information',
14
+ description: %(
15
+ I attest that when the Compound Code is 2, and ingredient quantity information is available,
16
+ it is mapped to `item.detail.quantity`.
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_165_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 when the Compound Code is 2, and ingredient quantity information is available,
18
- it is mapped to `item.detail.quantity`.
38
+ assert carin_server_requirement_165_attestation_options == 'true', %(
39
+ The following was not satisfied:
19
40
 
20
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
41
+ When the Compound Code is 2, and ingredient quantity information is available,
42
+ it is mapped to `item.detail.quantity`.
21
43
 
22
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
23
- MESSAGE
24
44
  )
45
+ pass carin_server_requirement_165_attestation_note if carin_server_requirement_165_attestation_note.present?
25
46
  end
47
+
26
48
  end
27
49
  end
@@ -10,20 +10,43 @@ module CarinForBlueButtonTestKit
10
10
 
11
11
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@168', 'hl7.fhir.us.carin-bb_2.0.0@170'
12
12
 
13
+ input :carin_server_requirement_168_170_attestation_options,
14
+ title: 'Sequentially numbers and properly references diagnosis.sequence',
15
+ description: %(
16
+ I attest that the Health IT Module sequentially numbers all diagnoses at the ExplanationOfBenefit header
17
+ level using the `diagnosis.sequence` element. I further attest that each `item.diagnosisSequence` element
18
+ references the appropriate `diagnosis.sequence` number from the header-level diagnoses.
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_168_170_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 sequentially numbers all diagnoses at the ExplanationOfBenefit header
40
+ assert carin_server_requirement_168_170_attestation_options == 'true', %(
41
+ The following was not satisfied:
42
+
43
+ The Health IT Module sequentially numbers all diagnoses at the ExplanationOfBenefit header
19
44
  level using the `diagnosis.sequence` element. I further attest that each `item.diagnosisSequence` element
20
45
  references the appropriate `diagnosis.sequence` number from the header-level diagnoses.
21
46
 
22
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
23
-
24
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
25
- MESSAGE
26
47
  )
48
+ pass carin_server_requirement_168_170_attestation_note if carin_server_requirement_168_170_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@173'
12
12
 
13
+ input :carin_server_requirement_173_attestation_options,
14
+ title: 'Associates supportingInfo with line items',
15
+ description: %(
16
+ I attest that every `supportingInfo` repetition with a Transportation Services Category code is associated
17
+ with at least one ExplanationOfBenefit line item by referencing `supportingInfo.sequence` through the
18
+ `item.informationSequence` element.
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_173_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 every `supportingInfo` repetition with a Transportation Services Category code is associated
40
+ assert carin_server_requirement_173_attestation_options == 'true', %(
41
+ The following was not satisfied:
42
+
43
+ Every `supportingInfo` repetition with a Transportation Services Category code is associated
19
44
  with at least one ExplanationOfBenefit line item by referencing `supportingInfo.sequence` through the
20
45
  `item.informationSequence` element.
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_173_attestation_note if carin_server_requirement_173_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@177'
12
12
 
13
+ input :carin_server_requirement_177_attestation_options,
14
+ title: 'Properly populates the NPI identifier',
15
+ description: %(
16
+ I attest that the Health IT Module populates the Service Facility `identifier[NPI]` in the
17
+ Organization resource when assigned, and uses the value 'NPI has not been assigned' when no
18
+ NPI has been assigned to the Service Location Organization.
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_177_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 populates the Service Facility `identifier[NPI]` in the
40
+ assert carin_server_requirement_177_attestation_options == 'true', %(
41
+ The following was not satisfied:
42
+
43
+ The Health IT Module populates the Service Facility `identifier[NPI]` in the
19
44
  Organization resource when assigned, and uses the value 'NPI has not been assigned' when no
20
45
  NPI has been assigned to the Service Location Organization.
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_177_attestation_note if carin_server_requirement_177_attestation_note.present?
27
49
  end
50
+
28
51
  end
29
52
  end
@@ -9,19 +9,41 @@ module CarinForBlueButtonTestKit
9
9
 
10
10
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@178'
11
11
 
12
+ input :carin_server_requirement_178_attestation_options,
13
+ title: 'Does not populate "address" when part of Billing Provider',
14
+ description: %(
15
+ I attest that the Health IT Module does not populate the Organization resource `address` element
16
+ when the location where services were rendered is a component of the Billing Provider.
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_178_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 does not populate the Organization resource `address` element
18
- when the location where services were rendered is a component of the Billing Provider.
38
+ assert carin_server_requirement_178_attestation_options == 'true', %(
39
+ The following was not satisfied:
19
40
 
20
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
41
+ The Health IT Module does not populate the Organization resource `address` element
42
+ when the location where services were rendered is a component of the Billing Provider.
21
43
 
22
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
23
- MESSAGE
24
44
  )
45
+ pass carin_server_requirement_178_attestation_note if carin_server_requirement_178_attestation_note.present?
25
46
  end
47
+
26
48
  end
27
49
  end
@@ -9,19 +9,41 @@ module CarinForBlueButtonTestKit
9
9
 
10
10
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@186'
11
11
 
12
+ input :carin_server_requirement_186_attestation_options,
13
+ title: 'Populates an identifier',
14
+ description: %(
15
+ I attest that the Health IT Module populates the Practitioner resource with at least one identifier,
16
+ either an NPI or a Tax ID.
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_186_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 populates the Practitioner resource with at least one identifier,
18
- either an NPI or a Tax ID.
38
+ assert carin_server_requirement_186_attestation_options == 'true', %(
39
+ The following was not satisfied:
19
40
 
20
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
41
+ The Health IT Module populates the Practitioner resource with at least one identifier,
42
+ either an NPI or a Tax ID.
21
43
 
22
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
23
- MESSAGE
24
44
  )
45
+ pass carin_server_requirement_186_attestation_note if carin_server_requirement_186_attestation_note.present?
25
46
  end
47
+
26
48
  end
27
49
  end
@@ -4,8 +4,8 @@ module CarinForBlueButtonTestKit
4
4
 
5
5
  description <<~DESCRIPTION
6
6
  For:
7
- - C4BB ExplanationOfBenefit Inpatient Institutional `.adjudication.amount`
8
- - C4BB ExplanationOfBenefit Outpatient Institutional `.adjudication.amount`
7
+ - C4BB ExplanationOfBenefit Inpatient Institutional `.adjudication.amount`
8
+ - C4BB ExplanationOfBenefit Outpatient Institutional `.adjudication.amount`
9
9
 
10
10
  The Health IT Module must only populate `.adjudication.amount` if `.item.adjudication` is not available.
11
11
  DESCRIPTION
@@ -15,24 +15,48 @@ module CarinForBlueButtonTestKit
15
15
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@142',
16
16
  'hl7.fhir.us.carin-bb_2.0.0@197'
17
17
 
18
- run do
19
- identifier = SecureRandom.hex(32)
20
-
21
- wait(
22
- identifier:,
23
- message: <<~MESSAGE
24
- For:
18
+ input :adjudication_amount_options,
19
+ title: 'Properly uses ".adjudication.amount"',
20
+ description: %(
21
+ For:
25
22
  - C4BB ExplanationOfBenefit Inpatient Institutional `.adjudication.amount`
26
23
  - C4BB ExplanationOfBenefit Outpatient Institutional `.adjudication.amount`
27
24
 
28
- The developer of the Health IT Module attests that the Health IT Module only populates
29
- `.adjudication.amount` if `.item.adjudication` is not available.
25
+ The developer of the Health IT Module attests that the Health IT Module only populates
26
+ `.adjudication.amount` if `.item.adjudication` is not available.
27
+ ),
28
+ type: 'radio',
29
+ default: 'false',
30
+ options: {
31
+ list_options: [
32
+ {
33
+ label: 'Yes',
34
+ value: 'true'
35
+ },
36
+ {
37
+ label: 'No',
38
+ value: 'false'
39
+ }
40
+ ]
41
+ }
42
+ input :adjudication_amount_note,
43
+ title: 'Notes, if applicable:',
44
+ type: 'textarea',
45
+ optional: true
46
+
47
+ run do
48
+ assert adjudication_amount_options == 'true', %(
49
+ The following was not satisfied:
30
50
 
31
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
51
+ For:
52
+ - C4BB ExplanationOfBenefit Inpatient Institutional `.adjudication.amount`
53
+ - C4BB ExplanationOfBenefit Outpatient Institutional `.adjudication.amount`
54
+
55
+ The Health IT Module must only populate `.adjudication.amount` if `.item.adjudication` is not available.
32
56
 
33
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
34
- MESSAGE
35
57
  )
58
+ pass adjudication_amount_note if adjudication_amount_note.present?
36
59
  end
60
+
37
61
  end
38
62
  end
@@ -4,19 +4,19 @@ module CarinForBlueButtonTestKit
4
4
 
5
5
  description <<~DESCRIPTION
6
6
  For:
7
- - C4BB ExplanationOfBenefit Inpatient Institutional `.total.amount`
8
- - C4BB ExplanationOfBenefit Inpatient Institutional `.item.adjudication.amount`
9
- - C4BB ExplanationOfBenefit Inpatient Institutional `.adjudication.amount`
10
- - C4BB ExplanationOfBenefit Outpatient Institutional `.total.amount`
11
- - C4BB ExplanationOfBenefit Outpatient Institutional `.item.adjudication.amount`
12
- - C4BB ExplanationOfBenefit Outpatient Institutional `.adjudication.amount`
13
- - C4BB ExplanationOfBenefit Oral `.total.amount`
14
- - C4BB ExplanationOfBenefit Oral `.item.adjudication.amount`
15
- - C4BB ExplanationOfBenefit Professional NonClinician `.total.amount`
16
- - C4BB ExplanationOfBenefit Professional NonClinician `.item.adjudication.amount`
7
+ - C4BB ExplanationOfBenefit Inpatient Institutional `.total.amount`
8
+ - C4BB ExplanationOfBenefit Inpatient Institutional `.item.adjudication.amount`
9
+ - C4BB ExplanationOfBenefit Inpatient Institutional `.adjudication.amount`
10
+ - C4BB ExplanationOfBenefit Outpatient Institutional `.total.amount`
11
+ - C4BB ExplanationOfBenefit Outpatient Institutional `.item.adjudication.amount`
12
+ - C4BB ExplanationOfBenefit Outpatient Institutional `.adjudication.amount`
13
+ - C4BB ExplanationOfBenefit Oral `.total.amount`
14
+ - C4BB ExplanationOfBenefit Oral `.item.adjudication.amount`
15
+ - C4BB ExplanationOfBenefit Professional NonClinician `.total.amount`
16
+ - C4BB ExplanationOfBenefit Professional NonClinician `.item.adjudication.amount`
17
17
 
18
18
  The Health IT Module calculates the total amount as follows:
19
- - Eligible amount = submitted amount - the noncovered amount - discount.
19
+ - Eligible amount = submitted amount - the noncovered amount - discount.
20
20
 
21
21
  The subscriber pays the member liability = deductible + coinsurance + copay + noncovered.
22
22
 
@@ -38,13 +38,10 @@ module CarinForBlueButtonTestKit
38
38
  'hl7.fhir.us.carin-bb_2.0.0@195',
39
39
  'hl7.fhir.us.carin-bb_2.0.0@196'
40
40
 
41
- run do
42
- identifier = SecureRandom.hex(32)
43
-
44
- wait(
45
- identifier:,
46
- message: <<~MESSAGE
47
- For:
41
+ input :amount_calculations_options,
42
+ title: 'Properly calculates "amount" fields',
43
+ description: %(
44
+ For:
48
45
  - C4BB ExplanationOfBenefit Inpatient Institutional `.total.amount`
49
46
  - C4BB ExplanationOfBenefit Inpatient Institutional `.item.adjudication.amount`
50
47
  - C4BB ExplanationOfBenefit Inpatient Institutional `.adjudication.amount`
@@ -56,14 +53,56 @@ module CarinForBlueButtonTestKit
56
53
  - C4BB ExplanationOfBenefit Professional NonClinician `.total.amount`
57
54
  - C4BB ExplanationOfBenefit Professional NonClinician `.item.adjudication.amount`
58
55
 
59
- The developer of the Health IT Module attests that the Health IT Module calculates the total amount as follows:
60
- - Eligible amount = submitted amount - the noncovered amount - discount.
56
+ The developer of the Health IT Module attests that the Health IT Module calculates the total amount as follows:
57
+ - Eligible amount = submitted amount - the noncovered amount - discount.
58
+ ),
59
+ type: 'radio',
60
+ default: 'false',
61
+ options: {
62
+ list_options: [
63
+ {
64
+ label: 'Yes',
65
+ value: 'true'
66
+ },
67
+ {
68
+ label: 'No',
69
+ value: 'false'
70
+ }
71
+ ]
72
+ }
73
+ input :amount_calculations_note,
74
+ title: 'Notes, if applicable:',
75
+ type: 'textarea',
76
+ optional: true
61
77
 
62
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
78
+ run do
79
+ assert amount_calculations_options == 'true', %(
80
+ The following was not satisfied:
81
+
82
+ For:
83
+ - C4BB ExplanationOfBenefit Inpatient Institutional `.total.amount`
84
+ - C4BB ExplanationOfBenefit Inpatient Institutional `.item.adjudication.amount`
85
+ - C4BB ExplanationOfBenefit Inpatient Institutional `.adjudication.amount`
86
+ - C4BB ExplanationOfBenefit Outpatient Institutional `.total.amount`
87
+ - C4BB ExplanationOfBenefit Outpatient Institutional `.item.adjudication.amount`
88
+ - C4BB ExplanationOfBenefit Outpatient Institutional `.adjudication.amount`
89
+ - C4BB ExplanationOfBenefit Oral `.total.amount`
90
+ - C4BB ExplanationOfBenefit Oral `.item.adjudication.amount`
91
+ - C4BB ExplanationOfBenefit Professional NonClinician `.total.amount`
92
+ - C4BB ExplanationOfBenefit Professional NonClinician `.item.adjudication.amount`
93
+
94
+ The Health IT Module calculates the total amount as follows:
95
+ - Eligible amount = submitted amount - the noncovered amount - discount.
96
+
97
+ The subscriber pays the member liability = deductible + coinsurance + copay + noncovered.
98
+
99
+ (Part of the member liability may have already been paid to the provider as paidbypatient).
100
+
101
+ The eligible amount - the member liability is the payment amount to the provider (paidtoprovider) or the subscriber (paidtopatient).
63
102
 
64
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
65
- MESSAGE
66
103
  )
104
+ pass amount_calculations_note if amount_calculations_note.present?
67
105
  end
106
+
68
107
  end
69
108
  end
@@ -10,18 +10,42 @@ module CarinForBlueButtonTestKit
10
10
 
11
11
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@19'
12
12
 
13
+ input :carin_server_requirement_19_attestation_options,
14
+ title: 'Uses code display string',
15
+ description: %(
16
+ I attest that when the `display` element is populated, the Health IT Module uses a valid display string defined
17
+ for that code by the code system (which may allow multiple valid display strings).
18
+ ),
19
+ type: 'radio',
20
+ default: 'false',
21
+ options: {
22
+ list_options: [
23
+ {
24
+ label: 'Yes',
25
+ value: 'true'
26
+ },
27
+ {
28
+ label: 'No',
29
+ value: 'false'
30
+ }
31
+ ]
32
+ }
33
+ input :carin_server_requirement_19_attestation_note,
34
+ title: 'Notes, if applicable:',
35
+ type: 'textarea',
36
+ optional: true
37
+
13
38
  run do
14
- identifier = SecureRandom.hex(32)
15
- wait(
16
- identifier:,
17
- message: <<~MESSAGE
18
- I attest that when the `display` element is populated, the Health IT Module uses a valid display string defined
19
- for that code by the code system (which may allow multiple valid display strings).
39
+ assert carin_server_requirement_19_attestation_options == 'true', %(
40
+ The following was not satisfied:
41
+
42
+ The Health IT Module ensures that when the `display` element is populated,
43
+ it contains one of the display strings defined for the associated code
44
+ in the code system.
20
45
 
21
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
22
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
23
- MESSAGE
24
46
  )
47
+ pass carin_server_requirement_19_attestation_note if carin_server_requirement_19_attestation_note.present?
25
48
  end
49
+
26
50
  end
27
51
  end
@@ -9,18 +9,41 @@ module CarinForBlueButtonTestKit
9
9
 
10
10
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@28'
11
11
 
12
+ input :carin_server_requirement_28_attestation_options,
13
+ title: 'Ensures conformant CPCDS data',
14
+ description: %(
15
+ I attest that the Health IT Module ensures CPCDS data conforms to the specified profiles,
16
+ vocabulary standards, and code sets outlined in the specification.
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_28_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 ensures CPCDS data conforms to the specified profiles,
18
- vocabulary standards, and code sets outlined in the specification.
38
+ assert carin_server_requirement_28_attestation_options == 'true', %(
39
+ The following was not satisfied:
40
+
41
+ The Health IT Module ensures that data representing the Common Payer Consumer Data Set (CPCDS)
42
+ conforms to the specified profiles, vocabulary standards, and code sets required by the specification.
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_28_attestation_note if carin_server_requirement_28_attestation_note.present?
24
46
  end
47
+
25
48
  end
26
49
  end