ipa_test_kit 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 13459a3fee3c409cdb78abbcf827ca793f2334ad1a9d1df97c7f13068a2e9181
4
- data.tar.gz: ae13e01f6e265a3b4d97c0c1e27e13ad36544353dad6442d590c65635cf1f63e
3
+ metadata.gz: eacbed4af77cb113726af060c4c3e60099260ae5ca7beb2c0bb6c791eb6f6156
4
+ data.tar.gz: 6de273c296c1eb228c2f36e631abe36f960169b082a2dfc6a3711f06d8c8a1ce
5
5
  SHA512:
6
- metadata.gz: 39d1a7ad46187c90d1287a8d9116620b7e157d44868344565f601ab852b5f00ad39a164b76cd7fdcef761f74e3df7abe4a8ea4b95497bd749a72cb15e9f58941
7
- data.tar.gz: '08bffae9f4c6b846f1ed660440fca3c32a9e58a86a9e74c8297959eec9504af4cc21d64abae591ab13761281a1d198a9899fbd5c9e9abd593951ed249b5d3081'
6
+ metadata.gz: 66763e3f1226d9bb1d05207038d11222934ef5e5a3e21ae30f756f511933ffa7210906648d063428383e94c40db64d63f18770d78b5fa70051e6218e84d91f1a
7
+ data.tar.gz: 701447c3a28143e0e3b5b685ec8439369cb6759973f547a8449ddfb2d6caa7afb2c6061ae0fa40b2c42dca39cae6abbf71644cdc974d74562509ab7d284410aa
@@ -0,0 +1,99 @@
1
+ {
2
+ "title": "Inferno Reference Server",
3
+ "id": "reference-server-ipa",
4
+ "test_suite_id": "ipa_v100",
5
+ "inputs": [
6
+ {
7
+ "name": "url",
8
+ "value": "https://inferno.healthit.gov/reference-server/r4",
9
+ "_title": "FHIR Endpoint",
10
+ "_description": "URL of the FHIR endpoint",
11
+ "_type": "text"
12
+ },
13
+ {
14
+ "name": "standalone_client_id",
15
+ "value": "SAMPLE_PUBLIC_CLIENT_ID",
16
+ "_title": "Standalone Client ID",
17
+ "_description": "Client ID provided during registration of Inferno as a standalone application",
18
+ "_type": "text"
19
+ },
20
+ {
21
+ "name": "standalone_requested_scopes",
22
+ "value": "launch/patient openid fhirUser offline_access patient/*.rs",
23
+ "_title": "Standalone Scope",
24
+ "_description": "OAuth 2.0 scope provided by system to enable all required functionality",
25
+ "_type": "textarea"
26
+ },
27
+ {
28
+ "name": "use_pkce",
29
+ "value": "true",
30
+ "_title": "Proof Key for Code Exchange (PKCE)",
31
+ "_type": "radio",
32
+ "_options": {
33
+ "list_options": [
34
+ {
35
+ "label": "Enabled",
36
+ "value": "true"
37
+ },
38
+ {
39
+ "label": "Disabled",
40
+ "value": "false"
41
+ }
42
+ ]
43
+ },
44
+ "_locked": true
45
+ },
46
+ {
47
+ "name": "pkce_code_challenge_method",
48
+ "value": "S256",
49
+ "_title": "PKCE Code Challenge Method",
50
+ "_type": "radio",
51
+ "_optional": true,
52
+ "_options": {
53
+ "list_options": [
54
+ {
55
+ "label": "S256",
56
+ "value": "S256"
57
+ },
58
+ {
59
+ "label": "plain",
60
+ "value": "plain"
61
+ }
62
+ ]
63
+ },
64
+ "_locked": true
65
+ },
66
+ {
67
+ "name": "authorization_method",
68
+ "value": "get",
69
+ "_title": "Authorization Method",
70
+ "_type": "radio",
71
+ "_options": {
72
+ "list_options": [
73
+ {
74
+ "label": "GET",
75
+ "value": "get"
76
+ },
77
+ {
78
+ "label": "POST",
79
+ "value": "post"
80
+ }
81
+ ]
82
+ }
83
+ },
84
+ {
85
+ "name": "patient_ids",
86
+ "value": "85,355",
87
+ "_title": "Patient IDs",
88
+ "_description": "Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements",
89
+ "_type": "text"
90
+ },
91
+ {
92
+ "name": "observation_categories",
93
+ "value": "social-history,imaging,laboratory,procedure,survey,exam,therapy,activity",
94
+ "_title": "Observation categories",
95
+ "_description": "A comma-separated list of observation categories.",
96
+ "_type": "text"
97
+ }
98
+ ]
99
+ }
@@ -1,7 +1,6 @@
1
1
  require 'inferno/dsl/oauth_credentials'
