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:
2026-06-28 22:57:24 -04:00
parent c9d08028a9
commit e1fe4862d5
1613 changed files with 59200 additions and 422 deletions

View File

@@ -4,13 +4,15 @@
* Auto-generated - do not edit manually
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.PatientDocumentInputSchema = exports.CommunicationInputSchema = exports.CloudFileChunkInputSchema = exports.CloudFileInputSchema = exports.CloudFolderInputSchema = exports.CronJobLogInputSchema = exports.NotificationInputSchema = exports.BackupDestinationInputSchema = exports.DatabaseBackupInputSchema = exports.ServiceLineTransactionInputSchema = exports.PaymentInputSchema = exports.PdfFileInputSchema = exports.PdfGroupInputSchema = exports.InsuranceCredentialInputSchema = exports.ClaimFileInputSchema = exports.ServiceLineInputSchema = exports.ClaimInputSchema = exports.AppointmentProcedureInputSchema = exports.NpiProviderInputSchema = exports.StaffInputSchema = exports.AppointmentInputSchema = exports.PatientInputSchema = exports.UserInputSchema = void 0;
exports.CommissionBatchItemInputSchema = exports.CommissionBatchInputSchema = exports.PatientConversationInputSchema = exports.ProcedureTimeslotInputSchema = exports.InsuranceContactInputSchema = exports.OfficeContactInputSchema = exports.OfficeHoursInputSchema = exports.AiSettingsInputSchema = exports.TwilioSettingsInputSchema = exports.PatientDocumentInputSchema = exports.CommunicationInputSchema = exports.CloudFileChunkInputSchema = exports.CloudFileInputSchema = exports.CloudFolderInputSchema = exports.CronJobLogInputSchema = exports.NotificationInputSchema = exports.BackupDestinationInputSchema = exports.DatabaseBackupInputSchema = exports.ServiceLineTransactionInputSchema = exports.PaymentInputSchema = exports.PdfFileInputSchema = exports.PdfGroupInputSchema = exports.ShoppingVendorInputSchema = exports.InsuranceCredentialInputSchema = exports.ClaimFileInputSchema = exports.ServiceLineInputSchema = exports.ClaimInputSchema = exports.AppointmentProcedureInputSchema = exports.NpiProviderInputSchema = exports.StaffInputSchema = exports.AppointmentFileInputSchema = exports.AppointmentInputSchema = exports.PatientInputSchema = exports.UserInputSchema = void 0;
var User_input_1 = require("./User.input");
Object.defineProperty(exports, "UserInputSchema", { enumerable: true, get: function () { return User_input_1.UserInputSchema; } });
var Patient_input_1 = require("./Patient.input");
Object.defineProperty(exports, "PatientInputSchema", { enumerable: true, get: function () { return Patient_input_1.PatientInputSchema; } });
var Appointment_input_1 = require("./Appointment.input");
Object.defineProperty(exports, "AppointmentInputSchema", { enumerable: true, get: function () { return Appointment_input_1.AppointmentInputSchema; } });
var AppointmentFile_input_1 = require("./AppointmentFile.input");
Object.defineProperty(exports, "AppointmentFileInputSchema", { enumerable: true, get: function () { return AppointmentFile_input_1.AppointmentFileInputSchema; } });
var Staff_input_1 = require("./Staff.input");
Object.defineProperty(exports, "StaffInputSchema", { enumerable: true, get: function () { return Staff_input_1.StaffInputSchema; } });
var NpiProvider_input_1 = require("./NpiProvider.input");
@@ -25,6 +27,8 @@ var ClaimFile_input_1 = require("./ClaimFile.input");
Object.defineProperty(exports, "ClaimFileInputSchema", { enumerable: true, get: function () { return ClaimFile_input_1.ClaimFileInputSchema; } });
var InsuranceCredential_input_1 = require("./InsuranceCredential.input");
Object.defineProperty(exports, "InsuranceCredentialInputSchema", { enumerable: true, get: function () { return InsuranceCredential_input_1.InsuranceCredentialInputSchema; } });
var ShoppingVendor_input_1 = require("./ShoppingVendor.input");
Object.defineProperty(exports, "ShoppingVendorInputSchema", { enumerable: true, get: function () { return ShoppingVendor_input_1.ShoppingVendorInputSchema; } });
var PdfGroup_input_1 = require("./PdfGroup.input");
Object.defineProperty(exports, "PdfGroupInputSchema", { enumerable: true, get: function () { return PdfGroup_input_1.PdfGroupInputSchema; } });
var PdfFile_input_1 = require("./PdfFile.input");
@@ -51,3 +55,21 @@ var Communication_input_1 = require("./Communication.input");
Object.defineProperty(exports, "CommunicationInputSchema", { enumerable: true, get: function () { return Communication_input_1.CommunicationInputSchema; } });
var PatientDocument_input_1 = require("./PatientDocument.input");
Object.defineProperty(exports, "PatientDocumentInputSchema", { enumerable: true, get: function () { return PatientDocument_input_1.PatientDocumentInputSchema; } });
var TwilioSettings_input_1 = require("./TwilioSettings.input");
Object.defineProperty(exports, "TwilioSettingsInputSchema", { enumerable: true, get: function () { return TwilioSettings_input_1.TwilioSettingsInputSchema; } });
var AiSettings_input_1 = require("./AiSettings.input");
Object.defineProperty(exports, "AiSettingsInputSchema", { enumerable: true, get: function () { return AiSettings_input_1.AiSettingsInputSchema; } });
var OfficeHours_input_1 = require("./OfficeHours.input");
Object.defineProperty(exports, "OfficeHoursInputSchema", { enumerable: true, get: function () { return OfficeHours_input_1.OfficeHoursInputSchema; } });
var OfficeContact_input_1 = require("./OfficeContact.input");
Object.defineProperty(exports, "OfficeContactInputSchema", { enumerable: true, get: function () { return OfficeContact_input_1.OfficeContactInputSchema; } });
var InsuranceContact_input_1 = require("./InsuranceContact.input");
Object.defineProperty(exports, "InsuranceContactInputSchema", { enumerable: true, get: function () { return InsuranceContact_input_1.InsuranceContactInputSchema; } });
var ProcedureTimeslot_input_1 = require("./ProcedureTimeslot.input");
Object.defineProperty(exports, "ProcedureTimeslotInputSchema", { enumerable: true, get: function () { return ProcedureTimeslot_input_1.ProcedureTimeslotInputSchema; } });
var PatientConversation_input_1 = require("./PatientConversation.input");
Object.defineProperty(exports, "PatientConversationInputSchema", { enumerable: true, get: function () { return PatientConversation_input_1.PatientConversationInputSchema; } });
var CommissionBatch_input_1 = require("./CommissionBatch.input");
Object.defineProperty(exports, "CommissionBatchInputSchema", { enumerable: true, get: function () { return CommissionBatch_input_1.CommissionBatchInputSchema; } });
var CommissionBatchItem_input_1 = require("./CommissionBatchItem.input");
Object.defineProperty(exports, "CommissionBatchItemInputSchema", { enumerable: true, get: function () { return CommissionBatchItem_input_1.CommissionBatchItemInputSchema; } });