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
@@ -9,18 +9,41 @@ module CarinForBlueButtonTestKit
9
9
 
10
10
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@99'
11
11
 
12
+ input :carin_server_requirement_99_attestation_options,
13
+ title: 'Lists CARIN-BB profiles in the meta.profile of each resource',
14
+ description: %(
15
+ I attest that each FHIR resource returned by the Health IT Module includes the appropriate
16
+ CARIN-BB profile URL(s) in the `meta.profile` element.
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_99_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 each FHIR resource returned by the Health IT Module includes the appropriate
18
- CARIN-BB profile URL(s) in the `meta.profile` element.
38
+ assert carin_server_requirement_99_attestation_options == 'true', %(
39
+ The following was not satisfied:
40
+
41
+ The Health IT Module includes the appropriate CARIN-BB profile URL(s) in the `meta.profile` field
42
+ of each FHIR resource instance it returns.
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_99_attestation_note if carin_server_requirement_99_attestation_note.present?
24
46
  end
47
+
25
48
  end
26
49
  end
@@ -13,19 +13,40 @@ module CarinForBlueButtonTestKit
13
13
  'hl7.fhir.us.carin-bb_2.0.0@91',
14
14
  'hl7.fhir.us.carin-bb_2.0.0@175'
15
15
 
16
- run do
17
- identifier = SecureRandom.hex(32)
16
+ input :coverage_reference_resource_options,
17
+ title: 'Returns Coverage Reference Resource with correct data',
18
+ description: %(
19
+ 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.
20
+ ),
21
+ type: 'radio',
22
+ default: 'false',
23
+ options: {
24
+ list_options: [
25
+ {
26
+ label: 'Yes',
27
+ value: 'true'
28
+ },
29
+ {
30
+ label: 'No',
31
+ value: 'false'
32
+ }
33
+ ]
34
+ }
35
+ input :coverage_reference_resource_note,
36
+ title: 'Notes, if applicable:',
37
+ type: 'textarea',
38
+ optional: true
18
39
 
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.
40
+ run do
41
+ assert coverage_reference_resource_options == 'true', %(
42
+ The following was not satisfied:
23
43
 
24
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
44
+ The Health IT Module returns the Coverage Reference Resource with data that was effective as of the date of service of the claim.#{' '}
45
+ For example, the data will reflect the employer name in effect at that time.
25
46
 
26
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
27
- MESSAGE
28
47
  )
48
+ pass coverage_reference_resource_note if coverage_reference_resource_note.present?
29
49
  end
50
+
30
51
  end
31
52
  end
@@ -13,21 +13,43 @@ module CarinForBlueButtonTestKit
13
13
  verifies_requirements 'hl7.fhir.us.carin-bb_2.0.0@30',
14
14
  'hl7.fhir.us.carin-bb_2.0.0@31'
15
15
 
16
+ input :carin_licensing_test_options,
17
+ title: 'Complies with licensing requirements',
18
+ description: %(
19
+ The developer of the Health IT Module attests that the Health IT Module abides by the license
20
+ requirements for each terminology content artifact utilized within a functioning implementation and obtained
21
+ terminology licenses from the Third-Party IP owner for each code system and/or other specified artifact used.
22
+ ),
23
+ type: 'radio',
24
+ default: 'false',
25
+ options: {
26
+ list_options: [
27
+ {
28
+ label: 'Yes',
29
+ value: 'true'
30
+ },
31
+ {
32
+ label: 'No',
33
+ value: 'false'
34
+ }
35
+ ]
36
+ }
37
+ input :carin_licensing_test_note,
38
+ title: 'Notes, if applicable:',
39
+ type: 'textarea',
40
+ optional: true
41
+
16
42
  run do
17
- identifier = SecureRandom.hex(32)
43
+ assert carin_licensing_test_options == 'true', %(
44
+ The following was not satisfied:
18
45
 
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
46
+ The Health IT Module abides by the license
23
47
  requirements for each terminology content artifact utilized within a functioning implementation and obtained
24
48
  terminology licenses from the Third-Party IP owner for each code system and/or other specified artifact used.
25
49
 
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
50
  )
51
+ pass carin_licensing_test_note if carin_licensing_test_note.present?
31
52
  end
53
+
32
54
  end
33
55
  end
@@ -4,10 +4,10 @@ module CarinForBlueButtonTestKit
4
4
 
5
5
  description <<~DESCRIPTION
6
6
  For
7
- - C4BB-Organization
8
- - C4BB-Patient
9
- - C4BB-Practitioner
10
- - All reference resources within a C4BB-ExplanationOfBenefit
7
+ - C4BB-Organization
8
+ - C4BB-Patient
9
+ - C4BB-Practitioner
10
+ - All reference resources within a C4BB-ExplanationOfBenefit
11
11
 
12
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
13
  payer's system of record, whichever comes last.
@@ -21,26 +21,53 @@ module CarinForBlueButtonTestKit
21
21
  'hl7.fhir.us.carin-bb_2.0.0@183',
22
22
  'hl7.fhir.us.carin-bb_2.0.0@187'
23
23
 
24
- run do
25
- identifier = SecureRandom.hex(32)
26
-
27
- wait(
28
- identifier:,
29
- message: <<~MESSAGE
30
- For
24
+ input :meta_last_updated_options,
25
+ title: 'Properly populates ".lastUpdated"',
26
+ description: %(
27
+ For
31
28
  - C4BB-Organization
32
29
  - C4BB-Patient
33
30
  - C4BB-Practitioner
34
31
 
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.
32
+ The developer of the Health IT Module attests that
33
+ `.meta.lastUpdated` means the last time the data was updated or the date of creation in the payer's
34
+ system of record, whichever comes last.
35
+ ),
36
+ type: 'radio',
37
+ default: 'false',
38
+ options: {
39
+ list_options: [
40
+ {
41
+ label: 'Yes',
42
+ value: 'true'
43
+ },
44
+ {
45
+ label: 'No',
46
+ value: 'false'
47
+ }
48
+ ]
49
+ }
50
+ input :meta_last_updated_note,
51
+ title: 'Notes, if applicable:',
52
+ type: 'textarea',
53
+ optional: true
54
+
55
+ run do
56
+ assert meta_last_updated_options == 'true', %(
57
+ The following was not satisfied:
38
58
 
39
- [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
59
+ For
60
+ - C4BB-Organization
61
+ - C4BB-Patient
62
+ - C4BB-Practitioner
63
+ - All reference resources within a C4BB-ExplanationOfBenefit
64
+
65
+ The Health IT Module uses `.meta.lastUpdated` to mean the last time the data was updated or the date of creation in the
66
+ payer's system of record, whichever comes last.
40
67
 
41
- [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
42
- MESSAGE
43
68
  )
69
+ pass meta_last_updated_note if meta_last_updated_note.present?
44
70
  end
71
+
45
72
  end
46
73
  end
@@ -117,9 +117,15 @@ module CarinForBlueButtonTestKit
117
117
  group from: :c4bb_v200_practitioner
118
118
  group from: :c4bb_v200_related_person
119
119
  end
120
- group from: :c4bb_server_v200_visual_inspection_and_attestation do
121
- optional
120
+ group from: :c4bb_server_v200_visual_inspection_and_attestation,
121
+ optional: true
122
+
123
+ def self.recursive_remove_input(runnable, input)
124
+ runnable.inputs.delete(input)
125
+ runnable.input_order.delete(input)
126
+ runnable.children.each { |child_runnable| recursive_remove_input(child_runnable, input) }
122
127
  end
128
+ recursive_remove_input(groups.last, :url)
123
129
  end
124
130
  end
125
131
  end
@@ -110,9 +110,16 @@ module CarinForBlueButtonTestKit
110
110
  <% group_id_list.each do |id| %>
111
111
  group from: :<%= id %><% end %>
112
112
  end
113
- <%- if module_name == "CARIN4BBV200" -%> group from: :c4bb_server_v200_visual_inspection_and_attestation do
114
- optional
113
+ <%- if module_name == "CARIN4BBV200" -%>
114
+ group from: :c4bb_server_v200_visual_inspection_and_attestation,
115
+ optional: true
116
+
117
+ def self.recursive_remove_input(runnable, input)
118
+ runnable.inputs.delete(input)
119
+ runnable.input_order.delete(input)
120
+ runnable.children.each { |child_runnable| recursive_remove_input(child_runnable, input) }
115
121
  end
122
+ recursive_remove_input(groups.last, :url)
116
123
  <%- end -%>
117
124
  end
118
125
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CarinForBlueButtonTestKit
4
- VERSION = '0.16.0'
5
- LAST_UPDATED = '2025-07-22'
4
+ VERSION = '0.16.1'
5
+ LAST_UPDATED = '2026-05-20'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carin_for_blue_button_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.16.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-07-22 00:00:00.000000000 Z
11
+ date: 2026-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '1.2'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 1.0.2
22
+ version: 1.2.2
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '1.0'
29
+ version: '1.2'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.0.2
32
+ version: 1.2.2
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: smart_app_launch_test_kit
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -37,6 +37,9 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '1.0'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.0.1
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -44,20 +47,29 @@ dependencies:
44
47
  - - "~>"
45
48
  - !ruby/object:Gem::Version
46
49
  version: '1.0'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 1.0.1
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: udap_security_test_kit
49
55
  requirement: !ruby/object:Gem::Requirement
50
56
  requirements:
51
57
  - - "~>"
52
58
  - !ruby/object:Gem::Version
53
- version: 0.12.0
59
+ version: '0.12'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 0.12.1
54
63
  type: :runtime
55
64
  prerelease: false
56
65
  version_requirements: !ruby/object:Gem::Requirement
57
66
  requirements:
58
67
  - - "~>"
59
68
  - !ruby/object:Gem::Version
60
- version: 0.12.0
69
+ version: '0.12'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 0.12.1
61
73
  - !ruby/object:Gem::Dependency
62
74
  name: database_cleaner-sequel
63
75
  requirement: !ruby/object:Gem::Requirement