2
2
  require 'smart_app_launch_test_kit'
3
3
 
4
- require_relative '../../version'
5
4
  require_relative '../../custom_groups/v1.0.0/capability_statement_group'
6
5
  require_relative '../../custom_groups/v1.0.0/ipa_smart_launch_group'
7
6
  require_relative '../../provenance_validator'
@@ -45,7 +44,6 @@ module IpaTestKit
45
44
  * Verify that the server requires both a code and system for Patient identifier
46
45
  search.
47
46
  )
48
- version VERSION
49
47
  id :ipa_v100
50
48
 
51
49
  VALIDATION_MESSAGE_FILTERS = [
@@ -108,6 +106,25 @@ module IpaTestKit
108
106
  group from: :ipa_v100_practitioner
109
107
  group from: :ipa_v100_practitioner_role
110
108
  end
109
+
110
+ links [
111
+ {
112
+ type: 'report_issue',
113
+ label: 'Report Issue',
114
+ url: 'https://github.com/inferno-framework/ipa-test-kit/issues/'
115
+ },
116
+ {
117
+ type: 'source_code',
118
+ label: 'Open Source',
119
+ url: 'https://github.com/inferno-framework/ipa-test-kit/'
120
+ },
121
+ {
122
+ type: 'download',
123
+ label: 'Download',
124
+ url: 'https://github.com/inferno-framework/ipa-test-kit/releases/'
125
+ }
126
+ ]
127
+
111
128
  end
112
129
  end
113
130
  end
@@ -0,0 +1,32 @@
1
+ <% test_file_list.each do |file_name| %>require_relative '<%= file_name %>'
2
+ <% end %>
3
+ module IpaTestKit
4
+ module <%= module_name %>
5
+ class <%= class_name %> < Inferno::TestGroup
6
+ title '<%= title %> Tests'
7
+ short_description '<%= short_description %>'
8
+ description %(
9
+ <%= description %>
10
+ )
11
+
12
+ id :<%= group_id %>
13
+ run_as_group<% if optional? %>
14
+ optional
15
+ <% end %>
16
+ input :standalone_smart_credentials,
17
+ title: 'SMART App Launch Credentials',
18
+ type: 'oauth_credentials',
19
+ optional: true<% if base_observation_group? %>
20
+ input :observation_categories,
21
+ title: 'Observation categories',
22
+ description: 'A comma-separated list of observation categories.',
23
+ default: 'social-history,imaging,laboratory,procedure,survey,exam,therapy,activity'<% end %>
24
+
25
+ def self.metadata
26
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, '<%= profile_identifier %>', 'metadata.yml'), aliases: true))
27
+ end
28
+ <% test_id_list.each do |id| %>
29
+ test from: :<%= id %><% if read_all_resources?(id) %>, config: { options: { read_all_resources: true } }<% end %><% end %>
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,43 @@
1
+ require_relative '../../../must_support_test'
2
+
3
+ module IpaTestKit
4
+ module <%= module_name %>
5
+ class <%= class_name %> < Inferno::Test
6
+ include IpaTestKit::MustSupportTest
7
+
8
+ title 'All must support elements are provided in the <%= resource_type %> resources returned'
9
+ description %(
10
+ Responders conforming to a profile in IPA SHALL return a Must Support
11
+ element if that element is available. This test will look through the
12
+ <%= resource_type %> resources found previously for the following must
13
+ support elements:
14
+
15
+ <%= must_support_list_string %>
16
+
17
+ Note: Responders who cannot store or return a data element tagged as
18
+ Supported in IPA profiles can still claim conformance to the IPA
19
+ profiles per the IPA conformance resources.
20
+ )
21
+
22
+ id :<%= test_id %>
23
+
24
+ optional
25
+
26
+ def resource_type
27
+ '<%= resource_type %>'
28
+ end
29
+
30
+ def self.metadata
31
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
32
+ end
33
+
34
+ def scratch_resources
35
+ scratch[:<%= profile_identifier %>_resources] ||= {}
36
+ end
37
+
38
+ run do
39
+ perform_must_support_test(<%= resource_collection_string %>)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,50 @@
1
+ require_relative '../../../search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ module <%= module_name %>
6
+ class <%= class_name %> < Inferno::Test
7
+ include IpaTestKit::SearchTest
8
+
9
+ title 'Server returns Provenance resources from <%= resource_type %> search by <%= search_param_name_string %>'
10
+ description %(
11
+ A server SHALL be capable of supporting _revIncludes:Provenance:target.
12
+
13
+ This test will perform a search by <%= search_param_name_string %> and
14
+ will pass if a Provenance resource is found in the response.
15
+ %)
16
+
17
+ id :<%= test_id %>
18
+ <% if needs_patient_id? %>
19
+ input :patient_ids,
20
+ title: 'Patient IDs',
21
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
22
+ <% end %>
23
+ def properties
24
+ @properties ||= SearchTestProperties.new(
25
+ <%= search_test_properties_string %>
26
+ )
27
+ end
28
+
29
+ def self.metadata
30
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml')))
31
+ end
32
+
33
+ def self.provenance_metadata
34
+ # @provenance_metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, '..', 'provenance', 'metadata.yml'), aliases: true))
35
+ end
36
+
37
+ def scratch_resources
38
+ scratch[:<%= profile_identifier %>_resources] ||= {}
39
+ end
40
+
41
+ def scratch_provenance_resources
42
+ scratch[:provenance_resources] ||= {}
43
+ end
44
+
45
+ run do
46
+ run_provenance_revinclude_search_test
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,26 @@
1
+ require_relative '../../../read_test'
2
+
3
+ module IpaTestKit
4
+ module <%= module_name %>
5
+ class <%= class_name %> < Inferno::Test
6
+ include IpaTestKit::ReadTest
7
+
8
+ title 'Server returns correct <%= resource_type %> resource from <%= resource_type %> read interaction'
9
+ description 'A server <%= conformance_expectation %> support the <%= resource_type %> read interaction.'
10
+
11
+ id :<%= test_id %>
12
+
13
+ def resource_type
14
+ '<%= resource_type %>'
15
+ end
16
+
17
+ def scratch_resources
18
+ scratch[:<%= profile_identifier %>_resources] ||= {}
19
+ end
20
+
21
+ run do
22
+ perform_read_test(<%= resource_collection_string %>)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,42 @@
1
+ require_relative '../../../reference_resolution_test'
2
+ require_relative '../resource_list'
3
+
4
+ module IpaTestKit
5
+ module <%= module_name %>
6
+ class <%= class_name %> < Inferno::Test
7
+ include IpaTestKit::ReferenceResolutionTest
8
+ include ResourceList
9
+
10
+ title 'MustSupport references within <%= resource_type %> resources are valid'
11
+ description %(
12
+ This test will attempt to read external references provided within elements
13
+ marked as 'MustSupport', if any are available.
14
+
15
+ It verifies that at least one external reference for each MustSupport Reference element
16
+ can be accessed by the test client, and conforms to corresponding IPA profile.
17
+
18
+ Elements which may provide external references include:
19
+
20
+ <%= must_support_reference_list_string %>
21
+ )
22
+
23
+ id :<%= test_id %>
24
+
25
+ def resource_type
26
+ '<%= resource_type %>'
27
+ end
28
+
29
+ def self.metadata
30
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
31
+ end
32
+
33
+ def scratch_resources
34
+ scratch[:<%= profile_identifier %>_resources] ||= {}
35
+ end
36
+
37
+ run do
38
+ perform_reference_resolution_test(<%= resource_collection_string %>)
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,9 @@
1
+ module IpaTestKit
2
+ module <%= module_name %>
3
+ module ResourceList
4
+ RESOURCE_LIST = [
5
+ <%= resource_list_string %>
6
+ ].freeze
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,46 @@
1
+ require_relative '../../../search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module IpaTestKit
5
+ module <%= module_name %>
6
+ class <%= class_name %> < Inferno::Test
7
+ include IpaTestKit::SearchTest
8
+
9
+ title 'Server returns valid results for <%= resource_type %> search by <%= search_param_name_string %>'
10
+ description %(
11
+ <%= description %>
12
+ )
13
+
14
+ id :<%= test_id %><% if optional? %>
15
+ optional
16
+ <% end %><% if needs_patient_id? %>
17
+ input :patient_ids,
18
+ title: 'Patient IDs',
19
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements'
20
+ <% end %><% if resource_type == 'Device' %>
21
+ input :implantable_device_codes,
22
+ title: 'Implantable Device Type Code',
23
+ description: 'Enter the code for an Implantable Device type, or multiple codes separated by commas. '\
24
+ 'If blank, Inferno will validate all Device resources against the Implantable Device profile',
25
+ optional: true
26
+ <% end %>
27
+ def self.properties
28
+ @properties ||= SearchTestProperties.new(
29
+ <%= search_test_properties_string %>
30
+ )
31
+ end
32
+
33
+ def self.metadata
34
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
35
+ end
36
+
37
+ def scratch_resources
38
+ scratch[:<%= profile_identifier %>_resources] ||= {}
39
+ end
40
+
41
+ run do
42
+ run_search_test
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,106 @@
1
+ require 'inferno/dsl/oauth_credentials'
2
+ require 'smart_app_launch_test_kit'
3
+
4
+ require_relative '<%= capability_statement_file_name %>'
5
+ require_relative '<%= smart_launch_file_name %>'
6
+ require_relative '../../provenance_validator'
7
+ <% group_file_list.each do |file_name| %>require_relative '<%= file_name %>'
8
+ <% end %>
9
+ module IpaTestKit
10
+ module <%= module_name %>
11
+ class <%= class_name %> < Inferno::TestSuite
12
+ title '<%= title %>'
13
+ short_title '<%= short_title %>'
14
+ description %(
15
+ This test suite evaluates the ability of a system to support applications
16
+ acting on behalf of patients to access clinical records using an HL7® FHIR® R4 API
17
+ in accordance to the [International Patient Access Implementation Guide (IPA IG)](https://www.hl7.org/fhir/uv/ipa/).
18
+
19
+ It accomplishes this by simulating requests performed by a realistic IPA Requestor
20
+ and validating responses based on requirements specified within the IPA IG and
21
+ the base FHIR specification.
22
+
23
+ Resources are validated with the FHIR Java validator using `tx.fhir.org`
24
+ as the terminology server.
25
+
26
+ The following are not yet implemented:
27
+ * Test for `client-confidential-asymmetric`.
28
+ * Verify that the server supports all required SMART capabilities, rather than
29
+ just verifying that the server advertises support for them.
30
+ * Test `$docref` operation.
31
+ * Test `Patient.link` requirements.
32
+ * Verify that the server requires both a code and system for Patient identifier
33
+ search.
34
+ )
35
+ id :<%= suite_id %>
36
+
37
+ VALIDATION_MESSAGE_FILTERS = [
38
+ %r{Sub-extension url 'introspect' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
39
+ %r{Sub-extension url 'revoke' is not defined by the Extension http://fhir-registry\.smarthealthit\.org/StructureDefinition/oauth-uris},
40
+ /Observation\.effective\.ofType\(Period\): .*vs-1:/, # Invalid invariant in FHIR v4.0.1
41
+ /\A\S+: \S+: URL value '.*' does not resolve/,
42
+ ].freeze
43
+
44
+ def self.metadata
45
+ @metadata ||= YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true)[:groups].map do |raw_metadata|
46
+ Generator::GroupMetadata.new(raw_metadata)
47
+ end
48
+ end
49
+
50
+ fhir_resource_validator do
51
+ igs '<%= ig_identifier %>'
52
+
53
+ exclude_message do |message|
54
+ VALIDATION_MESSAGE_FILTERS.any? { |filter| filter.match? message.message }
55
+ end
56
+
57
+ perform_additional_validation do |resource, profile_url|
58
+ ProvenanceValidator.validate(resource) if resource.instance_of?(FHIR::Provenance)
59
+ end
60
+ end
61
+
62
+ input :url,
63
+ title: 'FHIR Endpoint',
64
+ description: 'URL of the FHIR endpoint'
65
+
66
+ fhir_client do
67
+ url :url
68
+ oauth_credentials :standalone_smart_credentials
69
+ end
70
+
71
+ group from: :<%= smart_launch_group_id %>
72
+
73
+ group do
74
+ title 'IPA Responder Tests'
75
+ description %(
76
+ The IPA Responder Tests evaluate the ability of an IPA Responder (IPA FHIR Server)
77
+ to support required and optional FHIR operations and search parameters to return
78
+ conformant IPA resources.
79
+ )
80
+
81
+ group from: :<%= capability_statement_group_id %>
82
+ <% group_id_list.each do |id| %>
83
+ group from: :<%= id %><% end %>
84
+ end
85
+
86
+ links [
87
+ {
88
+ type: 'report_issue',
89
+ label: 'Report Issue',
90
+ url: 'https://github.com/inferno-framework/ipa-test-kit/issues/'
91
+ },
92
+ {
93
+ type: 'source_code',
94
+ label: 'Open Source',
95
+ url: 'https://github.com/inferno-framework/ipa-test-kit/'
96
+ },
97
+ {
98
+ type: 'download',
99
+ label: 'Download',
100
+ url: 'https://github.com/inferno-framework/ipa-test-kit/releases/'
101
+ }
102
+ ]
103
+
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,31 @@
1
+ require_relative '../../../validation_test'
2
+
3
+ module IpaTestKit
4
+ module <%= module_name %>
5
+ class <%= class_name %> < Inferno::Test
6
+ include IpaTestKit::ValidationTest
7
+
8
+ id :<%= test_id %>
9
+ title '<%= resource_type %> resources returned during previous tests conform to the <%= profile_name %>'
10
+ description %(
11
+ <%= description %>
12
+ )
13
+ output :dar_code_found, :dar_extension_found
14
+
15
+ def resource_type
16
+ '<%= resource_type %>'
17
+ end
18
+
19
+ def scratch_resources
20
+ scratch[:<%= profile_identifier %>_resources] ||= {}
21
+ end
22
+
23
+ run do
24
+ perform_validation_test(scratch_resources[:all] || [],
25
+ '<%= profile_url %>',
26
+ '<%= profile_version %>',
27
+ skip_if_empty: <%= skip_if_empty %>)
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,21 @@
1
+ # Note on this IGs folder
2
+
3
+ There are three reasons why it would be necessary to put an IG package.tgz in this folder. If none of these apply, you do not need to put any files here, or can consider removing any existing files to make it clear they are unused.
4
+
5
+ ## 1. Generated Test Suites
6
+ Some test kits use a "generator" to automatically generate the contents of a test suite for an IG. The IG files are required every time the test suites need to be regenerated. Examples of test kits that use this approach are the US Core Test Kit and CARIN IG for Blue Button® Test Kit.
7
+
8
+
9
+ ## 2. Non-published IG
10
+ If your IG, or the specific version of the IG you want to test against, is not published, then the validator service needs to load the IG from file in order to be able to validate resources with it. The IG must be referenced in the `fhir_resource_validator` block in the test suite definition by filename, ie:
11
+
12
+ ```ruby
13
+ fhir_resource_validator do
14
+ igs 'igs/filename.tgz'
15
+
16
+ ...
17
+ end
18
+ ```
19
+
20
+ ## 3. Inferno Validator UI
21
+ The Inferno Validator UI is configured to auto-load any IGs present in the igs folder and include them in all validations. The Inferno Validator UI is currently disabled by default, so this is only relevant if you choose to re-enable it. In general, the Inferno team is currently leaving IGs in this folder even if not otherwise necessary to make it easy to re-enable the validator UI.
@@ -0,0 +1,59 @@
1
+ require_relative 'version'
2
+
3
+ module IpaTestKit
4
+ class Metadata < Inferno::TestKit
5
+ id :ipa_test_kit
6
+ title 'International Patient Acess Test Kit'
7
+ suite_ids [:ipa_v100]
8
+ tags ['SMART App Launch']
9
+ last_updated IpaTestKit::LAST_UPDATED
10
+ version IpaTestKit::VERSION
11
+ maturity 'Medium'
12
+ authors ['Inferno Core Team']
13
+ repo 'https://github.com/inferno-framework/ipa-test-kit'
14
+ description <<~DESCRIPTION
15
+ The International Patient Access Test Kit provides an executable set of tests for the [International Patient Access (IPA) Implementation Guide v1.0.0](https://hl7.org/fhir/uv/ipa/STU1/). This test kit evaluates the ability of a system to support applications acting on behalf of patients to access clinical records using an HL7® FHIR® R4 API in accordance to the IPA IG. It accomplishes this by simulating requests performed by a realistic IPA Requestor and validating responses based on requirements specified within the IPA IG and the base FHIR specification.
16
+ <!-- break -->
17
+
18
+ This test kit is [open source](https://github.com/inferno-framework/ipa-test-kit#license) and freely available for use or adoption by the health IT community including EHR vendors, health app developers, and testing labs. It is built using the [Inferno Framework](https://inferno-framework.github.io/inferno-core/). The Inferno Framework is designed for reuse and aims to make it easier to build test kits for any FHIR-based data exchange.
19
+
20
+ ## Status
21
+
22
+ These tests are intended to allow IPA server implementers to perform checks of their server against IPA requrirements. Future versions of these tests may validate other requirements and may change how these are tested.
23
+
24
+ The test kit currently tests the following requirements:
25
+
26
+ - SMART App Launch Protocol’s standalone launch sequence
27
+ - Support for Capability Statement
28
+ - Support for all IPA Profiles
29
+ - Searches required for each resource
30
+ - Support for Must Support Elements
31
+ - Profile Validation
32
+ - Reference Validation
33
+
34
+ See the test descriptions within the test kit for detail on the specific validations performed as part of testing these requirements.
35
+
36
+ The following are not yet implemented:
37
+
38
+ - Test for client-confidential-asymmetric.
39
+ - Verify that the server supports all required SMART capabilities, rather than just verifying that the server advertises support for them.
40
+ - Test $docref operation.
41
+ - Test Patient.link requirements.
42
+ - Verify that the server requires both a code and system for Patient identifier search.
43
+
44
+ ## Repository
45
+
46
+ The IPA Test Kit GitHub repository can be [found here](https://github.com/inferno-framework/ipa-test-kit).
47
+
48
+ ## Providing Feedback and Reporting Issues
49
+
50
+ We welcome feedback on the tests, including but not limited to the following areas:
51
+
52
+ - Validation logic, such as potential bugs, lax checks, and unexpected failures.
53
+ - Requirements coverage, such as requirements that have been missed, tests that necessitate features that the IG does not require, or other issues with the interpretation of the IG’s requirements.
54
+ - User experience, such as confusing or missing information in the test UI.
55
+
56
+ Please report any issues with this set of tests in the [issues section](https://github.com/inferno-framework/ipa-test-kit/issues) of the repository.
57
+ DESCRIPTION
58
+ end
59
+ end
@@ -1,3 +1,4 @@
1
1
  module IpaTestKit
2
- VERSION = '0.4.1'
2
+ VERSION = '0.5.0'.freeze
3
+ LAST_UPDATED = '2025-02-10'.freeze
3
4
  end
data/lib/ipa_test_kit.rb CHANGED
@@ -1,3 +1,2 @@
1
+ require_relative 'ipa_test_kit/metadata'
1
2
  require_relative 'ipa_test_kit/generated/v1.0.0/ipa_test_suite'
2
-
3
- Inferno::Repositories::TestSuites.all.reject! { |suite| suite.id&.to_s == 'tls' }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ipa_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Inferno Core Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-06 00:00:00.000000000 Z
11
+ date: 2025-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.4.37
19
+ version: 0.6.2
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.4.37
26
+ version: 0.6.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: smart_app_launch_test_kit
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.3'
33
+ version: 0.5.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.3'
40
+ version: 0.5.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: tls_test_kit
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.2.0
47
+ version: 0.3.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.2.0
54
+ version: 0.3.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: database_cleaner-sequel
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -116,6 +116,7 @@ extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
118
  - LICENSE
119
+ - config/presets/ipa_preset.json
119
120
  - lib/ipa_test_kit.rb
120
121
  - lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/conformance_support_test.rb
121
122
  - lib/ipa_test_kit/custom_groups/v1.0.0/capability_statement/fhir_version_test.rb
@@ -291,12 +292,23 @@ files:
291
292
  - lib/ipa_test_kit/generator/search_test_generator.rb
292
293
  - lib/ipa_test_kit/generator/special_cases.rb
293
294
  - lib/ipa_test_kit/generator/suite_generator.rb
295
+ - lib/ipa_test_kit/generator/templates/group.rb.erb
296
+ - lib/ipa_test_kit/generator/templates/must_support.rb.erb
297
+ - lib/ipa_test_kit/generator/templates/provenance_revinclude_search.rb.erb
298
+ - lib/ipa_test_kit/generator/templates/read.rb.erb
299
+ - lib/ipa_test_kit/generator/templates/reference_resolution.rb.erb
300
+ - lib/ipa_test_kit/generator/templates/resource_list.rb.erb
301
+ - lib/ipa_test_kit/generator/templates/search.rb.erb
302
+ - lib/ipa_test_kit/generator/templates/suite.rb.erb
303
+ - lib/ipa_test_kit/generator/templates/validation.rb.erb
294
304
  - lib/ipa_test_kit/generator/terminology_binding_metadata_extractor.rb
295
305
  - lib/ipa_test_kit/generator/validation_test_generator.rb
296
306
  - lib/ipa_test_kit/generator/value_extractor.rb
307
+ - lib/ipa_test_kit/igs/README.md
297
308
  - lib/ipa_test_kit/igs/ipa_v100.tgz
298
309
  - lib/ipa_test_kit/igs/ipa_v100/search-parameters.json
299
310
  - lib/ipa_test_kit/igs/ipa_v100/vitalsigns.profile.json
311
+ - lib/ipa_test_kit/metadata.rb
300
312
  - lib/ipa_test_kit/must_support_test.rb
301
313
  - lib/ipa_test_kit/provenance_validator.rb
302
314
  - lib/ipa_test_kit/read_test.rb
@@ -312,6 +324,7 @@ licenses:
312
324
  metadata:
313
325
  homepage_uri: https://github.com/inferno-framework/ipa-test-kit
314
326
  source_code_uri: https://github.com/inferno-framework/ipa-test-kit
327
+ inferno_test_kit: 'true'
315
328
  post_install_message:
316
329
  rdoc_options: []
317
330
  require_paths:
@@ -320,14 +333,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
320
333
  requirements:
321
334
  - - ">="
322
335
  - !ruby/object:Gem::Version
323
- version: 3.1.2
336
+ version: 3.3.6
324
337
  required_rubygems_version: !ruby/object:Gem::Requirement
325
338
  requirements:
326
339
  - - ">="
327
340
  - !ruby/object:Gem::Version
328
341
  version: '0'
329
342
  requirements: []
330
- rubygems_version: 3.3.7
343
+ rubygems_version: 3.5.22
331
344
  signing_key:
332
345
  specification_version: 4
333
346
  summary: IPA Inferno tests