import {z} from 'zod' export type DeleteApiPatientsPatientIdArgs = {patientId: string}; export type DeleteApiPatientsPatientIdOptions = {baseUrl?: string | undefined, Bearer?: string | undefined, fetch?: typeof fetch | undefined}; export const idParam = z.string().min(24).max(24); export const userParam = z.string().min(24).max(24); export const deletedParam = z.union([z.literal(0), z.literal(1)]); export const createdByParam = z.string().min(24).max(24); export const updatedByParam = z.string().min(24).max(24); export const createdAtParam = z.string(); export const updatedAtParam = z.string(); export const rolesByUser = z.object({referringProvider: z.array(z.string().min(24).max(24)).optional(), renderingProvider: z.array(z.string().min(24).max(24)).optional()}); export const language = z.enum(["ar", "bn", "cn", "de", "en", "es", "fa", "fl", "fr", "gr", "gu", "hi", "ht", "hy", "it", "ja", "km", "ko", "mr", "my", "pa", "pl", "pt", "ru", "so", "th", "ti", "ur", "vi", "zh-t", "zh"]); export const settingProperty = z.object({session: z.object({logoutTimeout: z.number().optional()}).optional(), welcome: z.object({currentStep: z.number().optional(), termsAgreementDate: z.string().optional()}).optional(), telehealth: z.object({enabled: z.boolean().optional(), sessionReminderMinutes: z.number().optional(), sessionFinalReminderMinutes: z.number().optional(), maximumNoShowMinutes: z.number().optional(), vendor: z.enum(["twilio", "zoom"]).optional(), vendors: z.object({zoom: z.object({apiKey: z.string().optional(), apiSecret: z.string().optional(), type: z.enum(["free", "pro", "business"]).optional()}).optional()}).optional(), showTimer: z.boolean().optional(), requireProviderLogin: z.boolean().optional(), telehealthGroup: z.object({createDefaultGroup: z.object({enabled: z.boolean().optional()}).optional(), addProviderToDefaultGroup: z.object({enabled: z.boolean().optional()}).optional()}).optional()}).optional(), labs: z.object({enabled: z.boolean().optional()}).optional(), lumabot: z.object({enabled: z.boolean().optional(), includePoweredByLuma: z.boolean().optional(), placement: z.string().optional(), name: z.string().optional(), header: z.string().optional(), prompt: z.string().optional(), avatar: z.string().min(24).max(24).optional(), agentic: z.object({enabled: z.boolean().optional()}).optional(), theme: z.object({palette: z.object({primary: z.object({light: z.string().optional(), main: z.string().optional(), dark: z.string().optional(), contrastText: z.string().optional()}).optional(), secondary: z.object({light: z.string().optional(), main: z.string().optional(), dark: z.string().optional(), contrastText: z.string().optional()}).optional(), tertiary: z.object({light: z.string().optional(), main: z.string().optional(), dark: z.string().optional(), contrastText: z.string().optional()}).optional(), background: z.object({default: z.string().optional(), paper: z.string().optional()}).optional()}).optional()}).optional()}).optional(), communication: z.object({defaultChatVisibility: z.enum(["public", "internal"]).optional(), defaultChatCommunicationSecurity: z.object({level: z.enum(["secure", "insecure"]).optional(), acknowledgedBy: z.string().min(24).max(24).optional(), acknowledgedAt: z.string().optional()}).optional(), useFacilityPhoneAsFromNumber: z.boolean().optional(), useFacilityAlternativePhoneAsFromNumber: z.boolean().optional(), useFacilityNumberFallback: z.object({enabled: z.boolean().optional(), phone: z.string().optional()}).optional(), unsubscribedMessages: z.array(z.unknown()).optional(), blockedContacts: z.array(z.unknown()).optional(), limitedContacts: z.array(z.unknown()).optional(), expirePatientData: z.object({enabled: z.boolean().optional(), maxAgeInDays: z.number().optional()}).optional(), urlReplacers: z.array(z.object({find: z.string().optional(), replace: z.string().optional(), _id: z.string().min(24).max(24).optional()})).optional(), disableAutomaticLinkShortening: z.boolean().optional(), filterPatientMessageHistory: z.array(z.unknown()).optional(), staffDisabledChannels: z.array(z.enum(["sms", "voice", "email", "fax", "whatsapp"])).optional(), reopenChatsForUnclassifiedReplies: z.boolean().optional(), minLengthToReopenChat: z.number().optional(), minLengthToReopenChatPerTemplate: z.unknown(), reopenChatsWithStatusUnassigned: z.boolean().optional(), sendAfterHoursMessageForInboundChats: z.boolean().optional(), broadcastSkipPatientLookup: z.boolean().optional(), officeHoursPerDay: z.array(z.object({weekDay: z.number().optional(), beginAt: z.number().optional(), endAt: z.number().optional(), _id: z.string().min(24).max(24).optional()})).optional(), customHolidays: z.object({dates: z.array(z.object({date: z.string().optional(), description: z.string().optional(), closed: z.boolean().optional(), sendAppointmentReminders: z.enum(["before", "as-scheduled"]).optional(), sendReferralReminders: z.enum(["after", "as-scheduled"]).optional(), _id: z.string().min(24).max(24).optional()})).optional()}).optional(), officeHours: z.object({beginAt: z.number().optional(), endAt: z.number().optional()}).optional(), numberMasking: z.object({enabled: z.boolean().optional()}).optional(), emailMasking: z.object({enabled: z.boolean().optional(), fromName: z.string().optional(), fromEmail: z.string().optional()}).optional(), contactVerification: z.object({enabled: z.boolean().optional()}).optional(), patientInitiatedTexting: z.object({enabled: z.boolean().optional(), lookupCallerId: z.boolean().optional(), useRandomNumbersAsGeneratedName: z.boolean().optional()}).optional(), searchByToAndFrom: z.boolean().optional(), systemMessagesExpiration: z.object({enabled: z.boolean().optional(), value: z.number().optional(), unit: z.enum(["years", "months", "weeks", "days", "hours"]).optional()}).optional(), inboundMessageReplies: z.object({length: z.number().optional(), keys: z.array(z.unknown()).optional()}).optional(), outboundMessages: z.object({allowRetries: z.boolean().optional(), skipSmsToLandline: z.boolean().optional(), allowSmsOverLongCode: z.object({enabled: z.boolean().optional()}).optional(), multiChannelRetries: z.object({enabled: z.boolean().optional(), shouldSmsNumberBeRetriedAsVoice: z.object({enabled: z.boolean().optional()}).optional(), channels: z.array(z.enum(["sms", "voice", "email", "fax", "whatsapp"])).optional(), failuresToIgnoreByChannel: z.array(z.enum(["sms", "voice", "email", "fax", "whatsapp"])).optional(), refs: z.array(z.unknown()).optional(), number: z.number().optional()}).optional()}).optional(), filterChatsByGroupsFacilities: z.boolean().optional(), suppressMessagesByProvisioning: z.boolean().optional(), sortMessagesBy: z.enum(["unreadMessages", "priorityUpdatedAt"]).optional(), chatAssignmentOnHubSend: z.enum(["reassign", "keepAssignee"]).optional(), chatAssignmentOnProfileSend: z.enum(["reassign", "keepAssignee"]).optional(), useFixedNumber: z.object({enabled: z.boolean().optional(), vendor: z.enum(["twilio", "bandwidth"]).optional(), number: z.string().optional(), allowAutoReplacement: z.boolean().optional(), numbers: z.array(z.object({enabled: z.boolean().optional(), default: z.boolean().optional(), vendor: z.enum(["twilio", "bandwidth"]).optional(), number: z.string().optional(), allowAutoReplacement: z.boolean().optional(), _id: z.string().min(24).max(24).optional()})).optional()}).optional(), enableInboundCallForwardingToFacilityPhone: z.boolean().optional(), enableInboundCallForwardingToFacilityAlternativePhone: z.boolean().optional(), useExistentLumaContactOnBroadcastsWithEmptyValues: z.boolean().optional(), broadcast: z.object({patientsBatchLimit: z.object({enabled: z.boolean().optional(), value: z.number().optional(), interval: z.object({value: z.number().optional(), unit: z.enum(["minutes", "hours"]).optional()}).optional()}).optional(), rolesToBeNotifiedOnRequiredAction: z.object({shouldNotifyByGroup: z.boolean().optional(), roles: z.array(z.enum(["admin", "manager"])).optional()}).optional(), messagesOverrides: z.object({enabled: z.boolean().optional()}).optional(), uploadMapper: z.object({enabled: z.boolean().optional()}).optional(), statusChangesNotifications: z.object({enabled: z.boolean().optional()}).optional()}).optional(), ignoreInactiveContactsToSendMessage: z.object({enabled: z.boolean().optional()}).optional()}).optional(), timezone: z.string().optional(), useTimezoneFrom: z.enum(["user", "facility"]).optional(), localization: z.enum(["en-US", "pt-BR"]).optional(), scheduler: z.object({enabled: z.boolean().optional(), alwaysHideToolbar: z.boolean().optional(), zipcodeMaxDistance: z.number().optional(), daysAheadToShowAvailability: z.number().optional(), hoursAheadToShowAvailability: z.number().optional(), maxDaysToShow: z.number().optional(), skipResettingAvailabilities: z.boolean().optional(), skipTwoFactorAuthentication: z.boolean().optional(), skipHeatMap: z.boolean().optional(), requireForm: z.boolean().optional(), confirmationQrcode: z.object({enabled: z.boolean().optional(), value: z.string().optional()}).optional(), providerAvailabilityFilter: z.array(z.object({dayOfMonth: z.number().optional(), dayOfWeek: z.number().optional(), startTime: z.string().optional(), endTime: z.string().optional(), _id: z.string().min(24).max(24).optional()})).optional(), availabilityBlocks: z.array(z.object({dayOfWeek: z.number().optional(), startTime: z.number().optional(), endTime: z.number().optional(), _id: z.string().min(24).max(24).optional()})).optional(), maxAvailablitiesToRender: z.number().optional(), patientAddress: z.object({required: z.boolean().optional(), visible: z.boolean().optional()}).optional(), patientEmailAddress: z.object({required: z.boolean().optional()}).optional(), reschedulerRespectsSchedulerRules: z.boolean().optional(), createPatientOnLookupFailure: z.boolean().optional(), minimumIntervalRequiredForBooking: z.number().optional(), forceAppointmentTypeDuration: z.boolean().optional(), ignoreDurationOnAvailabilityLookup: z.boolean().optional(), useAppointmentDurationOnAvailabilityCoalescing: z.boolean().optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional(), showChatOnCompletion: z.boolean().optional(), preQualificationFormTemplate: z.string().min(24).max(24).optional(), allowMultiLinkedAppointments: z.boolean().optional(), hideProviderDetails: z.boolean().optional(), queryRealtimeAvailaiblitiesFromIntegration: z.boolean().optional(), sampleAvailabilityQuery: z.boolean().optional(), embeddedWidgetHtml: z.string().optional(), useDependentProviderOnAnchorAvailability: z.boolean().optional(), singleUseSchedulerLink: z.object({enabled: z.boolean().optional()}).optional(), onlyNotifyStaffOnAnchorApptBooking: z.boolean().optional(), minimumDaysFromLastAppointment: z.object({enabled: z.boolean().optional(), amount: z.number().optional(), status: z.array(z.enum(["confirmed", "unconfirmed", "cancelled"])).optional()}).optional()}).optional(), outboundReferral: z.object({enabled: z.boolean().optional(), attempts: z.number().optional(), interval: z.number().optional(), sendReferralFax: z.boolean().optional(), sendReferralFaxCoversheet: z.boolean().optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional(), displayVisitReasonDropdown: z.boolean().optional()}).optional(), referral: z.object({enabled: z.boolean().optional(), attempts: z.number().optional(), useOutreachExperience: z.object({enabled: z.boolean().optional()}).optional(), interval: z.number().optional(), schedulableWindow: z.object({earliest: z.number().optional(), latest: z.number().optional()}).optional(), sendReferralFax: z.boolean().optional(), sendReferralFaxCoversheet: z.boolean().optional(), sendReferralFaxStatus: z.object({scheduled: z.boolean().optional(), cancelled: z.boolean().optional(), incomplete: z.boolean().optional()}).optional(), sendReferralEmail: z.boolean().optional(), requireFullMatchForAutoSchedule: z.boolean().optional(), requireSpecificMatchForAutoSchedule: z.boolean().optional(), skipAutoSchedule: z.boolean().optional(), requireMaxHoursApartFromAppointmentForAutoSchedule: z.number().optional(), includeInternalMessagingInFollowupFax: z.boolean().optional(), formLink: z.string().optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional(), recommendations: z.object({timingPreferences: z.object({enabled: z.boolean().optional()}).optional()}).optional(), markReferralsIncompleteAfterLastOutreachInHours: z.number().optional(), useFacilityAlternativeNumber: z.boolean().optional(), suppressExpiration: z.object({enabled: z.boolean().optional()}).optional()}).optional(), reminder: z.object({multipleRemindersPerDay: z.enum(["onlySendEarliest", "multipleRemindersPerDay"]).optional(), onlySendEarliestForApptTypesWithRemindersEnabled: z.boolean().optional(), multipleRemindersPerDayShouldOnlyConsiderResourcesWithRemindersEnabledInSquiggly: z.boolean().optional(), multipleRemindersPerDayRepliesOverride: z.enum(["disabled", "allowed", "confirmationOnly", "none"]).optional(), schedule: z.array(z.unknown()).optional(), enabled: z.boolean().optional(), onConfirmation: z.enum(["skipFurtherReminders", "keepLastReminder"]).optional(), repliesForLastReminder: z.enum(["allowed", "confirmationOnly", "none"]).optional(), replies: z.enum(["allowed", "confirmationOnly", "none"]).optional(), enabledChannels: z.array(z.enum(["sms", "voice", "email", "fax", "whatsapp"])).optional(), treatCancellationsAsNoShows: z.number().optional(), offerToJoinWaitlistOnCancellation: z.enum(["disabled", "from-reminder", "from-integrator", "from-both"]).optional(), schedulableWindow: z.object({earliest: z.number().optional(), latest: z.number().optional()}).optional(), allowSelfSchedule: z.boolean().optional(), allowSelfReschedule: z.boolean().optional(), allowSelfRescheduleAvailabilityFilter: z.array(z.enum(["appointment-cancellation", "ui", "referral", "integrator"])).optional(), allowSelfRescheduleExpiry: z.number().optional(), rescheduleSundayToSaturday: z.boolean().optional(), forceVoiceCallsForSmsNonResponders: z.boolean().optional(), cancelOrConfirmAllAppointmentsInDay: z.boolean().optional(), cancelOrConfirmAppointmentsInDayOnlyIfTypeVisible: z.boolean().optional(), shouldRespectCancelOrConfirmAllAppointmentsInDay: z.boolean().optional(), allowConfirmAfterCancel: z.boolean().optional(), allowCancelAfterConfirm: z.boolean().optional(), allowCancelAfterAppointmentStart: z.boolean().optional(), strictConfirmCancelTextHandling: z.boolean().optional(), skipRedundantConfirmCancel: z.boolean().optional(), disableCatchupReminders: z.boolean().optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional(), forceMessageTime: z.object({enabled: z.boolean().optional(), until: z.string().optional()}).optional(), sendReminderOnHolidays: z.object({enabled: z.boolean().optional()}).optional()}).optional(), cancellation: z.object({enabled: z.boolean().optional(), expiration: z.number().optional(), processAppointmentTypes: z.boolean().optional(), requireFrontOfficeAcceptance: z.boolean().optional(), shadowAppointment: z.object({enabled: z.boolean().optional()}).optional(), allowDoubleBooks: z.boolean().optional(), skipAvailabilityCreateFromCancellationStatusSources: z.array(z.unknown()).optional(), maxDaysAheadsToProcessCancellation: z.number().optional(), minMinutesAheadsToProcessCancellation: z.number().optional(), minMinutesAheadsToProcessCancellationProviderOverridePolicy: z.enum(["min", "max"]).optional(), spotsDiscovery: z.object({enabled: z.boolean().optional(), maxSpots: z.number().optional(), hoursAhead: z.number().optional(), includeWhitespace: z.boolean().optional()}).optional(), autoAddToWaitlist: z.object({enabled: z.boolean().optional(), daysAhead: z.number().optional(), maxDaysAhead: z.number().optional(), minDaysFromLastAcceptedOfferToJoinWaitlist: z.number().optional()}).optional(), waitlistOfferFlexibility: z.enum(["strict", "facility-match", "provider-match", "any"]).optional(), waitlistOfferSortOrder: z.enum(["longest-waiting", "most-recent-added"]).optional(), waitlistLocationOfferLeadTimeOverrides: z.array(z.object({facilityId: z.unknown(), minimumLeadTimeDays: z.number().gte(0).optional()})).optional(), sendYouveBeenAddedMessage: z.boolean().optional(), skipOfferBasedOnLastSentOffer: z.boolean().optional(), maxOffersPerWaitlist: z.number().optional(), protocol: z.enum(["serial", "parallel"]).optional(), offerToJoinDuration: z.number().optional(), autoCreateWaitlists: z.boolean().optional(), delayOffers: z.object({enabled: z.boolean().optional(), until: z.string().optional(), delayOn: z.enum(["weekdays", "all-days"]).optional(), weekdaysDelay: z.object({enabled: z.boolean().optional(), until: z.string().optional()}).optional(), weekendsDelay: z.object({enabled: z.boolean().optional(), until: z.string().optional()}).optional()}).optional(), disableOnWeekends: z.boolean().optional(), cancelFutureAppointment: z.boolean().optional(), requireFutureAppointment: z.boolean().optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional()}).optional(), appointment: z.object({duration: z.number().optional(), recommendations: z.object({timingPreferences: z.object({enabled: z.boolean().optional()}).optional()}).optional(), validateUpdatedAtTimestamp: z.boolean().optional()}).optional(), feedback: z.object({multipleRemindersPerDay: z.enum(["onlySendEarliest", "multipleRemindersPerDay"]).optional(), enabled: z.boolean().optional(), promoter: z.object({type: z.enum(["facebook", "yelp", "patientfusion", "betterdoctor", "zocdoc", "google", "generic", "healthgrades", "ratemds"]).optional(), url: z.string().optional()}).optional(), promoterUrls: z.array(z.object({type: z.enum(["facebook", "yelp", "patientfusion", "betterdoctor", "zocdoc", "google", "generic", "healthgrades", "ratemds"]).optional(), url: z.string().optional(), enabled: z.boolean().optional(), _id: z.string().min(24).max(24).optional()})).optional(), detractor: z.object({type: z.enum(["google", "luma"]).optional(), url: z.string().optional()}).optional(), detractorUrls: z.array(z.object({type: z.enum(["google", "surveymonkey", "luma"]).optional(), url: z.string().optional(), enabled: z.boolean().optional(), _id: z.string().min(24).max(24).optional()})).optional(), schedule: z.number().optional(), interval: z.object({enabled: z.boolean().optional(), value: z.number().optional()}).optional(), limit: z.object({enabled: z.boolean().optional(), value: z.number().optional()}).optional(), allowFeedbackForPastAppointments: z.boolean().optional(), forceMessageTime: z.object({enabled: z.boolean().optional(), until: z.string().optional()}).optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional(), recommendations: z.object({timingPreferences: z.object({enabled: z.boolean().optional()}).optional()}).optional(), forceSkipBlackoutRules: z.boolean().optional()}).optional(), followup: z.object({enabled: z.boolean().optional(), recommendations: z.object({timingPreferences: z.object({enabled: z.boolean().optional()}).optional()}).optional(), sendMessageForceTimeUsingTimezone: z.boolean().optional(), ignoreCustomActionOperationsModelsFields: z.object({operations: z.array(z.unknown()).optional(), models: z.array(z.unknown()).optional(), fields: z.array(z.enum(["user", "_id", "deleted", "createdAt", "updatedAt", "createdBy", "updatedBy", "deletedBy", "deletedAt", "provider", "facility", "type", "patient", "source", "statusSource", "status", "statusReason", "notes", "date", "endDate", "duration", "stats", "cancelledAt", "confirmedAt", "arrivedAt", "createdFromReferral", "externalRawSource", "customerRawSource", "telehealth", "externalId.source", "externalId.value", "secondaryExternalId.source", "secondaryExternalId.value", "integratorUpdateResults.status", "integratorUpdateResults.error", "__v"])).optional()}).optional(), sendImmediatelyWithPastSendAt: z.boolean().optional(), triggerCustomActionForDeletion: z.boolean().optional()}).optional(), integrator: z.object({requireLock: z.boolean().optional(), lockExpiryInMinutes: z.number().optional(), syncWindow: z.object({earliest: z.number().optional(), latest: z.number().optional(), days: z.number().optional(), currentWeekSyncPastDataInDays: z.number().optional()}).optional(), writeDataToIntegrator: z.object({createAppointments: z.boolean().optional(), createAppointmentsMaxRetries: z.number().optional(), updateAvailabilityExternalIdOnCreateAppointmentSuccess: z.boolean().optional(), updateStatus: z.boolean().optional(), updatePatientDemographics: z.boolean().optional(), updatePatientDemographicsName: z.boolean().optional(), updatePatientDemographicsDateOfBirth: z.boolean().optional(), flushPatientMessageHistory: z.boolean().optional(), flushPatientMessageHistoryDelay: z.number().optional(), flushPatientMessageHistoryDayOfWeek: z.number().optional(), updateAppointmentNotesWithTelehealthLink: z.boolean().optional(), updateAppointmentWithReminderSentStatus: z.boolean().optional(), createOutboundHl7MessageOn: z.array(z.enum(["cancelled", "confirmed", "created"])).optional(), createPatient: z.boolean().optional(), cacheDeletedAppointments: z.boolean().optional()}).optional(), frequency: z.number().optional(), enforceProviderDeltaCheck: z.boolean().optional(), enforceAppointmentDeltaCheck: z.boolean().optional(), syncProcedures: z.boolean().optional(), syncDiagnoses: z.boolean().optional(), syncReferrals: z.boolean().optional(), syncRecalls: z.boolean().optional(), syncInsurances: z.boolean().optional(), syncOrders: z.boolean().optional(), verifySlotIsOpenBeforeAppointmentCreation: z.boolean().optional(), verifyWhitespaceIsOpenBeforeAppointmentCreation: z.boolean().optional(), requireValueAndTypeMatchOnDemographicsUpdate: z.boolean().optional(), skipGetProvider: z.boolean().optional(), syncAppointmentExternalRawSource: z.boolean().optional(), syncProviderUpdates: z.object({enabled: z.boolean().optional()}).optional(), syncPatientExternalRawSource: z.boolean().optional(), syncAdditionalDemographicFields: z.boolean().optional(), externalCustomResourceOverrides: z.array(z.object({resource: z.enum(["provider", "appointment-type", "facility"]).optional(), override: z.array(z.string()).optional(), _id: z.string().min(24).max(24).optional()})).optional(), syncNewResourcesAs: z.object({hiddenAfterDays: z.number().optional(), hiddenResources: z.array(z.enum(["provider", "appointment-type", "facility"])).optional(), disabledAfterDays: z.number().optional(), disabledResources: z.array(z.enum(["provider", "appointment-type", "facility"])).optional()}).optional(), historicDataLoader: z.object({daysToLoad: z.number().optional(), daysPerLoad: z.number().optional()}).optional(), disableDedupeIncomingPatientData: z.boolean().optional(), disablePatientsGetByExternalTypeAndComponents: z.boolean().optional(), sftpConfirmationRangeInHours: z.number().optional(), syncReferralsDisableExpiryForMissingReferrals: z.boolean().optional(), uploadReferralsPerformCompleteDeltaCheck: z.boolean().optional(), syncAppointmentsInParallel: z.boolean().optional(), updateReferralsWithExternalRawSource: z.boolean().optional()}).optional(), patients: z.object({maxTokenAge: z.number().optional(), loginLookupInIntegrator: z.boolean().optional(), loginRequireActiveContactMatch: z.boolean().optional(), requireCaptcha: z.boolean().optional(), useAtlasSearch: z.boolean().optional(), appointmentManagement: z.object({enabled: z.boolean().optional()}).optional()}).optional(), reporting: z.object({eventTracking: z.object({enabled: z.boolean().optional(), trackingModel: z.enum(["patient", "user", "user-and-patient"]).optional(), vendors: z.array(z.string()).optional()}).optional(), useUserTimezoneInReports: z.boolean().optional()}).optional(), waitingRoom: z.object({enabled: z.boolean().optional()}).optional(), settingsToOverrideFrom: z.object({facilities: z.array(z.unknown()).optional(), providers: z.array(z.unknown()).optional(), appointmentTypes: z.array(z.unknown()).optional(), users: z.array(z.unknown()).optional()}).optional(), billing: z.object({vendors: z.object({paypal: z.object({enabled: z.boolean().optional()}).optional(), instamed: z.object({enabled: z.boolean().optional()}).optional(), salucro: z.object({enabled: z.boolean().optional()}).optional()}).optional(), contactNumber: z.string().optional(), contactEmail: z.string().optional()}).optional(), patientForms: z.object({filterPatientFormsByFacility: z.boolean().optional(), preventRefillingCompletedForms: z.boolean().optional(), allowPerQuestionTwoFactorSkip: z.boolean().optional(), showMessageOnFormEnd: z.boolean().optional(), sendDirectMessageForCcdaForms: z.object({enabled: z.boolean().optional(), vendor: z.literal("datamotion").optional(), minutesAheadsToLookForAppointments: z.number().optional(), directMessagingEmail: z.string().optional()}).optional(), allowWidgetUserToUploadFile: z.boolean().optional(), hideProgressBarOnFormsWithJump: z.boolean().optional(), insuranceFormTemplate: z.string().min(24).max(24).optional()}).optional(), insurance: z.object({verification: z.object({enabled: z.boolean().optional(), hoursAheadToVerifyInsurance: z.number().optional()}).optional()}).optional(), branding: z.object({themes: z.array(z.object({enabled: z.boolean().optional(), scope: z.string()})).optional()}).optional(), estimate: z.object({updateFileUploadPatient: z.boolean().optional()}).optional()}); export const salesforceData = z.object({customerSuccessManager: z.object({name: z.string().optional(), email: z.string().optional(), phone: z.string().optional()}).optional(), provisioning: z.array(z.enum(["reminder", "waitlist", "feedback", "followup", "referral", "outbound-referral", "chat", "scheduler", "recall", "insurance", "broadcast", "form", "intake-form", "prequal-form", "branding", "upload", "telehealth", "waiting-room", "luma-pay", "insurance-verification"])).optional(), respectProvisioning: z.boolean(), lifeline: z.enum(["trial", "converted", "active", "churn"]).optional(), mrr: z.number().optional(), arr: z.number().optional(), renewalDate: z.string().optional(), providers: z.number().optional(), specialty: z.string().optional(), referralTrialLimit: z.number().optional(), recordType: z.string().optional(), domesticAccessRequired: z.boolean().optional(), goLiveAt: z.string().optional(), fullyImplementedAt: z.string().optional(), contractSignedAt: z.string().optional(), contractLength: z.number().optional(), healthStatus: z.enum(["green", "yellow", "red", "poor fit", "Healthy", "Neutral", "Churn Risk", "Advocate"]).optional(), boardSegment: z.enum(["Reseller", "Strategic", "Majors", "Core", "Sub 20", "Unknown"]).optional(), onboardingState: z.enum(["Customer Success Introduction", "Kickoff", "Integration", "Discovery Call", "Customization", "Testing", "Staff Training", "Ready To Launch", "Go-Live", "Fully Implemented"]).optional(), accountLifeline: z.enum(["Unassigned", "Assigned", "Sales Accepted", "Working", "Sales Qualified", "Open Opportunity", "Nurture", "Disqualified", "Trial", "Converted", "Active", "Churned", "Partnered", "Trial Ended (No Conversion)"]).optional()}); export const externalId = z.object({source: z.enum(["gcalendar", "successehs", "drchrono", "dentrix", "webpt", "theraoffice", "mi7", "practicefusion", "advancedmd", "acomrapidpm", "kareo", "nextech", "mwtherapy", "clinicient", "carecloud", "eclinicalmobile", "duxware", "labretriever", "optimispt", "referral", "recall", "allscriptspm", "lytec", "brightree", "fullslate", "nuemd", "centricityps", "officeally", "greenwayintergy", "compulink", "adspm", "dsnpm", "lumamock", "medicalmastermind", "meditouch", "healthnautica", "ezemrx", "hl7", "amazingcharts", "greenwayprimesuite", "raintree", "athenahealth", "revflow", "eclinicalworks10e", "hl7pickup", "mindbody", "eclinicalworkssql", "nextgen", "practiceperfect", "avimark", "clinix", "keymedical", "mdoffice", "webedoctor", "emapm", "medinformatix", "imsgo", "emds", "allscriptsunity", "medevolve", "caretracker", "clearpractice", "valant", "micromd", "systemedx", "medicalmaster", "athenamdp", "gmed", "roche", "onetouch", "somnoware", "managementplus", "lumacare", "nextechfhir", "curemd", "epic", "phoenixortho", "ezderm", "ggastromobile", "epicconfirmationpickup", "cerner", "allmeds", "oncoemrfilepickup", "imedicware", "modmedfhir", "clinux", "acuityscheduling", "medstreaming", "isalus", "meditechexpanse", "openemr", "genericfhir", "nextechpracticeplus", "sms", "voice", "email", "none"]).optional(), value: z.string().optional()}); export const patientResponse = z.object({_id: idParam.optional(), user: userParam.optional(), deleted: deletedParam.optional(), createdBy: createdByParam.optional(), updatedBy: updatedByParam.optional(), createdAt: createdAtParam.optional(), updatedAt: updatedAtParam.optional(), culture: z.enum(["cn", "hk"]).optional(), birthSex: z.enum(["M", "F", "UNK"]).optional(), race: z.enum(["american-indian-or-alaska-native", "asian", "black-or-african-american", "native-hawaiian-or-other-pacific-islander", "white", "other-race"]).optional(), ethnicityGroup: z.enum(["hispanic-or-latino", "not-hispanic-or-latino"]).optional(), suffix: z.enum(["II", "III", "IV", "Jr.", "Sr."]).optional(), previousAddress: z.string().optional(), stats: z.object({counters: z.object({messagesSentToPatient: z.number().optional(), confirmedAppointments: z.number().optional(), cancelledAppointments: z.number().optional(), offersSent: z.number().optional(), offersAccepted: z.number().optional(), appointmentOffersReplied: z.number().optional()}).optional(), average: z.object({appointmentOfferReplyTime: z.number().optional()}).optional(), metadata: z.object({lastAppointmentAt: z.string().optional()}).optional(), oldestAppointment: z.string().optional()}).optional(), lastProcessedAt: z.string().optional(), source: z.enum(["widget", "integrator", "ui", "referring-provider", "hub"]).optional(), widget: z.literal("lumabot").optional(), mergedInto: z.string().min(24).max(24).optional(), subscribers: z.array(z.object({subscribed: z.boolean().optional(), user: z.string().min(24).max(24).optional(), _id: z.string().min(24).max(24).optional()})).optional(), outboundContact: z.array(z.object({provider: z.enum(["mandrill", "twilio", "nexmo", "sendgrid", "plivo", "bandwidth", "ringcentral", "awsses", "interfax"]).optional(), channel: z.enum(["sms", "voice", "fax", "email", "whatsapp"]).optional(), value: z.string().optional(), active: z.boolean().optional(), _id: z.string().min(24).max(24).optional()})).optional(), primaryCareProvider: z.string().min(24).max(24).optional(), recommendations: z.object({reminderTime: z.number().optional()}).optional(), balance: z.number().optional(), balanceUpdatedAt: z.string().optional(), searchIds: z.array(z.string()).optional(), randomName: z.boolean().optional(), testPatient: z.boolean().optional(), name: z.string().optional(), normalizedName: z.string().optional(), firstname: z.string().optional(), lastname: z.string().optional(), middlename: z.string().optional(), displayPhone: z.string().optional(), displayStatus: z.enum(["active", "pending", "suspended"]).optional(), email: z.string().optional(), safeId: z.string().optional(), type: z.enum(["doctor", "staff", "patient", "guest"]).optional(), roles: z.array(z.string()).optional(), rolesByUser: rolesByUser.optional(), organization: z.string().min(24).max(24).optional(), contact: z.array(z.object({type: z.enum(["inapp", "sms", "voice", "email", "fax", "whatsapp"]).optional(), value: z.string().optional(), active: z.boolean().optional(), archived: z.boolean().optional(), archivedReason: z.enum(["none", "unreachable", "do-not-contact"]).optional(), archivedMessage: z.string().min(24).max(24).optional()})).optional(), doNotContact: z.boolean().optional(), doNotContactMessage: z.string().min(24).max(24).optional(), groups: z.array(z.unknown()).optional(), stripeCustomerId: z.string().optional(), stripeSubscriptionId: z.string().optional(), salesforceId: z.string().optional(), lastLogin: z.string().optional(), active: z.number().optional(), master: z.boolean().optional(), language: language.optional(), setting: z.string().min(24).max(24).optional(), settings: settingProperty.optional(), address: z.string().optional(), city: z.string().optional(), state: z.string().optional(), country: z.string().optional(), postcode: z.string().optional(), gender: z.enum(["male", "female", "unknown", "nonbinary"]).optional(), allowedIps: z.array(z.string()).optional(), avatar: z.string().min(24).max(24).optional(), publicKey: z.string().optional(), directMessagingEmail: z.string().optional(), demoConfiguration: z.object({type: z.literal("default").optional()}).optional(), website: z.string().optional(), salesforceData: salesforceData.optional(), externalId: externalId.optional(), secondaryExternalId: externalId.optional(), dateOfBirth: z.object({year: z.number().optional(), month: z.number().optional(), day: z.number().optional()}).optional(), twoFactorAuthSecret: z.object({enabled: z.boolean().optional()}).optional(), __v: z.number().optional(), __t: 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 }; /** * Delete a patient * * DELETE /patients/{patientId} */ export const deleteApiPatientsPatientId = async (args: DeleteApiPatientsPatientIdArgs, options?: DeleteApiPatientsPatientIdOptions) => { const {baseUrl = "https://api.lumahealth.io/api/v2", fetch: fetchFn = fetch, Bearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (Bearer !== undefined) headers.set('authorization', `Bearer ${Bearer}`) const url = `${baseUrl.replace(/\/+$/, '')}/patients/${encodeURIComponent(String(args.patientId))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "DELETE", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(patientResponse, await res.json()) };