Files
DentalManagementMH07/packages/db/shared/schemas/variants/input/Patient.input.ts
T
GiteadandClaude Sonnet 5 52ddfd9f57 feat: add Remaining/Third Party columns, toggle PDF viewer, retire CMSP as separate insurance type
- Add remainingBenefit and thirdPartyInsurance columns to Patient; extract both
  from the MassHealth accumulator/member-detail pages during the eligibility
  check and surface them in the eligibility table
- Add an updated-date display and a toggle to suppress the post-check PDF
  viewer popup (default off) on the insurance eligibility page
- Rename CMSP-prefixed PDF filenames and UI copy to MH, since CMSP and MH now
  share the same worker
- Fold CMSP into MassHealth/MH across patient/claim insurance-type dropdowns
  and the chatbot's eligibility routing, since they're the same insurance
- Remove auto-download of saved eligibility PDFs; downloading is now manual

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-02 22:32:43 -04:00

41 lines
1.5 KiB
TypeScript

import * as z from 'zod';
import { PatientStatusSchema } from '../../enums/PatientStatus.schema';
// prettier-ignore
export const PatientInputSchema = z.object({
id: z.number().int(),
firstName: z.string(),
lastName: z.string(),
dateOfBirth: z.date().optional().nullable(),
gender: z.string(),
phone: z.string(),
email: z.string().optional().nullable(),
address: z.string().optional().nullable(),
city: 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: PatientStatusSchema,
remainingBenefit: z.string().optional().nullable(),
thirdPartyInsurance: z.string().optional().nullable(),
userId: z.number().int(),
createdAt: z.date(),
updatedAt: z.date(),
user: z.unknown(),
appointments: z.array(z.unknown()),
procedures: z.array(z.unknown()),
claims: z.array(z.unknown()),
groups: z.array(z.unknown()),
payment: z.array(z.unknown()),
communications: z.array(z.unknown()),
documents: z.array(z.unknown()),
conversation: z.unknown().optional().nullable(),
cloudFolders: z.array(z.unknown())
}).strict();
export type PatientInputType = z.infer<typeof PatientInputSchema>;