davinci_pdex_test_kit 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/lib/davinci_pdex_test_kit/docs/payer_client_suite_description_v200.md +91 -0
  4. data/lib/davinci_pdex_test_kit/docs/payer_server_suite_description_v200.md +119 -0
  5. data/lib/davinci_pdex_test_kit/ext/inferno_core/record_response_route.rb +98 -0
  6. data/lib/davinci_pdex_test_kit/ext/inferno_core/request.rb +19 -0
  7. data/lib/davinci_pdex_test_kit/ext/inferno_core/runnable.rb +18 -0
  8. data/lib/davinci_pdex_test_kit/fhir_resource_navigation.rb +154 -0
  9. data/lib/davinci_pdex_test_kit/group_metadata.rb +109 -0
  10. data/lib/davinci_pdex_test_kit/metadata/mock_capability_statement.json +1052 -0
  11. data/lib/davinci_pdex_test_kit/metadata/mock_operation_outcome_resource.json +16 -0
  12. data/lib/davinci_pdex_test_kit/mock_server.rb +247 -0
  13. data/lib/davinci_pdex_test_kit/must_support_test.rb +252 -0
  14. data/lib/davinci_pdex_test_kit/pdex_payer_client/client_member_match_tests/client_member_match_submit_test.rb +24 -0
  15. data/lib/davinci_pdex_test_kit/pdex_payer_client/client_member_match_tests/client_member_match_validation_test.rb +23 -0
  16. data/lib/davinci_pdex_test_kit/pdex_payer_client/client_must_support_tests/client_member_match_must_support_submit_test.rb +26 -0
  17. data/lib/davinci_pdex_test_kit/pdex_payer_client/client_must_support_tests/client_member_match_must_support_validation_test.rb +32 -0
  18. data/lib/davinci_pdex_test_kit/pdex_payer_client/client_validation_test.rb +94 -0
  19. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/allergyintolerance_clinical_data_request_test.rb +23 -0
  20. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/careplan_clinical_data_request_test.rb +23 -0
  21. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/careteam_clinical_data_request_test.rb +23 -0
  22. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/condition_clinical_data_request_test.rb +23 -0
  23. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/device_clinical_data_request_test.rb +23 -0
  24. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/diagnosticreport_clinical_data_request_test.rb +23 -0
  25. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/documentreference_clinical_data_request_test.rb +23 -0
  26. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/encounter_clinical_data_request_test.rb +23 -0
  27. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/explanationofbenefit_clinical_data_request_test.rb +23 -0
  28. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/goal_clinical_data_request_test.rb +23 -0
  29. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/immunization_clinical_data_request_test.rb +23 -0
  30. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/initial_scratch_storing.rb +34 -0
  31. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/initial_wait_test.rb +28 -0
  32. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/location_clinical_data_request_test.rb +23 -0
  33. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/medicationdispense_clinical_data_request_test.rb +23 -0
  34. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/medicationrequest_clinical_data_request_test.rb +23 -0
  35. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/observation_clinical_data_request_test.rb +23 -0
  36. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/organization_clinical_data_request_test.rb +23 -0
  37. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/patient_clinical_data_request_test.rb +23 -0
  38. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/practitioner_clinical_data_request_test.rb +23 -0
  39. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/practitionerrole_clinical_data_request_test.rb +23 -0
  40. data/lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/procedure_clinical_data_request_test.rb +23 -0
  41. data/lib/davinci_pdex_test_kit/pdex_payer_client/collection.rb +46 -0
  42. data/lib/davinci_pdex_test_kit/pdex_payer_client_suite.rb +152 -0
  43. data/lib/davinci_pdex_test_kit/pdex_payer_server/abstract_member_match_request_conformance_test.rb +33 -0
  44. data/lib/davinci_pdex_test_kit/pdex_payer_server/abstract_member_match_request_local_references_test.rb +35 -0
  45. data/lib/davinci_pdex_test_kit/pdex_payer_server/coverage_to_link_has_minimal_data_test.rb +52 -0
  46. data/lib/davinci_pdex_test_kit/pdex_payer_server/coverage_to_link_must_support_test.rb +28 -0
  47. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_id_search_test.rb +58 -0
  48. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_identifier_search_test.rb +58 -0
  49. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_must_support_test.rb +40 -0
  50. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_patient_last_updated_search_test.rb +63 -0
  51. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_patient_service_date_search_test.rb +63 -0
  52. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_patient_type_search_test.rb +63 -0
  53. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_patient_use_search_test.rb +68 -0
  54. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_provenance_revinclude_search_test.rb +52 -0
  55. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_read_test.rb +26 -0
  56. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_reference_resolution_test.rb +43 -0
  57. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_validation_test.rb +40 -0
  58. data/lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit_group.rb +105 -0
  59. data/lib/davinci_pdex_test_kit/pdex_payer_server/export_patient_group.rb +103 -0
  60. data/lib/davinci_pdex_test_kit/pdex_payer_server/export_validation_group.rb +59 -0
  61. data/lib/davinci_pdex_test_kit/pdex_payer_server/multiple_member_matches_group.rb +66 -0
  62. data/lib/davinci_pdex_test_kit/pdex_payer_server/no_member_matches_group.rb +69 -0
  63. data/lib/davinci_pdex_test_kit/pdex_payer_server/workflow_clinical_data.rb +66 -0
  64. data/lib/davinci_pdex_test_kit/pdex_payer_server/workflow_everything.rb +184 -0
  65. data/lib/davinci_pdex_test_kit/pdex_payer_server/workflow_export.rb +67 -0
  66. data/lib/davinci_pdex_test_kit/pdex_payer_server/workflow_member_match.rb +171 -0
  67. data/lib/davinci_pdex_test_kit/pdex_payer_server_suite.rb +158 -0
  68. data/lib/davinci_pdex_test_kit/pdex_provider_client_suite.rb +36 -0
  69. data/lib/davinci_pdex_test_kit/tags.rb +9 -0
  70. data/lib/davinci_pdex_test_kit/urls.rb +67 -0
  71. data/lib/davinci_pdex_test_kit/user_input_response.rb +32 -0
  72. data/lib/davinci_pdex_test_kit/version.rb +5 -0
  73. data/lib/davinci_pdex_test_kit.rb +8 -0
  74. metadata +218 -0
