vericred_client 0.0.9 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +116 -13
  3. data/docs/Base.md +1 -1
  4. data/docs/Drug.md +1 -0
  5. data/docs/DrugCoverage.md +2 -1
  6. data/docs/DrugCoverageResponse.md +1 -1
  7. data/docs/DrugCoveragesApi.md +69 -0
  8. data/docs/DrugPackage.md +1 -0
  9. data/docs/DrugPackagesApi.md +66 -0
  10. data/docs/DrugSearchResponse.md +1 -1
  11. data/docs/DrugsApi.md +0 -61
  12. data/docs/Formulary.md +9 -0
  13. data/docs/FormularyDrugPackageResponse.md +10 -0
  14. data/docs/FormularyResponse.md +9 -0
  15. data/docs/Network.md +1 -1
  16. data/docs/NetworkDetails.md +10 -0
  17. data/docs/NetworkDetailsResponse.md +8 -0
  18. data/docs/NetworkSearchResponse.md +1 -1
  19. data/docs/NetworkSize.md +10 -0
  20. data/docs/NetworkSizesApi.md +124 -0
  21. data/docs/NetworksApi.md +55 -0
  22. data/docs/Plan.md +6 -4
  23. data/docs/PlanSearchResponse.md +2 -2
  24. data/docs/PlanSearchResponseMeta.md +9 -0
  25. data/docs/PlanSearchResult.md +6 -4
  26. data/docs/PlansApi.md +12 -10
  27. data/docs/Provider.md +1 -6
  28. data/docs/ProviderDetails.md +31 -0
  29. data/docs/ProviderGeocode.md +10 -0
  30. data/docs/ProvidersApi.md +61 -7
  31. data/docs/ProvidersGeocodeResponse.md +9 -0
  32. data/docs/ProvidersSearchResponse.md +1 -1
  33. data/docs/RequestPlanFindApplicant.md +2 -0
  34. data/docs/RequestPlanFindDrugPackage.md +1 -0
  35. data/docs/RequestProvidersSearch.md +5 -2
  36. data/docs/StateNetworkSizeRequest.md +9 -0
  37. data/docs/StateNetworkSizeResponse.md +9 -0
  38. data/docs/ZipCountiesApi.md +56 -1
  39. data/lib/vericred_client.rb +103 -2
  40. data/lib/vericred_client/api/drug_coverages_api.rb +295 -0
  41. data/lib/vericred_client/api/drug_packages_api.rb +289 -0
  42. data/lib/vericred_client/api/drugs_api.rb +88 -68
  43. data/lib/vericred_client/api/network_sizes_api.rb +348 -0
  44. data/lib/vericred_client/api/networks_api.rb +145 -1
  45. data/lib/vericred_client/api/plans_api.rb +108 -15
  46. data/lib/vericred_client/api/providers_api.rb +155 -9
  47. data/lib/vericred_client/api/zip_counties_api.rb +148 -4
  48. data/lib/vericred_client/api_client.rb +110 -21
  49. data/lib/vericred_client/api_error.rb +88 -1
  50. data/lib/vericred_client/configuration.rb +88 -1
  51. data/lib/vericred_client/models/applicant.rb +90 -3
  52. data/lib/vericred_client/models/base.rb +91 -4
  53. data/lib/vericred_client/models/carrier.rb +90 -3
  54. data/lib/vericred_client/models/carrier_subsidiary.rb +90 -3
  55. data/lib/vericred_client/models/county.rb +90 -3
  56. data/lib/vericred_client/models/county_bulk.rb +90 -3
  57. data/lib/vericred_client/models/drug.rb +101 -4
  58. data/lib/vericred_client/models/drug_coverage.rb +111 -14
  59. data/lib/vericred_client/models/drug_coverage_response.rb +91 -4
  60. data/lib/vericred_client/models/drug_package.rb +104 -7
  61. data/lib/vericred_client/models/drug_search_response.rb +91 -4
  62. data/lib/vericred_client/models/formulary.rb +404 -0
  63. data/lib/vericred_client/models/formulary_drug_package_response.rb +414 -0
  64. data/lib/vericred_client/models/formulary_response.rb +406 -0
  65. data/lib/vericred_client/models/meta.rb +90 -3
  66. data/lib/vericred_client/models/network.rb +91 -4
  67. data/lib/vericred_client/models/network_details.rb +416 -0
  68. data/lib/vericred_client/models/{pricing.rb → network_details_response.rb} +99 -112
  69. data/lib/vericred_client/models/network_search_response.rb +91 -4
  70. data/lib/vericred_client/models/network_size.rb +414 -0
  71. data/lib/vericred_client/models/plan.rb +115 -8
  72. data/lib/vericred_client/models/plan_county.rb +90 -3
  73. data/lib/vericred_client/models/plan_county_bulk.rb +90 -3
  74. data/lib/vericred_client/models/plan_search_response.rb +93 -6
  75. data/lib/vericred_client/models/plan_search_response_meta.rb +404 -0
  76. data/lib/vericred_client/models/plan_search_result.rb +115 -8
  77. data/lib/vericred_client/models/plan_show_response.rb +90 -3
  78. data/lib/vericred_client/models/provider.rb +101 -66
  79. data/lib/vericred_client/models/provider_details.rb +628 -0
  80. data/lib/vericred_client/models/provider_geocode.rb +414 -0
  81. data/lib/vericred_client/models/provider_show_response.rb +90 -3
  82. data/lib/vericred_client/models/providers_geocode_response.rb +406 -0
  83. data/lib/vericred_client/models/providers_search_response.rb +91 -4
  84. data/lib/vericred_client/models/rating_area.rb +90 -3
  85. data/lib/vericred_client/models/request_plan_find.rb +90 -3
  86. data/lib/vericred_client/models/request_plan_find_applicant.rb +114 -7
  87. data/lib/vericred_client/models/request_plan_find_drug_package.rb +104 -7
  88. data/lib/vericred_client/models/request_plan_find_provider.rb +90 -3
  89. data/lib/vericred_client/models/request_providers_search.rb +143 -26
  90. data/lib/vericred_client/models/service_area.rb +90 -3
  91. data/lib/vericred_client/models/service_area_zip_county.rb +90 -3
  92. data/lib/vericred_client/models/state.rb +90 -3
  93. data/lib/vericred_client/models/state_network_size_request.rb +408 -0
  94. data/lib/vericred_client/models/state_network_size_response.rb +406 -0
  95. data/lib/vericred_client/models/zip_code.rb +90 -3
  96. data/lib/vericred_client/models/zip_counties_response.rb +90 -3
  97. data/lib/vericred_client/models/zip_county.rb +90 -3
  98. data/lib/vericred_client/models/zip_county_bulk.rb +90 -3
  99. data/lib/vericred_client/models/zip_county_response.rb +90 -3
  100. data/lib/vericred_client/version.rb +89 -2
  101. data/spec/api/drug_coverages_api_spec.rb +254 -0
  102. data/spec/api/drug_packages_api_spec.rb +253 -0
  103. data/spec/api/drugs_api_spec.rb +88 -15
  104. data/spec/api/network_sizes_api_spec.rb +266 -0
  105. data/spec/api/networks_api_spec.rb +100 -1
  106. data/spec/api/plans_api_spec.rb +92 -4
  107. data/spec/api/providers_api_spec.rb +102 -3
  108. data/spec/api/zip_counties_api_spec.rb +101 -2
  109. data/spec/api_client_spec.rb +91 -25
  110. data/spec/configuration_spec.rb +88 -1
  111. data/spec/models/applicant_spec.rb +88 -1
  112. data/spec/models/base_spec.rb +88 -1
  113. data/spec/models/carrier_spec.rb +88 -1
  114. data/spec/models/carrier_subsidiary_spec.rb +88 -1
  115. data/spec/models/county_bulk_spec.rb +88 -1
  116. data/spec/models/county_spec.rb +88 -1
  117. data/spec/models/drug_coverage_response_spec.rb +88 -1
  118. data/spec/models/drug_coverage_spec.rb +95 -2
  119. data/spec/models/drug_package_spec.rb +94 -1
  120. data/spec/models/drug_search_response_spec.rb +88 -1
  121. data/spec/models/drug_spec.rb +94 -1
  122. data/spec/models/formulary_drug_package_response_spec.rb +259 -0
  123. data/spec/models/formulary_response_spec.rb +253 -0
  124. data/spec/models/formulary_spec.rb +253 -0
  125. data/spec/models/meta_spec.rb +88 -1
  126. data/spec/models/network_details_response_spec.rb +247 -0
  127. data/spec/models/network_details_spec.rb +259 -0
  128. data/spec/models/network_search_response_spec.rb +88 -1
  129. data/spec/models/network_size_spec.rb +259 -0
  130. data/spec/models/network_spec.rb +88 -1
  131. data/spec/models/plan_county_bulk_spec.rb +88 -1
  132. data/spec/models/plan_county_spec.rb +88 -1
  133. data/spec/models/plan_search_response_meta_spec.rb +253 -0
  134. data/spec/models/plan_search_response_spec.rb +88 -1
  135. data/spec/models/plan_search_result_spec.rb +100 -1
  136. data/spec/models/plan_show_response_spec.rb +88 -1
  137. data/spec/models/plan_spec.rb +100 -1
  138. data/spec/models/provider_details_spec.rb +385 -0
  139. data/spec/models/provider_geocode_spec.rb +259 -0
  140. data/spec/models/provider_show_response_spec.rb +88 -1
  141. data/spec/models/provider_spec.rb +94 -37
  142. data/spec/models/providers_geocode_response_spec.rb +253 -0
  143. data/spec/models/providers_search_response_spec.rb +88 -1
  144. data/spec/models/rating_area_spec.rb +88 -1
  145. data/spec/models/request_plan_find_applicant_spec.rb +100 -1
  146. data/spec/models/request_plan_find_drug_package_spec.rb +94 -1
  147. data/spec/models/request_plan_find_provider_spec.rb +88 -1
  148. data/spec/models/request_plan_find_spec.rb +88 -1
  149. data/spec/models/request_providers_search_spec.rb +109 -4
  150. data/spec/models/service_area_spec.rb +88 -1
  151. data/spec/models/service_area_zip_county_spec.rb +88 -1
  152. data/spec/models/state_network_size_request_spec.rb +253 -0
  153. data/spec/models/state_network_size_response_spec.rb +253 -0
  154. data/spec/models/state_spec.rb +88 -1
  155. data/spec/models/zip_code_spec.rb +88 -1
  156. data/spec/models/zip_counties_response_spec.rb +88 -1
  157. data/spec/models/zip_county_bulk_spec.rb +88 -1
  158. data/spec/models/zip_county_response_spec.rb +88 -1
  159. data/spec/models/zip_county_spec.rb +88 -1
  160. data/spec/spec_helper.rb +88 -1
  161. data/vericred_client.gemspec +90 -2
  162. metadata +66 -16
  163. data/docs/Pricing.md +0 -18
  164. data/spec/models/pricing_spec.rb +0 -220
