davinci_plan_net_test_kit 0.11.1 → 0.12.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: 8eb88df56401704ba65cd7e0481a23b96f1b0cd45376e4e1a60c773d155bbacd
4
- data.tar.gz: f72cf0be7df8436f5d330ffe230baf0e90a68edccb07e85cc4b2d2a7cc802ae2
3
+ metadata.gz: 4a6b23ab7622524d2224483232524028bb455c36e3775d22edaac447fef1e1f8
4
+ data.tar.gz: eb5483b77e05a35547065796c729574efcb5147428abcfa7b3a53a7722a870cf
5
5
  SHA512:
6
- metadata.gz: 9e537d917b12f55175bce5747411fb2df9ea03f47058ba4c9120045d517ed1bf84df68eddff21787c433da476323d59ba6c5b20c5bf9b52bb66525f384f0bcf0
7
- data.tar.gz: 4063582351c7ea023795ae9e831214da3b6ccd77afe6616a046fdc9fedeb7ffac5d746427081c67ac97f5e9b591b6ebd00e9d857bd5dcc858354b4f39b3588e5
6
+ metadata.gz: 92a6eb63914f3788be0e2a1223d675495538e670261547d25dc7b47eb59100be190e6d1a8a48f944df90517bbf487573696b71f90367d33db4fbb002f4667692
7
+ data.tar.gz: dcff9e975035c7e7b8b0ea32e0fdee1fe157c05392f613f9a168e12293253885673561cc1e659006fb3415c23ddf6e3fd796d967741cc5ca04a7645fff31eba3
@@ -1,4 +1,3 @@
1
- require 'inferno/dsl/oauth_credentials'
2
1
  require_relative '../../version'
3
2
  require_relative '../../custom_groups/v1.1.0/capability_statement_group'
4
3
  require_relative 'endpoint_group'
@@ -21,15 +20,15 @@ module DaVinciPlanNetTestKit
21
20
 
22
21
  ## Scope
23
22
 