@@ -0,0 +1,158 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'pdex_payer_server/workflow_member_match'
4
+ require_relative 'pdex_payer_server/workflow_clinical_data'
5
+ require_relative 'pdex_payer_server/workflow_everything'
6
+ require_relative 'pdex_payer_server/workflow_export'
7
+
8
+ require_relative 'pdex_payer_server/no_member_matches_group'
9
+ require_relative 'pdex_payer_server/multiple_member_matches_group'
10
+
11
+ require_relative 'pdex_payer_server/explanation_of_benefit_group'
12
+
13
+ module DaVinciPDexTestKit
14
+ class PDexPayerServerSuite < Inferno::TestSuite
15
+ id :pdex_payer_server
16
+ title 'Da Vinci PDex Payer Server Test Suite'
17
+ description File.read(File.join(__dir__, 'docs', 'payer_server_suite_description_v200.md'))
18
+
19
+ input :url,
20
+ title: 'FHIR Server Base Url'
21
+
22
+ input :credentials,
23
+ title: 'OAuth Credentials',
24
+ type: :oauth_credentials,
25
+ optional: true
26
+
27
+ fhir_client do
28
+ url :url
29
+ oauth_credentials :credentials
30
+ end
31
+
32
+ VALIDATION_MESSAGE_FILTERS = [
33
+ /Observation\.effective\.ofType\(Period\): .*vs-1:/, # Invalid invariant in FHIR v4.0.1
34
+ /\A\S+: \S+: URL value '.*' does not resolve/
35
+ ].freeze
36
+
37
+ VERSION_SPECIFIC_MESSAGE_FILTERS = [].freeze
38
+
39
+ validator do
40
+ url ENV.fetch('VALIDATOR_URL')
41
+
42
+ # Copy messages limit from Bulk Data Export tests
43
+ message_filters = VALIDATION_MESSAGE_FILTERS + VERSION_SPECIFIC_MESSAGE_FILTERS
44
+
45
+ $num_messages = 0
46
+ $capped_message = false
47
+ $num_errors = 0
48
+ $capped_errors = false
49
+
50
+ exclude_message do |message|
51
+ matches_filter = message_filters.any? { |filter| filter.match? message.message }
52
+
53
+ unless matches_filter
54
+ if message.type != 'error'
55
+ $num_messages += 1
56
+ else
57
+ $num_errors += 1
58
+ end
59
+ end
60
+
61
+ matches_filter ||
62
+ (message.type != 'error' && $num_messages > 50 && !message.message.include?('Inferno is only showing the first')) ||
63
+ (message.type == 'error' && $num_errors > 20 && !message.message.include?('Inferno is only showing the first'))
64
+ end
65
+
66
+ perform_additional_validation do
67
+ if $num_messages > 50 && !$capped_message
68
+ $capped_message = true
69
+ { type: 'info', message: 'Inferno is only showing the first 50 validation info and warning messages.' }
70
+ elsif $num_errors > 20 && !$capped_errors
71
+ $capped_errors = true
72
+ { type: 'error', message: 'Inferno is only showing the first 20 validation error messages.' }
73
+ end
74
+ end
75
+ end
76
+
77
+ group do
78
+ title 'Payer to Payer Workflow'
79
+ id :payer_to_payer_workflow
80
+ description %(
81
+ # Background
82
+
83
+ This Payer to Payer Workflow test sequence is designed to simulate a realistic use case for
84
+ data access on a Payer's FHIR Server. This workflow conforms to the Da Vinci
85
+ [Payer Data Exchange (PDex) v2.0.0 Implementation Guide](https://hl7.org/fhir/us/davinci-pdex/STU2/),
86
+ which itself relies on
87
+ [Health Record Exchange (HRex) v1.0.0 Implementation Guide](https://hl7.org/fhir/us/davinci-hrex/index.html)
88
+ and [US Core v3.1.1 Implementation Guide](http://hl7.org/fhir/us/core/STU3.1.1/). The PDex Implementation Guide contains more on
89
+ the [business use case background](https://hl7.org/fhir/us/davinci-pdex/STU2/index.html#background), and the specific
90
+ [payer-to-payer workflow](https://hl7.org/fhir/us/davinci-pdex/STU2/payertopayerexchange.html).
91
+
92
+ # Testing Methodology
93
+
94
+ This workflow is broken into four parts:
95
+
96
+ 1. Send a `$member-match` request to the Server to identify a Patient based on Payer's coverage plan and Patient consent.
97
+
98
+ 2. Use the identified Patient to query for specific clinical data.
99
+
100
+ 3. **Optional.** Send an `$everything` request to the server to query for all relevant clinical data on the Patient.
101
+
102
+ 4. **Optional.** Send an `$export` request to the server to query for all relevant clinical data on the Patient asynchronously.
103
+
104
+ See the corresponding test group's description for the testing methodology of each part.
105
+ )
106
+
107
+ group from: :workflow_member_match
108
+ group from: :workflow_clinical_data
109
+ group from: :workflow_everything
110
+ group from: :workflow_export
111
+ end
112
+
113
+ group do
114
+ title 'API Capability and Must Support Coverage'
115
+ id :api_and_must_support_coverage
116
+
117
+ group do
118
+ title '$member-match failure cases'
119
+ id :member_match_failure_cases
120
+ description %{
121
+ # Background
122
+
123
+ This test sequence is for the negative results specification in
124
+ [member matching logic](http://hl7.org/fhir/us/davinci-hrex/STU1/OperationDefinition-member-match.html#member-matching-logic)
125
+ from HRex 1.0.0 Implementation Guide, and is required by the PDex 2.0.0 Implementation Guide.
126
+
127
+ # Testing Methodology
128
+
129
+ 1. If provided, attempt no-match member match operation
130
+ + validate input
131
+ + POST request to server and validiate HTTP 422 response status
132
+ 2. If provided, attempt a multiple-match member match operation
133
+ + validate input
134
+ + POST request to server and validiate HTTP 422 response status
135
+ }
136
+
137
+ input_order :url, :credentials, :no_member_match_request, :multiple_member_match_request
138
+
139
+ group from: :no_member_matches_group
140
+ group from: :multiple_member_matches_group
141
+ end
142
+
143
+ group do
144
+ title 'PDEX Search and Read API (US Core plus additional PDex resource types)'
145
+ id :search_and_read_api_coverage
146
+
147
+ group from: :pdex_explanation_of_benefit
148
+ # Import all US Core v3.1.1 groups without the Suite
149
+ Dir.glob(File.join($LOAD_PATH.find { |x| x.match? "us_core_test_kit" }, 'us_core_test_kit/generated/v3.1.1/*_group.rb')).each do |test_group_path|
150
+ require_relative test_group_path
151
+
152
+ group from: "us_core_v311_#{File.basename(test_group_path).gsub('_group.rb','')}".to_sym
153
+ end
154
+ end
155
+ end
156
+
157
+ end
158
+ end
@@ -0,0 +1,36 @@
1
+ module DaVinciPDexTestKit
2
+ class PDexProviderClientSuite < Inferno::TestSuite
3
+ id :pdex_provider_client
4
+ title 'Da Vinci PDex Provider Client Test Suite'
5
+ description %(
6
+ # Da Vinci PDex Provider Client Test Suite
7
+
8
+ This suite validates that a provider system can act as a client
9
+ retrieving patient data from a payer system using
10
+ the APIs described in the PDex implementation
11
+ guide. Inferno will act as a payer server that the
12
+ system under test will connect to and retrieve data from.
13
+ )
14
+
15
+ # These inputs will be available to all tests in this suite
16
+ input :url,
17
+ title: 'FHIR Server Base Url'
18
+
19
+ input :credentials,
20
+ title: 'OAuth Credentials',
21
+ type: :oauth_credentials,
22
+ optional: true
23
+
24
+ # All FHIR requests in this suite will use this FHIR client
25
+ fhir_client do
26
+ url :url
27
+ oauth_credentials :credentials
28
+ end
29
+
30
+ # All FHIR validation requsets will use this FHIR validator
31
+ validator do
32
+ url ENV.fetch('VALIDATOR_URL')
33
+ end
34
+ end
35
+ end
36
+
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DaVinciPDexTestKit
4
+ AUTH_TAG = 'pdex_auth'
5
+ SUBMIT_TAG = 'pdex_submit'
6
+ # EXPORT_TAG = 'pdex_export'
7
+ EVERYTHING_TAG = 'pdex_everything'
8
+ MEMBER_MATCH_TAG = 'pdex_member_match'
9
+ end
@@ -0,0 +1,67 @@
1
+ module DaVinciPDexTestKit
2
+ TOKEN_PATH = '/mock_auth/token'
3
+ PATIENT_PATH = '/fhir/Patient'
4
+ SUBMIT_PATH = '/fhir/:endpoint'
5
+ METADATA_PATH = '/fhir/metadata'
6
+ EVERYTHING_PATH = '/fhir/Patient/:patient/$everything'
7
+ MEMBER_MATCH_PATH = '/fhir/Patient/$member-match'
8
+ # EXPORT_PATH = '/fhir/Patient/$export'
9
+ BASE_FHIR_PATH = '/fhir'
10
+ RESUME_PASS_PATH = '/resume_pass'
11
+ RESUME_CLINICAL_DATA_PATH = '/resume_clinical_data'
12
+ RESUME_FAIL_PATH = '/resume_fail'
13
+
14
+ module URLs
15
+ def base_url
16
+ @base_url ||= "#{Inferno::Application['base_url']}/custom/#{suite_id}"
17
+ end
18
+
19
+ def token_url
20
+ @token_url ||= base_url + TOKEN_PATH
21
+ end
22
+
23
+ def base_fhir_url
24
+ @base_fhir_url ||= base_url + BASE_FHIR_PATH
25
+ end
26
+
27
+ def patient_url
28
+ @patient_url ||= base_url + PATIENT_PATH
29
+ end
30
+
31
+ def submit_url
32
+ @submit_url ||= base_url + SUBMIT_PATH
33
+ end
34
+
35
+ def metadata_url
36
+ @metadata_url ||= base_url + METADATA_PATH
37
+ end
38
+
39
+ def everything_url
40
+ @everything_url ||= base_url + EVERYTHING_PATH
41
+ end
42
+
43
+ def member_match_url
44
+ @member_match_url ||= base_url + MEMBER_MATCH_PATH
45
+ end
46
+
47
+ # def export_url
48
+ # @export_url ||= base_url + EXPORT_PATH
49
+ # end
50
+
51
+ def resume_pass_url
52
+ @resume_pass_url ||= base_url + RESUME_PASS_PATH
53
+ end
54
+
55
+ def resume_clinical_data_url
56
+ @resume_clinical_data_url ||= base_url + RESUME_CLINICAL_DATA_PATH
57
+ end
58
+
59
+ def resume_fail_url
60
+ @resume_fail_url ||= base_url + RESUME_FAIL_PATH
61
+ end
62
+
63
+ def suite_id
64
+ self.class.suite.id
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,32 @@
1
+ module DaVinciPDexTestKit
2
+ module UserInputResponse
3
+ def self.included(klass)
4
+ klass.extend ClassMethods
5
+ end
6
+
7
+ def self.user_inputted_response(configurable, result)
8
+ input_key = configurable.config.options[:respond_with]
9
+ return unless input_key.present?
10
+
11
+ JSON.parse(result.input_json)&.find { |i| i['name'] == input_key.to_s }&.dig('value')
12
+ rescue JSON::ParserError
13
+ nil
14
+ end
15
+
16
+ def check_user_inputted_response(input_key, message = nil)
17
+ skip_if send(input_key).blank?,
18
+ message ||
19
+ "To run this test a response body must be provided in the '**#{input_title(input_key)}**' input"
20
+ end
21
+
22
+ def input_title(input_key)
23
+ config.inputs[input_key]&.title || config.inputs[input_key]&.name
24
+ end
25
+
26
+ module ClassMethods
27
+ def respond_with(key)
28
+ config options: { respond_with: key }
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DaVinciPDexTestKit
4
+ VERSION = '0.9.1'
5
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'davinci_pdex_test_kit/pdex_payer_server_suite'
4
+ require_relative 'davinci_pdex_test_kit/pdex_payer_client_suite'
5
+ # require_relative 'davinci_pdex_test_kit/pdex_provider_client_suite'
6
+
7
+ module DaVinciPDexTestKit
8
+ end
metadata ADDED
@@ -0,0 +1,218 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: davinci_pdex_test_kit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.1
5
+ platform: ruby
6
+ authors:
7
+ - Karl Naden
8
+ - Shaumik Ashraf
9
+ - Diego Griese
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2024-06-07 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: inferno_core
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: 0.4.38
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: 0.4.38
29
+ - !ruby/object:Gem::Dependency
30
+ name: us_core_test_kit
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: 0.6.5
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: 0.6.5
43
+ - !ruby/object:Gem::Dependency
44
+ name: bulk_data_test_kit
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.10'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '0.10'
57
+ - !ruby/object:Gem::Dependency
58
+ name: database_cleaner-sequel
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '1.8'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '1.8'
71
+ - !ruby/object:Gem::Dependency
72
+ name: factory_bot
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '6.1'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '6.1'
85
+ - !ruby/object:Gem::Dependency
86
+ name: rspec
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '3.10'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '3.10'
99
+ - !ruby/object:Gem::Dependency
100
+ name: webmock
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '3.11'
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '3.11'
113
+ description: Test Kit for the Da Vinci Payer Data Exchange (PDex) FHIR Implementation
114
+ Guide
115
+ email:
116
+ - inferno@groups.mitre.org
117
+ executables: []
118
+ extensions: []
119
+ extra_rdoc_files: []
120
+ files:
121
+ - LICENSE
122
+ - lib/davinci_pdex_test_kit.rb
123
+ - lib/davinci_pdex_test_kit/docs/payer_client_suite_description_v200.md
124
+ - lib/davinci_pdex_test_kit/docs/payer_server_suite_description_v200.md
125
+ - lib/davinci_pdex_test_kit/ext/inferno_core/record_response_route.rb
126
+ - lib/davinci_pdex_test_kit/ext/inferno_core/request.rb
127
+ - lib/davinci_pdex_test_kit/ext/inferno_core/runnable.rb
128
+ - lib/davinci_pdex_test_kit/fhir_resource_navigation.rb
129
+ - lib/davinci_pdex_test_kit/group_metadata.rb
130
+ - lib/davinci_pdex_test_kit/metadata/mock_capability_statement.json
131
+ - lib/davinci_pdex_test_kit/metadata/mock_operation_outcome_resource.json
132
+ - lib/davinci_pdex_test_kit/mock_server.rb
133
+ - lib/davinci_pdex_test_kit/must_support_test.rb
134
+ - lib/davinci_pdex_test_kit/pdex_payer_client/client_member_match_tests/client_member_match_submit_test.rb
135
+ - lib/davinci_pdex_test_kit/pdex_payer_client/client_member_match_tests/client_member_match_validation_test.rb
136
+ - lib/davinci_pdex_test_kit/pdex_payer_client/client_must_support_tests/client_member_match_must_support_submit_test.rb
137
+ - lib/davinci_pdex_test_kit/pdex_payer_client/client_must_support_tests/client_member_match_must_support_validation_test.rb
138
+ - lib/davinci_pdex_test_kit/pdex_payer_client/client_validation_test.rb
139
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/allergyintolerance_clinical_data_request_test.rb
140
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/careplan_clinical_data_request_test.rb
141
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/careteam_clinical_data_request_test.rb
142
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/condition_clinical_data_request_test.rb
143
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/device_clinical_data_request_test.rb
144
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/diagnosticreport_clinical_data_request_test.rb
145
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/documentreference_clinical_data_request_test.rb
146
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/encounter_clinical_data_request_test.rb
147
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/explanationofbenefit_clinical_data_request_test.rb
148
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/goal_clinical_data_request_test.rb
149
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/immunization_clinical_data_request_test.rb
150
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/initial_scratch_storing.rb
151
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/initial_wait_test.rb
152
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/location_clinical_data_request_test.rb
153
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/medicationdispense_clinical_data_request_test.rb
154
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/medicationrequest_clinical_data_request_test.rb
155
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/observation_clinical_data_request_test.rb
156
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/organization_clinical_data_request_test.rb
157
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/patient_clinical_data_request_test.rb
158
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/practitioner_clinical_data_request_test.rb
159
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/practitionerrole_clinical_data_request_test.rb
160
+ - lib/davinci_pdex_test_kit/pdex_payer_client/clinical_data_request_tests/procedure_clinical_data_request_test.rb
161
+ - lib/davinci_pdex_test_kit/pdex_payer_client/collection.rb
162
+ - lib/davinci_pdex_test_kit/pdex_payer_client_suite.rb
163
+ - lib/davinci_pdex_test_kit/pdex_payer_server/abstract_member_match_request_conformance_test.rb
164
+ - lib/davinci_pdex_test_kit/pdex_payer_server/abstract_member_match_request_local_references_test.rb
165
+ - lib/davinci_pdex_test_kit/pdex_payer_server/coverage_to_link_has_minimal_data_test.rb
166
+ - lib/davinci_pdex_test_kit/pdex_payer_server/coverage_to_link_must_support_test.rb
167
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_id_search_test.rb
168
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_identifier_search_test.rb
169
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_must_support_test.rb
170
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_patient_last_updated_search_test.rb
171
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_patient_service_date_search_test.rb
172
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_patient_type_search_test.rb
173
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_patient_use_search_test.rb
174
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_provenance_revinclude_search_test.rb
175
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_read_test.rb
176
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_reference_resolution_test.rb
177
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit/explanation_of_benefit_validation_test.rb
178
+ - lib/davinci_pdex_test_kit/pdex_payer_server/explanation_of_benefit_group.rb
179
+ - lib/davinci_pdex_test_kit/pdex_payer_server/export_patient_group.rb
180
+ - lib/davinci_pdex_test_kit/pdex_payer_server/export_validation_group.rb
181
+ - lib/davinci_pdex_test_kit/pdex_payer_server/multiple_member_matches_group.rb
182
+ - lib/davinci_pdex_test_kit/pdex_payer_server/no_member_matches_group.rb
183
+ - lib/davinci_pdex_test_kit/pdex_payer_server/workflow_clinical_data.rb
184
+ - lib/davinci_pdex_test_kit/pdex_payer_server/workflow_everything.rb
185
+ - lib/davinci_pdex_test_kit/pdex_payer_server/workflow_export.rb
186
+ - lib/davinci_pdex_test_kit/pdex_payer_server/workflow_member_match.rb
187
+ - lib/davinci_pdex_test_kit/pdex_payer_server_suite.rb
188
+ - lib/davinci_pdex_test_kit/pdex_provider_client_suite.rb
189
+ - lib/davinci_pdex_test_kit/tags.rb
190
+ - lib/davinci_pdex_test_kit/urls.rb
191
+ - lib/davinci_pdex_test_kit/user_input_response.rb
192
+ - lib/davinci_pdex_test_kit/version.rb
193
+ homepage: https://github.com/inferno-framework/davinci-pdex-test-kit/
194
+ licenses:
195
+ - Apache-2.0
196
+ metadata:
197
+ homepage_uri: https://github.com/inferno-framework/davinci-pdex-test-kit/
198
+ source_code_uri: https://github.com/inferno-framework/davinci-pdex-test-kit/
199
+ post_install_message:
200
+ rdoc_options: []
201
+ require_paths:
202
+ - lib
203
+ required_ruby_version: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: 3.1.2
208
+ required_rubygems_version: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
213
+ requirements: []
214
+ rubygems_version: 3.3.7
215
+ signing_key:
216
+ specification_version: 4
217
+ summary: Da Vinci PDex Test Kit
218
+ test_files: []