import {z} from 'zod' export type Address = {address_line1?: string | undefined, address_line2?: (string | null) | undefined, city?: string | undefined, state?: string | undefined, zip?: string | undefined}; export type Consent = {application?: string | undefined, consented?: boolean | undefined, is_active?: boolean | undefined, last_modified_date?: string | undefined}; export type PaymentProgramEnum = 'Commercial - HMSA' | 'Commercial - Other' | 'Commercial - SFHP' | 'Medicaid' | 'Medicare Advantage' | 'Medicare Part B' | 'Worker's Compensation'; export type RankEnum = 'primary' | 'secondary' | 'tertiary'; export type InsurerRelationshipType = 'Child' | 'Other' | 'Spouse'; export type NullEnum = unknown; export type Insurance = {address?: (string | null) | undefined, carrier?: (string | null) | undefined, city?: (string | null) | undefined, copay?: (unknown | null) | undefined, created_date?: (string | null) | undefined, deductible?: (unknown | null) | undefined, deleted_date?: (string | null) | undefined, end_date?: (string | null) | undefined, extension?: (string | null) | undefined, group_id?: (string | null) | undefined, id?: (number | null) | undefined, insurance_company?: (number | null) | undefined, insurance_plan?: (number | null) | undefined, insured_person_address?: (string | null) | undefined, insured_person_city?: (string | null) | undefined, insured_person_dob?: (string | null) | undefined, insured_person_first_name?: (string | null) | undefined, insured_person_gender?: (string | null) | undefined, insured_person_id?: (string | null) | undefined, insured_person_last_name?: (string | null) | undefined, insured_person_ssn?: (string | null) | undefined, insured_person_state?: (string | null) | undefined, insured_person_zip?: (string | null) | undefined, member_id?: (string | null) | undefined, payment_program?: PaymentProgramEnum | undefined, phone?: (string | null) | undefined, plan?: (string | null) | undefined, rank: RankEnum, relationship_to_insured?: (InsurerRelationshipType | NullEnum) | undefined, start_date?: (string | null) | undefined, state?: (string | null) | undefined, suite?: (string | null) | undefined, zip?: (string | null) | undefined}; export type Email = {created_date?: (string | null) | undefined, deleted_date?: (string | null) | undefined, email?: (string | null) | undefined}; export type EmergencyContact = {address_line1?: (string | null) | undefined, address_line2?: (string | null) | undefined, city?: (string | null) | undefined, first_name?: (string | null) | undefined, id?: number | undefined, last_name?: (string | null) | undefined, phone?: (string | null) | undefined, relationship?: (string | null) | undefined, state?: (string | null) | undefined, zip?: (string | null) | undefined}; export type Employer = {code: string, description?: (string | null) | undefined, name?: (string | null) | undefined}; export type EthnicityEnum = 'Declined to specify' | 'Hispanic or Latino' | 'No ethnicity specified' | 'Not Hispanic or Latino'; export type GenderIdentityEnum = 'man' | 'nonbinary' | 'option_not_listed' | 'prefer_not_to_say' | 'transgender_man' | 'transgender_woman' | 'two_spirit' | 'unknown' | 'woman'; export type Guarantor = {address?: string | undefined, city?: string | undefined, email?: (string | null) | undefined, first_name?: (string | null) | undefined, id?: number | undefined, last_name?: (string | null) | undefined, phone?: (string | null) | undefined, relationship?: (InsurerRelationshipType | NullEnum) | undefined, state?: string | undefined, zip?: string | undefined}; export type LegalGenderMarkerEnum = 'F' | 'M' | 'U' | 'X' | 'None'; export type LegalGenderMarkerDisplayEnum = 'F' | 'M' | 'None Selected' | 'X' | 'None'; export type Status = 'active' | 'inactive'; export type PhoneTypeEnum = 'Fax' | 'Home' | 'Main' | 'Mobile' | 'Night' | 'Other' | 'Work'; export type Phone = {created_date?: (string | null) | undefined, deleted_date?: (string | null) | undefined, phone: string, phone_type: PhoneTypeEnum}; export type PatientPreference = {preferred_pharmacy_1?: (string | null) | undefined, preferred_pharmacy_2?: (string | null) | undefined}; export type PreferredContactEnum = 'email' | 'passport' | 'phone' | 'sms'; export type PatientPreviousName = {first_name?: (string | null) | undefined, last_name?: (string | null) | undefined, middle_name?: (string | null) | undefined, suffix?: (string | null) | undefined}; export type PronounsEnum = 'he_him_his' | 'not_listed' | 'she_her_hers' | 'they_them_theirs' | 'None'; export type PronounsDisplayEnum = 'He/Him/His' | 'Option not listed' | 'She/Her/Hers' | 'They/Them/Theirs' | 'None'; export type RaceEnum = 'American Indian or Alaska Native' | 'Asian' | 'Black or African American' | 'Declined to specify' | 'Native Hawaiian or Other Pacific Islander' | 'No race specified' | 'White'; export type PatientSexEnum = 'Female' | 'Male' | 'Other' | 'Unknown'; export type SexualOrientationEnum = 'asexual' | 'bisexual' | 'gay' | 'lesbian' | 'option_not_listed' | 'prefer_not_to_say' | 'queer' | 'straight' | 'unknown'; export type TimezoneEnum = 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Ciudad_Juarez' | 'America/Costa_Rica' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Fort_Nelson' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Colombo' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kathmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Riyadh' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ulaanbaatar' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faroe' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/Perth' | 'Australia/Sydney' | 'Canada/Atlantic' | 'Canada/Central' | 'Canada/Eastern' | 'Canada/Mountain' | 'Canada/Newfoundland' | 'Canada/Pacific' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kirov' | 'Europe/Kyiv' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Ulyanovsk' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zurich' | 'GMT' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Wake' | 'Pacific/Wallis' | 'US/Alaska' | 'US/Arizona' | 'US/Central' | 'US/Eastern' | 'US/Hawaii' | 'US/Mountain' | 'US/Pacific' | 'UTC'; export type Patient = {actual_name?: (string | null) | undefined, address?: (Address | null) | undefined, caregiver_practice: number, consents?: Array | undefined, created_date?: (string | null) | undefined, deleted_date?: (string | null) | undefined, deleted_insurances?: Array | undefined, dob: string, emails?: (Array | null) | undefined, emergency_contact?: (EmergencyContact | null) | undefined, employer?: (Employer | null) | undefined, ethnicity?: EthnicityEnum | undefined, first_name: string, gender_identity?: GenderIdentityEnum | undefined, guarantor?: (Guarantor | null) | undefined, id?: number | undefined, insurances?: Array | undefined, last_modified?: string | undefined, last_name: string, legal_gender_marker?: (LegalGenderMarkerEnum | NullEnum) | undefined, legal_gender_marker_display?: (LegalGenderMarkerDisplayEnum | NullEnum) | undefined, master_patient?: number | undefined, merged_into_chart?: (number | null) | undefined, metadata?: ({data?: Record | undefined, object_id?: string | undefined, object_web_link?: string | undefined} | null) | undefined, middle_name?: string | undefined, mothers_maiden_name?: (string | null) | undefined, notes?: (string | null) | undefined, occupation?: (string | null) | undefined, patient_status?: (Status | null) | undefined, phones?: Array | undefined, preference?: (PatientPreference | null) | undefined, preferred_contact?: (PreferredContactEnum | NullEnum) | undefined, preferred_language?: (string | null) | undefined, preferred_service_location?: (number | null) | undefined, previous_address?: (Address | null) | undefined, previous_first_name?: (string | null) | undefined, previous_last_name?: (string | null) | undefined, previous_name?: (PatientPreviousName | null) | undefined, primary_care_provider?: number | undefined, primary_care_provider_npi?: (string | null) | undefined, primary_physician: number, pronouns?: (PronounsEnum | NullEnum) | undefined, pronouns_display?: (PronounsDisplayEnum | NullEnum) | undefined, race?: RaceEnum | undefined, sex: PatientSexEnum, sexual_orientation?: SexualOrientationEnum | undefined, sms_opt_in_status?: (boolean | null) | undefined, ssn?: (string | null) | undefined, suffix?: string | undefined, tags?: (Array | null) | undefined, timezone?: (TimezoneEnum | NullEnum) | undefined, verified?: boolean | undefined, vip?: (boolean | null) | undefined}; export type CreateApiApi20PatientsArgs = {body: Patient}; export type CreateApiApi20PatientsOptions = {baseUrl?: string | undefined, oauth2?: string | undefined, fetch?: typeof fetch | undefined}; export const address = z.object({address_line1: z.string().max(200).optional(), address_line2: z.string().max(35).nullable().optional(), city: z.string().max(50).optional(), state: z.string().max(2).optional(), zip: z.string().max(10).optional()}); export const consent = z.object({application: z.string().optional(), consented: z.boolean().optional(), is_active: z.boolean().optional(), last_modified_date: z.string().optional()}); export const paymentProgramEnum = z.enum(["Commercial - HMSA", "Commercial - Other", "Commercial - SFHP", "Medicaid", "Medicare Advantage", "Medicare Part B", "Worker's Compensation"]); export const rankEnum = z.enum(["primary", "secondary", "tertiary"]); export const insurerRelationshipType = z.enum(["Child", "Other", "Spouse"]); export const nullEnum = z.unknown(); export const insurance = z.object({address: z.string().max(200).nullable().optional(), carrier: z.string().max(200).nullable().optional(), city: z.string().max(50).nullable().optional(), copay: z.string().nullable().optional(), created_date: z.string().nullable().optional(), deductible: z.string().nullable().optional(), deleted_date: z.string().nullable().optional(), end_date: z.string().nullable().optional(), extension: z.string().max(6).nullable().optional(), group_id: z.string().max(50).nullable().optional(), id: z.number().int().nullable().optional(), insurance_company: z.number().int().nullable().optional(), insurance_plan: z.number().int().nullable().optional(), insured_person_address: z.string().max(200).nullable().optional(), insured_person_city: z.string().max(50).nullable().optional(), insured_person_dob: z.string().max(50).nullable().optional(), insured_person_first_name: z.string().max(200).nullable().optional(), insured_person_gender: z.string().max(1).nullable().optional(), insured_person_id: z.string().max(50).nullable().optional(), insured_person_last_name: z.string().max(200).nullable().optional(), insured_person_ssn: z.string().max(11).nullable().optional(), insured_person_state: z.string().max(2).nullable().optional(), insured_person_zip: z.string().max(10).nullable().optional(), member_id: z.string().max(50).nullable().optional(), payment_program: paymentProgramEnum.optional(), phone: z.string().max(20).nullable().optional(), plan: z.string().max(200).nullable().optional(), rank: rankEnum, relationship_to_insured: z.union([insurerRelationshipType, nullEnum]).optional(), start_date: z.string().nullable().optional(), state: z.string().max(2).nullable().optional(), suite: z.string().max(35).nullable().optional(), zip: z.string().max(10).nullable().optional()}); export const email = z.object({created_date: z.string().nullable().optional(), deleted_date: z.string().nullable().optional(), email: z.string().max(254).nullable().optional()}); export const emergencyContact = z.object({address_line1: z.string().max(200).nullable().optional(), address_line2: z.string().max(35).nullable().optional(), city: z.string().max(50).nullable().optional(), first_name: z.string().max(70).nullable().optional(), id: z.number().int().optional(), last_name: z.string().max(70).nullable().optional(), phone: z.string().max(20).nullable().optional(), relationship: z.string().max(30).nullable().optional(), state: z.string().max(2).nullable().optional(), zip: z.string().max(10).nullable().optional()}); export const employer = z.object({code: z.string().max(50), description: z.string().nullable().optional(), name: z.string().nullable().optional()}); export const ethnicityEnum = z.enum(["Declined to specify", "Hispanic or Latino", "No ethnicity specified", "Not Hispanic or Latino"]); export const genderIdentityEnum = z.enum(["man", "nonbinary", "option_not_listed", "prefer_not_to_say", "transgender_man", "transgender_woman", "two_spirit", "unknown", "woman"]); export const guarantor = z.object({address: z.string().max(200).optional(), city: z.string().max(50).optional(), email: z.string().max(254).nullable().optional(), first_name: z.string().max(105).nullable().optional(), id: z.number().int().optional(), last_name: z.string().max(105).nullable().optional(), phone: z.string().max(20).nullable().optional(), relationship: z.union([insurerRelationshipType, nullEnum]).optional(), state: z.string().max(2).optional(), zip: z.string().max(10).optional()}); export const legalGenderMarkerEnum = z.enum(["F", "M", "U", "X", "None"]); export const legalGenderMarkerDisplayEnum = z.enum(["F", "M", "None Selected", "X", "None"]); export const status = z.enum(["active", "inactive"]); export const phoneTypeEnum = z.enum(["Fax", "Home", "Main", "Mobile", "Night", "Other", "Work"]); export const phone = z.object({created_date: z.string().nullable().optional(), deleted_date: z.string().nullable().optional(), phone: z.string(), phone_type: phoneTypeEnum}); export const patientPreference = z.object({preferred_pharmacy_1: z.string().nullable().optional(), preferred_pharmacy_2: z.string().nullable().optional()}); export const preferredContactEnum = z.enum(["email", "passport", "phone", "sms"]); export const patientPreviousName = z.object({first_name: z.string().max(70).nullable().optional(), last_name: z.string().max(70).nullable().optional(), middle_name: z.string().max(50).nullable().optional(), suffix: z.string().max(20).nullable().optional()}); export const pronounsEnum = z.enum(["he_him_his", "not_listed", "she_her_hers", "they_them_theirs", "None"]); export const pronounsDisplayEnum = z.enum(["He/Him/His", "Option not listed", "She/Her/Hers", "They/Them/Theirs", "None"]); export const raceEnum = z.enum(["American Indian or Alaska Native", "Asian", "Black or African American", "Declined to specify", "Native Hawaiian or Other Pacific Islander", "No race specified", "White"]); export const patientSexEnum = z.enum(["Female", "Male", "Other", "Unknown"]); export const sexualOrientationEnum = z.enum(["asexual", "bisexual", "gay", "lesbian", "option_not_listed", "prefer_not_to_say", "queer", "straight", "unknown"]); export const timezoneEnum = z.enum(["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Ciudad_Juarez", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Fort_Nelson", "America/Fortaleza", "America/Glace_Bay", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Nuuk", "America/Ojinaga", "America/Panama", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Chita", "Asia/Choibalsan", "Asia/Colombo", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kathmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qostanay", "Asia/Qyzylorda", "Asia/Riyadh", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ulaanbaatar", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faroe", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Perth", "Australia/Sydney", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kirov", "Europe/Kyiv", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zurich", "GMT", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Kanton", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Wake", "Pacific/Wallis", "US/Alaska", "US/Arizona", "US/Central", "US/Eastern", "US/Hawaii", "US/Mountain", "US/Pacific", "UTC"]); export const patient = z.object({actual_name: z.string().max(150).nullable().optional(), address: address.nullable().optional(), caregiver_practice: z.number().int(), consents: z.array(consent).optional(), created_date: z.string().nullable().optional(), deleted_date: z.string().nullable().optional(), deleted_insurances: z.array(insurance).optional(), dob: z.string(), emails: z.array(email).nullable().optional(), emergency_contact: emergencyContact.nullable().optional(), employer: employer.nullable().optional(), ethnicity: ethnicityEnum.optional(), first_name: z.string().max(70), gender_identity: genderIdentityEnum.optional(), guarantor: guarantor.nullable().optional(), id: z.number().int().optional(), insurances: z.array(insurance).optional(), last_modified: z.string().optional(), last_name: z.string().max(70), legal_gender_marker: z.union([legalGenderMarkerEnum, nullEnum]).optional(), legal_gender_marker_display: z.union([legalGenderMarkerDisplayEnum, nullEnum]).optional(), master_patient: z.number().int().optional(), merged_into_chart: z.number().int().nullable().optional(), metadata: z.object({data: z.object({}).optional(), object_id: z.string().optional(), object_web_link: z.string().optional()}).nullable().optional(), middle_name: z.string().max(50).optional(), mothers_maiden_name: z.string().max(70).nullable().optional(), notes: z.string().nullable().optional(), occupation: z.string().max(100).nullable().optional(), patient_status: status.nullable().optional(), phones: z.array(phone).optional(), preference: patientPreference.nullable().optional(), preferred_contact: z.union([preferredContactEnum, nullEnum]).optional(), preferred_language: z.string().nullable().optional(), preferred_service_location: z.number().int().nullable().optional(), previous_address: address.nullable().optional(), previous_first_name: z.string().max(70).nullable().optional(), previous_last_name: z.string().max(70).nullable().optional(), previous_name: patientPreviousName.nullable().optional(), primary_care_provider: z.number().int().optional(), primary_care_provider_npi: z.string().max(10).nullable().optional(), primary_physician: z.number().int(), pronouns: z.union([pronounsEnum, nullEnum]).optional(), pronouns_display: z.union([pronounsDisplayEnum, nullEnum]).optional(), race: raceEnum.optional(), sex: patientSexEnum, sexual_orientation: sexualOrientationEnum.optional(), sms_opt_in_status: z.boolean().nullable().optional(), ssn: z.string().max(37).nullable().optional(), suffix: z.string().max(20).optional(), tags: z.array(z.unknown()).nullable().optional(), timezone: z.union([timezoneEnum, nullEnum]).optional(), verified: z.boolean().optional(), vip: z.boolean().nullable().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 }; /** * Create Patient * * POST /api/2.0/patients/ */ export const createApiApi20Patients = async (args: CreateApiApi20PatientsArgs, options?: CreateApiApi20PatientsOptions) => { const {baseUrl = "https://sandbox.elationemr.com/api/2.0", fetch: fetchFn = fetch, oauth2} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (oauth2 !== undefined) headers.set('authorization', `Bearer ${oauth2}`) const url = `${baseUrl.replace(/\/+$/, '')}/api/2.0/patients/${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(patient, await res.json()) };