/*
* Stedi Healthcare
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document: 2024-04-01
* Contact: healthcare@stedi.com
* Generated by: https://openapi-generator.tech
*/
use crate::healthcare::models;
use serde::{Deserialize, Serialize};
/// ClaimFilingCode : A code identifying the type of claim. For example `DS` - Disability. - Use `OF` when submitting Medicare Part D claims. - Use `ZZ` when you don't know the type of insurance. - Some payers reject claims with invalid codes. If you're not sure which code to use, we recommend running a [real-time eligibility check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) and using the value returned in the most relevant `benefitsInformation.insuranceTypeCode` property. Note that the eligibility response uses a different code list than claims, so you may need to map that code value to the appropriate claim filing code. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-filing-indicator-codes) for a complete list.
/// A code identifying the type of claim. For example `DS` - Disability. - Use `OF` when submitting Medicare Part D claims. - Use `ZZ` when you don't know the type of insurance. - Some payers reject claims with invalid codes. If you're not sure which code to use, we recommend running a [real-time eligibility check](https://www.stedi.com/docs/healthcare/api-reference/post-healthcare-eligibility) and using the value returned in the most relevant `benefitsInformation.insuranceTypeCode` property. Note that the eligibility response uses a different code list than claims, so you may need to map that code value to the appropriate claim filing code. Visit [Claims code lists](https://www.stedi.com/docs/healthcare/claims-code-lists#claim-filing-indicator-codes) for a complete list.
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ClaimFilingCode {
#[serde(rename = "11")]
Variant11,
#[serde(rename = "12")]
Variant12,
#[serde(rename = "13")]
Variant13,
#[serde(rename = "14")]
Variant14,
#[serde(rename = "15")]
Variant15,
#[serde(rename = "16")]
Variant16,
#[serde(rename = "17")]
Variant17,
#[serde(rename = "AM")]
Am,
#[serde(rename = "BL")]
Bl,
#[serde(rename = "CH")]
Ch,
#[serde(rename = "CI")]
Ci,
#[serde(rename = "DS")]
Ds,
#[serde(rename = "FI")]
Fi,
#[serde(rename = "HM")]
Hm,
#[serde(rename = "LM")]
Lm,
#[serde(rename = "MA")]
Ma,
#[serde(rename = "MB")]
Mb,
#[serde(rename = "MC")]
Mc,
#[serde(rename = "OF")]
Of,
#[serde(rename = "TV")]
Tv,
#[serde(rename = "VA")]
Va,
#[serde(rename = "WC")]
Wc,
#[serde(rename = "ZZ")]
Zz,
/// Any value not defined in the spec (payers may return non-compliant values).
#[serde(untagged)]
UnknownValue(String),
}
impl std::fmt::Display for ClaimFilingCode {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Variant11 => write!(f, "11"),
Self::Variant12 => write!(f, "12"),
Self::Variant13 => write!(f, "13"),
Self::Variant14 => write!(f, "14"),
Self::Variant15 => write!(f, "15"),
Self::Variant16 => write!(f, "16"),
Self::Variant17 => write!(f, "17"),
Self::Am => write!(f, "AM"),
Self::Bl => write!(f, "BL"),
Self::Ch => write!(f, "CH"),
Self::Ci => write!(f, "CI"),
Self::Ds => write!(f, "DS"),
Self::Fi => write!(f, "FI"),
Self::Hm => write!(f, "HM"),
Self::Lm => write!(f, "LM"),
Self::Ma => write!(f, "MA"),
Self::Mb => write!(f, "MB"),
Self::Mc => write!(f, "MC"),
Self::Of => write!(f, "OF"),
Self::Tv => write!(f, "TV"),
Self::Va => write!(f, "VA"),
Self::Wc => write!(f, "WC"),
Self::Zz => write!(f, "ZZ"),
Self::UnknownValue(s) => write!(f, "{s}"),
}
}
}
impl Default for ClaimFilingCode {
fn default() -> ClaimFilingCode {
Self::Variant11
}
}