@@ -6,13 +6,20 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net) to
9
+ Visit our [Developer Portal](https://developers.vericred.com) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for
13
13
  Production and another for our Sandbox (select the appropriate Plan when
14
14
  you create the Application).
15
15
 
16
+ ## SDKs
17
+
18
+ Our API follows standard REST conventions, so you can use any HTTP client
19
+ to integrate with us. You will likely find it easier to use one of our
20
+ [autogenerated SDKs](https://github.com/vericred/?query=vericred-),
21
+ which we make available for several common programming languages.
22
+
16
23
  ## Authentication
17
24
 
18
25
  To authenticate, pass the API Key you created in the Developer Portal as
@@ -108,6 +115,86 @@ The response would be
108
115
  }
109
116
  ```
110
117
 
118
+ ## Benefits summary format
119
+ Benefit cost-share strings are formatted to capture:
120
+ * Network tiers
121
+ * Compound or conditional cost-share
122
+ * Limits on the cost-share
123
+ * Benefit-specific maximum out-of-pocket costs
124
+
125
+ **Example #1**
126
+ As an example, we would represent [this Summary of Benefits & Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/33602TX0780032.pdf) as:
127
+
128
+ * **Hospital stay facility fees**:
129
+ - Network Provider: `$400 copay/admit plus 20% coinsurance`
130
+ - Out-of-Network Provider: `$1,500 copay/admit plus 50% coinsurance`
131
+ - Vericred's format for this benefit: `In-Network: $400 before deductible then 20% after deductible / Out-of-Network: $1,500 before deductible then 50% after deductible`
132
+
133
+ * **Rehabilitation services:**
134
+ - Network Provider: `20% coinsurance`
135
+ - Out-of-Network Provider: `50% coinsurance`
136
+ - Limitations & Exceptions: `35 visit maximum per benefit period combined with Chiropractic care.`
137
+ - Vericred's format for this benefit: `In-Network: 20% after deductible / Out-of-Network: 50% after deductible | limit: 35 visit(s) per Benefit Period`
138
+
139
+ **Example #2**
140
+ In [this other Summary of Benefits & Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/40733CA0110568.pdf), the **specialty_drugs** cost-share has a maximum out-of-pocket for in-network pharmacies.
141
+ * **Specialty drugs:**
142
+ - Network Provider: `40% coinsurance up to a $500 maximum for up to a 30 day supply`
143
+ - Out-of-Network Provider `Not covered`
144
+ - Vericred's format for this benefit: `In-Network: 40% after deductible, up to $500 per script / Out-of-Network: 100%`
145
+
146
+ **BNF**
147
+
148
+ Here's a description of the benefits summary string, represented as a context-free grammar:
149
+
150
+ ```
151
+ root ::= coverage
152
+
153
+ coverage ::= (simple_coverage | tiered_coverage) (space pipe space coverage_limitation)?
154
+ tiered_coverage ::= tier (space slash space tier)*
155
+ tier ::= tier_name colon space (tier_coverage | not_applicable)
156
+ tier_coverage ::= simple_coverage (space (then | or | and) space simple_coverage)* tier_limitation?
157
+ simple_coverage ::= (pre_coverage_limitation space)? coverage_amount (space post_coverage_limitation)? (comma? space coverage_condition)?
158
+ coverage_limitation ::= "limit" colon space (((simple_coverage | simple_limitation) (semicolon space see_carrier_documentation)?) | see_carrier_documentation | waived_if_admitted)
159
+ waived_if_admitted ::= ("copay" space)? "waived if admitted"
160
+ simple_limitation ::= pre_coverage_limitation space "copay applies"
161
+ tier_name ::= "In-Network-Tier-2" | "Out-of-Network" | "In-Network"
162
+ tier_limitation ::= comma space "up to" space (currency | (integer space time_unit plural?)) (space post_coverage_limitation)?
163
+ coverage_amount ::= currency | unlimited | included | unknown | percentage | (digits space (treatment_unit | time_unit) plural?)
164
+ pre_coverage_limitation ::= first space digits space time_unit plural?
165
+ post_coverage_limitation ::= (((then space currency) | "per condition") space)? "per" space (treatment_unit | (integer space time_unit) | time_unit) plural?
166
+ coverage_condition ::= ("before deductible" | "after deductible" | "penalty" | allowance | "in-state" | "out-of-state") (space allowance)?
167
+ allowance ::= upto_allowance | after_allowance
168
+ upto_allowance ::= "up to" space (currency space)? "allowance"
169
+ after_allowance ::= "after" space (currency space)? "allowance"
170
+ see_carrier_documentation ::= "see carrier documentation for more information"
171
+ unknown ::= "unknown"
172
+ unlimited ::= /[uU]nlimited/
173
+ included ::= /[iI]ncluded in [mM]edical/
174
+ time_unit ::= /[hH]our/ | (((/[cC]alendar/ | /[cC]ontract/) space)? /[yY]ear/) | /[mM]onth/ | /[dD]ay/ | /[wW]eek/ | /[vV]isit/ | /[lL]ifetime/ | ((((/[bB]enefit/ plural?) | /[eE]ligibility/) space)? /[pP]eriod/)
175
+ treatment_unit ::= /[pP]erson/ | /[gG]roup/ | /[cC]ondition/ | /[sS]cript/ | /[vV]isit/ | /[eE]xam/ | /[iI]tem/ | /[sS]tay/ | /[tT]reatment/ | /[aA]dmission/ | /[eE]pisode/
176
+ comma ::= ","
177
+ colon ::= ":"
178
+ semicolon ::= ";"
179
+ pipe ::= "|"
180
+ slash ::= "/"
181
+ plural ::= "(s)" | "s"
182
+ then ::= "then" | ("," space) | space
183
+ or ::= "or"
184
+ and ::= "and"
185
+ not_applicable ::= "Not Applicable" | "N/A" | "NA"
186
+ first ::= "first"
187
+ currency ::= "$" number
188
+ percentage ::= number "%"
189
+ number ::= float | integer
190
+ float ::= digits "." digits
191
+ integer ::= /[0-9]/+ (comma_int | under_int)*
192
+ comma_int ::= ("," /[0-9]/*3) !"_"
193
+ under_int ::= ("_" /[0-9]/*3) !","
194
+ digits ::= /[0-9]/+ ("_" /[0-9]/+)*
195
+ space ::= /[ \t]/+
196
+ ```
197
+
111
198
 
112
199
 
113
200
  OpenAPI spec version: 1.0.0
@@ -201,5 +288,62 @@ module VericredClient
201
288
  end
202
289
  return data, status_code, headers
203
290
  end
291
+
292
+ # Network Details
293
+ # A network is a list of the doctors, other health care providers, and hospitals that a plan has contracted with to provide medical care to its members.
294
+ # @param id Primary key of the network
295
+ # @param [Hash] opts the optional parameters
296
+ # @return [NetworkDetailsResponse]
297
+ def show_network(id, opts = {})
298
+ data, _status_code, _headers = show_network_with_http_info(id, opts)
299
+ return data
300
+ end
301
+
302
+ # Network Details
303
+ # A network is a list of the doctors, other health care providers, and hospitals that a plan has contracted with to provide medical care to its members.
304
+ # @param id Primary key of the network
305
+ # @param [Hash] opts the optional parameters
306
+ # @return [Array<(NetworkDetailsResponse, Fixnum, Hash)>] NetworkDetailsResponse data, response status code and response headers
307
+ def show_network_with_http_info(id, opts = {})
308
+ if @api_client.config.debugging
309
+ @api_client.config.logger.debug "Calling API: NetworksApi.show_network ..."
310
+ end
311
+ # verify the required parameter 'id' is set
312
+ fail ArgumentError, "Missing the required parameter 'id' when calling NetworksApi.show_network" if id.nil?
313
+ # resource path
314
+ local_var_path = "/networks/{id}".sub('{format}','json').sub('{' + 'id' + '}', id.to_s)
315
+
316
+ # query parameters
317
+ query_params = {}
318
+
319
+ # header parameters
320
+ header_params = {}
321
+
322
+ # HTTP header 'Accept' (if needed)
323
+ local_header_accept = ['application/json']
324
+ local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result
325
+
326
+ # HTTP header 'Content-Type'
327
+ local_header_content_type = ['application/json']
328
+ header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)
329
+
330
+ # form parameters
331
+ form_params = {}
332
+
333
+ # http body (model)
334
+ post_body = nil
335
+ auth_names = ['Vericred-Api-Key']
336
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
337
+ :header_params => header_params,
338
+ :query_params => query_params,
339
+ :form_params => form_params,
340
+ :body => post_body,
341
+ :auth_names => auth_names,
342
+ :return_type => 'NetworkDetailsResponse')
343
+ if @api_client.config.debugging
344
+ @api_client.config.logger.debug "API called: NetworksApi#show_network\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
345
+ end
346
+ return data, status_code, headers
347
+ end
204
348
  end
205
349
  end
@@ -6,13 +6,20 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net) to
9
+ Visit our [Developer Portal](https://developers.vericred.com) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for
13
13
  Production and another for our Sandbox (select the appropriate Plan when
14
14
  you create the Application).
15
15
 
16
+ ## SDKs
17
+
18
+ Our API follows standard REST conventions, so you can use any HTTP client
19
+ to integrate with us. You will likely find it easier to use one of our
20
+ [autogenerated SDKs](https://github.com/vericred/?query=vericred-),
21
+ which we make available for several common programming languages.
22
+
16
23
  ## Authentication
17
24
 
18
25
  To authenticate, pass the API Key you created in the Developer Portal as
@@ -108,6 +115,86 @@ The response would be
108
115
  }
109
116
  ```
110
117
 
118
+ ## Benefits summary format
119
+ Benefit cost-share strings are formatted to capture:
120
+ * Network tiers
121
+ * Compound or conditional cost-share
122
+ * Limits on the cost-share
123
+ * Benefit-specific maximum out-of-pocket costs
124
+
125
+ **Example #1**
126
+ As an example, we would represent [this Summary of Benefits &amp; Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/33602TX0780032.pdf) as:
127
+
128
+ * **Hospital stay facility fees**:
129
+ - Network Provider: `$400 copay/admit plus 20% coinsurance`
130
+ - Out-of-Network Provider: `$1,500 copay/admit plus 50% coinsurance`
131
+ - Vericred's format for this benefit: `In-Network: $400 before deductible then 20% after deductible / Out-of-Network: $1,500 before deductible then 50% after deductible`
132
+
133
+ * **Rehabilitation services:**
134
+ - Network Provider: `20% coinsurance`
135
+ - Out-of-Network Provider: `50% coinsurance`
136
+ - Limitations & Exceptions: `35 visit maximum per benefit period combined with Chiropractic care.`
137
+ - Vericred's format for this benefit: `In-Network: 20% after deductible / Out-of-Network: 50% after deductible | limit: 35 visit(s) per Benefit Period`
138
+
139
+ **Example #2**
140
+ In [this other Summary of Benefits &amp; Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/40733CA0110568.pdf), the **specialty_drugs** cost-share has a maximum out-of-pocket for in-network pharmacies.
141
+ * **Specialty drugs:**
142
+ - Network Provider: `40% coinsurance up to a $500 maximum for up to a 30 day supply`
143
+ - Out-of-Network Provider `Not covered`
144
+ - Vericred's format for this benefit: `In-Network: 40% after deductible, up to $500 per script / Out-of-Network: 100%`
145
+
146
+ **BNF**
147
+
148
+ Here's a description of the benefits summary string, represented as a context-free grammar:
149
+
150
+ ```
151
+ root ::= coverage
152
+
153
+ coverage ::= (simple_coverage | tiered_coverage) (space pipe space coverage_limitation)?
154
+ tiered_coverage ::= tier (space slash space tier)*
155
+ tier ::= tier_name colon space (tier_coverage | not_applicable)
156
+ tier_coverage ::= simple_coverage (space (then | or | and) space simple_coverage)* tier_limitation?
157
+ simple_coverage ::= (pre_coverage_limitation space)? coverage_amount (space post_coverage_limitation)? (comma? space coverage_condition)?
158
+ coverage_limitation ::= "limit" colon space (((simple_coverage | simple_limitation) (semicolon space see_carrier_documentation)?) | see_carrier_documentation | waived_if_admitted)
159
+ waived_if_admitted ::= ("copay" space)? "waived if admitted"
160
+ simple_limitation ::= pre_coverage_limitation space "copay applies"
161
+ tier_name ::= "In-Network-Tier-2" | "Out-of-Network" | "In-Network"
162
+ tier_limitation ::= comma space "up to" space (currency | (integer space time_unit plural?)) (space post_coverage_limitation)?
163
+ coverage_amount ::= currency | unlimited | included | unknown | percentage | (digits space (treatment_unit | time_unit) plural?)
164
+ pre_coverage_limitation ::= first space digits space time_unit plural?
165
+ post_coverage_limitation ::= (((then space currency) | "per condition") space)? "per" space (treatment_unit | (integer space time_unit) | time_unit) plural?
166
+ coverage_condition ::= ("before deductible" | "after deductible" | "penalty" | allowance | "in-state" | "out-of-state") (space allowance)?
167
+ allowance ::= upto_allowance | after_allowance
168
+ upto_allowance ::= "up to" space (currency space)? "allowance"
169
+ after_allowance ::= "after" space (currency space)? "allowance"
170
+ see_carrier_documentation ::= "see carrier documentation for more information"
171
+ unknown ::= "unknown"
172
+ unlimited ::= /[uU]nlimited/
173
+ included ::= /[iI]ncluded in [mM]edical/
174
+ time_unit ::= /[hH]our/ | (((/[cC]alendar/ | /[cC]ontract/) space)? /[yY]ear/) | /[mM]onth/ | /[dD]ay/ | /[wW]eek/ | /[vV]isit/ | /[lL]ifetime/ | ((((/[bB]enefit/ plural?) | /[eE]ligibility/) space)? /[pP]eriod/)
175
+ treatment_unit ::= /[pP]erson/ | /[gG]roup/ | /[cC]ondition/ | /[sS]cript/ | /[vV]isit/ | /[eE]xam/ | /[iI]tem/ | /[sS]tay/ | /[tT]reatment/ | /[aA]dmission/ | /[eE]pisode/
176
+ comma ::= ","
177
+ colon ::= ":"
178
+ semicolon ::= ";"
179
+ pipe ::= "|"
180
+ slash ::= "/"
181
+ plural ::= "(s)" | "s"
182
+ then ::= "then" | ("," space) | space
183
+ or ::= "or"
184
+ and ::= "and"
185
+ not_applicable ::= "Not Applicable" | "N/A" | "NA"
186
+ first ::= "first"
187
+ currency ::= "$" number
188
+ percentage ::= number "%"
189
+ number ::= float | integer
190
+ float ::= digits "." digits
191
+ integer ::= /[0-9]/+ (comma_int | under_int)*
192
+ comma_int ::= ("," /[0-9]/*3) !"_"
193
+ under_int ::= ("_" /[0-9]/*3) !","
194
+ digits ::= /[0-9]/+ ("_" /[0-9]/+)*
195
+ space ::= /[ \t]/+
196
+ ```
197
+
111
198
 
112
199
 
113
200
  OpenAPI spec version: 1.0.0
@@ -139,24 +226,26 @@ module VericredClient
139
226
  end
140
227
 
141
228
  # Find Plans
142
- # ### Location Information Searching for a set of plans requires a `zip_code` and `fips_code` code. These are used to determine pricing and availabity of health plans. This endpoint is paginated. Optionally, you may provide a list of Applicants or Providers ### Applicants This is a list of people who will be covered by the plan. We use this list to calculate the premium. You must include `age` and can include `smoker`, which also factors into pricing in some states. Applicants *must* include an age. If smoker is omitted, its value is assumed to be false. #### Multiple Applicants To get pricing for multiple applicants, just append multiple sets of data to the URL with the age and smoking status of each applicant next to each other. For example, given two applicants - one age 32 and a non-smoker and one age 29 and a smoker, you could use the following request `GET /plans?zip_code=07451&fips_code=33025&applicants[][age]=32&applicants[][age]=29&applicants[][smoker]=true` It would also be acceptible to include `applicants[][smoker]=false` after the first applicant's age. ### Providers We identify Providers (Doctors) by their National Practitioner Index number (NPI). If you pass a list of Providers, keyed by their NPI number, we will return a list of which Providers are in and out of network for each plan returned. For example, if we had two providers with the NPI numbers `12345` and `23456` you would make the following request `GET /plans?zip_code=07451&fips_code=33025&providers[][npi]=12345&providers[][npi]=23456` ### Enrollment Date To calculate plan pricing and availability, we default to the current date as the enrollment date. To specify a date in the future (or the past), pass a string with the format `YYYY-MM-DD` in the `enrollment_date` parameter. `GET /plans?zip_code=07451&fips_code=33025&enrollment_date=2016-01-01` ### Subsidy On-marketplace plans are eligible for a subsidy based on the `household_size` and `household_income` of the applicants. If you pass those values, we will calculate the `subsidized_premium` and return it for each plan. If no values are provided, the `subsidized_premium` will be the same as the `premium` `GET /plans?zip_code=07451&fips_code=33025&household_size=4&household_income=40000` ### Sorting Plans can be sorted by the `premium`, `carrier_name`, `level`, and `plan_type` fields, by either ascending (as `asc`) or descending (as `dsc) sort under the `sort` field. For example, to sort plans by level, the sort parameter would be `level:asc`.
229
+ # ### Location Information Searching for a set of plans requires a `zip_code` and `fips_code` code. These are used to determine pricing and availabity of health plans. This endpoint is paginated. Optionally, you may provide a list of Applicants or Providers ### Applicants This is a list of people who will be covered by the plan. We use this list to calculate the premium. You must include `age` and can include `smoker`, which also factors into pricing in some states. Applicants *must* include an age. If smoker is omitted, its value is assumed to be false. #### Multiple Applicants To get pricing for multiple applicants, just append multiple sets of data to the URL with the age and smoking status of each applicant next to each other. For example, given two applicants - one age 32 and a non-smoker and one age 29 and a smoker, you could use the following request `GET /plans?zip_code=07451&fips_code=33025&applicants[][age]=32&applicants[][age]=29&applicants[][smoker]=true` It would also be acceptible to include `applicants[][smoker]=false` after the first applicant's age. ### Providers We identify Providers (Doctors) by their National Practitioner Index number (NPI). If you pass a list of Providers, keyed by their NPI number, we will return a list of which Providers are in and out of network for each plan returned. For example, if we had two providers with the NPI numbers `12345` and `23456` you would make the following request `GET /plans?zip_code=07451&fips_code=33025&providers[][npi]=12345&providers[][npi]=23456` ### Enrollment Date To calculate plan pricing and availability, we default to the current date as the enrollment date. To specify a date in the future (or the past), pass a string with the format `YYYY-MM-DD` in the `enrollment_date` parameter. `GET /plans?zip_code=07451&fips_code=33025&enrollment_date=2016-01-01` ### Subsidy On-marketplace plans are eligible for a subsidy based on the `household_size` and `household_income` of the applicants. If you pass those values, we will calculate the `subsidized_premium` and return it for each plan. If no values are provided, the `subsidized_premium` will be the same as the `premium` `GET /plans?zip_code=07451&fips_code=33025&household_size=4&household_income=40000` ### Sorting Plans can be sorted by the `premium`, `carrier_name`, `level`, and `plan_type` fields, by either ascending (as `asc`) or descending (as `dsc`) sort under the `sort` field. For example, to sort plans by level, the sort parameter would be `level:asc`. ### Drug coverages Are included along with the rest of the plan data. See [the description below](#drugcoverages) for more details.
230
+ # @param body
143
231
  # @param [Hash] opts the optional parameters
144
- # @option opts [RequestPlanFind] :body
145
232
  # @return [PlanSearchResponse]
146
- def find_plans(opts = {})
147
- data, _status_code, _headers = find_plans_with_http_info(opts)
233
+ def find_plans(body, opts = {})
234
+ data, _status_code, _headers = find_plans_with_http_info(body, opts)
148
235
  return data
149
236
  end
150
237
 
151
238
  # Find Plans
152
- # ### Location Information Searching for a set of plans requires a &#x60;zip_code&#x60; and &#x60;fips_code&#x60; code. These are used to determine pricing and availabity of health plans. This endpoint is paginated. Optionally, you may provide a list of Applicants or Providers ### Applicants This is a list of people who will be covered by the plan. We use this list to calculate the premium. You must include &#x60;age&#x60; and can include &#x60;smoker&#x60;, which also factors into pricing in some states. Applicants *must* include an age. If smoker is omitted, its value is assumed to be false. #### Multiple Applicants To get pricing for multiple applicants, just append multiple sets of data to the URL with the age and smoking status of each applicant next to each other. For example, given two applicants - one age 32 and a non-smoker and one age 29 and a smoker, you could use the following request &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;applicants[][age]&#x3D;32&amp;applicants[][age]&#x3D;29&amp;applicants[][smoker]&#x3D;true&#x60; It would also be acceptible to include &#x60;applicants[][smoker]&#x3D;false&#x60; after the first applicant&#39;s age. ### Providers We identify Providers (Doctors) by their National Practitioner Index number (NPI). If you pass a list of Providers, keyed by their NPI number, we will return a list of which Providers are in and out of network for each plan returned. For example, if we had two providers with the NPI numbers &#x60;12345&#x60; and &#x60;23456&#x60; you would make the following request &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;providers[][npi]&#x3D;12345&amp;providers[][npi]&#x3D;23456&#x60; ### Enrollment Date To calculate plan pricing and availability, we default to the current date as the enrollment date. To specify a date in the future (or the past), pass a string with the format &#x60;YYYY-MM-DD&#x60; in the &#x60;enrollment_date&#x60; parameter. &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;enrollment_date&#x3D;2016-01-01&#x60; ### Subsidy On-marketplace plans are eligible for a subsidy based on the &#x60;household_size&#x60; and &#x60;household_income&#x60; of the applicants. If you pass those values, we will calculate the &#x60;subsidized_premium&#x60; and return it for each plan. If no values are provided, the &#x60;subsidized_premium&#x60; will be the same as the &#x60;premium&#x60; &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;household_size&#x3D;4&amp;household_income&#x3D;40000&#x60; ### Sorting Plans can be sorted by the &#x60;premium&#x60;, &#x60;carrier_name&#x60;, &#x60;level&#x60;, and &#x60;plan_type&#x60; fields, by either ascending (as &#x60;asc&#x60;) or descending (as &#x60;dsc) sort under the &#x60;sort&#x60; field. For example, to sort plans by level, the sort parameter would be &#x60;level:asc&#x60;.
239
+ # ### Location Information Searching for a set of plans requires a &#x60;zip_code&#x60; and &#x60;fips_code&#x60; code. These are used to determine pricing and availabity of health plans. This endpoint is paginated. Optionally, you may provide a list of Applicants or Providers ### Applicants This is a list of people who will be covered by the plan. We use this list to calculate the premium. You must include &#x60;age&#x60; and can include &#x60;smoker&#x60;, which also factors into pricing in some states. Applicants *must* include an age. If smoker is omitted, its value is assumed to be false. #### Multiple Applicants To get pricing for multiple applicants, just append multiple sets of data to the URL with the age and smoking status of each applicant next to each other. For example, given two applicants - one age 32 and a non-smoker and one age 29 and a smoker, you could use the following request &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;applicants[][age]&#x3D;32&amp;applicants[][age]&#x3D;29&amp;applicants[][smoker]&#x3D;true&#x60; It would also be acceptible to include &#x60;applicants[][smoker]&#x3D;false&#x60; after the first applicant&#39;s age. ### Providers We identify Providers (Doctors) by their National Practitioner Index number (NPI). If you pass a list of Providers, keyed by their NPI number, we will return a list of which Providers are in and out of network for each plan returned. For example, if we had two providers with the NPI numbers &#x60;12345&#x60; and &#x60;23456&#x60; you would make the following request &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;providers[][npi]&#x3D;12345&amp;providers[][npi]&#x3D;23456&#x60; ### Enrollment Date To calculate plan pricing and availability, we default to the current date as the enrollment date. To specify a date in the future (or the past), pass a string with the format &#x60;YYYY-MM-DD&#x60; in the &#x60;enrollment_date&#x60; parameter. &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;enrollment_date&#x3D;2016-01-01&#x60; ### Subsidy On-marketplace plans are eligible for a subsidy based on the &#x60;household_size&#x60; and &#x60;household_income&#x60; of the applicants. If you pass those values, we will calculate the &#x60;subsidized_premium&#x60; and return it for each plan. If no values are provided, the &#x60;subsidized_premium&#x60; will be the same as the &#x60;premium&#x60; &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;household_size&#x3D;4&amp;household_income&#x3D;40000&#x60; ### Sorting Plans can be sorted by the &#x60;premium&#x60;, &#x60;carrier_name&#x60;, &#x60;level&#x60;, and &#x60;plan_type&#x60; fields, by either ascending (as &#x60;asc&#x60;) or descending (as &#x60;dsc&#x60;) sort under the &#x60;sort&#x60; field. For example, to sort plans by level, the sort parameter would be &#x60;level:asc&#x60;. ### Drug coverages Are included along with the rest of the plan data. See [the description below](#drugcoverages) for more details.
240
+ # @param body
153
241
  # @param [Hash] opts the optional parameters
154
- # @option opts [RequestPlanFind] :body
155
242
  # @return [Array<(PlanSearchResponse, Fixnum, Hash)>] PlanSearchResponse data, response status code and response headers
156
- def find_plans_with_http_info(opts = {})
243
+ def find_plans_with_http_info(body, opts = {})
157
244
  if @api_client.config.debugging
158
245
  @api_client.config.logger.debug "Calling API: PlansApi.find_plans ..."
159
246
  end
247
+ # verify the required parameter 'body' is set
248
+ fail ArgumentError, "Missing the required parameter 'body' when calling PlansApi.find_plans" if body.nil?
160
249
  # resource path
161
250
  local_var_path = "/plans/search".sub('{format}','json')
162
251
 
@@ -178,7 +267,7 @@ module VericredClient
178
267
  form_params = {}
179
268
 
180
269
  # http body (model)
181
- post_body = @api_client.object_to_http_body(opts[:'body'])
270
+ post_body = @api_client.object_to_http_body(body)
182
271
  auth_names = ['Vericred-Api-Key']
183
272
  data, status_code, headers = @api_client.call_api(:POST, local_var_path,
184
273
  :header_params => header_params,
@@ -194,26 +283,30 @@ module VericredClient
194
283
  end
195
284
 
196
285
  # Show Plan
197
- # Show the details of an individual Plan. This includes deductibles, maximums out of pocket, and co-pay/coinsurance for benefits
286
+ # Show the details of an individual Plan. This includes deductibles, maximums out of pocket, and co-pay/coinsurance for benefits (See [Benefits summary format](#header-benefits-summary-format) above.)
287
+ # @param id ID of the Plan
198
288
  # @param [Hash] opts the optional parameters
199
289
  # @option opts [Integer] :year Plan year (defaults to current year)
200
290
  # @return [PlanShowResponse]
201
- def show_plan(opts = {})
202
- data, _status_code, _headers = show_plan_with_http_info(opts)
291
+ def show_plan(id, opts = {})
292
+ data, _status_code, _headers = show_plan_with_http_info(id, opts)
203
293
  return data
204
294
  end
205
295
 
206
296
  # Show Plan
207
- # Show the details of an individual Plan. This includes deductibles, maximums out of pocket, and co-pay/coinsurance for benefits
297
+ # Show the details of an individual Plan. This includes deductibles, maximums out of pocket, and co-pay/coinsurance for benefits (See [Benefits summary format](#header-benefits-summary-format) above.)
298
+ # @param id ID of the Plan
208
299
  # @param [Hash] opts the optional parameters
209
300
  # @option opts [Integer] :year Plan year (defaults to current year)
210
301
  # @return [Array<(PlanShowResponse, Fixnum, Hash)>] PlanShowResponse data, response status code and response headers
211
- def show_plan_with_http_info(opts = {})
302
+ def show_plan_with_http_info(id, opts = {})
212
303
  if @api_client.config.debugging
213
304
  @api_client.config.logger.debug "Calling API: PlansApi.show_plan ..."
214
305
  end
306
+ # verify the required parameter 'id' is set
307
+ fail ArgumentError, "Missing the required parameter 'id' when calling PlansApi.show_plan" if id.nil?
215
308
  # resource path
216
- local_var_path = "/plans/{id}".sub('{format}','json')
309
+ local_var_path = "/plans/{id}".sub('{format}','json').sub('{' + 'id' + '}', id.to_s)
217
310
 
218
311
  # query parameters
219
312
  query_params = {}
@@ -6,13 +6,20 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net) to
9
+ Visit our [Developer Portal](https://developers.vericred.com) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for
13
13
  Production and another for our Sandbox (select the appropriate Plan when
14
14
  you create the Application).
15
15
 
16
+ ## SDKs
17
+
18
+ Our API follows standard REST conventions, so you can use any HTTP client
19
+ to integrate with us. You will likely find it easier to use one of our
20
+ [autogenerated SDKs](https://github.com/vericred/?query=vericred-),
21
+ which we make available for several common programming languages.
22
+
16
23
  ## Authentication
17
24
 
18
25
  To authenticate, pass the API Key you created in the Developer Portal as
@@ -108,6 +115,86 @@ The response would be
108
115
  }
109
116
  ```
110
117
 
118
+ ## Benefits summary format
119
+ Benefit cost-share strings are formatted to capture:
120
+ * Network tiers
121
+ * Compound or conditional cost-share
122
+ * Limits on the cost-share
123
+ * Benefit-specific maximum out-of-pocket costs
124
+
125
+ **Example #1**
126
+ As an example, we would represent [this Summary of Benefits &amp; Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/33602TX0780032.pdf) as:
127
+
128
+ * **Hospital stay facility fees**:
129
+ - Network Provider: `$400 copay/admit plus 20% coinsurance`
130
+ - Out-of-Network Provider: `$1,500 copay/admit plus 50% coinsurance`
131
+ - Vericred's format for this benefit: `In-Network: $400 before deductible then 20% after deductible / Out-of-Network: $1,500 before deductible then 50% after deductible`
132
+
133
+ * **Rehabilitation services:**
134
+ - Network Provider: `20% coinsurance`
135
+ - Out-of-Network Provider: `50% coinsurance`
136
+ - Limitations & Exceptions: `35 visit maximum per benefit period combined with Chiropractic care.`
137
+ - Vericred's format for this benefit: `In-Network: 20% after deductible / Out-of-Network: 50% after deductible | limit: 35 visit(s) per Benefit Period`
138
+
139
+ **Example #2**
140
+ In [this other Summary of Benefits &amp; Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/40733CA0110568.pdf), the **specialty_drugs** cost-share has a maximum out-of-pocket for in-network pharmacies.
141
+ * **Specialty drugs:**
142
+ - Network Provider: `40% coinsurance up to a $500 maximum for up to a 30 day supply`
143
+ - Out-of-Network Provider `Not covered`
144
+ - Vericred's format for this benefit: `In-Network: 40% after deductible, up to $500 per script / Out-of-Network: 100%`
145
+
146
+ **BNF**
147
+
148
+ Here's a description of the benefits summary string, represented as a context-free grammar:
149
+
150
+ ```
151
+ root ::= coverage
152
+
153
+ coverage ::= (simple_coverage | tiered_coverage) (space pipe space coverage_limitation)?
154
+ tiered_coverage ::= tier (space slash space tier)*
155
+ tier ::= tier_name colon space (tier_coverage | not_applicable)
156
+ tier_coverage ::= simple_coverage (space (then | or | and) space simple_coverage)* tier_limitation?
157
+ simple_coverage ::= (pre_coverage_limitation space)? coverage_amount (space post_coverage_limitation)? (comma? space coverage_condition)?
158
+ coverage_limitation ::= "limit" colon space (((simple_coverage | simple_limitation) (semicolon space see_carrier_documentation)?) | see_carrier_documentation | waived_if_admitted)
159
+ waived_if_admitted ::= ("copay" space)? "waived if admitted"
160
+ simple_limitation ::= pre_coverage_limitation space "copay applies"
161
+ tier_name ::= "In-Network-Tier-2" | "Out-of-Network" | "In-Network"
162
+ tier_limitation ::= comma space "up to" space (currency | (integer space time_unit plural?)) (space post_coverage_limitation)?
163
+ coverage_amount ::= currency | unlimited | included | unknown | percentage | (digits space (treatment_unit | time_unit) plural?)
164
+ pre_coverage_limitation ::= first space digits space time_unit plural?
165
+ post_coverage_limitation ::= (((then space currency) | "per condition") space)? "per" space (treatment_unit | (integer space time_unit) | time_unit) plural?
166
+ coverage_condition ::= ("before deductible" | "after deductible" | "penalty" | allowance | "in-state" | "out-of-state") (space allowance)?
167
+ allowance ::= upto_allowance | after_allowance
168
+ upto_allowance ::= "up to" space (currency space)? "allowance"
169
+ after_allowance ::= "after" space (currency space)? "allowance"
170
+ see_carrier_documentation ::= "see carrier documentation for more information"
171
+ unknown ::= "unknown"
172
+ unlimited ::= /[uU]nlimited/
173
+ included ::= /[iI]ncluded in [mM]edical/
174
+ time_unit ::= /[hH]our/ | (((/[cC]alendar/ | /[cC]ontract/) space)? /[yY]ear/) | /[mM]onth/ | /[dD]ay/ | /[wW]eek/ | /[vV]isit/ | /[lL]ifetime/ | ((((/[bB]enefit/ plural?) | /[eE]ligibility/) space)? /[pP]eriod/)
175
+ treatment_unit ::= /[pP]erson/ | /[gG]roup/ | /[cC]ondition/ | /[sS]cript/ | /[vV]isit/ | /[eE]xam/ | /[iI]tem/ | /[sS]tay/ | /[tT]reatment/ | /[aA]dmission/ | /[eE]pisode/
176
+ comma ::= ","
177
+ colon ::= ":"
178
+ semicolon ::= ";"
179
+ pipe ::= "|"
180
+ slash ::= "/"
181
+ plural ::= "(s)" | "s"
182
+ then ::= "then" | ("," space) | space
183
+ or ::= "or"
184
+ and ::= "and"
185
+ not_applicable ::= "Not Applicable" | "N/A" | "NA"
186
+ first ::= "first"
187
+ currency ::= "$" number
188
+ percentage ::= number "%"
189
+ number ::= float | integer
190
+ float ::= digits "." digits
191
+ integer ::= /[0-9]/+ (comma_int | under_int)*
192
+ comma_int ::= ("," /[0-9]/*3) !"_"
193
+ under_int ::= ("_" /[0-9]/*3) !","
194
+ digits ::= /[0-9]/+ ("_" /[0-9]/+)*
195
+ space ::= /[ \t]/+
196
+ ```
197
+
111
198
 
112
199
 
113
200
  OpenAPI spec version: 1.0.0
@@ -202,24 +289,26 @@ module VericredClient
202
289
  end
203
290
 
204
291
  # Find Providers
205
- # All `Provider` searches require a `zip_code`, which we use for weighting the search results to favor `Provider`s that are near the user. For example, we would want \"Dr. John Smith\" who is 5 miles away to appear before \"Dr. John Smith\" who is 100 miles away. The weighting also allows for non-exact matches. In our prior example, we would want \"Dr. Jon Smith\" who is 2 miles away to appear before the exact match \"Dr. John Smith\" who is 100 miles away because it is more likely that the user just entered an incorrect name. The free text search also supports Specialty name search and \"body part\" Specialty name search. So, searching \"John Smith nose\" would return \"Dr. John Smith\", the ENT Specialist before \"Dr. John Smith\" the Internist.
292
+ # ### Provider Details All searches can take a `search_term`, which is used as a component in the score (and thus the ranking/order) of the results. This is combined with the proximity to the location in ranking results. For example, we would want \"Dr. John Smith\" who is 5 miles away from a given Zip Code to appear before \"Dr. John Smith\" who is 100 miles away. The weighting also allows for non-exact matches. In our prior example, we would want \"Dr. Jon Smith\" who is 2 miles away to appear before the exact match \"Dr. John Smith\" who is 100 miles away because it is more likely that the user just entered an incorrect name. The free text search also supports Specialty name search and \"body part\" Specialty name search. So, searching \"John Smith nose\" would return \"Dr. John Smith\", the ENT Specialist before \"Dr. John Smith\" the Internist. In addition, we can filter `Providers` by whether or not they accept *any* insurance. Our data set includes over 4 million `Providers`, some of whom do not accept any insurance at all. This filter makes it more likely that the user will find his or her practitioner in some cases. We can also use `min_score` to omit less relevant results. This makes sense in the case where your application wants to display *all* of the results returned regardless of how many there are. Otherwise, using our default `min_score` and pagination should be sufficient. ### Location Information All `Provider` searches that do *not* specify `plan_ids` or `network_ids`require some type of location information. We use this information either to weight results or to filter results, depending on the type. #### Zip Code When providing the `zip_code` parameter, we order the `Providers` returned based on their score, which incorporates their proximity to the given Zip Code and the closeness of match to the search text. If a `radius` is also provided, we filter out `Providers` who are outside of that radius from the center of the Zip Code provided #### Polygon When providing the `polygon` parameter, we filter providers who are outside the bounds of the shape provided. This is mutually exclusive with `zip_code` and `radius`. ### Plan/Network Information We can also filter based on `Plan` and `Network` participation. These filters are mutually exclusive and return the union of the resulting sets for each `Plan` or `Network`. I.e. if you provider Plan A and Plan B, you will receive `Providers` who accept *either* `Plan`. The same is true for `Networks`. ### Examples *Find Dr. Foo near Brooklyn* `{ \"search_term\": \"Foo\", \"zip_code\": \"11215\" }` *Find all Providers within 5 miles of Brooklyn who accept a Plan* `{ \"zip_code\": \"11215\", \"radius\": 5, \"hios_ids\": [\"88582NY0230001\"] }` *Find all providers on a map of Brooklyn ordered by a combination of proximity to the center point of the map and relevance to the search term \"ENT\"* ``` { \"polygon\": [ {\"lon\":-74.0126609802,\"lat\":40.6275684851 }, {\"lon\":-74.0126609802,\"lat\":40.7097269508 }, {\"lon\":-73.9367866516,\"lat\":40.7097269508 }, {\"lon\":-73.9367866516,\"lat\":40.6275684851 } ], \"search_term\" : \"ENT\" } ```
293
+ # @param body
206
294
  # @param [Hash] opts the optional parameters
207
- # @option opts [RequestProvidersSearch] :body
208
295
  # @return [ProvidersSearchResponse]
209
- def get_providers(opts = {})
210
- data, _status_code, _headers = get_providers_with_http_info(opts)
296
+ def get_providers(body, opts = {})
297
+ data, _status_code, _headers = get_providers_with_http_info(body, opts)
211
298
  return data
212
299
  end
213
300
 
214
301
  # Find Providers
215
- # All &#x60;Provider&#x60; searches require a &#x60;zip_code&#x60;, which we use for weighting the search results to favor &#x60;Provider&#x60;s that are near the user. For example, we would want \&quot;Dr. John Smith\&quot; who is 5 miles away to appear before \&quot;Dr. John Smith\&quot; who is 100 miles away. The weighting also allows for non-exact matches. In our prior example, we would want \&quot;Dr. Jon Smith\&quot; who is 2 miles away to appear before the exact match \&quot;Dr. John Smith\&quot; who is 100 miles away because it is more likely that the user just entered an incorrect name. The free text search also supports Specialty name search and \&quot;body part\&quot; Specialty name search. So, searching \&quot;John Smith nose\&quot; would return \&quot;Dr. John Smith\&quot;, the ENT Specialist before \&quot;Dr. John Smith\&quot; the Internist.
302
+ # ### Provider Details All searches can take a &#x60;search_term&#x60;, which is used as a component in the score (and thus the ranking/order) of the results. This is combined with the proximity to the location in ranking results. For example, we would want \&quot;Dr. John Smith\&quot; who is 5 miles away from a given Zip Code to appear before \&quot;Dr. John Smith\&quot; who is 100 miles away. The weighting also allows for non-exact matches. In our prior example, we would want \&quot;Dr. Jon Smith\&quot; who is 2 miles away to appear before the exact match \&quot;Dr. John Smith\&quot; who is 100 miles away because it is more likely that the user just entered an incorrect name. The free text search also supports Specialty name search and \&quot;body part\&quot; Specialty name search. So, searching \&quot;John Smith nose\&quot; would return \&quot;Dr. John Smith\&quot;, the ENT Specialist before \&quot;Dr. John Smith\&quot; the Internist. In addition, we can filter &#x60;Providers&#x60; by whether or not they accept *any* insurance. Our data set includes over 4 million &#x60;Providers&#x60;, some of whom do not accept any insurance at all. This filter makes it more likely that the user will find his or her practitioner in some cases. We can also use &#x60;min_score&#x60; to omit less relevant results. This makes sense in the case where your application wants to display *all* of the results returned regardless of how many there are. Otherwise, using our default &#x60;min_score&#x60; and pagination should be sufficient. ### Location Information All &#x60;Provider&#x60; searches that do *not* specify &#x60;plan_ids&#x60; or &#x60;network_ids&#x60;require some type of location information. We use this information either to weight results or to filter results, depending on the type. #### Zip Code When providing the &#x60;zip_code&#x60; parameter, we order the &#x60;Providers&#x60; returned based on their score, which incorporates their proximity to the given Zip Code and the closeness of match to the search text. If a &#x60;radius&#x60; is also provided, we filter out &#x60;Providers&#x60; who are outside of that radius from the center of the Zip Code provided #### Polygon When providing the &#x60;polygon&#x60; parameter, we filter providers who are outside the bounds of the shape provided. This is mutually exclusive with &#x60;zip_code&#x60; and &#x60;radius&#x60;. ### Plan/Network Information We can also filter based on &#x60;Plan&#x60; and &#x60;Network&#x60; participation. These filters are mutually exclusive and return the union of the resulting sets for each &#x60;Plan&#x60; or &#x60;Network&#x60;. I.e. if you provider Plan A and Plan B, you will receive &#x60;Providers&#x60; who accept *either* &#x60;Plan&#x60;. The same is true for &#x60;Networks&#x60;. ### Examples *Find Dr. Foo near Brooklyn* &#x60;{ \&quot;search_term\&quot;: \&quot;Foo\&quot;, \&quot;zip_code\&quot;: \&quot;11215\&quot; }&#x60; *Find all Providers within 5 miles of Brooklyn who accept a Plan* &#x60;{ \&quot;zip_code\&quot;: \&quot;11215\&quot;, \&quot;radius\&quot;: 5, \&quot;hios_ids\&quot;: [\&quot;88582NY0230001\&quot;] }&#x60; *Find all providers on a map of Brooklyn ordered by a combination of proximity to the center point of the map and relevance to the search term \&quot;ENT\&quot;* &#x60;&#x60;&#x60; { \&quot;polygon\&quot;: [ {\&quot;lon\&quot;:-74.0126609802,\&quot;lat\&quot;:40.6275684851 }, {\&quot;lon\&quot;:-74.0126609802,\&quot;lat\&quot;:40.7097269508 }, {\&quot;lon\&quot;:-73.9367866516,\&quot;lat\&quot;:40.7097269508 }, {\&quot;lon\&quot;:-73.9367866516,\&quot;lat\&quot;:40.6275684851 } ], \&quot;search_term\&quot; : \&quot;ENT\&quot; } &#x60;&#x60;&#x60;
303
+ # @param body
216
304
  # @param [Hash] opts the optional parameters
217
- # @option opts [RequestProvidersSearch] :body
218
305
  # @return [Array<(ProvidersSearchResponse, Fixnum, Hash)>] ProvidersSearchResponse data, response status code and response headers
219
- def get_providers_with_http_info(opts = {})
306
+ def get_providers_with_http_info(body, opts = {})
220
307
  if @api_client.config.debugging
221
308
  @api_client.config.logger.debug "Calling API: ProvidersApi.get_providers ..."
222
309
  end
310
+ # verify the required parameter 'body' is set
311
+ fail ArgumentError, "Missing the required parameter 'body' when calling ProvidersApi.get_providers" if body.nil?
223
312
  # resource path
224
313
  local_var_path = "/providers/search".sub('{format}','json')
225
314
 
@@ -241,7 +330,7 @@ module VericredClient
241
330
  form_params = {}
242
331
 
243
332
  # http body (model)
244
- post_body = @api_client.object_to_http_body(opts[:'body'])
333
+ post_body = @api_client.object_to_http_body(body)
245
334
  auth_names = ['Vericred-Api-Key']
246
335
  data, status_code, headers = @api_client.call_api(:POST, local_var_path,
247
336
  :header_params => header_params,
@@ -255,5 +344,62 @@ module VericredClient
255
344
  end
256
345
  return data, status_code, headers
257
346
  end
347
+
348
+ # Find Providers
349
+ # ### Provider Details All searches can take a `search_term`, which is used as a component in the score (and thus the ranking/order) of the results. This is combined with the proximity to the location in ranking results. For example, we would want \"Dr. John Smith\" who is 5 miles away from a given Zip Code to appear before \"Dr. John Smith\" who is 100 miles away. The weighting also allows for non-exact matches. In our prior example, we would want \"Dr. Jon Smith\" who is 2 miles away to appear before the exact match \"Dr. John Smith\" who is 100 miles away because it is more likely that the user just entered an incorrect name. The free text search also supports Specialty name search and \"body part\" Specialty name search. So, searching \"John Smith nose\" would return \"Dr. John Smith\", the ENT Specialist before \"Dr. John Smith\" the Internist. In addition, we can filter `Providers` by whether or not they accept *any* insurance. Our data set includes over 4 million `Providers`, some of whom do not accept any insurance at all. This filter makes it more likely that the user will find his or her practitioner in some cases. We can also use `min_score` to omit less relevant results. This makes sense in the case where your application wants to display *all* of the results returned regardless of how many there are. Otherwise, using our default `min_score` and pagination should be sufficient. ### Location Information All `Provider` searches that do *not* specify `plan_ids` or `network_ids`require some type of location information. We use this information either to weight results or to filter results, depending on the type. #### Zip Code When providing the `zip_code` parameter, we order the `Providers` returned based on their score, which incorporates their proximity to the given Zip Code and the closeness of match to the search text. If a `radius` is also provided, we filter out `Providers` who are outside of that radius from the center of the Zip Code provided #### Polygon When providing the `polygon` parameter, we filter providers who are outside the bounds of the shape provided. This is mutually exclusive with `zip_code` and `radius`. ### Plan/Network Information We can also filter based on `Plan` and `Network` participation. These filters are mutually exclusive and return the union of the resulting sets for each `Plan` or `Network`. I.e. if you provider Plan A and Plan B, you will receive `Providers` who accept *either* `Plan`. The same is true for `Networks`. ### Examples *Find Dr. Foo near Brooklyn* `{ \"search_term\": \"Foo\", \"zip_code\": \"11215\" }` *Find all Providers within 5 miles of Brooklyn who accept a Plan* `{ \"zip_code\": \"11215\", \"radius\": 5, \"hios_ids\": [\"88582NY0230001\"] }` *Find all providers on a map of Brooklyn ordered by a combination of proximity to the center point of the map and relevance to the search term \"ENT\"* ``` { \"polygon\": [ {\"lon\":-74.0126609802,\"lat\":40.6275684851 }, {\"lon\":-74.0126609802,\"lat\":40.7097269508 }, {\"lon\":-73.9367866516,\"lat\":40.7097269508 }, {\"lon\":-73.9367866516,\"lat\":40.6275684851 } ], \"search_term\" : \"ENT\" } ```
350
+ # @param body
351
+ # @param [Hash] opts the optional parameters
352
+ # @return [ProvidersGeocodeResponse]
353
+ def get_providers_0(body, opts = {})
354
+ data, _status_code, _headers = get_providers_0_with_http_info(body, opts)
355
+ return data
356
+ end
357
+
358
+ # Find Providers
359
+ # ### Provider Details All searches can take a &#x60;search_term&#x60;, which is used as a component in the score (and thus the ranking/order) of the results. This is combined with the proximity to the location in ranking results. For example, we would want \&quot;Dr. John Smith\&quot; who is 5 miles away from a given Zip Code to appear before \&quot;Dr. John Smith\&quot; who is 100 miles away. The weighting also allows for non-exact matches. In our prior example, we would want \&quot;Dr. Jon Smith\&quot; who is 2 miles away to appear before the exact match \&quot;Dr. John Smith\&quot; who is 100 miles away because it is more likely that the user just entered an incorrect name. The free text search also supports Specialty name search and \&quot;body part\&quot; Specialty name search. So, searching \&quot;John Smith nose\&quot; would return \&quot;Dr. John Smith\&quot;, the ENT Specialist before \&quot;Dr. John Smith\&quot; the Internist. In addition, we can filter &#x60;Providers&#x60; by whether or not they accept *any* insurance. Our data set includes over 4 million &#x60;Providers&#x60;, some of whom do not accept any insurance at all. This filter makes it more likely that the user will find his or her practitioner in some cases. We can also use &#x60;min_score&#x60; to omit less relevant results. This makes sense in the case where your application wants to display *all* of the results returned regardless of how many there are. Otherwise, using our default &#x60;min_score&#x60; and pagination should be sufficient. ### Location Information All &#x60;Provider&#x60; searches that do *not* specify &#x60;plan_ids&#x60; or &#x60;network_ids&#x60;require some type of location information. We use this information either to weight results or to filter results, depending on the type. #### Zip Code When providing the &#x60;zip_code&#x60; parameter, we order the &#x60;Providers&#x60; returned based on their score, which incorporates their proximity to the given Zip Code and the closeness of match to the search text. If a &#x60;radius&#x60; is also provided, we filter out &#x60;Providers&#x60; who are outside of that radius from the center of the Zip Code provided #### Polygon When providing the &#x60;polygon&#x60; parameter, we filter providers who are outside the bounds of the shape provided. This is mutually exclusive with &#x60;zip_code&#x60; and &#x60;radius&#x60;. ### Plan/Network Information We can also filter based on &#x60;Plan&#x60; and &#x60;Network&#x60; participation. These filters are mutually exclusive and return the union of the resulting sets for each &#x60;Plan&#x60; or &#x60;Network&#x60;. I.e. if you provider Plan A and Plan B, you will receive &#x60;Providers&#x60; who accept *either* &#x60;Plan&#x60;. The same is true for &#x60;Networks&#x60;. ### Examples *Find Dr. Foo near Brooklyn* &#x60;{ \&quot;search_term\&quot;: \&quot;Foo\&quot;, \&quot;zip_code\&quot;: \&quot;11215\&quot; }&#x60; *Find all Providers within 5 miles of Brooklyn who accept a Plan* &#x60;{ \&quot;zip_code\&quot;: \&quot;11215\&quot;, \&quot;radius\&quot;: 5, \&quot;hios_ids\&quot;: [\&quot;88582NY0230001\&quot;] }&#x60; *Find all providers on a map of Brooklyn ordered by a combination of proximity to the center point of the map and relevance to the search term \&quot;ENT\&quot;* &#x60;&#x60;&#x60; { \&quot;polygon\&quot;: [ {\&quot;lon\&quot;:-74.0126609802,\&quot;lat\&quot;:40.6275684851 }, {\&quot;lon\&quot;:-74.0126609802,\&quot;lat\&quot;:40.7097269508 }, {\&quot;lon\&quot;:-73.9367866516,\&quot;lat\&quot;:40.7097269508 }, {\&quot;lon\&quot;:-73.9367866516,\&quot;lat\&quot;:40.6275684851 } ], \&quot;search_term\&quot; : \&quot;ENT\&quot; } &#x60;&#x60;&#x60;
360
+ # @param body
361
+ # @param [Hash] opts the optional parameters
362
+ # @return [Array<(ProvidersGeocodeResponse, Fixnum, Hash)>] ProvidersGeocodeResponse data, response status code and response headers
363
+ def get_providers_0_with_http_info(body, opts = {})
364
+ if @api_client.config.debugging
365
+ @api_client.config.logger.debug "Calling API: ProvidersApi.get_providers_0 ..."
366
+ end
367
+ # verify the required parameter 'body' is set
368
+ fail ArgumentError, "Missing the required parameter 'body' when calling ProvidersApi.get_providers_0" if body.nil?
369
+ # resource path
370
+ local_var_path = "/providers/search/geocode".sub('{format}','json')
371
+
372
+ # query parameters
373
+ query_params = {}
374
+
375
+ # header parameters
376
+ header_params = {}
377
+
378
+ # HTTP header 'Accept' (if needed)
379
+ local_header_accept = []
380
+ local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result
381
+
382
+ # HTTP header 'Content-Type'
383
+ local_header_content_type = []
384
+ header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)
385
+
386
+ # form parameters
387
+ form_params = {}
388
+
389
+ # http body (model)
390
+ post_body = @api_client.object_to_http_body(body)
391
+ auth_names = ['Vericred-Api-Key']
392
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path,
393
+ :header_params => header_params,
394
+ :query_params => query_params,
395
+ :form_params => form_params,
396
+ :body => post_body,
397
+ :auth_names => auth_names,
398
+ :return_type => 'ProvidersGeocodeResponse')
399
+ if @api_client.config.debugging
400
+ @api_client.config.logger.debug "API called: ProvidersApi#get_providers_0\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
401
+ end
402
+ return data, status_code, headers
403
+ end
258
404
  end
259
405
  end