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
@@ -10,19 +10,43 @@ module CarinForBlueButtonTestKit
10
10
 
11
11
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@156'
12
12
 
13
+ input :carin_server_requirement_156_attestation_options,
14
+ title: 'Maps CPCDS data when line item data is unavailable',
15
+ description: %(
16
+ I attest that the Health IT Module maps CPCDS data to either `EOB.item` or `EOB.header` as appropriate:
17
+ - When line item amounts are available, they are provided in `EOB.item`.
18
+ - When line item amounts are not available, claim-level amounts and amount types are provided in `EOB.header`.
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_156_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 maps CPCDS data to either `EOB.item` or `EOB.header` as appropriate:
19
- - When line item amounts are available, they are provided in `EOB.item`.
20
- - When line item amounts are not available, claim-level amounts and amount types are provided in `EOB.header`.
40
+ assert carin_server_requirement_156_attestation_options == 'true', %(
41
+ The following was not satisfied:
42
+
43
+ The Health IT Module maps CPCDS data to either `EOB.item` or `EOB.header` as appropriate:
44
+ - When line item amounts are available, they are provided in `EOB.item`.
45
+ - When line item amounts are not available, claim-level amounts and amount types are provided in `EOB.header`.
21
46
 
22
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
23
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
24
- MESSAGE
25
47
  )
48
+ pass carin_server_requirement_156_attestation_note if carin_server_requirement_156_attestation_note.present?
26
49
  end
50
+
27
51
  end
28
52
  end
@@ -13,21 +13,46 @@ module CarinForBlueButtonTestKit
13
13
  'hl7.fhir.us.carin-bb_2.0.0@158',
14
14
  'hl7.fhir.us.carin-bb_2.0.0@159'
15
15
 
16
+ input :carin_server_requirement_157_158_159_attestation_options,
17
+ title: 'Correctly populates EOB.item.productOrService',
18
+ description: %(
19
+ I attest that the Health IT Module:
20
+
21
+ - Defines CPT, HCPCS, or HIPPS codes in `item.productOrService` and represents them as CodeableConcepts,
22
+ - Populates `item.productOrService` whenever `EOB.item` is present,
23
+ - Enforces that `item.productOrService` has a cardinality of 1..1.
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 :carin_server_requirement_157_158_159_attestation_note,
40
+ title: 'Notes, if applicable:',
41
+ type: 'textarea',
42
+ optional: true
43
+
16
44
  run do
17
- identifier = SecureRandom.hex(32)
18
- wait(
19
- identifier:,
20
- message: <<~MESSAGE
21
- I attest that the Health IT Module:
45
+ assert carin_server_requirement_157_158_159_attestation_options == 'true', %(
46
+ The following was not satisfied:
22
47
 
23
- - Defines CPT, HCPCS, or HIPPS codes in `item.productOrService` and represents them as CodeableConcepts,
24
- - Populates `item.productOrService` whenever `EOB.item` is present,
25
- - Enforces that `item.productOrService` has a cardinality of 1..1.
48
+ The Health IT Module:
49
+ - Defines CPT, HCPCS, or HIPPS codes in `item.productOrService` as CodeableConcepts,
50
+ - Ensures `item.productOrService` is populated whenever `.item` is present,
51
+ - Enforces a cardinality of 1..1 for `item.productOrService`.
26
52
 
27
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
28
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
29
- MESSAGE
30
53
  )
54
+ pass carin_server_requirement_157_158_159_attestation_note if carin_server_requirement_157_158_159_attestation_note.present?
31
55
  end
56
+
32
57
  end
33
58
  end
@@ -13,21 +13,46 @@ module CarinForBlueButtonTestKit
13
13
  'hl7.fhir.us.carin-bb_2.0.0@145',
14
14
  'hl7.fhir.us.carin-bb_2.0.0@146'
15
15
 
16
+ input :carin_server_requirement_144_145_146_attestation_options,
17
+ title: 'Correctly maps CPCDS data to EOB.item and EOB.total fields',
18
+ description: %(
19
+ I attest that the Health IT Module maps CPCDS data elements as follows:
20
+
21
+ - Line-level data (amounts, types, network status) are provided in `EOB.item`,
22
+ - Claim-level totals are in `EOB.total`,
23
+ - Mixed network claims set `C4BB Payer Benefit Payment Status` to 'Other'.
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 :carin_server_requirement_144_145_146_attestation_note,
40
+ title: 'Notes, if applicable:',
41
+ type: 'textarea',
42
+ optional: true
43
+
16
44
  run do
17
- identifier = SecureRandom.hex(32)
18
- wait(
19
- identifier:,
20
- message: <<~MESSAGE
21
- I attest that the Health IT Module maps CPCDS data elements as follows:
45
+ assert carin_server_requirement_144_145_146_attestation_options == 'true', %(
46
+ The following was not satisfied:
22
47
 
23
- - Line-level data (amounts, types, network status) are provided in `EOB.item`,
24
- - Claim-level totals are in `EOB.total`,
25
- - Mixed network claims set `C4BB Payer Benefit Payment Status` to 'Other'.
48
+ The Health IT Module maps CPCDS data elements to:
49
+ - `EOB.item` for line item amounts, amount types, and network status,
50
+ - `EOB.total` for claim-level totals,
51
+ - `C4BB Payer Benefit Payment Status` is set to 'Other' when lines are both in-network and out-of-network.
26
52
 
27
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
28
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
29
- MESSAGE
30
53
  )
54
+ pass carin_server_requirement_144_145_146_attestation_note if carin_server_requirement_144_145_146_attestation_note.present?
31
55
  end
56
+
32
57
  end
33
58
  end
@@ -10,20 +10,43 @@ module CarinForBlueButtonTestKit
10
10
 
11
11
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@148'
12
12
 
13
+ input :carin_server_requirement_148_attestation_options,
14
+ title: 'Populates facility information when differs from billing',
15
+ description: %(
16
+ I attest that the Health Plan API populates `supportingInfo[service`facility`] with the name, full address,
17
+ and identifier of the facility where services were rendered, when that facility differs from the Billing or
18
+ Rendering Provider.
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_148_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 Plan API populates `supportingInfo[service`facility`] with the name, full address,
40
+ assert carin_server_requirement_148_attestation_options == 'true', %(
41
+ The following was not satisfied:
42
+
43
+ The Health Plan API populates `supportingInfo[service`facility`] with the name, full address,
19
44
  and identifier of the facility where services were rendered, when that facility differs from the Billing or
20
45
  Rendering Provider.
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_148_attestation_note if carin_server_requirement_148_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@149'
11
11
 
12
+ input :carin_server_requirement_149_attestation_options,
13
+ title: 'References sequence number of associated diagnosis',
14
+ description: %(
15
+ I attest that the `item.diagnosisSequence` element references the sequence number of the associated
16
+ diagnosis listed in the ExplanationOfBenefit resource.
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_149_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 `item.diagnosisSequence` element references the sequence number of the associated
18
- diagnosis listed in the ExplanationOfBenefit resource.
38
+ assert carin_server_requirement_149_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 `item.diagnosisSequence` element references the sequence number of the associated
42
+ diagnosis listed in the ExplanationOfBenefit resource.
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_149_attestation_note if carin_server_requirement_149_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@150'
12
12
 
13
+ input :carin_server_requirement_150_attestation_options,
14
+ title: 'Uses procedure codes not revenue codes',
15
+ description: %(
16
+ I attest that the `item.productOrService` element in an oral ExplanationOfBenefit resource
17
+ is populated with CPT or HCPCS procedure codes as CodeableConcept values, and that revenue
18
+ codes are not used for oral claims.
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_150_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 `item.productOrService` element in an oral ExplanationOfBenefit resource
40
+ assert carin_server_requirement_150_attestation_options == 'true', %(
41
+ The following was not satisfied:
42
+
43
+ The `item.productOrService` element in an oral ExplanationOfBenefit resource
19
44
  is populated with CPT or HCPCS procedure codes as CodeableConcept values, and that revenue
20
45
  codes are not used for oral claims.
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_150_attestation_note if carin_server_requirement_150_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@151'
11
11
 
12
+ input :carin_server_requirement_151_attestation_options,
13
+ title: 'Specifies primary body site',
14
+ description: %(
15
+ I attest that the primary body site for each line item (tooth or oral cavity) is specified in the
16
+ `item.bodySite` element of the ExplanationOfBenefit resource.
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_151_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 primary body site for each line item (tooth or oral cavity) is specified in the
18
- `item.bodySite` element of the ExplanationOfBenefit resource.
38
+ assert carin_server_requirement_151_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 primary body site for each line item (tooth or oral cavity) is specified in the
42
+ `item.bodySite` element of the ExplanationOfBenefit resource.
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_151_attestation_note if carin_server_requirement_151_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@152'
12
12
 
13
+ input :carin_server_requirement_152_attestation_options,
14
+ title: 'Specifies additional body sites',
15
+ description: %(
16
+ I attest that additional body sites (tooth or oral cavity) are specified in `supportingInfo[additionalbodysite]`
17
+ elements, and that each `supportingInfo[additionalbodysite].sequence` matches the associated line item's
18
+ `item.informationSequence`.
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_152_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 additional body sites (tooth or oral cavity) are specified in `supportingInfo[additionalbodysite]`
40
+ assert carin_server_requirement_152_attestation_options == 'true', %(
41
+ The following was not satisfied:
42
+
43
+ Additional body sites (tooth or oral cavity) are specified in `supportingInfo[additionalbodysite]`
19
44
  elements, and that each `supportingInfo[additionalbodysite].sequence` matches the associated line item's
20
45
  `item.informationSequence`.
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_152_attestation_note if carin_server_requirement_152_attestation_note.present?
27
49
  end
50
+
28
51
  end
29
52
  end
@@ -11,21 +11,45 @@ module CarinForBlueButtonTestKit
11
11
 
12
12
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@153'
13
13
 
14
+ input :carin_server_requirement_153_attestation_options,
15
+ title: 'Applies oral line item subsites to associated tooth surfaces',
16
+ description: %(
17
+ I attest that all oral line item subsites (`item.subSite` repetitions) apply to all the line item's
18
+ associated tooth surfaces, including those specified in `item.bodySite` and `supportingInfo[additionalbodysite]`,
19
+ with the association established through matching `supportingInfo[additionalbodysite].sequence` values in
20
+ `item.informationSequence`.
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 :carin_server_requirement_153_attestation_note,
37
+ title: 'Notes, if applicable:',
38
+ type: 'textarea',
39
+ optional: true
40
+
14
41
  run do
15
- identifier = SecureRandom.hex(32)
16
- wait(
17
- identifier:,
18
- message: <<~MESSAGE
19
- I attest that all oral line item subsites (`item.subSite` repetitions) apply to all the line item's
42
+ assert carin_server_requirement_153_attestation_options == 'true', %(
43
+ The following was not satisfied:
44
+
45
+ All oral line item subsites (`item.subSite` repetitions) apply to all the line item's
20
46
  associated tooth surfaces, including those specified in `item.bodySite` and `supportingInfo[additionalbodysite]`,
21
47
  with the association established through matching `supportingInfo[additionalbodysite].sequence` values in
22
48
  `item.informationSequence`.
23
49
 
24
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
25
-
26
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
27
- MESSAGE
28
50
  )
51
+ pass carin_server_requirement_153_attestation_note if carin_server_requirement_153_attestation_note.present?
29
52
  end
53
+
30
54
  end
31
55
  end
@@ -9,19 +9,41 @@ module CarinForBlueButtonTestKit
9
9
 
10
10
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@161'
11
11
 
12
+ input :carin_server_requirement_161_attestation_options,
13
+ title: 'Populates with an NDC code',
14
+ description: %(
15
+ I attest that when the Compound Code (MapID 78) is 0 or 1, the `item.productOrService` element is
16
+ populated with an NDC code.
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_161_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 (MapID 78) is 0 or 1, the `item.productOrService` element is
18
- populated with an NDC code.
38
+ assert carin_server_requirement_161_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 (MapID 78) is 0 or 1, the `item.productOrService` element is
42
+ populated with an NDC code.
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_161_attestation_note if carin_server_requirement_161_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@162'
11
11
 
12
+ input :carin_server_requirement_162_attestation_options,
13
+ title: 'Populates with "compound" and maps correctly',
14
+ description: %(
15
+ I attest that when the Compound Code is 2, the `item.productOrService` element is populated with the value
16
+ "compound" and that the ingredient information is mapped to `item.detail.productOrService.`
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_162_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, the `item.productOrService` element is populated with the value
18
- "compound" and that the ingredient information is mapped to `item.detail.productOrService.`
38
+ assert carin_server_requirement_162_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, the `item.productOrService` element is populated with the value
42
+ "compound" and that the ingredient information is mapped to `item.detail.productOrService.`
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_162_attestation_note if carin_server_requirement_162_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@163'
11
11
 
12
+ input :carin_server_requirement_163_attestation_options,
13
+ title: 'Populates with NDC code',
14
+ description: %(
15
+ I attest that both `item.productOrService` and `item.detail.productOrService` elements are populated with
16
+ an 11-digit NDC code.
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_163_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 both `item.productOrService` and `item.detail.productOrService` elements are populated with
18
- an 11-digit NDC code.
38
+ assert carin_server_requirement_163_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
+ Both `item.productOrService` and `item.detail.productOrService` elements are populated with
42
+ an 11-digit NDC code.
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_163_attestation_note if carin_server_requirement_163_attestation_note.present?
25
46
  end
47
+
26
48
  end
27
49
  end