carin_for_blue_button_test_kit 0.15.1 → 0.15.3

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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/lib/carin_for_blue_button_test_kit/capability_statement/tests/instantiates_test.rb +14 -15
  3. data/lib/carin_for_blue_button_test_kit/capability_statement/tests/json_support_test.rb +0 -1
  4. data/lib/carin_for_blue_button_test_kit/client/v2.0.0/c4bb_client_test_suite.rb +14 -0
  5. data/lib/carin_for_blue_button_test_kit/client/v2.0.0/claim_data_request_tests/client_claims_data_attestation_test.rb +2 -2
  6. data/lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0/eob/insurer_same_test.rb +74 -0
  7. data/lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0/eob/outcome_complete_test.rb +32 -0
  8. data/lib/carin_for_blue_button_test_kit/custom_groups/v2.0.0/eob/type_data_absent_test.rb +41 -0
  9. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/authentication.rb +30 -0
  10. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/last_updated.rb +31 -0
  11. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_absent_reason.rb +26 -0
  12. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_display.rb +26 -0
  13. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client/must_support_missing.rb +27 -0
  14. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_client.rb +25 -0
  15. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/00_authorization_group/attestation_test_requirement_48.rb +50 -0
  16. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/00_authorization_group/attestation_test_requirement_60.rb +48 -0
  17. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/00_authorization_group/attestation_test_requirement_97.rb +41 -0
  18. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/00_authorization_group.rb +15 -0
  19. 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 +26 -0
  20. 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 +29 -0
  21. 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 +29 -0
  22. 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 +30 -0
  23. 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 +26 -0
  24. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/01_must_support_group.rb +19 -0
  25. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_105.rb +29 -0
  26. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_108.rb +29 -0
  27. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_115.rb +24 -0
  28. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_116.rb +30 -0
  29. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_118.rb +31 -0
  30. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_119.rb +31 -0
  31. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group/attestation_test_requirement_120.rb +29 -0
  32. 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 -0
  33. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/03_eob_group.rb +25 -0
  34. 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 +29 -0
  35. 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 +27 -0
  36. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/04_eob_inpatient_group.rb +13 -0
  37. 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 +28 -0
  38. 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 +33 -0
  39. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/05_eob_outpatient_group.rb +13 -0
  40. 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 +33 -0
  41. 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 +29 -0
  42. 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 +27 -0
  43. 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 +29 -0
  44. 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 +27 -0
  45. 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 +29 -0
  46. 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 +31 -0
  47. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/06_eob_oral_group.rb +23 -0
  48. 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 +27 -0
  49. 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 +27 -0
  50. 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 +27 -0
  51. 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 +25 -0
  52. 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 +27 -0
  53. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/07_eob_pharmacy_group.rb +19 -0
  54. 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 +29 -0
  55. 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 +29 -0
  56. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/08_eob_nonclinician_group.rb +13 -0
  57. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/09_organization_group/attestation_test_requirement_177.rb +29 -0
  58. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/09_organization_group/attestation_test_requirement_178.rb +27 -0
  59. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/09_organization_group.rb +12 -0
  60. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/10_practitioner_group/attestation_test_requirement_186.rb +27 -0
  61. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/10_practitioner_group.rb +10 -0
  62. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/adjudication_amount.rb +38 -0
  63. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/amount_calculations.rb +69 -0
  64. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/attestation_test_requirement_19.rb +27 -0
  65. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/attestation_test_requirement_28.rb +26 -0
  66. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/attestation_test_requirement_99.rb +26 -0
  67. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/coverage_reference_resource.rb +31 -0
  68. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/licensing.rb +33 -0
  69. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group/meta_lastupdated.rb +46 -0
  70. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server/11_crosscutting_group.rb +24 -0
  71. data/lib/carin_for_blue_button_test_kit/custom_groups/visual_inspection_and_attestation/v200_server.rb +37 -0
  72. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/c4bb_test_suite.rb +2 -0
  73. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/c4bb_test_suite.rb +20 -2
  74. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/eob_group.rb +6 -0
  75. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0-dev-nonfinancial/c4bb_test_suite.rb +8 -0
  76. data/lib/carin_for_blue_button_test_kit/generator/suite_generator.rb +1 -1
  77. data/lib/carin_for_blue_button_test_kit/generator/templates/group.rb.erb +7 -1
  78. data/lib/carin_for_blue_button_test_kit/generator/templates/suite.rb.erb +21 -1
  79. data/lib/carin_for_blue_button_test_kit/requirements/{carin-for-blue-button-test-kit_requirements.csv → carin_for_blue_button_test_kit_requirements.csv} +198 -198
  80. data/lib/carin_for_blue_button_test_kit/requirements/generated/c4bb_v110_requirements_coverage.csv +1 -0
  81. data/lib/carin_for_blue_button_test_kit/requirements/generated/c4bb_v200_client_requirements_coverage.csv +47 -0
  82. data/lib/carin_for_blue_button_test_kit/requirements/generated/{carin-for-blue-button-test-kit_requirements_coverage.csv → c4bb_v200_requirements_coverage.csv} +156 -190
  83. data/lib/carin_for_blue_button_test_kit/requirements/generated/c4bb_v200devnonfinancial_requirements_coverage.csv +244 -0
  84. data/lib/carin_for_blue_button_test_kit/requirements/hl7.fhir.us.carin-bb_2.0.0_reqs.xlsx +0 -0
  85. data/lib/carin_for_blue_button_test_kit/version.rb +2 -2
  86. data/lib/carin_for_blue_button_test_kit.rb +0 -1
  87. metadata +80 -15
  88. data/lib/carin_for_blue_button_test_kit/requirements/carin-for-blue-button-test-kit_out_of_scope_requirements.csv +0 -68
  89. data/lib/inferno_requirements_tools/ext/inferno_core/runnable.rb +0 -22
  90. data/lib/inferno_requirements_tools/rake/rakefile_template +0 -31
  91. data/lib/inferno_requirements_tools/tasks/requirements_coverage.rb +0 -284
  92. data/lib/requirements_config.yaml +0 -17
