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.
- checksums.yaml +4 -4
- data/lib/carin_for_blue_button_test_kit/carin_search_test.rb +1 -1
- data/lib/carin_for_blue_button_test_kit/client/v2.0.0/c4bb_client_test_suite.rb +4 -0
- data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/authentication.rb +34 -11
- data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/last_updated.rb +32 -10
- data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_absent_reason.rb +31 -10
- data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_display.rb +31 -10
- data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_missing.rb +32 -10
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/adjudication_amount.rb +38 -14
- data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/amount_calculations.rb +62 -23
- 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
- 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
- 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
- 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
- data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/licensing.rb +31 -9
- data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/meta_lastupdated.rb +44 -17
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/c4bb_test_suite.rb +4 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/metadata.yml +3 -0
- data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/patient/metadata.yml +3 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/c4bb_test_suite.rb +12 -2
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/metadata.yml +3 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/patient/metadata.yml +3 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0-dev-nonfinancial/c4bb_test_suite.rb +4 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0-dev-nonfinancial/metadata.yml +3 -0
- data/lib/carin_for_blue_button_test_kit/generated/v2.0.0-dev-nonfinancial/patient/metadata.yml +3 -0
- data/lib/carin_for_blue_button_test_kit/generator/templates/suite.rb.erb +13 -2
- data/lib/carin_for_blue_button_test_kit/version.rb +2 -2
- 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
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
8
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
29
|
-
|
|
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
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
60
|
-
|
|
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
|
-
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|