use crate::healthcare::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ClaimLevelEntityIdentifierCodeValue {
#[serde(rename = "Dependent")]
Dependent,
#[serde(rename = "Employer")]
Employer,
#[serde(rename = "Receiver")]
Receiver,
#[serde(rename = "Submitter")]
Submitter,
#[serde(rename = "Attending Physician")]
AttendingPhysician,
#[serde(rename = "Operating Physician")]
OperatingPhysician,
#[serde(rename = "Other Physician")]
OtherPhysician,
#[serde(rename = "Service Location")]
ServiceLocation,
#[serde(rename = "Rendering Provider")]
RenderingProvider,
#[serde(rename = "Billing Provider")]
BillingProvider,
#[serde(rename = "Pay-to Provider")]
PayToProvider,
#[serde(rename = "Provider")]
Provider,
#[serde(rename = "Home Health Care")]
HomeHealthCare,
#[serde(rename = "Ordering Physician")]
OrderingPhysician,
#[serde(rename = "Referring Provider")]
ReferringProvider,
#[serde(rename = "Supervising Physician")]
SupervisingPhysician,
#[serde(rename = "Facility")]
Facility,
#[serde(rename = "Other Insured")]
OtherInsured,
#[serde(rename = "Subscriber")]
Subscriber,
#[serde(rename = "Insured or Subscriber")]
InsuredOrSubscriber,
#[serde(rename = "Independent Lab")]
IndependentLab,
#[serde(rename = "Mammography Screening Center")]
MammographyScreeningCenter,
#[serde(rename = "Payer")]
Payer,
#[serde(rename = "Primary Payer")]
PrimaryPayer,
#[serde(rename = "Purchase Service Provider")]
PurchaseServiceProvider,
#[serde(rename = "Patient")]
Patient,
#[serde(rename = "Responsible Party")]
ResponsibleParty,
#[serde(rename = "Secondary Payer")]
SecondaryPayer,
#[serde(rename = "Testing Laboratory")]
TestingLaboratory,
#[serde(rename = "Tertiary Payer")]
TertiaryPayer,
#[serde(rename = "Third Party Repricing Organization (TPO)")]
ThirdPartyRepricingOrganizationLeftParenthesisTpoRightParenthesis,
#[serde(untagged)]
UnknownValue(String),
}
impl std::fmt::Display for ClaimLevelEntityIdentifierCodeValue {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Dependent => write!(f, "Dependent"),
Self::Employer => write!(f, "Employer"),
Self::Receiver => write!(f, "Receiver"),
Self::Submitter => write!(f, "Submitter"),
Self::AttendingPhysician => write!(f, "Attending Physician"),
Self::OperatingPhysician => write!(f, "Operating Physician"),
Self::OtherPhysician => write!(f, "Other Physician"),
Self::ServiceLocation => write!(f, "Service Location"),
Self::RenderingProvider => write!(f, "Rendering Provider"),
Self::BillingProvider => write!(f, "Billing Provider"),
Self::PayToProvider => write!(f, "Pay-to Provider"),
Self::Provider => write!(f, "Provider"),
Self::HomeHealthCare => write!(f, "Home Health Care"),
Self::OrderingPhysician => write!(f, "Ordering Physician"),
Self::ReferringProvider => write!(f, "Referring Provider"),
Self::SupervisingPhysician => write!(f, "Supervising Physician"),
Self::Facility => write!(f, "Facility"),
Self::OtherInsured => write!(f, "Other Insured"),
Self::Subscriber => write!(f, "Subscriber"),
Self::InsuredOrSubscriber => write!(f, "Insured or Subscriber"),
Self::IndependentLab => write!(f, "Independent Lab"),
Self::MammographyScreeningCenter => write!(f, "Mammography Screening Center"),
Self::Payer => write!(f, "Payer"),
Self::PrimaryPayer => write!(f, "Primary Payer"),
Self::PurchaseServiceProvider => write!(f, "Purchase Service Provider"),
Self::Patient => write!(f, "Patient"),
Self::ResponsibleParty => write!(f, "Responsible Party"),
Self::SecondaryPayer => write!(f, "Secondary Payer"),
Self::TestingLaboratory => write!(f, "Testing Laboratory"),
Self::TertiaryPayer => write!(f, "Tertiary Payer"),
Self::ThirdPartyRepricingOrganizationLeftParenthesisTpoRightParenthesis => write!(f, "Third Party Repricing Organization (TPO)"),
Self::UnknownValue(s) => write!(f, "{s}"),
}
}
}
impl Default for ClaimLevelEntityIdentifierCodeValue {
fn default() -> ClaimLevelEntityIdentifierCodeValue {
Self::Dependent
}
}