Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | 7x 7x 7x 7x 7x 7x 4x 7x 7x 7x 7x 7x | import { z } from 'zod';
import { searchPaginationSchema } from '../common/common.schema';
export class PatientZODSchema {
static readonly createPatientSchema = z.strictObject({
birthDate: z.coerce.date(),
gender: z.enum(['Male', 'Female']),
address: z.string().min(5),
occupation: z.string().min(2),
emergencyContactName: z.string().min(2),
emergencyContactNumber: z
.string()
.refine((phone) => /^\+\d{10,15}$/.test(phone), 'Invalid phone number'),
primaryPhysician: z.string().min(2),
insuranceProvider: z.string().optional(),
insurancePolicyNumber: z.string().optional(),
allergies: z.string().optional(),
currentMedication: z.string().optional(),
familyMedicalHistory: z.string().optional(),
pastMedicalHistory: z.string().optional(),
identificationType: z.string().optional(),
identificationNumber: z.string().optional(),
identificationUrl: z.string().url().optional(),
privacyConsent: z.boolean(),
});
static readonly updatePatientSchema = z.strictObject({
id: z.string().uuid(),
birthDate: z.coerce.date().optional(),
gender: z.enum(['Male', 'Female']).optional(),
address: z.string().min(5).optional(),
occupation: z.string().min(2).optional(),
emergencyContactName: z.string().min(2).optional(),
emergencyContactNumber: z
.string()
.refine((phone) => /^\+\d{10,15}$/.test(phone), 'Invalid phone number')
.optional(),
primaryPhysician: z.string().min(2).optional(),
insuranceProvider: z.string().optional(),
insurancePolicyNumber: z.string().optional(),
allergies: z.string().optional(),
currentMedication: z.string().optional(),
familyMedicalHistory: z.string().optional(),
pastMedicalHistory: z.string().optional(),
identificationType: z.string().optional(),
identificationNumber: z.string().optional(),
identificationUrl: z.string().url().optional(),
});
static readonly deletePatientSchema = z.strictObject({
id: z.string().uuid(),
});
static readonly searchPatientSchema = z.strictObject({
...searchPaginationSchema,
name: z.string().optional(),
email: z.string().email().optional(),
phone: z
.string()
.refine((phone) => /^\+\d{10,15}$/.test(phone), 'Invalid phone number')
.optional(),
birthDate: z.coerce.date().optional(),
gender: z.enum(['Male', 'Female']).optional(),
address: z.string().min(5).optional(),
});
static readonly addDoctorSchema = z.strictObject({
doctorId: z.string().uuid(),
});
static readonly validateDeleteSchema = z.strictObject({
token: z.string().uuid(),
});
}
|