fix: allow letters in insurance ID; add patient state (default MA)

- Backend insurance ID check now accepts letters + digits (BCBS IDs have
  a letter prefix), matching the frontend schema; create route validates
  the normalized body
- Patient.state column (default "MA") with State select on the patient
  form; ADA claim form uses the patient's state instead of the office's
- Rebuild stale packages/db compiled .js so the runtime schemas include
  new fields (state, office billing NPI fields, Telnyx settings)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-08 23:29:27 -04:00
co-authored by Claude Opus 5.5
parent 2c0c595af5
commit 1abc2c705d
664 changed files with 6263 additions and 843 deletions
+52 -22
View File
@@ -1,5 +1,5 @@
import * as z from "zod";
export declare const PatientStatusSchema: z.ZodEnum<["ACTIVE", "INACTIVE", "UNKNOWN"]>;
export declare const PatientStatusSchema: z.ZodEnum<["ACTIVE", "INACTIVE", "UNKNOWN", "PLAN_NOT_ACCEPTED"]>;
export type PatientStatus = z.infer<typeof PatientStatusSchema>;
export declare const ClaimStatusSchema: z.ZodEnum<["PENDING", "APPROVED", "CANCELLED", "REVIEW", "VOID"]>;
export type ClaimStatus = z.infer<typeof ClaimStatusSchema>;
@@ -37,37 +37,67 @@ export declare const PatientUncheckedCreateInputObjectSchema: z.ZodObject<{
firstName: z.ZodString;
lastName: z.ZodString;
dateOfBirth: z.ZodString;
phone: z.ZodOptional<z.ZodString>;
email: z.ZodOptional<z.ZodString>;
address: z.ZodOptional<z.ZodString>;
city: z.ZodOptional<z.ZodString>;
state: z.ZodOptional<z.ZodString>;
zipCode: z.ZodOptional<z.ZodString>;
status: z.ZodOptional<z.ZodEnum<["ACTIVE", "INACTIVE", "UNKNOWN"]>>;
gender: z.ZodNullable<z.ZodOptional<z.ZodString>>;
phone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
email: z.ZodNullable<z.ZodOptional<z.ZodString>>;
address: z.ZodNullable<z.ZodOptional<z.ZodString>>;
city: z.ZodNullable<z.ZodOptional<z.ZodString>>;
state: z.ZodNullable<z.ZodOptional<z.ZodString>>;
zipCode: z.ZodNullable<z.ZodOptional<z.ZodString>>;
insuranceProvider: z.ZodNullable<z.ZodOptional<z.ZodString>>;
insuranceId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
groupNumber: z.ZodNullable<z.ZodOptional<z.ZodString>>;
policyHolder: z.ZodNullable<z.ZodOptional<z.ZodString>>;
allergies: z.ZodNullable<z.ZodOptional<z.ZodString>>;
medicalConditions: z.ZodNullable<z.ZodOptional<z.ZodString>>;
preferredLanguage: z.ZodNullable<z.ZodOptional<z.ZodString>>;
status: z.ZodOptional<z.ZodEnum<["ACTIVE", "INACTIVE", "UNKNOWN", "PLAN_NOT_ACCEPTED"]>>;
userId: z.ZodOptional<z.ZodNumber>;
createdAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
dateOfBirth: string;
firstName: string;
lastName: string;
status?: "ACTIVE" | "INACTIVE" | "UNKNOWN" | undefined;
status?: "ACTIVE" | "INACTIVE" | "UNKNOWN" | "PLAN_NOT_ACCEPTED" | undefined;
id?: number | undefined;
email?: string | undefined;
phone?: string | undefined;
city?: string | undefined;
state?: string | undefined;
zipCode?: string | undefined;
address?: string | undefined;
createdAt?: Date | undefined;
userId?: number | undefined;
email?: string | null | undefined;
phone?: string | null | undefined;
insuranceProvider?: string | null | undefined;
city?: string | null | undefined;
state?: string | null | undefined;
zipCode?: string | null | undefined;
gender?: string | null | undefined;
address?: string | null | undefined;
insuranceId?: string | null | undefined;
groupNumber?: string | null | undefined;
policyHolder?: string | null | undefined;
allergies?: string | null | undefined;
medicalConditions?: string | null | undefined;
preferredLanguage?: string | null | undefined;
}, {
dateOfBirth: string;
firstName: string;
lastName: string;
status?: "ACTIVE" | "INACTIVE" | "UNKNOWN" | undefined;
status?: "ACTIVE" | "INACTIVE" | "UNKNOWN" | "PLAN_NOT_ACCEPTED" | undefined;
id?: number | undefined;
email?: string | undefined;
phone?: string | undefined;
city?: string | undefined;
state?: string | undefined;
zipCode?: string | undefined;
address?: string | undefined;
createdAt?: Date | undefined;
userId?: number | undefined;
email?: string | null | undefined;
phone?: string | null | undefined;
insuranceProvider?: string | null | undefined;
city?: string | null | undefined;
state?: string | null | undefined;
zipCode?: string | null | undefined;
gender?: string | null | undefined;
address?: string | null | undefined;
insuranceId?: string | null | undefined;
groupNumber?: string | null | undefined;
policyHolder?: string | null | undefined;
allergies?: string | null | undefined;
medicalConditions?: string | null | undefined;
preferredLanguage?: string | null | undefined;
}>;
export declare const StaffUncheckedCreateInputObjectSchema: z.ZodObject<{
id: z.ZodOptional<z.ZodNumber>;
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["browser.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB,eAAO,MAAM,mBAAmB,mEAAiE,CAAC;AAClG,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB,mEAM5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,mBAAmB,sDAM9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,mBAAmB,gFAO9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,uBAAuB,kDAKlC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB,gCAA8B,CAAC;AACjE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,iBAAiB,0GAM5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,0BAA0B,6BAA2B,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,4BAA4B,oCAAkC,CAAC;AAC5E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAC1C,OAAO,4BAA4B,CACpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,wFAQpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAI5E,eAAO,MAAM,oCAAoC;;;;;;;;;;;;EAI/C,CAAC;AAEH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBlD,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;EAQhD,CAAC;AAEH,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAetD,CAAC;AAEH,eAAO,MAAM,oDAAoD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc/D,CAAC;AAEH,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;;;;;;EAMtD,CAAC;AAEH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;EAShD,CAAC;AAEH,eAAO,MAAM,mDAAmD;;;;;;;;;;;;;;;;;;EAM9D,CAAC;AAEH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;EAMlD,CAAC;AAEH,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;EAMnD,CAAC;AAEH,eAAO,MAAM,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;EASlD,CAAC;AAEH,eAAO,MAAM,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;EASxD,CAAC;AAEH,eAAO,MAAM,4CAA4C;;;;;;;;;;;;;;;;;;;;;EAOvD,CAAC;AAEH,eAAO,MAAM,8CAA8C;;;;;;;;;;;;EAIzD,CAAC;AAEH,eAAO,MAAM,iDAAiD;;;;;;;;;;;;;;;;;;EAM5D,CAAC;AAEH,eAAO,MAAM,2CAA2C;;;;;;;;;;;;;;;;;;EAMtD,CAAC;AAEH,eAAO,MAAM,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUpD,CAAC;AAEH,eAAO,MAAM,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWxD,CAAC;AAEH,eAAO,MAAM,8CAA8C;;;;;;;;;;;;;;;;;;;;;EAOzD,CAAC"}
+17 -7
View File
@@ -36,7 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.ShoppingVendorUncheckedCreateInputObjectSchema = exports.CommunicationUncheckedCreateInputObjectSchema = exports.CloudFileUncheckedCreateInputObjectSchema = exports.CloudFolderUncheckedCreateInputObjectSchema = exports.BackupDestinationUncheckedCreateInputObjectSchema = exports.DatabaseBackupUncheckedCreateInputObjectSchema = exports.NotificationUncheckedCreateInputObjectSchema = exports.ServiceLineTransactionCreateInputObjectSchema = exports.PaymentUncheckedCreateInputObjectSchema = exports.PdfGroupUncheckedCreateInputObjectSchema = exports.PdfFileUncheckedCreateInputObjectSchema = exports.InsuranceCredentialUncheckedCreateInputObjectSchema = exports.ClaimUncheckedCreateInputObjectSchema = exports.NpiProviderUncheckedCreateInputObjectSchema = exports.AppointmentProcedureUncheckedCreateInputObjectSchema = exports.AppointmentUncheckedCreateInputObjectSchema = exports.StaffUncheckedCreateInputObjectSchema = exports.PatientUncheckedCreateInputObjectSchema = exports.UserUncheckedCreateInputObjectSchema = exports.CommunicationStatusSchema = exports.CommunicationDirectionSchema = exports.CommunicationChannelSchema = exports.PdfTitleKeySchema = exports.ProcedureSourceSchema = exports.NotificationTypesSchema = exports.PaymentStatusSchema = exports.PaymentMethodSchema = exports.ClaimStatusSchema = exports.PatientStatusSchema = void 0;
const z = __importStar(require("zod"));
// ─── Enums ────────────────────────────────────────────────────────────────────
exports.PatientStatusSchema = z.enum(["ACTIVE", "INACTIVE", "UNKNOWN"]);
exports.PatientStatusSchema = z.enum(["ACTIVE", "INACTIVE", "UNKNOWN", "PLAN_NOT_ACCEPTED"]);
exports.ClaimStatusSchema = z.enum([
"PENDING",
"APPROVED",
@@ -95,13 +95,23 @@ exports.PatientUncheckedCreateInputObjectSchema = z.object({
firstName: z.string(),
lastName: z.string(),
dateOfBirth: z.string(),
phone: z.string().optional(),
email: z.string().optional(),
address: z.string().optional(),
city: z.string().optional(),
state: z.string().optional(),
zipCode: z.string().optional(),
gender: z.string().optional().nullable(),
phone: z.string().optional().nullable(),
email: z.string().optional().nullable(),
address: z.string().optional().nullable(),
city: z.string().optional().nullable(),
state: z.string().optional().nullable(),
zipCode: z.string().optional().nullable(),
insuranceProvider: z.string().optional().nullable(),
insuranceId: z.string().optional().nullable(),
groupNumber: z.string().optional().nullable(),
policyHolder: z.string().optional().nullable(),
allergies: z.string().optional().nullable(),
medicalConditions: z.string().optional().nullable(),
preferredLanguage: z.string().optional().nullable(),
status: exports.PatientStatusSchema.optional(),
userId: z.number().int().optional(),
createdAt: z.coerce.date().optional(),
});
exports.StaffUncheckedCreateInputObjectSchema = z.object({
id: z.number().int().optional(),