/*
* Stedi Enrollment
*
* The Stedi Enrollment Service manages provider enrollments with healthcare payers. It tracks enrollment status, provider details, and supports batch enrollment processing to ensure providers have the necessary credentials before processing healthcare transactions.
*
* The version of the OpenAPI document: 2024-09-01
* Contact: healthcare@stedi.com
* Generated by: https://openapi-generator.tech
*/
use crate::enrollment::models;
use serde::{Deserialize, Serialize};
/// ExportEnrollmentsCsvRequestContent : Input for ExportEnrollmentsCsv operation. Supports the same filtering options as ListEnrollments (excluding pagination).
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ExportEnrollmentsCsvRequestContent {
/// Filter for enrollments created from a specific date. For example, if you set this to `2025-01-01T00:00:00Z`, Stedi returns enrollments with a `createdAt` timestamp on or after this date.
#[serde(rename = "createdFrom", skip_serializing_if = "Option::is_none")]
pub created_from: Option<chrono::DateTime<chrono::FixedOffset>>,
/// Filter for enrollments created before a specific date. The time must be later than `createdFrom`, if present. For example, if you set this to `2025-01-01T00:00:00Z`, Stedi only returns enrollments with a `createdAt` timestamp before this date.
#[serde(rename = "createdTo", skip_serializing_if = "Option::is_none")]
pub created_to: Option<chrono::DateTime<chrono::FixedOffset>>,
/// Filter for enrollments with properties matching a query string. You can provide all or part of a provider name, NPI, or tax ID. You can also provide all or part of a payer's [Stedi payer ID](https://www.stedi.com/docs/healthcare/supported-payers#stedi-payer-id) - primary payer IDs and aliases aren't supported. The search is case-insensitive and supports fuzzy matching. For example, providing `?filter=OS` returns enrollments with `provider.name` containing `os` or `OS` (such as `Joseph`) and Stedi payer IDs containing `OS`, such as `OSBLI` for OptumHealth Salt Lake County.
#[serde(rename = "filter", skip_serializing_if = "Option::is_none")]
pub filter: Option<String>,
/// The import ID associated with an enrollment through a CSV bulk import. This ID is only available for enrollments created through the CSV import process.
#[serde(rename = "importId", skip_serializing_if = "Option::is_none")]
pub import_id: Option<String>,
/// Filter for enrollments with a `lastEraReceivedAt` timestamp on or after this value. Only enrollments with an ERA are included. You can use this filter with `lastEraReceivedTo` to define a date range. For example, setting this to `2025-01-01T00:00:00Z` returns enrollments with a `lastEraReceivedAt` on or after that date.
#[serde(rename = "lastEraReceivedFrom", skip_serializing_if = "Option::is_none")]
pub last_era_received_from: Option<chrono::DateTime<chrono::FixedOffset>>,
/// Filter for enrollments with a `lastEraReceivedAt` timestamp on or before this value. Only enrollments with an ERA are included. This value must be later than `lastEraReceivedFrom`, if present. For example, setting this to `2025-01-01T00:00:00Z` returns enrollments with a `lastEraReceivedAt` on or before that date.
#[serde(rename = "lastEraReceivedTo", skip_serializing_if = "Option::is_none")]
pub last_era_received_to: Option<chrono::DateTime<chrono::FixedOffset>>,
/// Filter for enrollments associated with specific [Stedi payer IDs](https://www.stedi.com/docs/healthcare/supported-payers#stedi-payer-id). This parameter only supports Stedi payer IDs, not primary payer IDs or aliases. It also doesn't support fuzzy matching. The payer ID you provide must match the Stedi payer ID exactly, including capitalization. You must include leading `0` characters - for example, use `00540` for SISCO, not `540`. You can include this parameter multiple times to filter for multiple payer IDs. For example, `?payerIds=HGJLR&payerIds=EWDCI` returns enrollments associated with either of the specified payer IDs.
#[serde(rename = "payerIds", skip_serializing_if = "Option::is_none")]
pub payer_ids: Option<Vec<String>>,
/// Filter for enrollments associated with specific provider IDs. The provider ID is a UUID Stedi assigns to each provider record upon creation, allowing you to differentiate between provider records that share the same NPI. It's returned in the `id` property of the [Create Provider](/healthcare/api-reference/post-enrollment-create-provider#response.id) and [Retrieve Provider](/healthcare/api-reference/get-enrollment-provider#response.id) responses. You can include this parameter multiple times to filter for multiple providers. For example, `?providerIds=10334e76-f073-4b5d-8984-81d8e5107857&providerIds=10234e76-f067-4b5d-8984-81d8e5107123` returns enrollments associated with either of the specified providers.
#[serde(rename = "providerIds", skip_serializing_if = "Option::is_none")]
pub provider_ids: Option<Vec<String>>,
/// Filter for enrollments associated with specific provider names. This search is case-insensitive but doesn't support fuzzy matching. The name you provide must match the provider's name exactly, including spaces, but capitalization is ignored. You can include this parameter multiple times to filter for multiple names. For example, `?providerNames=John%20Doe&providerNames=Jane%20Doe` returns enrollments associated with either John Doe or Jane Doe.
#[serde(rename = "providerNames", skip_serializing_if = "Option::is_none")]
pub provider_names: Option<Vec<String>>,
/// Filter for enrollments associated with specific provider NPIs. You can include this parameter multiple times to filter for multiple NPIs. For example, `?providerNpis=1234567890&providerNpis=0987654321` returns enrollments associated with either of the specified NPIs.
#[serde(rename = "providerNpis", skip_serializing_if = "Option::is_none")]
pub provider_npis: Option<Vec<String>>,
/// Filter for enrollments associated with specific provider tax IDs. You can include this parameter multiple times to filter for multiple tax IDs. For example, `?providerTaxIds=123456789&providerTaxIds=987654321` returns enrollments associated with either of the specified tax IDs.
#[serde(rename = "providerTaxIds", skip_serializing_if = "Option::is_none")]
pub provider_tax_ids: Option<Vec<String>>,
/// Filter for enrollments with a requested effective date on or after this date, in YYYYMMDD format. For example, `?requestedEffectiveDateFrom=20260101` returns enrollments with a `requestedEffectiveDate` of `20260101` or later.
#[serde(rename = "requestedEffectiveDateFrom", skip_serializing_if = "Option::is_none")]
pub requested_effective_date_from: Option<String>,
/// Filter for enrollments with a requested effective date on or before this date, in YYYYMMDD format. The date must be the same as or later than `requestedEffectiveDateFrom`, if present. For example, `?requestedEffectiveDateTo=20261231` returns enrollments with a `requestedEffectiveDate` of `20261231` or earlier.
#[serde(rename = "requestedEffectiveDateTo", skip_serializing_if = "Option::is_none")]
pub requested_effective_date_to: Option<String>,
/// Filter for enrollments submitted through specific sources, such as the API or UI. You can include this parameter multiple times to filter for multiple sources. For example, `?sources=API&sources=UI` returns enrollments submitted through either of the specified sources.
#[serde(rename = "sources", skip_serializing_if = "Option::is_none")]
pub sources: Option<Vec<models::EnrollmentSource>>,
/// Filter for enrollments with specific statuses. You can include this parameter multiple times to filter for multiple statuses. For example, `?status=LIVE&status=REJECTED` returns enrollments that are in either `LIVE` or `REJECTED` status.
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<Vec<models::EnrollmentStatus>>,
/// Filter for enrollments whose status was last updated from a specific date. For example, if you set this to `2025-01-01T00:00:00Z`, Stedi returns enrollments with a `statusLastUpdatedAt` timestamp on or after this date.
#[serde(rename = "statusUpdatedFrom", skip_serializing_if = "Option::is_none")]
pub status_updated_from: Option<chrono::DateTime<chrono::FixedOffset>>,
/// Filter for enrollments whose status was last updated before a specific date. The time must be later than `statusUpdatedFrom`, if present. For example, if you set this to `2025-01-01T00:00:00Z`, Stedi only returns enrollments with a `statusLastUpdatedAt` before this date.
#[serde(rename = "statusUpdatedTo", skip_serializing_if = "Option::is_none")]
pub status_updated_to: Option<chrono::DateTime<chrono::FixedOffset>>,
/// Filter for enrollments for specific transaction types. You can include this parameter multiple times to filter for multiple types. For example, `?transactions=eligibilityCheck&transactions=claimStatus` returns enrollments for both 270/271 eligibility checks and 276/277 real-time claim status.
#[serde(rename = "transactions", skip_serializing_if = "Option::is_none")]
pub transactions: Option<Vec<models::TransactionType>>,
/// Filter for enrollments associated with specific submitter emails. This is the `userEmail` property in [Create Enrollment](https://www.stedi.com/docs/healthcare/api-reference/post-enrollment-create-enrollment) requests, or the **Stedi contact person** in the portal. This search is case-insensitive but doesn't support fuzzy matching. The email you provide must match the submitter's email exactly, but capitalization is ignored. You can include this parameter multiple times to filter for multiple submitter emails. For example, `?userEmails=alice%40example.com&userEmails=bob%40example.com` returns enrollments submitted by either `alice@example.com` or `bob@example.com`.
#[serde(rename = "userEmails", skip_serializing_if = "Option::is_none")]
pub user_emails: Option<Vec<String>>,
}
impl ExportEnrollmentsCsvRequestContent {
/// Input for ExportEnrollmentsCsv operation. Supports the same filtering options as ListEnrollments (excluding pagination).
pub fn new() -> ExportEnrollmentsCsvRequestContent {
ExportEnrollmentsCsvRequestContent {
created_from: None,
created_to: None,
filter: None,
import_id: None,
last_era_received_from: None,
last_era_received_to: None,
payer_ids: None,
provider_ids: None,
provider_names: None,
provider_npis: None,
provider_tax_ids: None,
requested_effective_date_from: None,
requested_effective_date_to: None,
sources: None,
status: None,
status_updated_from: None,
status_updated_to: None,
transactions: None,
user_emails: None,
}
}
}