autogen-stedi 0.3.2

Auto-generated, strongly-typed Rust client for the Stedi APIs
Documentation
/*
 * 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};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct InstitutionalProvidersObject {
    /// The provider's business address. Only applies to the billing provider.
    #[serde(rename = "address", skip_serializing_if = "Option::is_none")]
    pub address: Option<Box<models::InstitutionalAddress>>,
    /// The provider's contact information. Only applies to the billing provider. You must include at least one communication method (phone, fax, or email) in this object.
    #[serde(rename = "contactInformation", skip_serializing_if = "Option::is_none")]
    pub contact_information: Option<Box<models::InstitutionalContactInformation>>,
    /// The provider's employer ID, also known as an EIN or TIN. Must be a string of exactly nine numbers with no separators. This is **required** for the billing provider, and doesn’t apply to other provider types.
    #[serde(rename = "employerId", skip_serializing_if = "Option::is_none")]
    pub employer_id: Option<String>,
    /// The provider's first name.
    #[serde(rename = "firstName", skip_serializing_if = "Option::is_none")]
    pub first_name: Option<String>,
    /// The provider's last name.
    #[serde(rename = "lastName", skip_serializing_if = "Option::is_none")]
    pub last_name: Option<String>,
    /// The provider's middle name or initial.
    #[serde(rename = "middleName", skip_serializing_if = "Option::is_none")]
    pub middle_name: Option<String>,
    /// The [National Provider Identifier (NPI)](https://www.stedi.com/docs/healthcare/national-provider-identifier) of the provider. Note that this is **required** for billing providers that have an NPI assigned.
    #[serde(rename = "npi", skip_serializing_if = "Option::is_none")]
    pub npi: Option<String>,
    /// The provider's business name, when the provider is not an individual.
    #[serde(rename = "organizationName", skip_serializing_if = "Option::is_none")]
    pub organization_name: Option<String>,
    /// The type of provider. Set to the type that matches the provider's role in the claim. For example, if the provider is the referring provider, set this to `ReferringProvider`.
    #[serde(rename = "providerType")]
    pub provider_type: models::InstitutionalProviderType,
    #[serde(rename = "secondaryIdentificationQualifierCode", skip_serializing_if = "Option::is_none")]
    pub secondary_identification_qualifier_code: Option<models::OperatingPhysicianIdentificationQualifierCode>,
    /// The identifier referenced by `secondaryIdentificationQualifierCode`. For example, if `secondaryIdentificationQualifierCode` is set to `0B`, this property should be the provider's state license number.  You can only include one secondary identifier for the provider.
    #[serde(rename = "secondaryIdentifier", skip_serializing_if = "Option::is_none")]
    pub secondary_identifier: Option<String>,
    /// The provider's name suffix, such as Jr. or III.
    #[serde(rename = "suffix", skip_serializing_if = "Option::is_none")]
    pub suffix: Option<String>,
    /// The provider's [taxnonomy code](https://www.cms.gov/medicare/enrollment-renewal/providers-suppliers/health-care-taxonomy), a unique 10-character code that designates their classification and specialization. Only applies to the attending provider.
    #[serde(rename = "taxonomyCode", skip_serializing_if = "Option::is_none")]
    pub taxonomy_code: Option<String>,
}

impl InstitutionalProvidersObject {
    pub fn new(provider_type: models::InstitutionalProviderType) -> InstitutionalProvidersObject {
        InstitutionalProvidersObject {
            address: None,
            contact_information: None,
            employer_id: None,
            first_name: None,
            last_name: None,
            middle_name: None,
            npi: None,
            organization_name: None,
            provider_type,
            secondary_identification_qualifier_code: None,
            secondary_identifier: None,
            suffix: None,
            taxonomy_code: None,
        }
    }
}