davinci_us_drug_formulary_test_kit 0.12.2 → 0.13.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f87520c7f8dcc425397f60ddd75f3bbc57d9da56b9163c9382eb45aa2c0a2819
4
- data.tar.gz: 7c8b52b95f2e89e85e8de5f9ff27fb0faecd9fb432fdff27bb83b2b8e31845c7
3
+ metadata.gz: 215d9603580e8b0a77e5cd1ef9095456d6d30c8876d2858a9c223128e08da49a
4
+ data.tar.gz: 55c52f1fc5b4e7a52624787311e22dfecf33390d85ccd5fc75cfa52a277b8831
5
5
  SHA512:
6
- metadata.gz: 21c4f0e357c1db50b0dc897b78e3c88b0a591f8cf81146c7f0c2b7c2a82b46ac8451042b4c5fa6bb8b786e252f719bfce79a28de35a953a66ec0f2ae7a1d2af1
7
- data.tar.gz: 749b2d7fab893bfdbe024894594880138526ed76ed8febcd2360cb17c8d43521666f24ce17e2c499b2a9ba43f96529a03cef2a82b8333cd33edb0c64591624ea
6
+ metadata.gz: d0a824408e61856f04c674c65286c595693f718892fe26c7a7922f160552d56e2b43d7345a543f14687e35a11940ba139c9362d8b54db303f28fb1fb94ba1bbc
7
+ data.tar.gz: de7a06f843eb3f09a2ad0ed8679f956b03bccff450d89e9957353fcf2dc1105b41daaacc7cd28ce4908f64015399766e1365cb5cac54f7a358f8e120defb537d
@@ -0,0 +1,41 @@
1
+ require_relative '../../../generated/v2.0.1/urls'
2
+
3
+ module DaVinciUSDrugFormularyTestKit
4
+ module USDFV201
5
+ class FormularyAuthenticatedApiSecurityTest < Inferno::Test
6
+ include URLs
7
+
8
+ title 'Protects PHI/PII in authenticated access and prevents tracking in unauthenticated access'
9
+
10
+ description <<~DESCRIPTION
11
+ The Health IT Module enforces proper security and privacy handling of formulary data:
12
+
13
+ - Authenticated access to formulary services containing PHI/PII is protected using authorized, authenticated transactions in accordance with the HRex Security and Privacy framework.
14
+ - The system does **not** retain any information through unauthenticated API access that could associate medication queries with the consumer.
15
+ DESCRIPTION
16
+
17
+ id :usdf_v201_authenticated_api_security
18
+
19
+ verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@1',
20
+ 'hl7.fhir.us.davinci-drug-formulary_2.0.1@3'
21
+
22
+ run do
23
+ identifier = SecureRandom.hex(32)
24
+
25
+ wait(
26
+ identifier:,
27
+ message: <<~MESSAGE
28
+ The developer of the Health IT Module attests that:
29
+
30
+ - Authenticated access to formulary services containing PHI/PII is protected using authorized, authenticated transactions in accordance with the HRex Security and Privacy framework.
31
+ - The system does **not** retain any information through unauthenticated API access that could associate medication queries with the consumer.
32
+
33
+ [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
34
+
35
+ [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
36
+ MESSAGE
37
+ )
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,36 @@
1
+ require_relative '../../../generated/v2.0.1/urls'
2
+
3
+ module DaVinciUSDrugFormularyTestKit
4
+ module USDFV201
5
+ class FormularyDrugNameSearchDisplayTest < Inferno::Test
6
+ include URLs
7
+
8
+ title 'Supports drug name search using general drug form group codes and names'
9
+
10
+ description <<~DESCRIPTION
11
+ The Health IT Module supports searching for drugs using general drug form group codes (SCDG or SBDG)
12
+ and ensures that the display name associated with those codes is included in search results.
13
+ DESCRIPTION
14
+
15
+ id :usdf_v201_drug_display_name
16
+
17
+ verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@19'
18
+
19
+ run do
20
+ identifier = SecureRandom.hex(32)
21
+
22
+ wait(
23
+ identifier:,
24
+ message: <<~MESSAGE
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.
27
+
28
+ [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
29
+
30
+ [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
31
+ MESSAGE
32
+ )
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,40 @@
1
+ require_relative '../../../generated/v2.0.1/urls'
2
+
3
+ module DaVinciUSDrugFormularyTestKit
4
+ module USDFV201
5
+ class FormularyHRexConformanceTest < Inferno::Test
6
+ include URLs
7
+
8
+ title 'Conforms to HRex conformance expectations'
9
+
10
+ description <<~DESCRIPTION
11
+ The Health IT Module conforms
12
+ to the expectations described in the HRex Conformance Expectations section:
13
+
14
+ https://hl7.org/fhir/us/davinci-hrex/STU1/conformance.html
15
+ DESCRIPTION
16
+
17
+ id :usdf_v201_hrex_conformance
18
+
19
+ verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@52'
20
+
21
+ run do
22
+ identifier = SecureRandom.hex(32)
23
+
24
+ wait(
25
+ identifier:,
26
+ message: <<~MESSAGE
27
+ The developer of the Health IT Module attests that the system conforms
28
+ to the expectations described in the HRex Conformance Expectations section:
29
+
30
+ https://hl7.org/fhir/us/davinci-hrex/STU1/conformance.html
31
+
32
+ [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
33
+
34
+ [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
35
+ MESSAGE
36
+ )
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,45 @@
1
+ require_relative '../../../generated/v2.0.1/urls'
2
+
3
+ module DaVinciUSDrugFormularyTestKit
4
+ module USDFV201
5
+ class FormularyMemberScopedAccessTest < Inferno::Test
6
+ include URLs
7
+
8
+ title 'Returns plan-appropriate formulary data through authenticated access'
9
+
10
+ description <<~DESCRIPTION
11
+ When queried through authenticated access, the Health IT Module returns:
12
+ - All Formularies associated with the member’s group(s), if applicable,
13
+ - Only generally available (non-group-restricted) Formularies if the member is not in a group.
14
+
15
+ The Health IT Module also provides access to profiled resources (FormularyItem, FormularyDrug) tied to the member’s available plans.
16
+ DESCRIPTION
17
+
18
+ id :usdf_v201_member_scoped_access
19
+
20
+ verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@4',
21
+ 'hl7.fhir.us.davinci-drug-formulary_2.0.1@5',
22
+ 'hl7.fhir.us.davinci-drug-formulary_2.0.1@11'
23
+
24
+ run do
25
+ identifier = SecureRandom.hex(32)
26
+
27
+ wait(
28
+ identifier:,
29
+ message: <<~MESSAGE
30
+ The developer of the Health IT Module attests that:
31
+
32
+ - When queried through authenticated access, the Health IT Module returns:
33
+ - All Formularies associated with the member’s group(s), if applicable,
34
+ - Only generally available (non-group-restricted) Formularies if the member is not in a group.
35
+ - The Health IT Module also provides access to profiled resources (FormularyItem, FormularyDrug) tied to the member’s available plans.
36
+
37
+ [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** these requirements.
38
+
39
+ [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** these requirements.
40
+ MESSAGE
41
+ )
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,36 @@
1
+ require_relative '../../../generated/v2.0.1/urls'
2
+
3
+ module DaVinciUSDrugFormularyTestKit
4
+ module USDFV201
5
+ class FormularyRxNormCodingTest < Inferno::Test
6
+ include URLs
7
+
8
+ title 'Includes RxNorm SCDG/SBDG codes for SCD/SBD drug types'
9
+
10
+ description <<~DESCRIPTION
11
+ The Health IT Module includes an additional coding repetition for each drug with
12
+ RxNorm Term Type of SCD or SBD, using the corresponding SCDG or SBDG code.
13
+ DESCRIPTION
14
+
15
+ id :usdf_v201_rxnorm_coding
16
+
17
+ verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@14'
18
+
19
+ run do
20
+ identifier = SecureRandom.hex(32)
21
+
22
+ wait(
23
+ identifier:,
24
+ message: <<~MESSAGE
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.
27
+
28
+ [Click here](#{resume_pass_url}?token=#{identifier}) if the system **meets** this requirement.
29
+
30
+ [Click here](#{resume_fail_url}?token=#{identifier}) if the system **does not meet** this requirement.
31
+ MESSAGE
32
+ )
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,27 @@
1
+ require_relative 'visual_inspection_and_attestation/authenticated_api_security'
2
+ require_relative 'visual_inspection_and_attestation/member_scoped_access'
3
+ require_relative 'visual_inspection_and_attestation/drug_display_name'
4
+ require_relative 'visual_inspection_and_attestation/hrex_conformance'
5
+ require_relative 'visual_inspection_and_attestation/rxnorm_coding'
6
+
7
+ module DaVinciUSDrugFormularyTestKit
8
+ module USDFV201
9
+ class PDexUSDFVisualInspectionAndAttestationGroup < Inferno::TestGroup
10
+ id :usdf_v201_visual_inspection_and_attestation
11
+ title 'Visual Inspection and Attestation'
12
+
13
+ description <<~DESCRIPTION
14
+ Perform visual inspections or attestations to ensure that the Health IT Module is conformant
15
+ to the Da Vinci Payer Data Exchange US Drug Formulary IG requirements.
16
+ DESCRIPTION
17
+
18
+ run_as_group
19
+
20
+ test from: :usdf_v201_authenticated_api_security
21
+ test from: :usdf_v201_member_scoped_access
22
+ test from: :usdf_v201_drug_display_name
23
+ test from: :usdf_v201_hrex_conformance
24
+ test from: :usdf_v201_rxnorm_coding
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DaVinciUSDrugFormularyTestKit
4
+ module USDFV201
5
+ RESUME_PASS_PATH = '/resume_pass'
6
+ RESUME_FAIL_PATH = '/resume_fail'
7
+
8
+ # URLs
9
+ module URLs
10
+ def base_url
11
+ @base_url ||= "#{Inferno::Application['base_url']}/custom/#{suite_id}"
12
+ end
13
+
14
+ def resume_pass_url
15
+ @resume_pass_url ||= base_url + RESUME_PASS_PATH
16
+ end
17
+
18
+ def resume_fail_url
19
+ @resume_fail_url ||= base_url + RESUME_FAIL_PATH
20
+ end
21
+
22
+ def suite_id
23
+ USDFTestSuite.id
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,4 +1,5 @@
1
1
  require_relative '../../version'
2
+ require_relative 'urls'
2
3
  require_relative '../../custom_groups/v2.0.1/capability_statement_group'
3
4
  require_relative 'payer_insurance_plan_group'
4
5
  require_relative 'formulary_group'
@@ -6,6 +7,8 @@ require_relative 'basic_group'
6
7
  require_relative 'medication_knowledge_group'
7
8
  require_relative 'location_group'
8
9
 
10
+ require_relative '../../custom_groups/v2.0.1/visual_inspection_and_attestation'
11
+
9
12
  module DaVinciUSDrugFormularyTestKit
10
13
  module USDFV201
11
14
  class USDFTestSuite < Inferno::TestSuite
@@ -117,12 +120,26 @@ module DaVinciUSDrugFormularyTestKit
117
120
  auth_info :smart_auth_info
118
121
  end
119
122
 
123
+ resume_test_route :get, RESUME_PASS_PATH do |request|
124
+ request.query_parameters['token']
125
+ end
126
+ resume_test_route :get, RESUME_FAIL_PATH, result: 'fail' do |request|
127
+ request.query_parameters['token']
128
+ end
129
+
120
130
  group from: :usdf_v201_capability_statement do
121
131
  verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@51', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@53',
122
132
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@54'
123
133
  end
124
134
 
125
135
  group from: :usdf_v201_payer_insurance_plan do
136
+ input :url,
137
+ title: 'FHIR Endpoint',
138
+ description: 'URL of the FHIR endpoint'
139
+ input :smart_auth_info,
140
+ title: 'OAuth Credentials',
141
+ type: :auth_info,
142
+ optional: true
126
143
  verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@20', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@21',
127
144
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@22', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@23',
128
145
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@24', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@25',
@@ -131,6 +148,13 @@ module DaVinciUSDrugFormularyTestKit
131
148
  end
132
149
 
133
150
  group from: :usdf_v201_formulary do
151
+ input :url,
152
+ title: 'FHIR Endpoint',
153
+ description: 'URL of the FHIR endpoint'
154
+ input :smart_auth_info,
155
+ title: 'OAuth Credentials',
156
+ type: :auth_info,
157
+ optional: true
134
158
  verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@20', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@21',
135
159
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@22', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@23',
136
160
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@24', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@25',
@@ -139,6 +163,13 @@ module DaVinciUSDrugFormularyTestKit
139
163
  end
140
164
 
141
165
  group from: :usdf_v201_basic do
166
+ input :url,
167
+ title: 'FHIR Endpoint',
168
+ description: 'URL of the FHIR endpoint'
169
+ input :smart_auth_info,
170
+ title: 'OAuth Credentials',
171
+ type: :auth_info,
172
+ optional: true
142
173
  verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@36', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@37',
143
174
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@38', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@39',
144
175
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@40', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@41',
@@ -147,6 +178,13 @@ module DaVinciUSDrugFormularyTestKit
147
178
  end
148
179
 
149
180
  group from: :usdf_v201_medication_knowledge do
181
+ input :url,
182
+ title: 'FHIR Endpoint',
183
+ description: 'URL of the FHIR endpoint'
184
+ input :smart_auth_info,
185
+ title: 'OAuth Credentials',
186
+ type: :auth_info,
187
+ optional: true
150
188
  verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@15', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@16',
151
189
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@17', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@45',
152
190
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@46', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@47',
@@ -155,11 +193,21 @@ module DaVinciUSDrugFormularyTestKit
155
193
  end
156
194
 
157
195
  group from: :usdf_v201_location do
196
+ input :url,
197
+ title: 'FHIR Endpoint',
198
+ description: 'URL of the FHIR endpoint'
199
+ input :smart_auth_info,
200
+ title: 'OAuth Credentials',
201
+ type: :auth_info,
202
+ optional: true
158
203
  verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@30', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@31',
159
204
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@32', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@33',
160
205
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@34', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@35'
161
206
  end
162
207
 
208
+ group from: :usdf_v201_visual_inspection_and_attestation do
209
+ optional
210
+ end
163
211
  end
164
212
  end
165
213
  end
@@ -1,7 +1,12 @@
1
1
  require_relative '../../version'
2
+ require_relative 'urls'
2
3
  require_relative '<%= capability_statement_file_name %>'
3
4
  <% group_file_list.each do |file_name| %>require_relative '<%= file_name %>'
4
5
  <% end %>
6
+ <%- if module_name.include?('USDFV201') -%>
7
+ require_relative '../../custom_groups/v2.0.1/visual_inspection_and_attestation'
8
+ <%- end -%>
9
+
5
10
  module DaVinciUSDrugFormularyTestKit
6
11
  module <%= module_name %>
7
12
  class <%= class_name %> < Inferno::TestSuite
@@ -114,12 +119,26 @@ module DaVinciUSDrugFormularyTestKit
114
119
  auth_info :smart_auth_info
115
120
  end
116
121
 
122
+ resume_test_route :get, RESUME_PASS_PATH do |request|
123
+ request.query_parameters['token']
124
+ end
125
+ resume_test_route :get, RESUME_FAIL_PATH, result: 'fail' do |request|
126
+ request.query_parameters['token']
127
+ end
128
+
117
129
  group from: :<%= capability_statement_group_id %> do
118
130
  verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@51', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@53',
119
131
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@54'
120
132
  end
121
133
  <% group_id_list.each do |id| %>
122
134
  group from: :<%= id %> do
135
+ input :url,
136
+ title: 'FHIR Endpoint',
137
+ description: 'URL of the FHIR endpoint'
138
+ input :smart_auth_info,
139
+ title: 'OAuth Credentials',
140
+ type: :auth_info,
141
+ optional: true
123
142
  <%- if id.include?('usdf_v201_payer_insurance_plan') -%>
124
143
  verifies_requirements 'hl7.fhir.us.davinci-drug-formulary_2.0.1@20', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@21',
125
144
  'hl7.fhir.us.davinci-drug-formulary_2.0.1@22', 'hl7.fhir.us.davinci-drug-formulary_2.0.1@23',
@@ -151,6 +170,11 @@ module DaVinciUSDrugFormularyTestKit
151
170
  <%- end -%>
152
171
  end
153
172
  <% end %>
173
+ <%- if module_name.include?('USDFV201') -%>
174
+ group from: :usdf_v201_visual_inspection_and_attestation do
175
+ optional
176
+ end
177
+ <%- end -%>
154
178
  end
155
179
  end
156
180
  end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DaVinciUSDrugFormularyTestKit
4
+ module <%= module_name %>
5
+ RESUME_PASS_PATH = '/resume_pass'
6
+ RESUME_FAIL_PATH = '/resume_fail'
7
+
8
+ # URLs
9
+ module URLs
10
+ def base_url
11
+ @base_url ||= "#{Inferno::Application['base_url']}/custom/#{suite_id}"
12
+ end
13
+
14
+ def resume_pass_url
15
+ @resume_pass_url ||= base_url + RESUME_PASS_PATH
16
+ end
17
+
18
+ def resume_fail_url
19
+ @resume_fail_url ||= base_url + RESUME_FAIL_PATH
20
+ end
21
+
22
+ def suite_id
23
+ <%= suite_class_name %>.id
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,46 @@
1
+ module DaVinciUSDrugFormularyTestKit
2
+ class Generator
3
+ class UrlsGenerator
4
+ class << self
5
+ def generate(ig_metadata, base_output_dir)
6
+ new(ig_metadata, base_output_dir).generate
7
+ end
8
+ end
9
+
10
+ attr_accessor :ig_metadata, :base_output_dir
11
+
12
+ def initialize(ig_metadata, base_output_dir)
13
+ self.ig_metadata = ig_metadata
14
+ self.base_output_dir = base_output_dir
15
+ end
16
+
17
+ def template
18
+ @template ||= File.read(File.join(__dir__, 'templates', 'urls.rb.erb'))
19
+ end
20
+
21
+ def output
22
+ @output ||= ERB.new(template, trim_mode: '-').result(binding)
23
+ end
24
+
25
+ def base_output_file_name
26
+ 'urls.rb'
27
+ end
28
+
29
+ def suite_class_name
30
+ 'USDFTestSuite'
31
+ end
32
+
33
+ def module_name
34
+ "USDF#{ig_metadata.reformatted_version.upcase}"
35
+ end
36
+
37
+ def output_file_name
38
+ File.join(base_output_dir, base_output_file_name)
39
+ end
40
+
41
+ def generate
42
+ File.write(output_file_name, output)
43
+ end
44
+ end
45
+ end
46
+ end
@@ -11,6 +11,7 @@ require_relative 'generator/search_test_generator'
11
11
  require_relative 'generator/suite_generator'
12
12
  require_relative 'generator/validation_test_generator'
13
13
  require_relative 'generator/include_search_test_generator'
14
+ require_relative 'generator/urls_generator'
14
15
 
15
16
  module DaVinciUSDrugFormularyTestKit
16
17
  class Generator
@@ -37,6 +38,7 @@ module DaVinciUSDrugFormularyTestKit
37
38
  generate_validation_tests
38
39
  generate_must_support_tests
39
40
  generate_reference_resolution_tests
41
+ generate_urls
40
42
 
41
43
  generate_groups
42
44
 
@@ -90,5 +92,9 @@ module DaVinciUSDrugFormularyTestKit
90
92
  def generate_suites
91
93
  SuiteGenerator.generate(ig_metadata, base_output_dir)
92
94
  end
95
+
96
+ def generate_urls
97
+ UrlsGenerator.generate(ig_metadata, base_output_dir)
98
+ end
93
99
  end
94
100
  end
@@ -1,11 +1,11 @@
1
1
  Req Set,ID,URL,Requirement,Conformance,Actors,Conditionality,Not Tested Reason,Not Tested Details,DaVinci US Drug Formulary v2.0.1 Short ID(s),DaVinci US Drug Formulary v2.0.1 Full ID(s)
2
- hl7.fhir.us.davinci-drug-formulary_2.0.1,1,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#access-methods,"Authenticated API: Access to the formulary service when integrated with protected health information (PHI) or personally identifiable information (PII) as part of the Patient Access API SHALL be protected through an authorized, authenticated transaction as described in the Da Vinci Health Record Exchange (HRex) FHIR Implementation Guide Security and Privacy Section [[link](https://hl7.org/fhir/us/davinci-hrex/STU1/security.html)].",SHALL,Server,true,,,"",""
2
+ hl7.fhir.us.davinci-drug-formulary_2.0.1,1,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#access-methods,"Authenticated API: Access to the formulary service when integrated with protected health information (PHI) or personally identifiable information (PII) as part of the Patient Access API SHALL be protected through an authorized, authenticated transaction as described in the Da Vinci Health Record Exchange (HRex) FHIR Implementation Guide Security and Privacy Section [[link](https://hl7.org/fhir/us/davinci-hrex/STU1/security.html)].",SHALL,Server,true,,,7.01,davinci_us_drug_formulary_v201-usdf_v201_visual_inspection_and_attestation-usdf_v201_authenticated_api_security
3
3
  hl7.fhir.us.davinci-drug-formulary_2.0.1,2,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#access-methods,"Unauthenticated API: When exchanging formulary data exclusively, which is public information without any PHI or PII, the formulary service MAY also be accessed through an API that does not require authentication or authorization.",MAY,Server,true,,,"",""
4
- hl7.fhir.us.davinci-drug-formulary_2.0.1,3,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#access-methods,The formulary server SHALL NOT maintain any records through the unauthenticated API that could associate the consumer with the medications queried.,SHALL NOT,Server,false,,,"",""
4
+ hl7.fhir.us.davinci-drug-formulary_2.0.1,3,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#access-methods,The formulary server SHALL NOT maintain any records through the unauthenticated API that could associate the consumer with the medications queried.,SHALL NOT,Server,false,,,7.01,davinci_us_drug_formulary_v201-usdf_v201_visual_inspection_and_attestation-usdf_v201_authenticated_api_security
5
5
  hl7.fhir.us.davinci-drug-formulary_2.0.1,4,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#authenticated,"When accessing data through an authenticated API, the response for queries on InsurancePlan depends on whether the authenticated member has access to the plan in relation to their membership.
6
- ... For Formulary, this means all Formularies that are generally available to the member. If the member is in a group, all group associated formularies are returned.",SHALL,Server,true,,,"",""
6
+ ... For Formulary, this means all Formularies that are generally available to the member. If the member is in a group, all group associated formularies are returned.",SHALL,Server,true,,,7.02,davinci_us_drug_formulary_v201-usdf_v201_visual_inspection_and_attestation-usdf_v201_member_scoped_access
7
7
  hl7.fhir.us.davinci-drug-formulary_2.0.1,5,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#authenticated,"When accessing data through an authenticated API, the response for queries on InsurancePlan depends on whether the authenticated member has access to the plan in relation to their membership.
8
- ... For Formulary, this means all Formularies that are generally available to the member. If the member is ... not in a group, all generally available formularies (that is, those that are not restricted to only one or more groups) are returned.",SHALL,Server,true,,,"",""
8
+ ... For Formulary, this means all Formularies that are generally available to the member. If the member is ... not in a group, all generally available formularies (that is, those that are not restricted to only one or more groups) are returned.",SHALL,Server,true,,,7.02,davinci_us_drug_formulary_v201-usdf_v201_visual_inspection_and_attestation-usdf_v201_member_scoped_access
9
9
  hl7.fhir.us.davinci-drug-formulary_2.0.1,7,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#authenticated,"how the Formulary API should respond to requests…
10
10
 
11
11
  InsurancePlan specified – GET by resource ID
@@ -26,15 +26,15 @@ hl7.fhir.us.davinci-drug-formulary_2.0.1,10,https://hl7.org/fhir/us/davinci-drug
26
26
  InsurancePlan reference not specified - Search
27
27
 
28
28
  [if no plans are] covered by insurer and included in group if member is part of a group… return 200",SHOULD,Server,true,,,"",""
29
- hl7.fhir.us.davinci-drug-formulary_2.0.1,11,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#authenticated,"Server implementers SHALL make other profiled resources in this IG (FormularyItem, FormularyDrug) associated to a member’s available plans available through authenticated access. This IG does not define restrictions on authenticated access to resources not associated with a member’s available plan or the Plan Location resource.",SHALL,Server,false,,,"",""
29
+ hl7.fhir.us.davinci-drug-formulary_2.0.1,11,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#authenticated,"Server implementers SHALL make other profiled resources in this IG (FormularyItem, FormularyDrug) associated to a member’s available plans available through authenticated access. This IG does not define restrictions on authenticated access to resources not associated with a member’s available plan or the Plan Location resource.",SHALL,Server,false,,,7.02,davinci_us_drug_formulary_v201-usdf_v201_visual_inspection_and_attestation-usdf_v201_member_scoped_access
30
30
  hl7.fhir.us.davinci-drug-formulary_2.0.1,12,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#unauthenticated,"When accessing data through an unauthenticated API, the conformant payer formulary service SHALL NOT require an application to send consumer identifying information in order to query for the list of health plans provided by that payer and the medication and costs for each plan.",SHALL NOT,Server,true,,,"",""
31
31
  hl7.fhir.us.davinci-drug-formulary_2.0.1,13,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#resource-relationships,"Additionally, a more general RxNorm semantic drug form group code **SHOULD** be present for searching across drugs with the same ingredient, brand, and form (regardless of strength).",SHOULD,Server,false,,,"",""
32
- hl7.fhir.us.davinci-drug-formulary_2.0.1,14,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#resource-relationships,All drugs with RxNorm Term Type of SCD or SBD **SHALL** have a coding repetition and RxNorm Term Type of SCDG or SBDG respectively.,SHALL,Server,true,,,"",""
32
+ hl7.fhir.us.davinci-drug-formulary_2.0.1,14,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#resource-relationships,All drugs with RxNorm Term Type of SCD or SBD **SHALL** have a coding repetition and RxNorm Term Type of SCDG or SBDG respectively.,SHALL,Server,true,,,7.05,davinci_us_drug_formulary_v201-usdf_v201_visual_inspection_and_attestation-usdf_v201_rxnorm_coding
33
33
  hl7.fhir.us.davinci-drug-formulary_2.0.1,15,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#searching-by-drug-code,"Servers **SHALL** support a MedicationKnowledge.code.coding repetition including the detailed drug, strength, and form, including RxNorm Term Types (TTY) of SCD (Semantic Clinical Drug), SBD Semantic Branded Drug), GPCK (Generic Pack), or BPCK (Branded Pack).",SHALL,Server,false,,,5,davinci_us_drug_formulary_v201-usdf_v201_medication_knowledge
34
34
  hl7.fhir.us.davinci-drug-formulary_2.0.1,16,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#searching-by-drug-code,"Additionally, servers **SHALL** support a MedicationKnowledge.code.coding repetition including the general RxNorm code (and name) with Term Type of SCDG (Semantic Clinical Drug Form Group) or SBDG (Semantic Branded Drug Form Group) when there is a concept matching the primary code represented by the Term Type SCD or SBD respectively. This requirement includes using the respective RxNorm name in the display of the coding repetition.",SHALL,Server,true,,,5,davinci_us_drug_formulary_v201-usdf_v201_medication_knowledge
35
35
  hl7.fhir.us.davinci-drug-formulary_2.0.1,17,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#searching-by-drug-code,Searches for drugs with the above RxNorm Term Types (SCDG and SBDG) by either code will provide the client with a way to search for drugs without a specified strength.,SHALL,Server,true,,,5,davinci_us_drug_formulary_v201-usdf_v201_medication_knowledge
36
36
  hl7.fhir.us.davinci-drug-formulary_2.0.1,18,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#searching-by-drug-name,Servers are required to support the more general drug form group code and name where one exists.,SHALL,Server,false,,,"",""
37
- hl7.fhir.us.davinci-drug-formulary_2.0.1,19,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#searching-by-drug-name,This display name will be included in any drug name search for which the general drug form group code exists.,SHALL,Server,false,,,"",""
37
+ hl7.fhir.us.davinci-drug-formulary_2.0.1,19,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#searching-by-drug-name,This display name will be included in any drug name search for which the general drug form group code exists.,SHALL,Server,false,,,7.03,davinci_us_drug_formulary_v201-usdf_v201_visual_inspection_and_attestation-usdf_v201_drug_display_name
38
38
  hl7.fhir.us.davinci-drug-formulary_2.0.1,20,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/search_parameters.html#payerinsuranceplan--formulary-insuranceplan,"Search Parameters Required by This Implementation Guide…
39
39
  PayerInsurancePlan & Formulary (InsurancePlan)…
40
40
 
@@ -160,6 +160,6 @@ FormularyDrug (MedicationKnowledge)…
160
160
 
161
161
  doseform",SHOULD,Server,false,,,5,davinci_us_drug_formulary_v201-usdf_v201_medication_knowledge
162
162
  hl7.fhir.us.davinci-drug-formulary_2.0.1,51,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/CapabilityStatement-usdf-server.html,[Section 6 auto-generated from capability statement],SHALL,Server,false,,,1,davinci_us_drug_formulary_v201-usdf_v201_capability_statement
163
- hl7.fhir.us.davinci-drug-formulary_2.0.1,52,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#conformance-expectations,This guide inherits all conformance expectations identified in the Health Record Exchange (Hrex) Conformance Expectations section (https://hl7.org/fhir/us/davinci-hrex/STU1/conformance.html). All systems claiming conformance to this guide SHALL conform to the requirements listed in that section.,SHALL,Server,false,,,"",""
163
+ hl7.fhir.us.davinci-drug-formulary_2.0.1,52,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#conformance-expectations,This guide inherits all conformance expectations identified in the Health Record Exchange (Hrex) Conformance Expectations section (https://hl7.org/fhir/us/davinci-hrex/STU1/conformance.html). All systems claiming conformance to this guide SHALL conform to the requirements listed in that section.,SHALL,Server,false,,,7.04,davinci_us_drug_formulary_v201-usdf_v201_visual_inspection_and_attestation-usdf_v201_hrex_conformance
164
164
  hl7.fhir.us.davinci-drug-formulary_2.0.1,53,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#conformance-expectations,Server systems claiming conformance to this guide SHALL meet the capability statement expectation requirements identified in the US Drug Formulary Server Capability Statement,SHALL,Server,false,,,1,davinci_us_drug_formulary_v201-usdf_v201_capability_statement
165
165
  hl7.fhir.us.davinci-drug-formulary_2.0.1,54,https://hl7.org/fhir/us/davinci-drug-formulary/STU2.0.1/use_cases_and_overview.html#conformance-expectations,Server systems claiming conformance to this guide… SHALL have a CapabilityStatement that has a CapabilityStatement.instantiates with a URL of http://hl7.org/fhir/us/davinci-drug-formulary/CapabilityStatement/usdf-server or a URL to the appropriate version of the CapabilityStatement.,SHALL,Server,false,,,1,davinci_us_drug_formulary_v201-usdf_v201_capability_statement
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DaVinciUSDrugFormularyTestKit
4
- VERSION = '0.12.2'
5
- LAST_UPDATED = '2025-07-15'
4
+ VERSION = '0.13.0'
5
+ LAST_UPDATED = '2025-07-21'
6
6
  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.12.2
4
+ version: 0.13.0
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: 2025-07-15 00:00:00.000000000 Z
13
+ date: 2025-07-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: inferno_core
@@ -18,28 +18,34 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: 0.6.15
21
+ version: '1.0'
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: 1.0.2
22
25
  type: :runtime
23
26
  prerelease: false
24
27
  version_requirements: !ruby/object:Gem::Requirement
25
28
  requirements:
26
29
  - - "~>"
27
30
  - !ruby/object:Gem::Version
28
- version: 0.6.15
31
+ version: '1.0'
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 1.0.2
29
35
  - !ruby/object:Gem::Dependency
30
36
  name: tls_test_kit
31
37
  requirement: !ruby/object:Gem::Requirement
32
38
  requirements:
33
39
  - - "~>"
34
40
  - !ruby/object:Gem::Version
35
- version: 0.3.0
41
+ version: '1.0'
36
42
  type: :runtime
37
43
  prerelease: false
38
44
  version_requirements: !ruby/object:Gem::Requirement
39
45
  requirements:
40
46
  - - "~>"
41
47
  - !ruby/object:Gem::Version
42
- version: 0.3.0
48
+ version: '1.0'
43
49
  - !ruby/object:Gem::Dependency
44
50
  name: database_cleaner-sequel
45
51
  requirement: !ruby/object:Gem::Requirement
@@ -112,7 +118,6 @@ dependencies:
112
118
  version: '3.11'
113
119
  description: DaVinci US Drug Formulary Test Kit
114
120
  email:
115
- - inferno@groups.mitre.org
116
121
  executables: []
117
122
  extensions: []
118
123
  extra_rdoc_files: []
@@ -126,6 +131,12 @@ files:
126
131
  - lib/davinci_us_drug_formulary_test_kit/custom_groups/capability_statement/json_support_test.rb
127
132
  - lib/davinci_us_drug_formulary_test_kit/custom_groups/capability_statement/profile_support_test.rb
128
133
  - lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/capability_statement_group.rb
134
+ - lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation.rb
135
+ - lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation/authenticated_api_security.rb
136
+ - lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation/drug_display_name.rb
137
+ - lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation/hrex_conformance.rb
138
+ - lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation/member_scoped_access.rb
139
+ - lib/davinci_us_drug_formulary_test_kit/custom_groups/v2.0.1/visual_inspection_and_attestation/rxnorm_coding.rb
129
140
  - lib/davinci_us_drug_formulary_test_kit/date_search_validation.rb
130
141
  - lib/davinci_us_drug_formulary_test_kit/fhir_resource_navigation.rb
131
142
  - lib/davinci_us_drug_formulary_test_kit/generated/v2.0.1/basic/basic_code_search_test.rb
@@ -200,6 +211,7 @@ files:
200
211
  - lib/davinci_us_drug_formulary_test_kit/generated/v2.0.1/payer_insurance_plan/payer_insurance_plan_type_search_test.rb
201
212
  - lib/davinci_us_drug_formulary_test_kit/generated/v2.0.1/payer_insurance_plan/payer_insurance_plan_validation_test.rb
202
213
  - lib/davinci_us_drug_formulary_test_kit/generated/v2.0.1/payer_insurance_plan_group.rb
214
+ - lib/davinci_us_drug_formulary_test_kit/generated/v2.0.1/urls.rb
203
215
  - lib/davinci_us_drug_formulary_test_kit/generated/v2.0.1/usdf_test_suite.rb
204
216
  - lib/davinci_us_drug_formulary_test_kit/generator.rb
205
217
  - lib/davinci_us_drug_formulary_test_kit/generator/group_generator.rb
@@ -227,8 +239,10 @@ files:
227
239
  - lib/davinci_us_drug_formulary_test_kit/generator/templates/reference_resolution.rb.erb
228
240
  - lib/davinci_us_drug_formulary_test_kit/generator/templates/search.rb.erb
229
241
  - lib/davinci_us_drug_formulary_test_kit/generator/templates/suite.rb.erb
242
+ - lib/davinci_us_drug_formulary_test_kit/generator/templates/urls.rb.erb
230
243
  - lib/davinci_us_drug_formulary_test_kit/generator/templates/validation.rb.erb
231
244
  - lib/davinci_us_drug_formulary_test_kit/generator/terminology_binding_metadata_extractor.rb
245
+ - lib/davinci_us_drug_formulary_test_kit/generator/urls_generator.rb
232
246
  - lib/davinci_us_drug_formulary_test_kit/generator/validation_test_generator.rb
233
247
  - lib/davinci_us_drug_formulary_test_kit/generator/value_extractor.rb
234
248
  - lib/davinci_us_drug_formulary_test_kit/igs/README.md