use crate::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum BenefitsInformationName {
#[serde(rename = "Active Coverage")]
ActiveCoverage,
#[serde(rename = "Active - Full Risk Capitation")]
ActiveFullRiskCapitation,
#[serde(rename = "Active - Services Capitated")]
ActiveServicesCapitated,
#[serde(rename = "Active - Services Capitated to Primary Care Physician")]
ActiveServicesCapitatedToPrimaryCarePhysician,
#[serde(rename = "Active - Pending Investigation")]
ActivePendingInvestigation,
#[serde(rename = "Inactive")]
Inactive,
#[serde(rename = "Inactive - Pending Eligibility Update")]
InactivePendingEligibilityUpdate,
#[serde(rename = "Inactive - Pending Investigation")]
InactivePendingInvestigation,
#[serde(rename = "Co-Insurance")]
CoInsurance,
#[serde(rename = "Co-Payment")]
CoPayment,
#[serde(rename = "Deductible")]
Deductible,
#[serde(rename = "Coverage Basis")]
CoverageBasis,
#[serde(rename = "Benefit Description")]
BenefitDescription,
#[serde(rename = "Exclusions")]
Exclusions,
#[serde(rename = "Limitations")]
Limitations,
#[serde(rename = "Out of Pocket (Stop Loss)")]
OutOfPocketLeftParenthesisStopLossRightParenthesis,
#[serde(rename = "Unlimited")]
Unlimited,
#[serde(rename = "Non-Covered")]
NonCovered,
#[serde(rename = "Cost Containment")]
CostContainment,
#[serde(rename = "Reserve")]
Reserve,
#[serde(rename = "Primary Care Provider")]
PrimaryCareProvider,
#[serde(rename = "Pre-existing Condition")]
PreExistingCondition,
#[serde(rename = "Managed Care Coordinator")]
ManagedCareCoordinator,
#[serde(rename = "Services Restricted to Following Provider")]
ServicesRestrictedToFollowingProvider,
#[serde(rename = "Not Deemed a Medical Necessity")]
NotDeemedAMedicalNecessity,
#[serde(rename = "Benefit Disclaimer")]
BenefitDisclaimer,
#[serde(rename = "Second Surgical Opinion Required")]
SecondSurgicalOpinionRequired,
#[serde(rename = "Other or Additional Payor")]
OtherOrAdditionalPayor,
#[serde(rename = "Prior Year(s) History")]
PriorYearLeftParenthesisSRightParenthesisHistory,
#[serde(rename = "Card(s) Reported Lost/Stolen")]
CardLeftParenthesisSRightParenthesisReportedLostSlashStolen,
#[serde(rename = "Contact Following Entity for Eligibility or Benefit Information")]
ContactFollowingEntityForEligibilityOrBenefitInformation,
#[serde(rename = "Cannot Process")]
CannotProcess,
#[serde(rename = "Other Source of Data")]
OtherSourceOfData,
#[serde(rename = "Health Care Facility")]
HealthCareFacility,
#[serde(rename = "Spend Down")]
SpendDown,
#[serde(untagged)]
UnknownValue(String),
}
impl std::fmt::Display for BenefitsInformationName {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::ActiveCoverage => write!(f, "Active Coverage"),
Self::ActiveFullRiskCapitation => write!(f, "Active - Full Risk Capitation"),
Self::ActiveServicesCapitated => write!(f, "Active - Services Capitated"),
Self::ActiveServicesCapitatedToPrimaryCarePhysician => write!(f, "Active - Services Capitated to Primary Care Physician"),
Self::ActivePendingInvestigation => write!(f, "Active - Pending Investigation"),
Self::Inactive => write!(f, "Inactive"),
Self::InactivePendingEligibilityUpdate => write!(f, "Inactive - Pending Eligibility Update"),
Self::InactivePendingInvestigation => write!(f, "Inactive - Pending Investigation"),
Self::CoInsurance => write!(f, "Co-Insurance"),
Self::CoPayment => write!(f, "Co-Payment"),
Self::Deductible => write!(f, "Deductible"),
Self::CoverageBasis => write!(f, "Coverage Basis"),
Self::BenefitDescription => write!(f, "Benefit Description"),
Self::Exclusions => write!(f, "Exclusions"),
Self::Limitations => write!(f, "Limitations"),
Self::OutOfPocketLeftParenthesisStopLossRightParenthesis => write!(f, "Out of Pocket (Stop Loss)"),
Self::Unlimited => write!(f, "Unlimited"),
Self::NonCovered => write!(f, "Non-Covered"),
Self::CostContainment => write!(f, "Cost Containment"),
Self::Reserve => write!(f, "Reserve"),
Self::PrimaryCareProvider => write!(f, "Primary Care Provider"),
Self::PreExistingCondition => write!(f, "Pre-existing Condition"),
Self::ManagedCareCoordinator => write!(f, "Managed Care Coordinator"),
Self::ServicesRestrictedToFollowingProvider => write!(f, "Services Restricted to Following Provider"),
Self::NotDeemedAMedicalNecessity => write!(f, "Not Deemed a Medical Necessity"),
Self::BenefitDisclaimer => write!(f, "Benefit Disclaimer"),
Self::SecondSurgicalOpinionRequired => write!(f, "Second Surgical Opinion Required"),
Self::OtherOrAdditionalPayor => write!(f, "Other or Additional Payor"),
Self::PriorYearLeftParenthesisSRightParenthesisHistory => write!(f, "Prior Year(s) History"),
Self::CardLeftParenthesisSRightParenthesisReportedLostSlashStolen => write!(f, "Card(s) Reported Lost/Stolen"),
Self::ContactFollowingEntityForEligibilityOrBenefitInformation => write!(f, "Contact Following Entity for Eligibility or Benefit Information"),
Self::CannotProcess => write!(f, "Cannot Process"),
Self::OtherSourceOfData => write!(f, "Other Source of Data"),
Self::HealthCareFacility => write!(f, "Health Care Facility"),
Self::SpendDown => write!(f, "Spend Down"),
Self::UnknownValue(s) => write!(f, "{s}"),
}
}
}
impl Default for BenefitsInformationName {
fn default() -> BenefitsInformationName {
Self::ActiveCoverage
}
}