davinci_pdex_test_kit 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
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: []