use crate::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RelatedEntityIdentifierName {
#[serde(rename = "Contracted Service Provider")]
ContractedServiceProvider,
#[serde(rename = "Preferred Provider Organization (PPO)")]
PreferredProviderOrganizationLeftParenthesisPpoRightParenthesis,
#[serde(rename = "Provider")]
Provider,
#[serde(rename = "Third-Party Administrator")]
ThirdPartyAdministrator,
#[serde(rename = "Employer")]
Employer,
#[serde(rename = "Other Physician")]
OtherPhysician,
#[serde(rename = "Facility")]
Facility,
#[serde(rename = "Gateway Provider")]
GatewayProvider,
#[serde(rename = "Group")]
Group,
#[serde(rename = "Independent Physicians Association (IPA)")]
IndependentPhysiciansAssociationLeftParenthesisIpaRightParenthesis,
#[serde(rename = "Insured or Subscriber")]
InsuredOrSubscriber,
#[serde(rename = "Legal Representative")]
LegalRepresentative,
#[serde(rename = "Origin Carrier")]
OriginCarrier,
#[serde(rename = "Primary Care Provider")]
PrimaryCareProvider,
#[serde(rename = "Prior Insurance Carrier")]
PriorInsuranceCarrier,
#[serde(rename = "Plan Sponsor")]
PlanSponsor,
#[serde(rename = "Payer")]
Payer,
#[serde(rename = "Primary Payer")]
PrimaryPayer,
#[serde(rename = "Secondary Payer")]
SecondaryPayer,
#[serde(rename = "Tertiary Payer")]
TertiaryPayer,
#[serde(rename = "Party Performing Verification")]
PartyPerformingVerification,
#[serde(rename = "Vendor")]
Vendor,
#[serde(rename = "Organization Completing Configuration Change")]
OrganizationCompletingConfigurationChange,
#[serde(rename = "Utilization Management Organization")]
UtilizationManagementOrganization,
#[serde(rename = "Managed Care Organization")]
ManagedCareOrganization,
#[serde(untagged)]
UnknownValue(String),
}
impl std::fmt::Display for RelatedEntityIdentifierName {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::ContractedServiceProvider => write!(f, "Contracted Service Provider"),
Self::PreferredProviderOrganizationLeftParenthesisPpoRightParenthesis => write!(f, "Preferred Provider Organization (PPO)"),
Self::Provider => write!(f, "Provider"),
Self::ThirdPartyAdministrator => write!(f, "Third-Party Administrator"),
Self::Employer => write!(f, "Employer"),
Self::OtherPhysician => write!(f, "Other Physician"),
Self::Facility => write!(f, "Facility"),
Self::GatewayProvider => write!(f, "Gateway Provider"),
Self::Group => write!(f, "Group"),
Self::IndependentPhysiciansAssociationLeftParenthesisIpaRightParenthesis => write!(f, "Independent Physicians Association (IPA)"),
Self::InsuredOrSubscriber => write!(f, "Insured or Subscriber"),
Self::LegalRepresentative => write!(f, "Legal Representative"),
Self::OriginCarrier => write!(f, "Origin Carrier"),
Self::PrimaryCareProvider => write!(f, "Primary Care Provider"),
Self::PriorInsuranceCarrier => write!(f, "Prior Insurance Carrier"),
Self::PlanSponsor => write!(f, "Plan Sponsor"),
Self::Payer => write!(f, "Payer"),
Self::PrimaryPayer => write!(f, "Primary Payer"),
Self::SecondaryPayer => write!(f, "Secondary Payer"),
Self::TertiaryPayer => write!(f, "Tertiary Payer"),
Self::PartyPerformingVerification => write!(f, "Party Performing Verification"),
Self::Vendor => write!(f, "Vendor"),
Self::OrganizationCompletingConfigurationChange => write!(f, "Organization Completing Configuration Change"),
Self::UtilizationManagementOrganization => write!(f, "Utilization Management Organization"),
Self::ManagedCareOrganization => write!(f, "Managed Care Organization"),
Self::UnknownValue(s) => write!(f, "{s}"),
}
}
}
impl Default for RelatedEntityIdentifierName {
fn default() -> RelatedEntityIdentifierName {
Self::ContractedServiceProvider
}
}