24
- These tests are a **DRAFT** intended to allow Plan Net server implementers to perform
25
- preliminary checks of their servers against Plan Net IG requirements and [provide
26
- feedback](https://github.com/inferno-framework/davinci-plan-net-test-kit/issues)
27
- to ONC on the tests. Future versions of these tests may validate other
23
+ These tests are a **DRAFT** intended to allow Plan Net server implementers to perform
24
+ preliminary checks of their servers against Plan Net IG requirements and [provide
25
+ feedback](https://github.com/inferno-framework/davinci-plan-net-test-kit/issues)
26
+ to ONC on the tests. Future versions of these tests may validate other
28
27
  requirements and may change the test validation logic.
29
28
 
30
29
  ## Test Methodology
31
30
 
32
- Inferno will act as a client and make a series of requests to the
31
+ Inferno will act as a client and make a series of requests to the
33
32
  server under test. The responses will be checked for conformance to the Plan
34
33
  Net IG requirements individually and used in aggregate to determine whether
35
34
  required features and functionality are present.
@@ -38,10 +37,10 @@ module DaVinciPlanNetTestKit
38
37
  `tx.fhir.org` as the terminology server.
39
38
 
40
39
  ## Running the Tests
41
-
40
+
42
41
  ### Quick Start
43
42
 
44
- The tests are designed to be runnable with a single input from the user:
43
+ The tests are designed to be runnable with a single input from the user:
45
44
  the base FHIR URL of the server under test. To run in this mode:
46
45
  1. Click the `RUN ALL TESTS` button in the upper right
47
46
  2. Provide the URL for the server in the first "FHIR Endpoint (required)" input
@@ -49,10 +48,10 @@ module DaVinciPlanNetTestKit
49
48
  4. Wait for Inferno to run the tests (will take several minutes)
50
49
  5. Expand tests with failures to determine the reason
51
50
 
52
- If you would like to try out the tests but don't have a Plan Net server implementation,
53
- you can use the publicly available reference implementation available at URL
51
+ If you would like to try out the tests but don't have a Plan Net server implementation,
52
+ you can use the publicly available reference implementation available at URL
54
53
  https://plan-net-ri.davinci.hl7.org/fhir. Select this endpoint by using that URL as the
55
- "FHIR Endpoint (required)" input or prepopulating it by selecting the
54
+ "FHIR Endpoint (required)" input or prepopulating it by selecting the
56
55
  `Da Vinci Plan Net Reference Server` preset in the upper left. Note that this
57
56
  system is not currently expected to pass all of the tests.
58
57
 
@@ -61,8 +60,8 @@ module DaVinciPlanNetTestKit
61
60
  - Additional data within the system under test, e.g., to demonstrate all Must Support elements.
62
61
  - Fixes to the system under test.
63
62
 
64
- Note that this mode requires that the server support parameterless searches against
65
- Plan Net resource types (e.g., `GET [FHIR Endpoint]/InsurancePlan`), which are not required
63
+ Note that this mode requires that the server support parameterless searches against
64
+ Plan Net resource types (e.g., `GET [FHIR Endpoint]/InsurancePlan`), which are not required
66
65
  by the Plan Net IG. If your server does not support these searches, or some returned instances
67
66
  will not conform to Plan Net profiles, see the *Instance Gathering* section under
68
67
  *Test Configuration Details* below for how to disable these searches and direct the tests
@@ -70,8 +69,8 @@ module DaVinciPlanNetTestKit
70
69
 
71
70
  ### Running Groups Individually
72
71
 
73
- Each test group listed on the left can be run individually using the `RUN TESTS`
74
- button in the upper right of the group page. However, note that running
72
+ Each test group listed on the left can be run individually using the `RUN TESTS`
73
+ button in the upper right of the group page. However, note that running
75
74
  them individually requires additional inputs so that Inferno can find appropriate values for searches
76
75
  (see *Determination of Search Values When Running Single Groups* below for details).
77
76
 
@@ -82,57 +81,57 @@ module DaVinciPlanNetTestKit
82
81
 
83
82
  ### Authentication
84
83
 
85
- The Plan Net IG requires that "A conformant Plan-Net service SHALL NOT
86
- require a directory mobile application to send consumer identifying information
84
+ The Plan Net IG requires that "A conformant Plan-Net service SHALL NOT
85
+ require a directory mobile application to send consumer identifying information
87
86
  in order to query content." A simple way to ensure this is to not require authentication,
88
87
  which is safe because the information in scope does not include PHI. Thus, the
89
88
  tests do not send authentication details by default.
90
89
 
91
- If a server under test requires authentication information to be sent, an access token
92
- may be provided using the "OAuth Credentials - Access Token" input. When populated,
90
+ If a server under test requires authentication information to be sent, an access token
91
+ may be provided using the "OAuth Credentials - Access Token" input. When populated,
93
92
  requests to the server will include an HTTP header of the form `Authorization: Bearer [access token]`.
94
93
 
95
94
  ### Instance Gathering
96
95
 
97
96
  Inferno needs to identify instances of each profile to use to validate conformance to
98
- structural and search API requirements. Inferno will use one or a combination of the
97
+ structural and search API requirements. Inferno will use one or a combination of the
99
98
  following two approaches as directed by the inputs.
100
99
 
101
100
  #### Parameterless searches (default)
102
-
103
- Inferno will use a search against the base resource type without any search
104
- parameters (`GET [FHIR Endpoint]/[Resource Type]`) to identify instances of each profile.
101
+
102
+ Inferno will use a search against the base resource type without any search
103
+ parameters (`GET [FHIR Endpoint]/[Resource Type]`) to identify instances of each profile.
105
104
  This behavior can be controlled using the following inputs:
106
105
  - "Use parameterless searches to identify instances?": if the server under test does not support
107
106
  parameterless searches, this can be set to `No` to disable parameterless searches.
108
- - "Maximum number of instances to gather using parameterless searches (required)" and
109
- "Maximum pages of results to consider when using parameterless searches (required)": if fewer
110
- instances (e.g., to improve performance) or more instances (e.g., to improve Must Support
107
+ - "Maximum number of instances to gather using parameterless searches (required)" and
108
+ "Maximum pages of results to consider when using parameterless searches (required)": if fewer
109
+ instances (e.g., to improve performance) or more instances (e.g., to improve Must Support
111
110
  element coverage) should be gathered, these inputs can be adjusted to tune the number
112
111
  of instances that Inferno will gather using parameterless searches.
113
-
112
+
114
113
  #### Specific instance ids
115
-
116
- Inputs of the form "ids of [profile] instances" can be used by the user to specify particular
114
+
115
+ Inputs of the form "ids of [profile] instances" can be used by the user to specify particular
117
116
  instances for Inferno to gather for use in testing. Inferno will perform a read on each provided id
118
- to gather the instances. When parameterless searches are not used, all inputs of this form must be populated.
117
+ to gather the instances. When parameterless searches are not used, all inputs of this form must be populated.
119
118
  When instance ids are provided in addition to parameterless searches, instances provided by the user
120
119
  are prioritized for use in determining search values for search tests.
121
-
120
+
122
121
  ### Determination of Search Values When Running Single Groups
123
122
 
124
- Validation of search parameters requires Inferno to identify values that are expected
125
- to return instances. By default, Inferno does this by examining gathered instances of each profile
123
+ Validation of search parameters requires Inferno to identify values that are expected
124
+ to return instances. By default, Inferno does this by examining gathered instances of each profile
126
125
  to identify search values that should return results when performed against the server under
127
126
  test. For `_revinclude` and reverse chaining tests, Inferno needs access to instances of other profiles
128
- in order to determine appropriate search values. When test groups are run individually, Inferno will not
129
- have access to instances identified while running other groups. Thus, when running at the group level,
127
+ in order to determine appropriate search values. When test groups are run individually, Inferno will not
128
+ have access to instances identified while running other groups. Thus, when running at the group level,
130
129
  two additional inputs are required to allow the tests to identify appropriate search values:
131
- - "[target profile] instance ids referenced in [referencing profile].[reference element]":
132
- used by `_revinclude` tests on [target profile] when run as a group to identify
130
+ - "[target profile] instance ids referenced in [referencing profile].[reference element]":
131
+ used by `_revinclude` tests on [target profile] when run as a group to identify
133
132
  instances of the [target profile] that have instances of [referencing profile] that reference it.
134
- - "'[constraining element]' value from a [referencing profile] instance with '[reference element]' populated": used by reverse chaining tests
135
- on the [target profile] referenced in the [reference element] element when run as a single group
133
+ - "'[constraining element]' value from a [referencing profile] instance with '[reference element]' populated": used by reverse chaining tests
134
+ on the [target profile] referenced in the [reference element] element when run as a single group
136
135
  to identify the value to use when performing the reverse chain search.
137
136
  )
138
137
 
@@ -190,10 +189,13 @@ module DaVinciPlanNetTestKit
190
189
  input :url,
191
190
  title: 'FHIR Endpoint',
192
191
  description: 'URL of the FHIR endpoint'
193
- input :smart_credentials,
192
+ input :smart_auth_info,
194
193
  title: 'OAuth Credentials',
195
- type: :oauth_credentials,
196
- optional: true
194
+ type: :auth_info,
195
+ optional: true,
196
+ options: {
197
+ mode: 'access'
198
+ }
197
199
  input :no_param_search,
198
200
  title: 'Use parameterless searches to identify instances?',
199
201
  type: 'radio',
@@ -219,10 +221,10 @@ module DaVinciPlanNetTestKit
219
221
  title: 'Maximum pages of results to consider when using parameterless searches',
220
222
  default: '20',
221
223
  description: 'Only used with parameterless searches. A higher number will gather more instances for the tests, if they are available. The test will not consider further pages once the maximum number of instances has been reached.'
222
-
224
+
223
225
  fhir_client do
224
226
  url :url
225
- oauth_credentials :smart_credentials
227
+ auth_info :smart_auth_info
226
228
  end
227
229
 
228
230
  group from: :davinci_plan_net_v110_capability_statement
@@ -1,4 +1,3 @@
1
- require 'inferno/dsl/oauth_credentials'
2
1
  require_relative '../../version'
3
2
  require_relative '<%= capability_statement_file_name %>'
4
3
  <% group_file_list.each do |file_name| %>require_relative '<%= file_name %>'
@@ -13,15 +12,15 @@ module DaVinciPlanNetTestKit
13
12
 
14
13
  ## Scope
15
14
 
16
- These tests are a **DRAFT** intended to allow Plan Net server implementers to perform
17
- preliminary checks of their servers against Plan Net IG requirements and [provide
18
- feedback](https://github.com/inferno-framework/davinci-plan-net-test-kit/issues)
19
- to ONC on the tests. Future versions of these tests may validate other
15
+ These tests are a **DRAFT** intended to allow Plan Net server implementers to perform
16
+ preliminary checks of their servers against Plan Net IG requirements and [provide
17
+ feedback](https://github.com/inferno-framework/davinci-plan-net-test-kit/issues)
18
+ to ONC on the tests. Future versions of these tests may validate other
20
19
  requirements and may change the test validation logic.
21
20
 
22
21
  ## Test Methodology
23
22
 
24
- Inferno will act as a client and make a series of requests to the
23
+ Inferno will act as a client and make a series of requests to the
25
24
  server under test. The responses will be checked for conformance to the Plan
26
25
  Net IG requirements individually and used in aggregate to determine whether
27
26
  required features and functionality are present.
@@ -30,10 +29,10 @@ module DaVinciPlanNetTestKit
30
29
  `tx.fhir.org` as the terminology server.
31
30
 
32
31
  ## Running the Tests
33
-
32
+
34
33
  ### Quick Start
35
34
 
36
- The tests are designed to be runnable with a single input from the user:
35
+ The tests are designed to be runnable with a single input from the user:
37
36
  the base FHIR URL of the server under test. To run in this mode:
38
37
  1. Click the `RUN ALL TESTS` button in the upper right
39
38
  2. Provide the URL for the server in the first "FHIR Endpoint (required)" input
@@ -41,10 +40,10 @@ module DaVinciPlanNetTestKit
41
40
  4. Wait for Inferno to run the tests (will take several minutes)
42
41
  5. Expand tests with failures to determine the reason
43
42
 
44
- If you would like to try out the tests but don't have a Plan Net server implementation,
45
- you can use the publicly available reference implementation available at URL
43
+ If you would like to try out the tests but don't have a Plan Net server implementation,
44
+ you can use the publicly available reference implementation available at URL
46
45
  https://plan-net-ri.davinci.hl7.org/fhir. Select this endpoint by using that URL as the
47
- "FHIR Endpoint (required)" input or prepopulating it by selecting the
46
+ "FHIR Endpoint (required)" input or prepopulating it by selecting the
48
47
  `Da Vinci Plan Net Reference Server` preset in the upper left. Note that this
49
48
  system is not currently expected to pass all of the tests.
50
49
 
@@ -53,8 +52,8 @@ module DaVinciPlanNetTestKit
53
52
  - Additional data within the system under test, e.g., to demonstrate all Must Support elements.
54
53
  - Fixes to the system under test.
55
54
 
56
- Note that this mode requires that the server support parameterless searches against
57
- Plan Net resource types (e.g., `GET [FHIR Endpoint]/InsurancePlan`), which are not required
55
+ Note that this mode requires that the server support parameterless searches against
56
+ Plan Net resource types (e.g., `GET [FHIR Endpoint]/InsurancePlan`), which are not required
58
57
  by the Plan Net IG. If your server does not support these searches, or some returned instances
59
58
  will not conform to Plan Net profiles, see the *Instance Gathering* section under
60
59
  *Test Configuration Details* below for how to disable these searches and direct the tests
@@ -62,8 +61,8 @@ module DaVinciPlanNetTestKit
62
61
 
63
62
  ### Running Groups Individually
64
63
 
65
- Each test group listed on the left can be run individually using the `RUN TESTS`
66
- button in the upper right of the group page. However, note that running
64
+ Each test group listed on the left can be run individually using the `RUN TESTS`
65
+ button in the upper right of the group page. However, note that running
67
66
  them individually requires additional inputs so that Inferno can find appropriate values for searches
68
67
  (see *Determination of Search Values When Running Single Groups* below for details).
69
68
 
@@ -74,60 +73,59 @@ module DaVinciPlanNetTestKit
74
73
 
75
74
  ### Authentication
76
75
 
77
- The Plan Net IG requires that "A conformant Plan-Net service SHALL NOT
78
- require a directory mobile application to send consumer identifying information
76
+ The Plan Net IG requires that "A conformant Plan-Net service SHALL NOT
77
+ require a directory mobile application to send consumer identifying information
79
78
  in order to query content." A simple way to ensure this is to not require authentication,
80
79
  which is safe because the information in scope does not include PHI. Thus, the
81
80
  tests do not send authentication details by default.
82
81
 
83
- If a server under test requires authentication information to be sent, an access token
84
- may be provided using the "OAuth Credentials - Access Token" input. When populated,
82
+ If a server under test requires authentication information to be sent, an access token
83
+ may be provided using the "OAuth Credentials - Access Token" input. When populated,
85
84
  requests to the server will include an HTTP header of the form `Authorization: Bearer [access token]`.
86
85
 
87
86
  ### Instance Gathering
88
87
 
89
88
  Inferno needs to identify instances of each profile to use to validate conformance to
90
- structural and search API requirements. Inferno will use one or a combination of the
89
+ structural and search API requirements. Inferno will use one or a combination of the
91
90
  following two approaches as directed by the inputs.
92
91
 
93
92
  #### Parameterless searches (default)
94
-
95
- Inferno will use a search against the base resource type without any search
96
- parameters (`GET [FHIR Endpoint]/[Resource Type]`) to identify instances of each profile.
93
+
94
+ Inferno will use a search against the base resource type without any search
95
+ parameters (`GET [FHIR Endpoint]/[Resource Type]`) to identify instances of each profile.
97
96
  This behavior can be controlled using the following inputs:
98
97
  - "Use parameterless searches to identify instances?": if the server under test does not support
99
98
  parameterless searches, this can be set to `No` to disable parameterless searches.
100
- - "Maximum number of instances to gather using parameterless searches (required)" and
101
- "Maximum pages of results to consider when using parameterless searches (required)": if fewer
102
- instances (e.g., to improve performance) or more instances (e.g., to improve Must Support
99
+ - "Maximum number of instances to gather using parameterless searches (required)" and
100
+ "Maximum pages of results to consider when using parameterless searches (required)": if fewer
101
+ instances (e.g., to improve performance) or more instances (e.g., to improve Must Support
103
102
  element coverage) should be gathered, these inputs can be adjusted to tune the number
104
103
  of instances that Inferno will gather using parameterless searches.
105
-
104
+
106
105
  #### Specific instance ids
107
-
108
- Inputs of the form "ids of [profile] instances" can be used by the user to specify particular
106
+
107
+ Inputs of the form "ids of [profile] instances" can be used by the user to specify particular
109
108
  instances for Inferno to gather for use in testing. Inferno will perform a read on each provided id
110
- to gather the instances. When parameterless searches are not used, all inputs of this form must be populated.
109
+ to gather the instances. When parameterless searches are not used, all inputs of this form must be populated.
111
110
  When instance ids are provided in addition to parameterless searches, instances provided by the user
112
111
  are prioritized for use in determining search values for search tests.
113
-
112
+
114
113
  ### Determination of Search Values When Running Single Groups
115
114
 
116
- Validation of search parameters requires Inferno to identify values that are expected
117
- to return instances. By default, Inferno does this by examining gathered instances of each profile
115
+ Validation of search parameters requires Inferno to identify values that are expected
116
+ to return instances. By default, Inferno does this by examining gathered instances of each profile
118
117
  to identify search values that should return results when performed against the server under
119
118
  test. For `_revinclude` and reverse chaining tests, Inferno needs access to instances of other profiles
120
- in order to determine appropriate search values. When test groups are run individually, Inferno will not
121
- have access to instances identified while running other groups. Thus, when running at the group level,
119
+ in order to determine appropriate search values. When test groups are run individually, Inferno will not
120
+ have access to instances identified while running other groups. Thus, when running at the group level,
122
121
  two additional inputs are required to allow the tests to identify appropriate search values:
123
- - "[target profile] instance ids referenced in [referencing profile].[reference element]":
124
- used by `_revinclude` tests on [target profile] when run as a group to identify
122
+ - "[target profile] instance ids referenced in [referencing profile].[reference element]":
123
+ used by `_revinclude` tests on [target profile] when run as a group to identify
125
124
  instances of the [target profile] that have instances of [referencing profile] that reference it.
126
- - "'[constraining element]' value from a [referencing profile] instance with '[reference element]' populated": used by reverse chaining tests
127
- on the [target profile] referenced in the [reference element] element when run as a single group
125
+ - "'[constraining element]' value from a [referencing profile] instance with '[reference element]' populated": used by reverse chaining tests
126
+ on the [target profile] referenced in the [reference element] element when run as a single group
128
127
  to identify the value to use when performing the reverse chain search.
129
128
  )
130
- version VERSION
131
129
 
132
130
  VALIDATION_MESSAGE_FILTERS = [
133
131
  %r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
@@ -167,9 +165,13 @@ module DaVinciPlanNetTestKit
167
165
  url: 'https://github.com/inferno-framework/davinci-plan-net-test-kit/issues'
168
166
  },
169
167
  {
170
- label: 'Source Code',
168
+ label: 'Open Source',
171
169
  url: 'https://github.com/inferno-framework/davinci-plan-net-test-kit'
172
170
  },
171
+ {
172
+ label: 'Download',
173
+ url: 'https://github.com/inferno-framework/davinci-plan-net-test-kit/releases'
174
+ },
173
175
  {
174
176
  label: 'Implementation Guide',
175
177
  url: '<%=ig_link %>'
@@ -179,10 +181,13 @@ module DaVinciPlanNetTestKit
179
181
  input :url,
180
182
  title: 'FHIR Endpoint',
181
183
  description: 'URL of the FHIR endpoint'
182
- input :smart_credentials,
184
+ input :smart_auth_info,
183
185
  title: 'OAuth Credentials',
184
- type: :oauth_credentials,
185
- optional: true
186
+ type: :auth_info,
187
+ optional: true,
188
+ options: {
189
+ mode: 'access'
190
+ }
186
191
  input :no_param_search,
187
192
  title: 'Use parameterless searches to identify instances?',
188
193
  type: 'radio',
@@ -208,10 +213,10 @@ module DaVinciPlanNetTestKit
208
213
  title: 'Maximum pages of results to consider when using parameterless searches',
209
214
  default: '20',
210
215
  description: 'Only used with parameterless searches. A higher number will gather more instances for the tests, if they are available. The test will not consider further pages once the maximum number of instances has been reached.'
211
-
216
+
212
217
  fhir_client do
213
218
  url :url
214
- oauth_credentials :smart_credentials
219
+ auth_info :smart_auth_info
215
220
  end
216
221
 
217
222
  group from: :<%= capability_statement_group_id %>
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DaVinciPlanNetTestKit
4
- VERSION = '0.11.1'
5
- LAST_UPDATED = '2025-03-06'
4
+ VERSION = '0.12.0'
5
+ LAST_UPDATED = '2025-03-21'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: davinci_plan_net_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karl Naden
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-03-06 00:00:00.000000000 Z
11
+ date: 2025-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.6.2
19
+ version: 0.6.7
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.6.2
26
+ version: 0.6.7
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: tls_test_kit
29
29
  requirement: !ruby/object:Gem::Requirement