@@ -0,0 +1,26 @@
1
+ module CarinForBlueButtonTestKit
2
+ class AttestationTestCarinV2Requirement99 < Inferno::Test
3
+ title 'Lists CARIN-BB profiles in the meta.profile of each resource'
4
+ description <<~DESCRIPTION
5
+ The Health IT Module includes the appropriate CARIN-BB profile URL(s) in the `meta.profile` field
6
+ of each FHIR resource instance it returns.
7
+ DESCRIPTION
8
+ id :carin_server_requirement_99_attestation
9
+
10
+ verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@99'
11
+
12
+ run do
13
+ identifier = SecureRandom.hex(32)
14
+ wait(
15
+ identifier:,
16
+ message: <<~MESSAGE
17
+ I attest that each FHIR resource returned by the Health IT Module includes the appropriate
18
+ CARIN-BB profile URL(s) in the `meta.profile` element.
19
+
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
+ )
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,31 @@
1
+ module CarinForBlueButtonTestKit
2
+ class CoverageReferenceResourceTest < Inferno::Test
3
+ title 'Returns Coverage Reference Resource with correct data'
4
+
5
+ description <<~DESCRIPTION
6
+ The Health IT Module returns the Coverage Reference Resource with data that was effective as of the date of service of the claim.#{' '}
7
+ For example, the data will reflect the employer name in effect at that time.
8
+ DESCRIPTION
9
+
10
+ id :coverage_reference_resource
11
+
12
+ verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@87',
13
+ 'hl7.fhir.us.carin-bb_2.0.0@91',
14
+ 'hl7.fhir.us.carin-bb_2.0.0@175'
15
+
16
+ run do
17
+ identifier = SecureRandom.hex(32)
18
+
19
+ wait(
20
+ identifier:,
21
+ message: <<~MESSAGE
22
+ I attest that the Health IT Module returns the Coverage Reference Resource with data that was effective as of the date of service of the claim.
23
+
24
+ [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
25
+
26
+ [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
27
+ MESSAGE
28
+ )
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,33 @@
1
+ module CarinForBlueButtonTestKit
2
+ class CarinLicensingTest < Inferno::Test
3
+ title 'Complies with licensing requirements'
4
+
5
+ description <<~DESCRIPTION
6
+ The Health IT Module abides by the license
7
+ requirements for each terminology content artifact utilized within a functioning implementation and obtained
8
+ terminology licenses from the Third-Party IP owner for each code system and/or other specified artifact used.
9
+ DESCRIPTION
10
+
11
+ id :carin_licensing_test
12
+
13
+ verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@30',
14
+ 'hl7.fhir.us.carin-bb_2.0.0@31'
15
+
16
+ run do
17
+ identifier = SecureRandom.hex(32)
18
+
19
+ wait(
20
+ identifier:,
21
+ message: <<~MESSAGE
22
+ The developer of the Health IT Module attests that the Health IT Module abides by the license
23
+ requirements for each terminology content artifact utilized within a functioning implementation and obtained
24
+ terminology licenses from the Third-Party IP owner for each code system and/or other specified artifact used.
25
+
26
+ [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
27
+
28
+ [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
29
+ MESSAGE
30
+ )
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,46 @@
1
+ module CarinForBlueButtonTestKit
2
+ class MetaLastUpdatedTest < Inferno::Test
3
+ title 'Properly populates ".lastUpdated"'
4
+
5
+ description <<~DESCRIPTION
6
+ For
7
+ - C4BB-Organization
8
+ - C4BB-Patient
9
+ - C4BB-Practitioner
10
+ - All reference resources within a C4BB-ExplanationOfBenefit
11
+
12
+ The Health IT Module uses `.meta.lastUpdated` to mean the last time the data was updated or the date of creation in the
13
+ payer's system of record, whichever comes last.
14
+ DESCRIPTION
15
+
16
+ id :meta_last_updated
17
+
18
+ verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@89',
19
+ 'hl7.fhir.us.carin-bb_2.0.0@93',
20
+ 'hl7.fhir.us.carin-bb_2.0.0@179',
21
+ 'hl7.fhir.us.carin-bb_2.0.0@183',
22
+ 'hl7.fhir.us.carin-bb_2.0.0@187'
23
+
24
+ run do
25
+ identifier = SecureRandom.hex(32)
26
+
27
+ wait(
28
+ identifier:,
29
+ message: <<~MESSAGE
30
+ For
31
+ - C4BB-Organization
32
+ - C4BB-Patient
33
+ - C4BB-Practitioner
34
+
35
+ The developer of the Health IT Module attests that#{' '}
36
+ `.meta.lastUpdated` means the last time the data was updated or the date of creation in the payer's
37
+ system of record, whichever comes last.
38
+
39
+ [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
40
+
41
+ [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
42
+ MESSAGE
43
+ )
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,24 @@
1
+ require_relative '11_crosscutting_group/adjudication_amount'
2
+ require_relative '11_crosscutting_group/amount_calculations'
3
+ require_relative '11_crosscutting_group/coverage_reference_resource'
4
+ require_relative '11_crosscutting_group/meta_lastupdated'
5
+ require_relative '11_crosscutting_group/licensing'
6
+ require_relative '11_crosscutting_group/attestation_test_requirement_19'
7
+ require_relative '11_crosscutting_group/attestation_test_requirement_28'
8
+ require_relative '11_crosscutting_group/attestation_test_requirement_99'
9
+
10
+ module CarinForBlueButtonTestKit
11
+ class CarinCrossCuttingAttestationGroup < Inferno::TestGroup
12
+ id :c4bb_crosscutting
13
+ title 'Cross Cutting'
14
+
15
+ test from: :carin_licensing_test
16
+ test from: :coverage_reference_resource
17
+ test from: :amount_calculations
18
+ test from: :adjudication_amount
19
+ test from: :meta_last_updated
20
+ test from: :carin_server_requirement_19_attestation
21
+ test from: :carin_server_requirement_28_attestation
22
+ test from: :carin_server_requirement_99_attestation
23
+ end
24
+ end
@@ -0,0 +1,37 @@
1
+ require_relative 'v200_server/00_authorization_group'
2
+ require_relative 'v200_server/01_must_support_group'
3
+ require_relative 'v200_server/03_eob_group'
4
+ require_relative 'v200_server/04_eob_inpatient_group'
5
+ require_relative 'v200_server/05_eob_outpatient_group'
6
+ require_relative 'v200_server/06_eob_oral_group'
7
+ require_relative 'v200_server/07_eob_pharmacy_group'
8
+ require_relative 'v200_server/08_eob_nonclinician_group'
9
+ require_relative 'v200_server/09_organization_group'
10
+ require_relative 'v200_server/10_practitioner_group'
11
+ require_relative 'v200_server/11_crosscutting_group'
12
+
13
+ module CarinForBlueButtonTestKit
14
+ class CarinServerVisualInspectionAndAttestationGroup < Inferno::TestGroup
15
+ id :c4bb_server_v200_visual_inspection_and_attestation
16
+
17
+ title 'Visual Inspection and Attestation'
18
+
19
+ description <<~DESCRIPTION
20
+ Perform visual inspections or attestations to ensure that the Server is conformant to the CARIN for Blue Button® IG requirements.
21
+ DESCRIPTION
22
+
23
+ run_as_group
24
+
25
+ group from: :c4bb_security
26
+ group from: :c4bb_must_support
27
+ group from: :c4bb_eob
28
+ group from: :c4bb_eob_inpatient
29
+ group from: :c4bb_eob_outpatient
30
+ group from: :c4bb_eob_oral
31
+ group from: :c4bb_eob_pharmacy
32
+ group from: :c4bb_eob_nonclinician
33
+ group from: :c4bb_organization
34
+ group from: :c4bb_practitioner
35
+ group from: :c4bb_crosscutting
36
+ end
37
+ end
@@ -47,6 +47,8 @@ module CarinForBlueButtonTestKit
47
47
 
48
48
  id :c4bb_v110
49
49
 
50
+
51
+
50
52
  VALIDATION_MESSAGE_FILTERS = [
51
53
  /\A\S+: \S+: URL value '.*' does not resolve/
52
54
  ].freeze
@@ -3,7 +3,7 @@ require_relative '../../version'
3
3
 
4
4
  require_relative '../../capability_statement/capability_statement_group'
5
5
  require_relative '../../custom_groups/v2.0.0/c4bb_smart_launch_group'
6
-
6
+ require_relative '../../custom_groups/visual_inspection_and_attestation/v200_server'
7
7
  require_relative 'patient_group'
8
8
  require_relative 'eob_group'
9
9
  require_relative 'coverage_group'
@@ -48,6 +48,14 @@ module CarinForBlueButtonTestKit
48
48
 
49
49
  id :c4bb_v200
50
50
 
51
+ requirement_sets(
52
+ {
53
+ identifier: 'hl7.fhir.us.carin-bb_2.0.0',
54
+ title: 'CARIN Consumer Directed Payer Data Exchange (CARIN IG for Blue Button®)',
55
+ actor: 'Health Plan',
56
+ }
57
+ )
58
+
51
59
  VALIDATION_MESSAGE_FILTERS = [
52
60
  /\A\S+: \S+: URL value '.*' does not resolve/
53
61
  ].freeze
@@ -93,7 +101,14 @@ module CarinForBlueButtonTestKit
93
101
  type: :auth_info,
94
102
  optional: true
95
103
 
96
- group from: :capability_statement_group
104
+ group from: :capability_statement_group do
105
+
106
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
107
+ children.find { |child| child.id.ends_with?('carin_bb_instantiate') }
108
+ .verifies_requirements('hl7.fhir.us.carin-bb_2.0.0@17')
109
+ children.find { |child| child.id.ends_with?('carin_bb_json_support') }
110
+ .verifies_requirements('hl7.fhir.us.carin-bb_2.0.0@98')
111
+ end
97
112
 
98
113
  group from: :c4bb_v200_patient
99
114
  group from: :c4bb_v200_eob
@@ -102,6 +117,9 @@ module CarinForBlueButtonTestKit
102
117
  group from: :c4bb_v200_practitioner
103
118
  group from: :c4bb_v200_related_person
104
119
  end
120
+ group from: :c4bb_server_v200_visual_inspection_and_attestation do
121
+ optional
122
+ end
105
123
  end
106
124
  end
107
125
  end
@@ -26,6 +26,9 @@ require_relative 'eob_pharmacy/validation_test'
26
26
  require_relative 'eob_pharmacy/must_support_test'
27
27
  require_relative 'eob_professional_non_clinician/validation_test'
28
28
  require_relative 'eob_professional_non_clinician/must_support_test'
29
+ require_relative '../../custom_groups/v2.0.0/eob/type_data_absent_test'
30
+ require_relative '../../custom_groups/v2.0.0/eob/insurer_same_test'
31
+ require_relative '../../custom_groups/v2.0.0/eob/outcome_complete_test'
29
32
 
30
33
  module CarinForBlueButtonTestKit
31
34
  module CARIN4BBV200
@@ -133,6 +136,9 @@ read succeeds.
133
136
  test from: :c4bb_v200_eob_pharmacy_must_support_test
134
137
  test from: :c4bb_v200_eob_professional_non_clinician_validation_test
135
138
  test from: :c4bb_v200_eob_professional_non_clinician_must_support_test
139
+ test from: :c4bb_v200_custom_eob_type_data_absent
140
+ test from: :c4bb_v200_custom_eob_insurer_same
141
+ test from: :c4bb_v200_custom_eob_outcome_complete
136
142
  end
137
143
  end
138
144
  end
@@ -50,6 +50,14 @@ module CarinForBlueButtonTestKit
50
50
 
51
51
  id :c4bb_v200devnonfinancial
52
52
 
53
+ requirement_sets(
54
+ {
55
+ identifier: 'hl7.fhir.us.carin-bb_2.0.0',
56
+ title: 'CARIN Consumer Directed Payer Data Exchange (CARIN IG for Blue Button®)',
57
+ actor: 'Health Plan',
58
+ }
59
+ )
60
+
53
61
  VALIDATION_MESSAGE_FILTERS = [
54
62
  /\A\S+: \S+: URL value '.*' does not resolve/
55
63
  ].freeze
@@ -22,7 +22,7 @@ module CarinForBlueButtonTestKit
22
22
  end
23
23
 
24
24
  def output
25
- @output ||= ERB.new(template).result(binding)
25
+ @output ||= ERB.new(template, trim_mode: '-').result(binding)
26
26
  end
27
27
 
28
28
  def base_output_file_name
@@ -1,4 +1,7 @@
1
1
  <% test_file_list.each do |file_name| %>require_relative '<%= file_name %>'
2
+ <% end %><% if module_name== 'CARIN4BBV200' && class_name == 'EobGroup' %>require_relative '../../custom_groups/v2.0.0/eob/type_data_absent_test'
3
+ require_relative '../../custom_groups/v2.0.0/eob/insurer_same_test'
4
+ require_relative '../../custom_groups/v2.0.0/eob/outcome_complete_test'
2
5
  <% end %>
3
6
  module CarinForBlueButtonTestKit
4
7
  module <%= module_name %>
@@ -23,7 +26,10 @@ module CarinForBlueButtonTestKit
23
26
  @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, '<%= profile_identifier %>', 'metadata.yml'), aliases: true))
24
27
  end
25
28
  <% test_id_list.each do |id| %>
26
- test from: :<%= id %><% end %>
29
+ test from: :<%= id %><% end %><% if module_name == 'CARIN4BBV200' && class_name == 'EobGroup' %>
30
+ test from: :c4bb_v200_custom_eob_type_data_absent
31
+ test from: :c4bb_v200_custom_eob_insurer_same
32
+ test from: :c4bb_v200_custom_eob_outcome_complete<% end %>
27
33
  end
28
34
  end
29
35
  end
@@ -3,6 +3,7 @@ require_relative '../../version'
3
3
 
4
4
  require_relative '../../capability_statement/capability_statement_group'
5
5
  require_relative '<%= smart_launch_file_name %>'
6
+ <%- if module_name == "CARIN4BBV200" -%>require_relative '../../custom_groups/visual_inspection_and_attestation/v200_server'<%- end -%>
6
7
 
7
8
  <% group_file_list.each do |file_name| %>require_relative '<%= file_name %>'
8
9
  <% end %>
@@ -45,6 +46,14 @@ module CarinForBlueButtonTestKit
45
46
 
46
47
  id :<%= suite_id %>
47
48
 
49
+ <% if module_name == "CARIN4BBV200" || module_name.include?("FINANCIAL") %>requirement_sets(
50
+ {
51
+ identifier: 'hl7.fhir.us.carin-bb_2.0.0',
52
+ title: 'CARIN Consumer Directed Payer Data Exchange (CARIN IG for Blue Button®)',
53
+ actor: 'Health Plan',
54
+ }
55
+ )<% end %>
56
+
48
57
  VALIDATION_MESSAGE_FILTERS = [
49
58
  /\A\S+: \S+: URL value '.*' does not resolve/
50
59
  ].freeze
@@ -90,10 +99,21 @@ module CarinForBlueButtonTestKit
90
99
  type: :auth_info,
91
100
  optional: true
92
101
 
93
- group from: :capability_statement_group
102
+ group from: :capability_statement_group<%- if module_name == "CARIN4BBV200" -%> do
103
+
104
+ # re-using the stu1 group for stu2, but need to update requirements in the children to v2.0.0
105
+ children.find { |child| child.id.ends_with?('carin_bb_instantiate') }
106
+ .verifies_requirements('hl7.fhir.us.carin-bb_2.0.0@17')
107
+ children.find { |child| child.id.ends_with?('carin_bb_json_support') }
108
+ .verifies_requirements('hl7.fhir.us.carin-bb_2.0.0@98')
109
+ end<% end %>
94
110
  <% group_id_list.each do |id| %>
95
111
  group from: :<%= id %><% end %>
96
112
  end
113
+ <%- if module_name == "CARIN4BBV200" -%> group from: :c4bb_server_v200_visual_inspection_and_attestation do
114
+ optional
115
+ end
116
+ <%- end -%>
97
117
  end
98
118
  end
99
119
  end