import {z} from 'zod' export type ExternalIdInput = {type_id: string, value: string}; export type States = 'alabama' | 'alaska' | 'arizona' | 'arkansas' | 'california' | 'colorado' | 'connecticut' | 'delaware' | 'florida' | 'georgia' | 'hawaii' | 'idaho' | 'illinois' | 'indiana' | 'iowa' | 'kansas' | 'kentucky' | 'louisiana' | 'maine' | 'maryland' | 'massachusetts' | 'michigan' | 'minnesota' | 'mississippi' | 'missouri' | 'montana' | 'nebraska' | 'nevada' | 'new_hampshire' | 'new_jersey' | 'new_mexico' | 'new_york' | 'north_carolina' | 'north_dakota' | 'ohio' | 'oklahoma' | 'oregon' | 'pennsylvania' | 'rhode_island' | 'south_carolina' | 'south_dakota' | 'tennessee' | 'texas' | 'utah' | 'vermont' | 'virginia' | 'washington' | 'west_virginia' | 'wisconsin' | 'wyoming' | 'district_of_columbia' | 'puerto_rico' | 'virgin_islands' | 'guam' | 'northern_mariana_islands' | 'american_samoa'; export type ServiceType = 'medical_care' | 'surgical' | 'consultation' | 'diagnostic_x_ray' | 'diagnostic_lab' | 'radiation_therapy' | 'anesthesia' | 'surgical_assistance' | 'other_medical' | 'blood_charges' | 'used_durable_medical_equipment' | 'durable_medical_equipment_purchase' | 'ambulatory_service_center_facility' | 'renal_supplies_in_home' | 'alternate_method_dialysis' | 'chronic_renal_disease_equipment' | 'pre_admission_testing' | 'durable_medical_equipment_rental' | 'pneumonia_vaccine' | 'second_surgical_opinion' | 'third_surgical_opinion' | 'social_work' | 'diagnostic_dental' | 'periodontics' | 'restorative' | 'endodontics' | 'maxillofacial_prosthetics' | 'adjunctive_dental_services' | 'health_benefit_plan_coverage' | 'plan_waiting_period' | 'chiropractic' | 'chiropractic_office_visits' | 'dental_care' | 'dental_crowns' | 'dental_accident' | 'orthodontics' | 'prosthodontics' | 'oral_surgery' | 'routine_preventive_dental' | 'home_health_care' | 'home_health_prescriptions' | 'home_health_visits' | 'hospice' | 'respite_care' | 'hospital' | 'hospital_inpatient' | 'hospital_room_and_board' | 'hospital_outpatient' | 'hospital_emergency_accident' | 'hospital_emergency_medical' | 'hospital_ambulatory_surgical' | 'long_term_care' | 'major_medical' | 'medically_related_transportation' | 'air_transportation' | 'cabulance' | 'licensed_ambulance' | 'general_benefits' | 'in_vitro_fertilization' | 'mri_cat_scan' | 'donor_procedures' | 'acupuncture' | 'newborn_care' | 'pathology' | 'smoking_cessation' | 'well_baby_care' | 'maternity' | 'transplants' | 'audiology_exam' | 'inhalation_therapy' | 'diagnostic_medical' | 'private_duty_nursing' | 'prosthetic_device' | 'dialysis' | 'otological_exam' | 'chemotherapy' | 'allergy_testing' | 'immunizations' | 'routine_physical' | 'family_planning' | 'infertility' | 'abortion' | 'aids' | 'emergency_services' | 'cancer' | 'pharmacy' | 'free_standing_prescription_drug' | 'mail_order_prescription_drug' | 'brand_name_prescription_drug' | 'generic_prescription_drug' | 'podiatry' | 'podiatry_office_visits' | 'podiatry_nursing_home_visits' | 'professional_physician' | 'anesthesiologist' | 'professional_visit_office' | 'professional_visit_inpatient' | 'professional_visit_outpatient' | 'professional_visit_nursing_home' | 'professional_visit_skilled_nursing_facility' | 'professional_visit_home' | 'psychiatric' | 'psychiatric_room_and_board' | 'psychotherapy' | 'psychiatric_inpatient' | 'psychiatric_outpatient' | 'rehabilitation' | 'rehabilitation_room_and_board' | 'rehabilitation_inpatient' | 'rehabilitation_outpatient' | 'occupational_therapy' | 'physical_medicine' | 'speech_therapy' | 'skilled_nursing_care' | 'skilled_nursing_care_room_and_board' | 'substance_abuse' | 'alcoholism' | 'drug_addiction' | 'vision_optometry' | 'frames' | 'routine_exam' | 'lenses' | 'nonmedically_necessary_physical' | 'experimental_drug_therapy' | 'burn_care' | 'brand_name_prescription_drug_formulary' | 'brand_name_prescription_drug_non_formulary' | 'independent_medical_evaluation' | 'partial_hospitalization_psychiatric' | 'day_care_psychiatric' | 'cognitive_therapy' | 'massage_therapy' | 'pulmonary_rehabilitation' | 'cardiac_rehabilitation' | 'pediatric' | 'nursery' | 'skin' | 'orthopedic' | 'cardiac' | 'lymphatic' | 'gastrointestinal' | 'endocrine' | 'neurology' | 'eye' | 'invasive_procedures' | 'gynecological' | 'obstetrical' | 'obstetrical_gynecological' | 'mail_order_prescription_drug_brand_name' | 'mail_order_prescription_drug_generic' | 'physician_visit_office_sick' | 'physician_visit_office_well' | 'coronary_care' | 'private_duty_nursing_inpatient' | 'private_duty_nursing_home' | 'surgical_benefits_professional' | 'surgical_benefits_facility' | 'mental_health_provider_inpatient' | 'mental_health_provider_outpatient' | 'mental_health_facility_inpatient' | 'mental_health_facility_outpatient' | 'substance_abuse_facility_inpatient' | 'substance_abuse_facility_outpatient' | 'screening_x_ray' | 'screening_laboratory' | 'mammogram_high_risk_patient' | 'mammogram_low_risk_patient' | 'flu_vaccination' | 'eyewear_and_accessories' | 'case_management' | 'dermatology' | 'durable_medical_equipment' | 'diabetic_supplies' | 'generic_prescription_drug_formulary' | 'generic_prescription_drug_non_formulary' | 'allergy' | 'intensive_care' | 'mental_health' | 'neonatal_intensive_care' | 'oncology' | 'physical_therapy' | 'pulmonary' | 'renal' | 'residential_psychiatric_treatment' | 'transitional_care' | 'transitional_nursery_care' | 'urgent_care'; export type ReferralCreateRequest = {physician_name?: (string | null) | undefined, physician_email?: (string | null) | undefined, physician_phone?: (string | null) | undefined, physician_fax?: (string | null) | undefined, physician_group?: (string | null) | undefined, physician_npi?: (string | null) | undefined, physician_address?: (string | null) | undefined, physician_address_2?: (string | null) | undefined, physician_city?: (string | null) | undefined, physician_state?: (States | null) | undefined, physician_zip?: (string | null) | undefined, icd_codes?: (Array | null) | undefined, service_types?: (Array | null) | undefined, start_date?: (string | null) | undefined, end_date?: (string | null) | undefined, location_id?: (string | null) | undefined, file_id?: (string | null) | undefined}; export type InsuranceTier = 'primary' | 'secondary' | 'tertiary' | 'quaternary'; export type RelationshipToSubscriber = 'spouse' | 'self' | 'child' | 'employee' | 'unknown' | 'organ_donor' | 'cadaver_donor' | 'life_partner' | 'other_relationship'; export type ProviderNetworkStatus = 'unknown' | 'in_network' | 'out_of_network'; export type PlanFundingType = 'fully_funded' | 'self_funded' | 'unknown'; export type Gender = 'male' | 'female' | 'other'; export type SubscriberCreateInline = {first_name?: (string | null) | undefined, last_name?: (string | null) | undefined, middle_name?: (string | null) | undefined, dob?: (string | null) | undefined, gender?: (Gender | null) | undefined, insured_member_id?: (string | null) | undefined, address?: (string | null) | undefined, address2?: (string | null) | undefined, city?: (string | null) | undefined, state?: (States | null) | undefined, zip?: (string | null) | undefined}; export type VerificationBenefitsStatus = 'completed' | 'pending' | 'in_progress'; export type OonReimbursementRateType = 'ucr' | 'medicare' | 'mnrp' | 'maa' | 'billed_charges' | 'fee_schedule' | 'mrc1' | 'mrc2' | 'local_allowable_rates'; export type ServiceLocation = 'standard' | 'home' | 'office' | 'school' | 'daycare' | 'community' | 'telehealth'; export type PeriodicMaximumTimePeriod = 'daily' | 'monthly' | 'annually'; export type LimitType = 'soft' | 'hard'; export type PayorServiceLocationCreate = {service_location: ServiceLocation, covered_in_network?: (boolean | null) | undefined, covered_out_network?: (boolean | null) | undefined, copay_in_network?: (number | null) | undefined, copay_out_network?: (number | null) | undefined, co_insurance_in_network?: (number | null) | undefined, co_insurance_out_network?: (number | null) | undefined, auth_required_in_network?: (boolean | null) | undefined, auth_required_out_network?: (boolean | null) | undefined, auth_required_at_visit_in_network?: (number | null) | undefined, auth_required_at_visit_out_network?: (number | null) | undefined, mnr_required_in_network?: (boolean | null) | undefined, mnr_required_out_network?: (boolean | null) | undefined, mnr_required_at_visit_in_network?: (number | null) | undefined, mnr_required_at_visit_out_network?: (number | null) | undefined, deductible_apply_in_network?: (boolean | null) | undefined, deductible_apply_out_network?: (boolean | null) | undefined, oop_apply_in_network?: (boolean | null) | undefined, oop_apply_out_network?: (boolean | null) | undefined, dollar_limit_in_network?: (number | null) | undefined, dollar_limit_out_network?: (number | null) | undefined, dollar_limit_remaining_in_network?: (number | null) | undefined, dollar_limit_remaining_out_network?: (number | null) | undefined, dollar_limit_time_period_in_network?: (PeriodicMaximumTimePeriod | null) | undefined, dollar_limit_time_period_out_network?: (PeriodicMaximumTimePeriod | null) | undefined, dollar_limit_type_in_network?: (LimitType | null) | undefined, dollar_limit_type_out_network?: (LimitType | null) | undefined, visit_limit_in_network?: (number | null) | undefined, visit_limit_out_network?: (number | null) | undefined, visit_limit_remaining_in_network?: (number | null) | undefined, visit_limit_remaining_out_network?: (number | null) | undefined, visit_limit_time_period_in_network?: (PeriodicMaximumTimePeriod | null) | undefined, visit_limit_time_period_out_network?: (PeriodicMaximumTimePeriod | null) | undefined, visit_limit_type_in_network?: (LimitType | null) | undefined, visit_limit_type_out_network?: (LimitType | null) | undefined, id?: (string | null) | undefined}; export type PayorServiceCreateInline = {service_type: ServiceType, verification_benefits_status?: VerificationBenefitsStatus | undefined, verification_dates?: (Array | null) | undefined, verification_benefits_comment?: (string | null) | undefined, pre_cert_name?: (string | null) | undefined, pre_cert_phone_number?: (string | null) | undefined, pre_cert_fax?: (string | null) | undefined, pre_cert_url?: (string | null) | undefined, pre_cert_penalty?: (string | null) | undefined, pre_cert_email?: (string | null) | undefined, sca_instructions?: (string | null) | undefined, claim_address?: (string | null) | undefined, oon_reimbursement_rate?: (number | null) | undefined, oon_reimbursement_rate_type?: (OonReimbursementRateType | null) | undefined, eligibility_check_id?: (string | null) | undefined, carve_out_insurer_id?: (string | null) | undefined, location_id?: (string | null) | undefined, rep_name?: (string | null) | undefined, call_reference_notes?: (string | null) | undefined, location_rates?: (Array | null) | undefined}; export type PayorCreateInline = {insurance_id: string, insurance_display_name?: (string | null) | undefined, payor_responsibility?: InsuranceTier | undefined, insured_member_id?: (string | null) | undefined, group_number?: (string | null) | undefined, group_description?: (string | null) | undefined, relationship_to_subscriber?: (RelationshipToSubscriber | null) | undefined, coverage_from?: (string | null) | undefined, coverage_to?: (string | null) | undefined, provider_network_status?: (ProviderNetworkStatus | null) | undefined, plan_funding_type?: (PlanFundingType | null) | undefined, plan_name?: (string | null) | undefined, plan_type?: (string | null) | undefined, eligibility_check_comment?: (string | null) | undefined, subscriber?: (SubscriberCreateInline | null) | undefined, subscriber_id?: (string | null) | undefined, services?: (Array | null) | undefined}; export type PatientCreatedFrom = 'form' | 'call' | 'api' | 'file' | 'sms' | 'fax' | 'chat_agent' | 'manual' | 'bulk_import' | 'eligibility' | 'prior_auth'; export type PatientUpsertRequest = {external_id?: (ExternalIdInput | null) | undefined, first_name?: (string | null) | undefined, last_name?: (string | null) | undefined, middle_name?: (string | null) | undefined, date_of_birth?: (string | null) | undefined, gender?: (string | null) | undefined, phone_number?: (string | null) | undefined, additional_phone_number?: (string | null) | undefined, email?: (string | null) | undefined, address?: (string | null) | undefined, address2?: (string | null) | undefined, city?: (string | null) | undefined, state?: (string | null) | undefined, zip?: (string | null) | undefined, comments?: (string | null) | undefined, workflow_stage_id?: (string | null) | undefined, assigned_user_id?: (string | null) | undefined, location_id?: (string | null) | undefined, tags?: (Array | null) | undefined, referral?: (ReferralCreateRequest | null) | undefined, payors?: (Array | null) | undefined, custom_fields?: ({[key: string]: unknown} | null) | undefined, created_from?: (PatientCreatedFrom | null) | undefined}; export type CreateApiV1PatientsUpsertArgs = {body: PatientUpsertRequest}; export type CreateApiV1PatientsUpsertOptions = {baseUrl: string, APIKeyHeader?: string | undefined, fetch?: typeof fetch | undefined}; export const gender = z.enum(["male", "female", "other"]); export const states = z.enum(["alabama", "alaska", "arizona", "arkansas", "california", "colorado", "connecticut", "delaware", "florida", "georgia", "hawaii", "idaho", "illinois", "indiana", "iowa", "kansas", "kentucky", "louisiana", "maine", "maryland", "massachusetts", "michigan", "minnesota", "mississippi", "missouri", "montana", "nebraska", "nevada", "new_hampshire", "new_jersey", "new_mexico", "new_york", "north_carolina", "north_dakota", "ohio", "oklahoma", "oregon", "pennsylvania", "rhode_island", "south_carolina", "south_dakota", "tennessee", "texas", "utah", "vermont", "virginia", "washington", "west_virginia", "wisconsin", "wyoming", "district_of_columbia", "puerto_rico", "virgin_islands", "guam", "northern_mariana_islands", "american_samoa"]); export const patientCreatedFrom = z.enum(["form", "call", "api", "file", "sms", "fax", "chat_agent", "manual", "bulk_import", "eligibility", "prior_auth"]); export const tag = z.object({id: z.string(), name: z.string()}); export const workflowStageAction = z.enum(["verify_insurance", "sync_external", "complete_verification"]); export const workflowStageSummary = z.object({id: z.string(), title: z.string().nullable().optional(), actions: z.array(workflowStageAction).nullable().optional(), order: z.number().int().nullable().optional(), description: z.string().nullable().optional()}); export const userSummary = z.object({id: z.string(), name: z.string().nullable().optional(), email: z.string().nullable().optional()}); export const serviceType = z.enum(["medical_care", "surgical", "consultation", "diagnostic_x_ray", "diagnostic_lab", "radiation_therapy", "anesthesia", "surgical_assistance", "other_medical", "blood_charges", "used_durable_medical_equipment", "durable_medical_equipment_purchase", "ambulatory_service_center_facility", "renal_supplies_in_home", "alternate_method_dialysis", "chronic_renal_disease_equipment", "pre_admission_testing", "durable_medical_equipment_rental", "pneumonia_vaccine", "second_surgical_opinion", "third_surgical_opinion", "social_work", "diagnostic_dental", "periodontics", "restorative", "endodontics", "maxillofacial_prosthetics", "adjunctive_dental_services", "health_benefit_plan_coverage", "plan_waiting_period", "chiropractic", "chiropractic_office_visits", "dental_care", "dental_crowns", "dental_accident", "orthodontics", "prosthodontics", "oral_surgery", "routine_preventive_dental", "home_health_care", "home_health_prescriptions", "home_health_visits", "hospice", "respite_care", "hospital", "hospital_inpatient", "hospital_room_and_board", "hospital_outpatient", "hospital_emergency_accident", "hospital_emergency_medical", "hospital_ambulatory_surgical", "long_term_care", "major_medical", "medically_related_transportation", "air_transportation", "cabulance", "licensed_ambulance", "general_benefits", "in_vitro_fertilization", "mri_cat_scan", "donor_procedures", "acupuncture", "newborn_care", "pathology", "smoking_cessation", "well_baby_care", "maternity", "transplants", "audiology_exam", "inhalation_therapy", "diagnostic_medical", "private_duty_nursing", "prosthetic_device", "dialysis", "otological_exam", "chemotherapy", "allergy_testing", "immunizations", "routine_physical", "family_planning", "infertility", "abortion", "aids", "emergency_services", "cancer", "pharmacy", "free_standing_prescription_drug", "mail_order_prescription_drug", "brand_name_prescription_drug", "generic_prescription_drug", "podiatry", "podiatry_office_visits", "podiatry_nursing_home_visits", "professional_physician", "anesthesiologist", "professional_visit_office", "professional_visit_inpatient", "professional_visit_outpatient", "professional_visit_nursing_home", "professional_visit_skilled_nursing_facility", "professional_visit_home", "psychiatric", "psychiatric_room_and_board", "psychotherapy", "psychiatric_inpatient", "psychiatric_outpatient", "rehabilitation", "rehabilitation_room_and_board", "rehabilitation_inpatient", "rehabilitation_outpatient", "occupational_therapy", "physical_medicine", "speech_therapy", "skilled_nursing_care", "skilled_nursing_care_room_and_board", "substance_abuse", "alcoholism", "drug_addiction", "vision_optometry", "frames", "routine_exam", "lenses", "nonmedically_necessary_physical", "experimental_drug_therapy", "burn_care", "brand_name_prescription_drug_formulary", "brand_name_prescription_drug_non_formulary", "independent_medical_evaluation", "partial_hospitalization_psychiatric", "day_care_psychiatric", "cognitive_therapy", "massage_therapy", "pulmonary_rehabilitation", "cardiac_rehabilitation", "pediatric", "nursery", "skin", "orthopedic", "cardiac", "lymphatic", "gastrointestinal", "endocrine", "neurology", "eye", "invasive_procedures", "gynecological", "obstetrical", "obstetrical_gynecological", "mail_order_prescription_drug_brand_name", "mail_order_prescription_drug_generic", "physician_visit_office_sick", "physician_visit_office_well", "coronary_care", "private_duty_nursing_inpatient", "private_duty_nursing_home", "surgical_benefits_professional", "surgical_benefits_facility", "mental_health_provider_inpatient", "mental_health_provider_outpatient", "mental_health_facility_inpatient", "mental_health_facility_outpatient", "substance_abuse_facility_inpatient", "substance_abuse_facility_outpatient", "screening_x_ray", "screening_laboratory", "mammogram_high_risk_patient", "mammogram_low_risk_patient", "flu_vaccination", "eyewear_and_accessories", "case_management", "dermatology", "durable_medical_equipment", "diabetic_supplies", "generic_prescription_drug_formulary", "generic_prescription_drug_non_formulary", "allergy", "intensive_care", "mental_health", "neonatal_intensive_care", "oncology", "physical_therapy", "pulmonary", "renal", "residential_psychiatric_treatment", "transitional_care", "transitional_nursery_care", "urgent_care"]); export const referralResponse = z.object({id: z.string(), physician_name: z.string().nullable().optional(), physician_email: z.string().nullable().optional(), physician_phone: z.string().nullable().optional(), physician_fax: z.string().nullable().optional(), physician_group: z.string().nullable().optional(), physician_npi: z.string().nullable().optional(), physician_address: z.string().nullable().optional(), physician_address_2: z.string().nullable().optional(), physician_city: z.string().nullable().optional(), physician_state: states.nullable().optional(), physician_zip: z.string().nullable().optional(), icd_codes: z.array(z.string()).nullable().optional(), service_types: z.array(serviceType).nullable().optional(), start_date: z.string().nullable().optional(), end_date: z.string().nullable().optional(), location_id: z.string().nullable().optional(), created_at: z.string().nullable().optional(), updated_at: z.string().nullable().optional()}); export const relationshipToSubscriber = z.enum(["spouse", "self", "child", "employee", "unknown", "organ_donor", "cadaver_donor", "life_partner", "other_relationship"]); export const insuranceTier = z.enum(["primary", "secondary", "tertiary", "quaternary"]); export const providerNetworkStatus = z.enum(["unknown", "in_network", "out_of_network"]); export const cbhStatus = z.enum(["active", "inactive"]); export const planFundingType = z.enum(["fully_funded", "self_funded", "unknown"]); export const insurancePlanType = z.enum(["01", "02", "03", "12", "13", "14", "15", "16", "17", "18", "19", "41", "42", "43", "47", "48", "49", "AP", "C1", "CO", "CP", "D", "DB", "EP", "FF", "GP", "HB", "HD", "HG", "HM", "HN", "HP", "HS", "IN", "IP", "LC", "LD", "LI", "LT", "M", "MA", "MB", "MC", "MD", "ME", "MH", "MI", "MJ", "MK", "ML", "MM", "MN", "MO", "MP", "MR", "MT", "OA", "OT", "PE", "PL", "PP", "PR", "PS", "QM", "RP", "SA", "SP", "TF", "WC", "WU"]); export const planRenewalDateType = z.enum(["calendar_year", "service_year", "contract"]); export const cobStatus = z.enum(["not_required", "pending", "complete"]); export const eligibilityStatus = z.enum(["active", "inactive", "pending", "failed"]); export const verificationBenefitsStatus = z.enum(["completed", "pending", "in_progress"]); export const oonReimbursementRateType = z.enum(["ucr", "medicare", "mnrp", "maa", "billed_charges", "fee_schedule", "mrc1", "mrc2", "local_allowable_rates"]); export const serviceLocation = z.enum(["standard", "home", "office", "school", "daycare", "community", "telehealth"]); export const periodicMaximumTimePeriod = z.enum(["daily", "monthly", "annually"]); export const limitType = z.enum(["soft", "hard"]); export const payorServiceLocation = z.object({service_location: serviceLocation, covered_in_network: z.boolean().nullable().optional(), covered_out_network: z.boolean().nullable().optional(), copay_in_network: z.number().nullable().optional(), copay_out_network: z.number().nullable().optional(), co_insurance_in_network: z.number().nullable().optional(), co_insurance_out_network: z.number().nullable().optional(), auth_required_in_network: z.boolean().nullable().optional(), auth_required_out_network: z.boolean().nullable().optional(), auth_required_at_visit_in_network: z.number().int().nullable().optional(), auth_required_at_visit_out_network: z.number().int().nullable().optional(), mnr_required_in_network: z.boolean().nullable().optional(), mnr_required_out_network: z.boolean().nullable().optional(), mnr_required_at_visit_in_network: z.number().int().nullable().optional(), mnr_required_at_visit_out_network: z.number().int().nullable().optional(), deductible_apply_in_network: z.boolean().nullable().optional(), deductible_apply_out_network: z.boolean().nullable().optional(), oop_apply_in_network: z.boolean().nullable().optional(), oop_apply_out_network: z.boolean().nullable().optional(), dollar_limit_in_network: z.number().nullable().optional(), dollar_limit_out_network: z.number().nullable().optional(), dollar_limit_remaining_in_network: z.number().nullable().optional(), dollar_limit_remaining_out_network: z.number().nullable().optional(), dollar_limit_time_period_in_network: periodicMaximumTimePeriod.nullable().optional(), dollar_limit_time_period_out_network: periodicMaximumTimePeriod.nullable().optional(), dollar_limit_type_in_network: limitType.nullable().optional(), dollar_limit_type_out_network: limitType.nullable().optional(), visit_limit_in_network: z.number().nullable().optional(), visit_limit_out_network: z.number().nullable().optional(), visit_limit_remaining_in_network: z.number().nullable().optional(), visit_limit_remaining_out_network: z.number().nullable().optional(), visit_limit_time_period_in_network: periodicMaximumTimePeriod.nullable().optional(), visit_limit_time_period_out_network: periodicMaximumTimePeriod.nullable().optional(), visit_limit_type_in_network: limitType.nullable().optional(), visit_limit_type_out_network: limitType.nullable().optional(), id: z.string(), payor_service_id: z.string(), created_at: z.string().nullable(), updated_at: z.string().nullable(), version: z.number().int().optional()}); export const payorService = z.object({id: z.string(), payor_id: z.string(), service_type: serviceType, created_at: z.string().nullable(), updated_at: z.string().nullable(), verification_benefits_status: verificationBenefitsStatus.optional(), verification_dates: z.array(z.string()).nullable().optional(), verification_user_ids: z.array(z.string().nullable()).nullable().optional(), verification_benefits_comment: z.string().nullable().optional(), pre_cert_name: z.string().nullable().optional(), pre_cert_phone_number: z.string().nullable().optional(), pre_cert_fax: z.string().nullable().optional(), pre_cert_url: z.string().nullable().optional(), pre_cert_penalty: z.string().nullable().optional(), pre_cert_email: z.string().nullable().optional(), sca_instructions: z.string().nullable().optional(), claim_address: z.string().nullable().optional(), oon_reimbursement_rate: z.number().nullable().optional(), oon_reimbursement_rate_type: oonReimbursementRateType.nullable().optional(), eligibility_check_id: z.string().nullable().optional(), carve_out_insurer_id: z.string().nullable().optional(), location_id: z.string().nullable().optional(), rep_name: z.string().nullable().optional(), call_reference_notes: z.string().nullable().optional(), covered_cpt_codes: z.array(z.string()).nullable().optional(), not_covered_cpt_codes: z.array(z.string()).nullable().optional(), covered_icd_codes: z.array(z.string()).nullable().optional(), not_covered_icd_codes: z.array(z.string()).nullable().optional(), version: z.number().int().optional(), location_rates: z.array(payorServiceLocation).nullable().optional(), payor: z.record(z.string(), z.unknown()).nullable().optional()}); export const payor = z.object({id: z.string(), created_at: z.string().nullable(), updated_at: z.string().nullable(), patient_id: z.string(), insurance_id: z.string(), insurance_display_name: z.string().nullable().optional(), subscriber_id: z.string().nullable().optional(), relationship_to_subscriber: relationshipToSubscriber.nullable().optional(), insured_member_id: z.string().nullable().optional(), group_number: z.string().nullable().optional(), group_description: z.string().nullable().optional(), medicaid_id: z.string().nullable().optional(), payor_responsibility: insuranceTier.nullable().optional(), coverage_from: z.string().nullable().optional(), coverage_to: z.string().nullable().optional(), provider_network_status: providerNetworkStatus.nullable().optional(), cbh_status: cbhStatus.nullable().optional(), plan_funding_type: planFundingType.nullable().optional(), plan_name: z.string().nullable().optional(), plan_type: insurancePlanType.nullable().optional(), plan_renewal_date_type: planRenewalDateType.nullable().optional(), cob_on_file: cobStatus.nullable().optional(), cob_notes: z.string().nullable().optional(), cob_last_verified_at: z.string().nullable().optional(), has_other_active_coverage: z.boolean().nullable().optional(), out_of_state_benefits: z.boolean().nullable().optional(), out_of_state_benefits_comments: z.string().nullable().optional(), in_grace_period: z.boolean().nullable().optional(), last_payment_date: z.string().nullable().optional(), is_cobra_coverage: z.boolean().nullable().optional(), deductible_apply_to_oop: z.boolean().nullable().optional(), copay_applies_to_oop_max: z.boolean().nullable().optional(), eligibility_check_status: eligibilityStatus.optional(), eligibility_check_comment: z.string().nullable().optional(), eligibility_check_date: z.string().nullable().optional(), eligibility_version: z.number().int().optional(), individual_deductible_policy_in_network: z.number().nullable().optional(), individual_deductible_policy_out_network: z.number().nullable().optional(), individual_deductible_remaining_in_network: z.number().nullable().optional(), individual_deductible_remaining_out_network: z.number().nullable().optional(), family_deductible_policy_in_network: z.number().nullable().optional(), family_deductible_policy_out_network: z.number().nullable().optional(), family_deductible_remaining_in_network: z.number().nullable().optional(), family_deductible_remaining_out_network: z.number().nullable().optional(), individual_oop_max_policy_in_network: z.number().nullable().optional(), individual_oop_max_policy_out_network: z.number().nullable().optional(), individual_oop_max_remaining_in_network: z.number().nullable().optional(), individual_oop_max_remaining_out_network: z.number().nullable().optional(), family_oop_max_policy_in_network: z.number().nullable().optional(), family_oop_max_policy_out_network: z.number().nullable().optional(), family_oop_max_remaining_in_network: z.number().nullable().optional(), family_oop_max_remaining_out_network: z.number().nullable().optional(), benefits_related_entities: z.array(z.record(z.string(), z.unknown())).nullable().optional(), ai_summary: z.string().nullable().optional(), ai_summary_generated_at: z.string().nullable().optional(), patient: z.record(z.string(), z.unknown()).nullable().optional(), insurance: z.record(z.string(), z.unknown()).nullable().optional(), subscriber: z.record(z.string(), z.unknown()).nullable().optional(), services: z.array(payorService).nullable().optional(), active: z.boolean().optional(), version: z.number().int().optional()}); export const externalIdTypeSummary = z.object({id: z.string(), name: z.string(), created_at: z.string().nullable().optional()}); export const externalIdValueResponse = z.object({id: z.string(), patient_id: z.string(), value: z.string(), external_id_type: externalIdTypeSummary, created_at: z.string(), updated_at: z.string()}); export const patient = z.object({id: z.string(), created_at: z.string().nullable(), updated_at: z.string().nullable(), first_name: z.string().nullable().optional(), last_name: z.string().nullable().optional(), middle_name: z.string().nullable().optional(), phone_number: z.string().nullable().optional(), additional_phone_number: z.string().nullable().optional(), email: z.string().nullable().optional(), date_of_birth: z.string().nullable().optional(), gender: gender.nullable().optional(), address: z.string().nullable().optional(), address2: z.string().nullable().optional(), city: z.string().nullable().optional(), state: states.nullable().optional(), zip: z.string().nullable().optional(), workflow_stage_id: z.string().nullable().optional(), assigned_user_id: z.string().nullable().optional(), location_id: z.string().nullable().optional(), organization_id: z.string().nullable().optional(), created_from: patientCreatedFrom.nullable().optional(), active: z.boolean().optional(), version: z.number().int().optional(), first_communication_at: z.string().nullable().optional(), custom_fields: z.record(z.string(), z.unknown()).nullable().optional(), comments: z.string().nullable().optional(), tags: z.array(tag).nullable().optional(), workflow_stage: workflowStageSummary.nullable().optional(), assigned_user: userSummary.nullable().optional(), referrals: z.array(referralResponse).nullable().optional(), payors: z.array(payor).nullable().optional(), external_id_values: z.array(externalIdValueResponse).nullable().optional()}); export const patientUpsertResponse = z.object({patient: patient, matched: z.boolean(), created: z.boolean(), match_reason: z.enum(["external_id", "demographics", "phone_fuzzy_name", "email_fuzzy_name"]).nullable().optional(), dropped_fields: z.array(z.string()).optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Upsert Patient (forgiving) * * POST /v1/patients/upsert * * Also accepts auth: HTTPBearer */ export const createApiV1PatientsUpsert = async (args: CreateApiV1PatientsUpsertArgs, options: CreateApiV1PatientsUpsertOptions) => { const {baseUrl, fetch: fetchFn = fetch, APIKeyHeader} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (APIKeyHeader !== undefined) headers.set("X-API-Key", APIKeyHeader) const url = `${baseUrl.replace(/\/+$/, '')}/v1/patients/upsert${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(patientUpsertResponse, await res.json()) };