- New GET /api/claims/:id/ada-form fills the 2024 ADA Dental Claim Form (J43024) with payer address, patient/subscriber, CDT lines, fees, missing teeth, billing (office) NPI and treating NPI; signatures blank - "BCBS Claim (ADA Form)" button saves the claim and opens the PDF; Claim All routes BCBS patients to it; "Print ADA Form" in claim view - Settings > NPI Providers: "Add Office NPI" (billing name, NPI, license, TIN) and optional per-provider license number - Migration: office_contact billing fields, NpiProvider.licenseNumber Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 lines
750 B
TypeScript
26 lines
750 B
TypeScript
import * as z from 'zod';
|
|
export const NpiProviderFindManyResultSchema = z.object({
|
|
data: z.array(z.object({
|
|
id: z.number().int(),
|
|
userId: z.number().int(),
|
|
npiNumber: z.string(),
|
|
providerName: z.string(),
|
|
licenseNumber: z.string().optional(),
|
|
sortOrder: z.number().int(),
|
|
createdAt: z.date(),
|
|
user: z.unknown(),
|
|
claims: z.array(z.unknown()),
|
|
payments: z.array(z.unknown()),
|
|
commissionBatches: z.array(z.unknown()),
|
|
appointmentProcedures: z.array(z.unknown()),
|
|
appointments: z.array(z.unknown())
|
|
})),
|
|
pagination: z.object({
|
|
page: z.number().int().min(1),
|
|
pageSize: z.number().int().min(1),
|
|
total: z.number().int().min(0),
|
|
totalPages: z.number().int().min(0),
|
|
hasNext: z.boolean(),
|
|
hasPrev: z.boolean()
|
|
})
|
|
}); |