davinci_us_drug_formulary_test_kit 0.13.0 → 0.13.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.
- checksums.yaml +4 -4
- data/lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation/authenticated_api_security.rb +37 -11
- data/lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation/drug_display_name.rb +31 -10
- data/lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation/hrex_conformance.rb +33 -11
- data/lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation/member_scoped_access.rb +38 -13
- data/lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation/rxnorm_coding.rb +30 -10
- data/lib/davinci_us_drug_formulary_test_kit/generated/v2.0.1/usdf_test_suite.rb +5 -3
- data/lib/davinci_us_drug_formulary_test_kit/generator/templates/suite.rb.erb +5 -3
- data/lib/davinci_us_drug_formulary_test_kit/reference_resolution_test.rb +7 -14
- data/lib/davinci_us_drug_formulary_test_kit/remove_input.rb +11 -0
- data/lib/davinci_us_drug_formulary_test_kit/version.rb +2 -2
- metadata +5 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d7a195142f074cb80ae12bf5d9db8eae59ceb023e3f224f60ae4cc84396cf27f
|
|
4
|
+
data.tar.gz: d7f834d476128c5f62536d66413494c1178f04ee085564b99a726c36cc9976fd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b35ee3cc954961b0e44cf44b05ba91b105b6084a9df5d17ddd6798f2af75dc9d61a72ea48063288aaba551263c3dcec110487fec13b54b1157f6a4c027f18a44
|
|
7
|
+
data.tar.gz: f244273234bbef34e663f844e7235757f67d0e293f0305d289a6667a50bd3b5c82b026e9f5c28b59aa0a1818b8cd65f11fc1bc551c13b5f2fe65aeae8f2dd0b2
|
|
@@ -19,22 +19,48 @@ module DaVinciUSDrugFormularyTestKit
|
|
|
19
19
|
verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@1',
|
|
20
20
|
'hl7.fhir.us.davinci-drug-formulary_2.0.1@3'
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
input :usdf_v201_authenticated_api_security_options,
|
|
23
|
+
title: 'Protects PHI/PII in authenticated access and prevents tracking in unauthenticated access',
|
|
24
|
+
description: %(
|
|
25
|
+
The developer of the Health IT Module attests that:
|
|
26
|
+
|
|
27
|
+
- Authenticated access to formulary services containing PHI/PII is protected using authorized,
|
|
28
|
+
authenticated transactions in accordance with the HRex Security and Privacy framework.
|
|
29
|
+
- The system does **not** retain any information through unauthenticated API access that could
|
|
30
|
+
associate medication queries with the consumer.
|
|
31
|
+
),
|
|
32
|
+
type: 'radio',
|
|
33
|
+
default: 'false',
|
|
34
|
+
options: {
|
|
35
|
+
list_options: [
|
|
36
|
+
{
|
|
37
|
+
label: 'Yes',
|
|
38
|
+
value: 'true'
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: 'No',
|
|
42
|
+
value: 'false'
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
input :usdf_v201_authenticated_api_security_note,
|
|
47
|
+
title: 'Notes, if applicable:',
|
|
48
|
+
type: 'textarea',
|
|
49
|
+
optional: true
|
|
24
50
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
The developer of the Health IT Module attests that:
|
|
51
|
+
run do
|
|
52
|
+
assert usdf_v201_authenticated_api_security_options == 'true', %(
|
|
53
|
+
The following was not satisfied:
|
|
29
54
|
|
|
30
|
-
|
|
31
|
-
- The system does **not** retain any information through unauthenticated API access that could associate medication queries with the consumer.
|
|
55
|
+
The Health IT Module enforces proper security and privacy handling of formulary data:
|
|
32
56
|
|
|
33
|
-
|
|
57
|
+
- Authenticated access to formulary services containing PHI/PII is protected using authorized, authenticated
|
|
58
|
+
transactions in accordance with the HRex Security and Privacy framework.
|
|
59
|
+
- The system does **not** retain any information through unauthenticated API access that could associate
|
|
60
|
+
medication queries with the consumer.
|
|
34
61
|
|
|
35
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
|
|
36
|
-
MESSAGE
|
|
37
62
|
)
|
|
63
|
+
pass usdf_v201_authenticated_api_security_note if usdf_v201_authenticated_api_security_note.present?
|
|
38
64
|
end
|
|
39
65
|
end
|
|
40
66
|
end
|
|
@@ -16,20 +16,41 @@ module DaVinciUSDrugFormularyTestKit
|
|
|
16
16
|
|
|
17
17
|
verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@19'
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
input :usdf_v201_drug_display_name_options,
|
|
20
|
+
title: 'Supports drug name search using general drug form group codes and names',
|
|
21
|
+
description: %(
|
|
22
|
+
I attest that the Health IT Module supports searching for drugs using general drug form
|
|
23
|
+
group codes (SCDG or SBDG) and ensures that the display name associated with those codes is included
|
|
24
|
+
in search results.
|
|
25
|
+
),
|
|
26
|
+
type: 'radio',
|
|
27
|
+
default: 'false',
|
|
28
|
+
options: {
|
|
29
|
+
list_options: [
|
|
30
|
+
{
|
|
31
|
+
label: 'Yes',
|
|
32
|
+
value: 'true'
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
label: 'No',
|
|
36
|
+
value: 'false'
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
input :usdf_v201_drug_display_name_note,
|
|
41
|
+
title: 'Notes, if applicable:',
|
|
42
|
+
type: 'textarea',
|
|
43
|
+
optional: true
|
|
21
44
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
I attest that the Health IT Module supports searching for drugs using general drug form
|
|
26
|
-
group codes (SCDG or SBDG) and ensures that the display name associated with those codes is included in search results.
|
|
45
|
+
run do
|
|
46
|
+
assert usdf_v201_drug_display_name_options == 'true', %(
|
|
47
|
+
The following was not satisfied:
|
|
27
48
|
|
|
28
|
-
|
|
49
|
+
The Health IT Module supports searching for drugs using general drug form group codes (SCDG or SBDG)
|
|
50
|
+
and ensures that the display name associated with those codes is included in search results.
|
|
29
51
|
|
|
30
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
|
|
31
|
-
MESSAGE
|
|
32
52
|
)
|
|
53
|
+
pass usdf_v201_drug_display_name_note if usdf_v201_drug_display_name_note.present?
|
|
33
54
|
end
|
|
34
55
|
end
|
|
35
56
|
end
|
|
@@ -18,22 +18,44 @@ module DaVinciUSDrugFormularyTestKit
|
|
|
18
18
|
|
|
19
19
|
verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@52'
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
input :usdf_v201_hrex_conformance_options,
|
|
22
|
+
title: 'Conforms to HRex conformance expectations',
|
|
23
|
+
description: %(
|
|
24
|
+
The developer of the Health IT Module attests that the system conforms
|
|
25
|
+
to the expectations described in the HRex Conformance Expectations section:
|
|
26
|
+
|
|
27
|
+
https://hl7.org/fhir/us/davinci-hrex/STU1/conformance.html
|
|
28
|
+
),
|
|
29
|
+
type: 'radio',
|
|
30
|
+
default: 'false',
|
|
31
|
+
options: {
|
|
32
|
+
list_options: [
|
|
33
|
+
{
|
|
34
|
+
label: 'Yes',
|
|
35
|
+
value: 'true'
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
label: 'No',
|
|
39
|
+
value: 'false'
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
input :usdf_v201_hrex_conformance_note,
|
|
44
|
+
title: 'Notes, if applicable:',
|
|
45
|
+
type: 'textarea',
|
|
46
|
+
optional: true
|
|
23
47
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
The developer of the Health IT Module attests that the system conforms
|
|
28
|
-
to the expectations described in the HRex Conformance Expectations section:
|
|
48
|
+
run do
|
|
49
|
+
assert usdf_v201_hrex_conformance_options == 'true', %(
|
|
50
|
+
The following was not satisfied:
|
|
29
51
|
|
|
30
|
-
|
|
52
|
+
The Health IT Module conforms
|
|
53
|
+
to the expectations described in the HRex Conformance Expectations section:
|
|
31
54
|
|
|
32
|
-
|
|
55
|
+
https://hl7.org/fhir/us/davinci-hrex/STU1/conformance.html
|
|
33
56
|
|
|
34
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
|
|
35
|
-
MESSAGE
|
|
36
57
|
)
|
|
58
|
+
pass usdf_v201_hrex_conformance_note if usdf_v201_hrex_conformance_note.present?
|
|
37
59
|
end
|
|
38
60
|
end
|
|
39
61
|
end
|
|
@@ -21,24 +21,49 @@ module DaVinciUSDrugFormularyTestKit
|
|
|
21
21
|
'hl7.fhir.us.davinci-drug-formulary_2.0.1@5',
|
|
22
22
|
'hl7.fhir.us.davinci-drug-formulary_2.0.1@11'
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
input :usdf_v201_member_scoped_access_options,
|
|
25
|
+
title: 'Returns plan-appropriate formulary data through authenticated access',
|
|
26
|
+
description: %(
|
|
27
|
+
The developer of the Health IT Module attests that:
|
|
28
|
+
|
|
29
|
+
- When queried through authenticated access, the Health IT Module returns:
|
|
30
|
+
- All Formularies associated with the member’s group(s), if applicable,
|
|
31
|
+
- Only generally available (non-group-restricted) Formularies if the member is not in a group.
|
|
32
|
+
- The Health IT Module also provides access to profiled resources (FormularyItem, FormularyDrug) tied to
|
|
33
|
+
the member’s available plans.
|
|
34
|
+
),
|
|
35
|
+
type: 'radio',
|
|
36
|
+
default: 'false',
|
|
37
|
+
options: {
|
|
38
|
+
list_options: [
|
|
39
|
+
{
|
|
40
|
+
label: 'Yes',
|
|
41
|
+
value: 'true'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
label: 'No',
|
|
45
|
+
value: 'false'
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
input :usdf_v201_member_scoped_access_note,
|
|
50
|
+
title: 'Notes, if applicable:',
|
|
51
|
+
type: 'textarea',
|
|
52
|
+
optional: true
|
|
26
53
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
The developer of the Health IT Module attests that:
|
|
54
|
+
run do
|
|
55
|
+
assert usdf_v201_member_scoped_access_options == 'true', %(
|
|
56
|
+
The following was not satisfied:
|
|
31
57
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
- The Health IT Module also provides access to profiled resources (FormularyItem, FormularyDrug) tied to the member’s available plans.
|
|
58
|
+
When queried through authenticated access, the Health IT Module returns:
|
|
59
|
+
- All Formularies associated with the member’s group(s), if applicable,
|
|
60
|
+
- Only generally available (non-group-restricted) Formularies if the member is not in a group.
|
|
36
61
|
|
|
37
|
-
|
|
62
|
+
The Health IT Module also provides access to profiled resources (FormularyItem, FormularyDrug) tied to the
|
|
63
|
+
member’s available plans.
|
|
38
64
|
|
|
39
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
|
|
40
|
-
MESSAGE
|
|
41
65
|
)
|
|
66
|
+
pass usdf_v201_member_scoped_access_note if usdf_v201_member_scoped_access_note.present?
|
|
42
67
|
end
|
|
43
68
|
end
|
|
44
69
|
end
|
|
@@ -16,20 +16,40 @@ module DaVinciUSDrugFormularyTestKit
|
|
|
16
16
|
|
|
17
17
|
verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@14'
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
input :usdf_v201_rxnorm_coding_options,
|
|
20
|
+
title: 'Includes RxNorm SCDG/SBDG codes for SCD/SBD drug types',
|
|
21
|
+
description: %(
|
|
22
|
+
The developer of the Health IT Module attests that the system includes an additional coding repetition
|
|
23
|
+
for each drug with RxNorm Term Type of SCD or SBD, using the corresponding SCDG or SBDG code.
|
|
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 :usdf_v201_rxnorm_coding_note,
|
|
40
|
+
title: 'Notes, if applicable:',
|
|
41
|
+
type: 'textarea',
|
|
42
|
+
optional: true
|
|
21
43
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
The developer of the Health IT Module attests that the system includes an additional coding repetition
|
|
26
|
-
for each drug with RxNorm Term Type of SCD or SBD, using the corresponding SCDG or SBDG code.
|
|
44
|
+
run do
|
|
45
|
+
assert usdf_v201_rxnorm_coding_options == 'true', %(
|
|
46
|
+
The following was not satisfied:
|
|
27
47
|
|
|
28
|
-
|
|
48
|
+
The Health IT Module includes an additional coding repetition for each drug with
|
|
49
|
+
RxNorm Term Type of SCD or SBD, using the corresponding SCDG or SBDG code.
|
|
29
50
|
|
|
30
|
-
[Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
|
|
31
|
-
MESSAGE
|
|
32
51
|
)
|
|
52
|
+
pass usdf_v201_rxnorm_coding_note if usdf_v201_rxnorm_coding_note.present?
|
|
33
53
|
end
|
|
34
54
|
end
|
|
35
55
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require_relative '../../version'
|
|
2
|
+
require_relative '../../remove_input'
|
|
2
3
|
require_relative 'urls'
|
|
3
4
|
require_relative '../../custom_groups/v2.0.1/capability_statement_group'
|
|
4
5
|
require_relative 'payer_insurance_plan_group'
|
|
@@ -205,9 +206,10 @@ module DaVinciUSDrugFormularyTestKit
|
|
|
205
206
|
'hl7.fhir.us.davinci-drug-formulary_2.0.1@34', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@35'
|
|
206
207
|
end
|
|
207
208
|
|
|
208
|
-
group from: :usdf_v201_visual_inspection_and_attestation
|
|
209
|
-
optional
|
|
210
|
-
|
|
209
|
+
group from: :usdf_v201_visual_inspection_and_attestation,
|
|
210
|
+
optional: true
|
|
211
|
+
RemoveInput::recursive_remove_input(groups.last, :url)
|
|
212
|
+
RemoveInput::recursive_remove_input(groups.last, :smart_auth_info)
|
|
211
213
|
end
|
|
212
214
|
end
|
|
213
215
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require_relative '../../version'
|
|
2
|
+
require_relative '../../remove_input'
|
|
2
3
|
require_relative 'urls'
|
|
3
4
|
require_relative '<%= capability_statement_file_name %>'
|
|
4
5
|
<% group_file_list.each do |file_name| %>require_relative '<%= file_name %>'
|
|
@@ -171,9 +172,10 @@ module DaVinciUSDrugFormularyTestKit
|
|
|
171
172
|
end
|
|
172
173
|
<% end %>
|
|
173
174
|
<%- if module_name.include?('USDFV201') -%>
|
|
174
|
-
group from: :usdf_v201_visual_inspection_and_attestation
|
|
175
|
-
optional
|
|
176
|
-
|
|
175
|
+
group from: :usdf_v201_visual_inspection_and_attestation,
|
|
176
|
+
optional: true
|
|
177
|
+
RemoveInput::recursive_remove_input(groups.last, :url)
|
|
178
|
+
RemoveInput::recursive_remove_input(groups.last, :smart_auth_info)
|
|
177
179
|
<%- end -%>
|
|
178
180
|
end
|
|
179
181
|
end
|
|
@@ -153,23 +153,16 @@ module DaVinciUSDrugFormularyTestKit
|
|
|
153
153
|
def resource_is_valid_with_target_profile?(resource, target_profile)
|
|
154
154
|
return true if target_profile.blank?
|
|
155
155
|
|
|
156
|
-
# Only need to know if the resource is valid.
|
|
157
|
-
# Calling resource_is_valid? causes validation errors to be logged.
|
|
158
|
-
validator = find_validator(:default)
|
|
159
|
-
|
|
160
156
|
target_profile_with_version =
|
|
161
157
|
target_profile.include?('|') ? target_profile : "#{target_profile}|#{metadata.profile_version}"
|
|
162
158
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
validator.filter_messages(message_hashes)
|
|
171
|
-
|
|
172
|
-
message_hashes.none? { |message_hash| message_hash[:type] == 'error' }
|
|
159
|
+
# Use the Inferno DSL resource_is_valid? method with add_messages_to_runnable: false
|
|
160
|
+
# to validate silently without adding messages to the test output
|
|
161
|
+
resource_is_valid?(
|
|
162
|
+
resource:,
|
|
163
|
+
profile_url: target_profile_with_version,
|
|
164
|
+
add_messages_to_runnable: false
|
|
165
|
+
)
|
|
173
166
|
end
|
|
174
167
|
end
|
|
175
168
|
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module DaVinciUSDrugFormularyTestKit
|
|
2
|
+
module RemoveInput
|
|
3
|
+
module_function
|
|
4
|
+
|
|
5
|
+
def recursive_remove_input(runnable, input)
|
|
6
|
+
runnable.inputs.delete(input)
|
|
7
|
+
runnable.input_order.delete(input)
|
|
8
|
+
runnable.children.each { |child_runnable| recursive_remove_input(child_runnable, input) }
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: davinci_us_drug_formulary_test_kit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.13.
|
|
4
|
+
version: 0.13.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Stephen MacVicar
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2026-03-06 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: inferno_core
|
|
@@ -18,20 +18,14 @@ dependencies:
|
|
|
18
18
|
requirements:
|
|
19
19
|
- - "~>"
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: '1.
|
|
22
|
-
- - ">="
|
|
23
|
-
- !ruby/object:Gem::Version
|
|
24
|
-
version: 1.0.2
|
|
21
|
+
version: '1.1'
|
|
25
22
|
type: :runtime
|
|
26
23
|
prerelease: false
|
|
27
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
28
25
|
requirements:
|
|
29
26
|
- - "~>"
|
|
30
27
|
- !ruby/object:Gem::Version
|
|
31
|
-
version: '1.
|
|
32
|
-
- - ">="
|
|
33
|
-
- !ruby/object:Gem::Version
|
|
34
|
-
version: 1.0.2
|
|
28
|
+
version: '1.1'
|
|
35
29
|
- !ruby/object:Gem::Dependency
|
|
36
30
|
name: tls_test_kit
|
|
37
31
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -255,6 +249,7 @@ files:
|
|
|
255
249
|
- lib/davinci_us_drug_formulary_test_kit/must_support_test.rb
|
|
256
250
|
- lib/davinci_us_drug_formulary_test_kit/read_test.rb
|
|
257
251
|
- lib/davinci_us_drug_formulary_test_kit/reference_resolution_test.rb
|
|
252
|
+
- lib/davinci_us_drug_formulary_test_kit/remove_input.rb
|
|
258
253
|
- lib/davinci_us_drug_formulary_test_kit/request_logger.rb
|
|
259
254
|
- lib/davinci_us_drug_formulary_test_kit/requirements/davinci_us_drug_formulary_test_kit_requirements.csv
|
|
260
255
|
- lib/davinci_us_drug_formulary_test_kit/requirements/generated/davinci_us_drug_formulary_v201_requirements_coverage.csv
|