fix: allow claims without appointment + support post/core multi-tooth input
- Make appointmentId nullable/optional in Prisma Zod schema via @zod rich comment so claims can be submitted without an existing appointment - Convert undefined appointmentId to null in all claim form handlers and the backend claim creation endpoint - Add AI classifier rule for expanding one procedure across multiple comma-separated tooth numbers (e.g. "post/core on #23, 24, 25, 26") - Add "post/core" (slash) alias to CDT lookup maps Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -47,13 +47,19 @@ exports.UserFindFirstSelectSchema = z.object({
|
||||
username: z.boolean().optional(),
|
||||
password: z.boolean().optional(),
|
||||
autoBackupEnabled: z.boolean().optional(),
|
||||
autoBackupHour: z.boolean().optional(),
|
||||
usbBackupEnabled: z.boolean().optional(),
|
||||
usbBackupHour: z.boolean().optional(),
|
||||
autoMhCheckEnabled: z.boolean().optional(),
|
||||
autoMhCheckDayOfWeek: z.boolean().optional(),
|
||||
autoMhCheckHour: z.boolean().optional(),
|
||||
patients: z.boolean().optional(),
|
||||
appointments: z.boolean().optional(),
|
||||
staff: z.boolean().optional(),
|
||||
npiProviders: z.boolean().optional(),
|
||||
claims: z.boolean().optional(),
|
||||
insuranceCredentials: z.boolean().optional(),
|
||||
shoppingVendors: z.boolean().optional(),
|
||||
updatedPayments: z.boolean().optional(),
|
||||
backups: z.boolean().optional(),
|
||||
backupDestinations: z.boolean().optional(),
|
||||
@@ -61,6 +67,13 @@ exports.UserFindFirstSelectSchema = z.object({
|
||||
cloudFolders: z.boolean().optional(),
|
||||
cloudFiles: z.boolean().optional(),
|
||||
communications: z.boolean().optional(),
|
||||
twilioSettings: z.boolean().optional(),
|
||||
aiSettings: z.boolean().optional(),
|
||||
officeHours: z.boolean().optional(),
|
||||
officeContact: z.boolean().optional(),
|
||||
procedureTimeslot: z.boolean().optional(),
|
||||
insuranceContacts: z.boolean().optional(),
|
||||
patientConversations: z.boolean().optional(),
|
||||
_count: z.boolean().optional()
|
||||
}).strict();
|
||||
exports.UserFindFirstSelectZodSchema = z.object({
|
||||
@@ -68,13 +81,19 @@ exports.UserFindFirstSelectZodSchema = z.object({
|
||||
username: z.boolean().optional(),
|
||||
password: z.boolean().optional(),
|
||||
autoBackupEnabled: z.boolean().optional(),
|
||||
autoBackupHour: z.boolean().optional(),
|
||||
usbBackupEnabled: z.boolean().optional(),
|
||||
usbBackupHour: z.boolean().optional(),
|
||||
autoMhCheckEnabled: z.boolean().optional(),
|
||||
autoMhCheckDayOfWeek: z.boolean().optional(),
|
||||
autoMhCheckHour: z.boolean().optional(),
|
||||
patients: z.boolean().optional(),
|
||||
appointments: z.boolean().optional(),
|
||||
staff: z.boolean().optional(),
|
||||
npiProviders: z.boolean().optional(),
|
||||
claims: z.boolean().optional(),
|
||||
insuranceCredentials: z.boolean().optional(),
|
||||
shoppingVendors: z.boolean().optional(),
|
||||
updatedPayments: z.boolean().optional(),
|
||||
backups: z.boolean().optional(),
|
||||
backupDestinations: z.boolean().optional(),
|
||||
@@ -82,6 +101,13 @@ exports.UserFindFirstSelectZodSchema = z.object({
|
||||
cloudFolders: z.boolean().optional(),
|
||||
cloudFiles: z.boolean().optional(),
|
||||
communications: z.boolean().optional(),
|
||||
twilioSettings: z.boolean().optional(),
|
||||
aiSettings: z.boolean().optional(),
|
||||
officeHours: z.boolean().optional(),
|
||||
officeContact: z.boolean().optional(),
|
||||
procedureTimeslot: z.boolean().optional(),
|
||||
insuranceContacts: z.boolean().optional(),
|
||||
patientConversations: z.boolean().optional(),
|
||||
_count: z.boolean().optional()
|
||||
}).strict();
|
||||
exports.UserFindFirstSchema = z.object({ select: exports.UserFindFirstSelectSchema.optional(), include: z.lazy(() => UserInclude_schema_1.UserIncludeObjectSchema.optional()), orderBy: z.union([UserOrderByWithRelationInput_schema_1.UserOrderByWithRelationInputObjectSchema, UserOrderByWithRelationInput_schema_1.UserOrderByWithRelationInputObjectSchema.array()]).optional(), where: UserWhereInput_schema_1.UserWhereInputObjectSchema.optional(), cursor: UserWhereUniqueInput_schema_1.UserWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([UserScalarFieldEnum_schema_1.UserScalarFieldEnumSchema, UserScalarFieldEnum_schema_1.UserScalarFieldEnumSchema.array()]).optional() }).strict();
|
||||
|
||||
Reference in New Issue
Block a user