emr-types
Version:
Comprehensive TypeScript Types Library for Electronic Medical Record (EMR) Applications - Domain-Driven Design with Zod Validation
6,138 lines • 215 kB
TypeScript
import { z } from 'zod';
import { AppointmentStatus, AppointmentType } from '../domains/appointment';
export declare const AppointmentIdSchema: z.ZodBranded<z.ZodString, "AppointmentId">;
export declare const TimeSlotSchema: z.ZodEffects<z.ZodObject<{
startTime: z.ZodDate;
endTime: z.ZodDate;
}, "strip", z.ZodTypeAny, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>;
export declare const DurationSchema: z.ZodEffects<z.ZodObject<{
minutes: z.ZodNumber;
hours: z.ZodNumber;
days: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>;
export declare const AppointmentStatusSchema: z.ZodNativeEnum<typeof AppointmentStatus>;
export declare const AppointmentTypeSchema: z.ZodNativeEnum<typeof AppointmentType>;
export declare const AppointmentIdValueObjectSchema: z.ZodObject<{
value: z.ZodBranded<z.ZodString, "AppointmentId">;
format: z.ZodEnum<["uuid", "auto-increment", "custom"]>;
createdAt: z.ZodDate;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
value: string & z.BRAND<"AppointmentId">;
createdAt: Date;
format: "uuid" | "custom" | "auto-increment";
metadata?: Record<string, unknown> | undefined;
}, {
value: string;
createdAt: Date;
format: "uuid" | "custom" | "auto-increment";
metadata?: Record<string, unknown> | undefined;
}>;
export declare const TimeSlotValueObjectSchema: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
startTime: z.ZodDate;
endTime: z.ZodDate;
}, "strip", z.ZodTypeAny, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}>;
export declare const DurationValueObjectSchema: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
minutes: z.ZodNumber;
hours: z.ZodNumber;
days: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>;
isStandard: z.ZodBoolean;
isCustom: z.ZodBoolean;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}>;
export declare const AppointmentSlotSchema: z.ZodObject<{
id: z.ZodString;
appointmentId: z.ZodOptional<z.ZodBranded<z.ZodString, "AppointmentId">>;
timeSlot: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
startTime: z.ZodDate;
endTime: z.ZodDate;
}, "strip", z.ZodTypeAny, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}>;
duration: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
minutes: z.ZodNumber;
hours: z.ZodNumber;
days: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>;
isStandard: z.ZodBoolean;
isCustom: z.ZodBoolean;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}>;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
recurringPattern: z.ZodOptional<z.ZodObject<{
frequency: z.ZodEnum<["daily", "weekly", "monthly", "yearly"]>;
interval: z.ZodNumber;
endDate: z.ZodOptional<z.ZodDate>;
maxOccurrences: z.ZodOptional<z.ZodNumber>;
daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
dayOfMonth: z.ZodOptional<z.ZodNumber>;
monthOfYear: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
}, {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
}>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
id: string;
createdAt: Date;
updatedAt: Date;
duration: {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
};
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
timeSlot: {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
};
appointmentId?: (string & z.BRAND<"AppointmentId">) | undefined;
blockReason?: string | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
}, {
id: string;
createdAt: Date;
updatedAt: Date;
duration: {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
};
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
timeSlot: {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
};
appointmentId?: string | undefined;
blockReason?: string | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
}>;
export declare const AppointmentSchema: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "AppointmentId">;
patientId: z.ZodString;
providerId: z.ZodString;
timeSlot: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
startTime: z.ZodDate;
endTime: z.ZodDate;
}, "strip", z.ZodTypeAny, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}>;
duration: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
minutes: z.ZodNumber;
hours: z.ZodNumber;
days: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>;
isStandard: z.ZodBoolean;
isCustom: z.ZodBoolean;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}>;
type: z.ZodNativeEnum<typeof AppointmentType>;
status: z.ZodNativeEnum<typeof AppointmentStatus>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
diagnosis: z.ZodOptional<z.ZodArray<z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>, "many">>;
prescriptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
prescribedBy: z.ZodString;
prescribedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
prescribedBy: string;
prescribedAt: Date;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
prescribedBy: string;
prescribedAt: Date;
instructions?: string | undefined;
}>, "many">>;
procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
performedBy: z.ZodString;
performedAt: z.ZodOptional<z.ZodDate>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
performedBy: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}, {
name: string;
performedBy: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}>, "many">>;
labOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
orderedBy: z.ZodString;
orderedAt: z.ZodDate;
results: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
value: z.ZodString;
unit: z.ZodOptional<z.ZodString>;
referenceRange: z.ZodOptional<z.ZodString>;
isAbnormal: z.ZodBoolean;
notes: z.ZodOptional<z.ZodString>;
reportedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}, {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}>, "many">>;
}, "strip", z.ZodTypeAny, {
testName: string;
labName: string;
orderedBy: string;
orderedAt: Date;
loincCode?: string | undefined;
results?: {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}[] | undefined;
}, {
testName: string;
labName: string;
orderedBy: string;
orderedAt: Date;
loincCode?: string | undefined;
results?: {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}[] | undefined;
}>, "many">>;
imagingOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
orderedBy: z.ZodString;
orderedAt: z.ZodDate;
results: z.ZodOptional<z.ZodObject<{
report: z.ZodString;
images: z.ZodArray<z.ZodString, "many">;
radiologist: z.ZodOptional<z.ZodString>;
reportedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
}, {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
facility: string;
orderedBy: string;
orderedAt: Date;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
results?: {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
} | undefined;
}, {
facility: string;
orderedBy: string;
orderedAt: Date;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
results?: {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
} | undefined;
}>, "many">>;
referrals: z.ZodOptional<z.ZodArray<z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
referredBy: z.ZodString;
referredAt: z.ZodDate;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
referredBy: string;
referredAt: Date;
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
referredBy: string;
referredAt: Date;
notes?: string | undefined;
}>, "many">>;
followUp: z.ZodOptional<z.ZodObject<{
isRequired: z.ZodBoolean;
recommendedDate: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
reason: z.ZodOptional<z.ZodString>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}, {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}>>;
billing: z.ZodOptional<z.ZodObject<{
totalAmount: z.ZodNumber;
insuranceAmount: z.ZodNumber;
patientAmount: z.ZodNumber;
copay: z.ZodNumber;
deductible: z.ZodNumber;
status: z.ZodEnum<["pending", "billed", "paid", "denied", "appealed"]>;
invoiceNumber: z.ZodOptional<z.ZodString>;
billedAt: z.ZodOptional<z.ZodDate>;
paidAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
copay: number;
deductible: number;
insuranceAmount: number;
patientAmount: number;
paidAt?: Date | undefined;
invoiceNumber?: string | undefined;
billedAt?: Date | undefined;
}, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
copay: number;
deductible: number;
insuranceAmount: number;
patientAmount: number;
paidAt?: Date | undefined;
invoiceNumber?: string | undefined;
billedAt?: Date | undefined;
}>>;
reminders: z.ZodOptional<z.ZodArray<z.ZodObject<{
type: z.ZodEnum<["email", "sms", "phone", "push"]>;
scheduledAt: z.ZodDate;
sentAt: z.ZodOptional<z.ZodDate>;
status: z.ZodEnum<["scheduled", "sent", "failed", "cancelled"]>;
message: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
message?: string | undefined;
sentAt?: Date | undefined;
}, {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
message?: string | undefined;
sentAt?: Date | undefined;
}>, "many">>;
attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
type: z.ZodEnum<["document", "image", "video", "audio"]>;
url: z.ZodString;
size: z.ZodNumber;
mimeType: z.ZodString;
uploadedBy: z.ZodString;
uploadedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
mimeType: string;
uploadedAt: Date;
uploadedBy: string;
}, {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
mimeType: string;
uploadedAt: Date;
uploadedBy: string;
}>, "many">>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
createdBy: z.ZodOptional<z.ZodString>;
updatedBy: z.ZodOptional<z.ZodString>;
cancelledAt: z.ZodOptional<z.ZodDate>;
cancelledBy: z.ZodOptional<z.ZodString>;
cancellationReason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
duration: {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
};
providerId: string;
reason: string;
timeSlot: {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
};
createdBy?: string | undefined;
updatedBy?: string | undefined;
tags?: string[] | undefined;
notes?: string | undefined;
attachments?: {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
mimeType: string;
uploadedAt: Date;
uploadedBy: string;
}[] | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
prescribedBy: string;
prescribedAt: Date;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
performedBy: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
copay: number;
deductible: number;
insuranceAmount: number;
patientAmount: number;
paidAt?: Date | undefined;
invoiceNumber?: string | undefined;
billedAt?: Date | undefined;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
testName: string;
labName: string;
orderedBy: string;
orderedAt: Date;
loincCode?: string | undefined;
results?: {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}[] | undefined;
}[] | undefined;
imagingOrders?: {
facility: string;
orderedBy: string;
orderedAt: Date;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
results?: {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
} | undefined;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
referredBy: string;
referredAt: Date;
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
message?: string | undefined;
sentAt?: Date | undefined;
}[] | undefined;
cancelledBy?: string | undefined;
cancellationReason?: string | undefined;
}, {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
duration: {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
};
providerId: string;
reason: string;
timeSlot: {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
};
createdBy?: string | undefined;
updatedBy?: string | undefined;
tags?: string[] | undefined;
notes?: string | undefined;
attachments?: {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
mimeType: string;
uploadedAt: Date;
uploadedBy: string;
}[] | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
prescribedBy: string;
prescribedAt: Date;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
performedBy: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
copay: number;
deductible: number;
insuranceAmount: number;
patientAmount: number;
paidAt?: Date | undefined;
invoiceNumber?: string | undefined;
billedAt?: Date | undefined;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
testName: string;
labName: string;
orderedBy: string;
orderedAt: Date;
loincCode?: string | undefined;
results?: {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}[] | undefined;
}[] | undefined;
imagingOrders?: {
facility: string;
orderedBy: string;
orderedAt: Date;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
results?: {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
} | undefined;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
referredBy: string;
referredAt: Date;
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
message?: string | undefined;
sentAt?: Date | undefined;
}[] | undefined;
cancelledBy?: string | undefined;
cancellationReason?: string | undefined;
}>;
export declare const CreateAppointmentRequestSchema: z.ZodEffects<z.ZodObject<{
patientId: z.ZodString;
providerId: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
type: z.ZodNativeEnum<typeof AppointmentType>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
isRecurring: z.ZodOptional<z.ZodBoolean>;
recurringPattern: z.ZodOptional<z.ZodObject<{
frequency: z.ZodEnum<["daily", "weekly", "monthly", "yearly"]>;
interval: z.ZodNumber;
endDate: z.ZodOptional<z.ZodDate>;
maxOccurrences: z.ZodOptional<z.ZodNumber>;
daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
dayOfMonth: z.ZodOptional<z.ZodNumber>;
monthOfYear: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
}, {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
}>>;
reminders: z.ZodOptional<z.ZodArray<z.ZodObject<{
type: z.ZodEnum<["email", "sms", "phone", "push"]>;
minutesBefore: z.ZodNumber;
message: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}, {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}>, "many">>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
tags?: string[] | undefined;
notes?: string | undefined;
symptoms?: string[] | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}[] | undefined;
isRecurring?: boolean | undefined;
}, {
type: AppointmentType;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
tags?: string[] | undefined;
notes?: string | undefined;
symptoms?: string[] | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}[] | undefined;
isRecurring?: boolean | undefined;
}>, {
type: AppointmentType;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
tags?: string[] | undefined;
notes?: string | undefined;
symptoms?: string[] | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}[] | undefined;
isRecurring?: boolean | undefined;
}, {
type: AppointmentType;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
tags?: string[] | undefined;
notes?: string | undefined;
symptoms?: string[] | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}[] | undefined;
isRecurring?: boolean | undefined;
}>;
export declare const UpdateAppointmentRequestSchema: z.ZodObject<{
startTime: z.ZodOptional<z.ZodDate>;
endTime: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
status: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentStatus>>;
reason: z.ZodOptional<z.ZodString>;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
diagnosis: z.ZodOptional<z.ZodArray<z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>, "many">>;
prescriptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}>, "many">>;
procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}, {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}>, "many">>;
labOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
}, "strip", z.ZodTypeAny, {
testName: string;
labName: string;
loincCode?: string | undefined;
}, {
testName: string;
labName: string;
loincCode?: string | undefined;
}>, "many">>;
imagingOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
}, "strip", z.ZodTypeAny, {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}, {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}>, "many">>;
referrals: z.ZodOptional<z.ZodArray<z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}>, "many">>;
followUp: z.ZodOptional<z.ZodObject<{
isRequired: z.ZodBoolean;
recommendedDate: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
reason: z.ZodOptional<z.ZodString>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}, {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}>>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
type?: AppointmentType | undefined;
status?: AppointmentStatus | undefined;
tags?: string[] | undefined;
notes?: string | undefined;
startTime?: Date | undefined;
endTime?: Date | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}[] | undefined;
reason?: string | undefined;
labOrders?: {
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
}, {
type?: AppointmentType | undefined;
status?: AppointmentStatus | undefined;
tags?: string[] | undefined;
notes?: string | undefined;
startTime?: Date | undefined;
endTime?: Date | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}[] | undefined;
reason?: string | undefined;
labOrders?: {
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
}>;
export declare const CancelAppointmentRequestSchema: z.ZodObject<{
reason: z.ZodString;
sendNotification: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
reason: string;
sendNotification?: boolean | undefined;
}, {
reason: string;
sendNotification?: boolean | undefined;
}>;
export declare const RescheduleAppointmentRequestSchema: z.ZodEffects<z.ZodObject<{
newStartTime: z.ZodDate;
newEndTime: z.ZodDate;
reason: z.ZodOptional<z.ZodString>;
sendNotification: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
newStartTime: Date;
newEndTime: Date;
reason?: string | undefined;
sendNotification?: boolean | undefined;
}, {
newStartTime: Date;
newEndTime: Date;
reason?: string | undefined;
sendNotification?: boolean | undefined;
}>, {
newStartTime: Date;
newEndTime: Date;
reason?: string | undefined;
sendNotification?: boolean | undefined;
}, {
newStartTime: Date;
newEndTime: Date;
reason?: string | undefined;
sendNotification?: boolean | undefined;
}>;
export declare const AddDiagnosisRequestSchema: z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>;
export declare const AddPrescriptionRequestSchema: z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}>;
export declare const AddProcedureRequestSchema: z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}, {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}>;
export declare const AddLabOrderRequestSchema: z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
}, "strip", z.ZodTypeAny, {
testName: string;
labName: string;
loincCode?: string | undefined;
}, {
testName: string;
labName: string;
loincCode?: string | undefined;
}>;
export declare const AddImagingOrderRequestSchema: z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
}, "strip", z.ZodTypeAny, {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}, {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}>;
export declare const AddReferralRequestSchema: z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}>;
export declare const ScheduleFollowUpRequestSchema: z.ZodObject<{
recommendedDate: z.ZodDate;
type: z.ZodNativeEnum<typeof AppointmentType>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
reason: string;
recommendedDate: Date;
notes?: string | undefined;
}, {
type: AppointmentType;
reason: string;
recommendedDate: Date;
notes?: string | undefined;
}>;
export declare const AppointmentResponseSchema: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "AppointmentId">;
patientId: z.ZodString;
providerId: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
type: z.ZodNativeEnum<typeof AppointmentType>;
status: z.ZodNativeEnum<typeof AppointmentStatus>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
diagnosis: z.ZodOptional<z.ZodArray<z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>, "many">>;
prescriptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}>, "many">>;
procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
performedAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}>, "many">>;
labOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}>, "many">>;
imagingOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}>, "many">>;
referrals: z.ZodOptional<z.ZodArray<z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}>, "many">>;
followUp: z.ZodOptional<z.ZodObject<{
isRequired: z.ZodBoolean;
recommendedDate: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
reason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}>>;
billing: z.ZodOptional<z.ZodObject<{
totalAmount: z.ZodNumber;
insuranceAmount: z.ZodNumber;
patientAmount: z.ZodNumber;
status: z.ZodEnum<["pending", "billed", "paid", "denied", "appealed"]>;
}, "strip", z.ZodTypeAny, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
cancelledAt: z.ZodOptional<z.ZodDate>;
cancellationReason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}, {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}>;
export declare const AppointmentListResponseSchema: z.ZodObject<{
appointments: z.ZodArray<z.ZodObject<{
id: z.ZodBranded<z.ZodString, "AppointmentId">;
patientId: z.ZodString;
providerId: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
type: z.ZodNativeEnum<typeof AppointmentType>;
status: z.ZodNativeEnum<typeof AppointmentStatus>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
diagnosis: z.ZodOptional<z.ZodArray<z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>, "many">>;
prescriptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}>, "many">>;
procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
performedAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}>, "many">>;
labOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}>, "many">>;
imagingOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}>, "many">>;
referrals: z.ZodOptional<z.ZodArray<z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}>, "many">>;
followUp: z.ZodOptional<z.ZodObject<{
isRequired: z.ZodBoolean;
recommendedDate: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
reason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}>>;
billing: z.ZodOptional<z.ZodObject<{
totalAmount: z.ZodNumber;
insuranceAmount: z.ZodNumber;
patientAmount: z.ZodNumber;
status: z.ZodEnum<["pending", "billed", "paid", "denied", "appealed"]>;
}, "strip", z.ZodTypeAny, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
cancelledAt: z.ZodOptional<z.ZodDate>;
cancellationReason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}, {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}>, "many">;
pagination: z.ZodObject<{
page: z.ZodNumber;
limit: z.ZodNumber;
total: z.ZodNumber;
totalPages: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
page: number;
limit: number;
total: number;
totalPages: number;
}, {
page: number;
limit: number;
total: number;
totalPages: number;
}>;
}, "strip", z.ZodTypeAny, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
appointments: {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}[];
}, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
appointments: {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}[];
}>;
export declare const AppointmentSlotResponseSchema: z.ZodObject<{
id: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
appointmentId: z.ZodOptional<z.ZodBranded<z.ZodString, "AppointmentId">>;
}, "strip", z.ZodTypeAny, {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: (string & z.BRAND<"AppointmentId">) | undefined;
blockReason?: string | undefined;
}, {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: string | undefined;
blockReason?: string | undefined;
}>;
export declare const AppointmentSlotListResponseSchema: z.ZodObject<{
slots: z.ZodArray<z.ZodObject<{
id: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
appointmentId: z.ZodOptional<z.ZodBranded<z.ZodString, "AppointmentId">>;
}, "strip", z.ZodTypeAny, {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: (string & z.BRAND<"AppointmentId">) | undefined;
blockReason?: string | undefined;
}, {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: string | undefined;
blockReason?: string | undefined;
}>, "many">;
pagination: z.ZodObject<{
page: z.ZodNumber;
limit: z.ZodNumber;
total: z.ZodNumber;
totalPages: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
page: number;
limit: number;
total: number;
totalPages: number;
}, {
page: number;
limit: number;
total: number;
totalPages: number;
}>;
}, "strip", z.ZodTypeAny, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
slots: {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: (string & z.BRAND<"AppointmentId">) | undefined;
blockReason?: string | undefined;
}[];
}, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
slots: {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: string | undefined;
blockReason?: string | undefined;
}[];
}>;
export declare const AppointmentDetailResponseSchema: z.ZodObject<{
appointment: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "AppointmentId">;
patientId: z.ZodString;
providerId: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
type: z.ZodNativeEnum<typeof AppointmentType>;
status: z.ZodNativeEnum<typeof AppointmentStatus>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
diagnosis: z.ZodOptional<z.ZodArray<z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>, "many">>;
prescriptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}>, "many">>;
procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
performedAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}>, "many">>;
labOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}>, "many">>;
imagingOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}>, "many">>;
referrals: z.ZodOptional<z.ZodArray<z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}>, "many">>;
followUp: z.ZodOptional<z.ZodObject<{
isRequired: z.ZodBoolean;
recommendedDate: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
reason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}>>;
billing: z.ZodOptional<z.ZodObject<{
totalAmount: z.ZodNumber;
insuranceAmount: z.ZodNumber;
patientAmount: z.ZodNumber;
status: z.ZodEnum<["pending", "billed", "paid", "denied", "appealed"]>;
}, "strip", z.ZodTypeAny, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
cancelledAt: z.ZodOptional<z.ZodDate>;
cancellationReason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}, {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}>;
patient: z.ZodObject<{
id: z.ZodString;
firstName: z.ZodString;
lastName: z.ZodString;
dateOfBirth: z.ZodDate;
phoneNumber: z.ZodOptional<z.ZodString>;
email: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
id: string;
firstName: string;
lastName: string;
dateOfBirth: Date;
email?: string | undefined;
phoneNumber?: string | undefined;
}, {
id: string;
firstName: string;
lastName: string;
dateOfBirth: Date;
email?: string | undefined;
phoneNumber?: string | undefined;
}>;
provider: z.ZodObject<{
id: z.ZodString;
firstName: z.ZodString;
lastName: z.ZodString;
specialty: z.ZodOptional<z.ZodString>;
phoneNumber: z.ZodOptional<z.ZodString>;
email: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
id: string;
firstName: string;
lastName: string;
email?: string | undefined;
phoneNumber?: string | undefined;
specialty?: string | undefined;
}, {
id: string;
firstName: string;
lastName: string;
email?: string | undefined;
phoneNumber?: string | undefined;
specialty?: string | undefined;
}>;
reminders: z.ZodOptional<z.ZodArray<z.ZodObject<{
type: z.ZodEnum<["email", "sms", "phone", "push"]>;
scheduledAt: z.ZodDate;
sentAt: z.ZodOptional<z.ZodDate>;
status: z.ZodEnum<["scheduled", "sent", "failed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
sentAt?: Date | undefined;
}, {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
sentAt?: Date | undefined;
}>, "many">>;
attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
type: z.ZodEnum<["document", "image", "video", "audio"]>;
url: z.ZodString;
size: z.ZodNumber;
uploadedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
uploadedAt: Date;
}, {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
uploadedAt: Date;
}>, "many">>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
patient: {
id: string;
firstName: string;
lastName: string;
dateOfBirth: Date;
email?: string | undefined;
phoneNumber?: string | undefined;
};
provider: {
id: string;
firstName: string;
lastName: string;
email?: string | undefined;
phoneNumber?: string | undefined;
specialty?: string | undefined;
};
appointment: {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
};
tags?: string[] | undefined;
attachments?: {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
uploadedAt: Date;
}[] | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
sentAt?: Date | undefined;
}[] | undefined;
}, {
patient: {
id: string;
firstName: string;
lastName: string;
dateOfBirth: Date;
email?: string | undefined;
phoneNumber?: string | undefined;
};
provider: {
id: string;
firstName: string;
lastName: string;
email?: string | undefined;
phoneNumber?: string | undefined;
specialty?: string | undefined;
};
appointment: {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
};
tags?: string[] | undefined;
attachments?: {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
uploadedAt: Date;
}[] | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
sentAt?: Date | undefined;
}[] | undefined;
}>;
export declare const AppointmentSearchFiltersSchema: z.ZodObject<{
query: z.ZodOptional<z.ZodString>;
patientId: z.ZodOptional<z.ZodString>;
providerId: z.ZodOptional<z.ZodString>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
status: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentStatus>>;
startDate: z.ZodOptional<z.ZodDate>;
endDate: z.ZodOptional<z.ZodDate>;
hasDiagnosis: z.ZodOptional<z.ZodBoolean>;
hasPrescriptions: z.ZodOptional<z.ZodBoolean>;
hasProcedures: z.ZodOptional<z.ZodBoolean>;
hasLabOrders: z.ZodOptional<z.ZodBoolean>;
hasImagingOrders: z.ZodOptional<z.ZodBoolean>;
hasReferrals: z.ZodOptional<z.ZodBoolean>;
hasFollowUp: z.ZodOptional<z.ZodBoolean>;
isCancelled: z.ZodOptional<z.ZodBoolean>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
createdAfter: z.ZodOptional<z.ZodDate>;
createdBefore: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
type?: AppointmentType | undefined;
status?: AppointmentStatus | undefined;
tags?: string[] | undefined;
patientId?: string | undefined;
providerId?: string | undefined;
startDate?: Date | undefined;
endDate?: Date | undefined;
query?: string | undefined;
createdAfter?: Date | undefined;
createdBefore?: Date | undefined;
hasDiagnosis?: boolean | undefined;
hasPrescriptions?: boolean | undefined;
hasProcedures?: boolean | undefined;
hasLabOrders?: boolean | undefined;
hasImagingOrders?: boolean | undefined;
hasReferrals?: boolean | undefined;
hasFollowUp?: boolean | undefined;
isCancelled?: boolean | undefined;
}, {
type?: AppointmentType | undefined;
status?: AppointmentStatus | undefined;
tags?: string[] | undefined;
patientId?: string | undefined;
providerId?: string | undefined;
startDate?: Date | undefined;
endDate?: Date | undefined;
query?: string | undefined;
createdAfter?: Date | undefined;
createdBefore?: Date | undefined;
hasDiagnosis?: boolean | undefined;
hasPrescriptions?: boolean | undefined;
hasProcedures?: boolean | undefined;
hasLabOrders?: boolean | undefined;
hasImagingOrders?: boolean | undefined;
hasReferrals?: boolean | undefined;
hasFollowUp?: boolean | undefined;
isCancelled?: boolean | undefined;
}>;
export declare const AppointmentSlotSearchFiltersSchema: z.ZodObject<{
providerId: z.ZodString;
startDate: z.ZodDate;
endDate: z.ZodDate;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
duration: z.ZodOptional<z.ZodNumber>;
isAvailable: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
providerId: string;
startDate: Date;
endDate: Date;
type?: AppointmentType | undefined;
duration?: number | undefined;
isAvailable?: boolean | undefined;
}, {
providerId: string;
startDate: Date;
endDate: Date;
type?: AppointmentType | undefined;
duration?: number | undefined;
isAvailable?: boolean | undefined;
}>;
export declare const AppointmentSortOptionsSchema: z.ZodEnum<["startTime", "endTime", "createdAt", "updatedAt", "status", "type", "patientName", "providerName"]>;
export declare const AppointmentValidationUtils: {
isValidTimeSlot: (startTime: Date, endTime: Date) => boolean;
calculateDuration: (startTime: Date, endTime: Date) => {
minutes: number;
hours: number;
days: number;
};
isBusinessHours: (date: Date) => boolean;
isAvailableTimeSlot: (startTime: Date, endTime: Date, existingAppointments: any[]) => boolean;
validateAppointmentData: (data: any) => {
isValid: boolean;
errors: string[];
};
};
export type CreateAppointmentRequest = z.infer<typeof CreateAppointmentRequestSchema>;
export type UpdateAppointmentRequest = z.infer<typeof UpdateAppointmentRequestSchema>;
export type CancelAppointmentRequest = z.infer<typeof CancelAppointmentRequestSchema>;
export type RescheduleAppointmentRequest = z.infer<typeof RescheduleAppointmentRequestSchema>;
export type AddDiagnosisRequest = z.infer<typeof AddDiagnosisRequestSchema>;
export type AddPrescriptionRequest = z.infer<typeof AddPrescriptionRequestSchema>;
export type AddProcedureRequest = z.infer<typeof AddProcedureRequestSchema>;
export type AddLabOrderRequest = z.infer<typeof AddLabOrderRequestSchema>;
export type AddImagingOrderRequest = z.infer<typeof AddImagingOrderRequestSchema>;
export type AddReferralRequest = z.infer<typeof AddReferralRequestSchema>;
export type ScheduleFollowUpRequest = z.infer<typeof ScheduleFollowUpRequestSchema>;
export type AppointmentResponse = z.infer<typeof AppointmentResponseSchema>;
export type AppointmentListResponse = z.infer<typeof AppointmentListResponseSchema>;
export type AppointmentSlotResponse = z.infer<typeof AppointmentSlotResponseSchema>;
export type AppointmentSlotListResponse = z.infer<typeof AppointmentSlotListResponseSchema>;
export type AppointmentDetailResponse = z.infer<typeof AppointmentDetailResponseSchema>;
export type AppointmentSearchFilters = z.infer<typeof AppointmentSearchFiltersSchema>;
export type AppointmentSlotSearchFilters = z.infer<typeof AppointmentSlotSearchFiltersSchema>;
export type AppointmentSortOptions = z.infer<typeof AppointmentSortOptionsSchema>;
export declare const AppointmentSchemas: {
readonly AppointmentId: z.ZodBranded<z.ZodString, "AppointmentId">;
readonly TimeSlot: z.ZodEffects<z.ZodObject<{
startTime: z.ZodDate;
endTime: z.ZodDate;
}, "strip", z.ZodTypeAny, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>;
readonly Duration: z.ZodEffects<z.ZodObject<{
minutes: z.ZodNumber;
hours: z.ZodNumber;
days: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>;
readonly AppointmentStatus: z.ZodNativeEnum<typeof AppointmentStatus>;
readonly AppointmentType: z.ZodNativeEnum<typeof AppointmentType>;
readonly AppointmentIdValueObject: z.ZodObject<{
value: z.ZodBranded<z.ZodString, "AppointmentId">;
format: z.ZodEnum<["uuid", "auto-increment", "custom"]>;
createdAt: z.ZodDate;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strip", z.ZodTypeAny, {
value: string & z.BRAND<"AppointmentId">;
createdAt: Date;
format: "uuid" | "custom" | "auto-increment";
metadata?: Record<string, unknown> | undefined;
}, {
value: string;
createdAt: Date;
format: "uuid" | "custom" | "auto-increment";
metadata?: Record<string, unknown> | undefined;
}>;
readonly TimeSlotValueObject: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
startTime: z.ZodDate;
endTime: z.ZodDate;
}, "strip", z.ZodTypeAny, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}>;
readonly DurationValueObject: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
minutes: z.ZodNumber;
hours: z.ZodNumber;
days: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>;
isStandard: z.ZodBoolean;
isCustom: z.ZodBoolean;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}>;
readonly Appointment: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "AppointmentId">;
patientId: z.ZodString;
providerId: z.ZodString;
timeSlot: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
startTime: z.ZodDate;
endTime: z.ZodDate;
}, "strip", z.ZodTypeAny, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}>;
duration: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
minutes: z.ZodNumber;
hours: z.ZodNumber;
days: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>;
isStandard: z.ZodBoolean;
isCustom: z.ZodBoolean;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}>;
type: z.ZodNativeEnum<typeof AppointmentType>;
status: z.ZodNativeEnum<typeof AppointmentStatus>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
diagnosis: z.ZodOptional<z.ZodArray<z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>, "many">>;
prescriptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
prescribedBy: z.ZodString;
prescribedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
prescribedBy: string;
prescribedAt: Date;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
prescribedBy: string;
prescribedAt: Date;
instructions?: string | undefined;
}>, "many">>;
procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
performedBy: z.ZodString;
performedAt: z.ZodOptional<z.ZodDate>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
performedBy: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}, {
name: string;
performedBy: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}>, "many">>;
labOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
orderedBy: z.ZodString;
orderedAt: z.ZodDate;
results: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
value: z.ZodString;
unit: z.ZodOptional<z.ZodString>;
referenceRange: z.ZodOptional<z.ZodString>;
isAbnormal: z.ZodBoolean;
notes: z.ZodOptional<z.ZodString>;
reportedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}, {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}>, "many">>;
}, "strip", z.ZodTypeAny, {
testName: string;
labName: string;
orderedBy: string;
orderedAt: Date;
loincCode?: string | undefined;
results?: {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}[] | undefined;
}, {
testName: string;
labName: string;
orderedBy: string;
orderedAt: Date;
loincCode?: string | undefined;
results?: {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}[] | undefined;
}>, "many">>;
imagingOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
orderedBy: z.ZodString;
orderedAt: z.ZodDate;
results: z.ZodOptional<z.ZodObject<{
report: z.ZodString;
images: z.ZodArray<z.ZodString, "many">;
radiologist: z.ZodOptional<z.ZodString>;
reportedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
}, {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
}>>;
}, "strip", z.ZodTypeAny, {
facility: string;
orderedBy: string;
orderedAt: Date;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
results?: {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
} | undefined;
}, {
facility: string;
orderedBy: string;
orderedAt: Date;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
results?: {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
} | undefined;
}>, "many">>;
referrals: z.ZodOptional<z.ZodArray<z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
referredBy: z.ZodString;
referredAt: z.ZodDate;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
referredBy: string;
referredAt: Date;
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
referredBy: string;
referredAt: Date;
notes?: string | undefined;
}>, "many">>;
followUp: z.ZodOptional<z.ZodObject<{
isRequired: z.ZodBoolean;
recommendedDate: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
reason: z.ZodOptional<z.ZodString>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}, {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}>>;
billing: z.ZodOptional<z.ZodObject<{
totalAmount: z.ZodNumber;
insuranceAmount: z.ZodNumber;
patientAmount: z.ZodNumber;
copay: z.ZodNumber;
deductible: z.ZodNumber;
status: z.ZodEnum<["pending", "billed", "paid", "denied", "appealed"]>;
invoiceNumber: z.ZodOptional<z.ZodString>;
billedAt: z.ZodOptional<z.ZodDate>;
paidAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
copay: number;
deductible: number;
insuranceAmount: number;
patientAmount: number;
paidAt?: Date | undefined;
invoiceNumber?: string | undefined;
billedAt?: Date | undefined;
}, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
copay: number;
deductible: number;
insuranceAmount: number;
patientAmount: number;
paidAt?: Date | undefined;
invoiceNumber?: string | undefined;
billedAt?: Date | undefined;
}>>;
reminders: z.ZodOptional<z.ZodArray<z.ZodObject<{
type: z.ZodEnum<["email", "sms", "phone", "push"]>;
scheduledAt: z.ZodDate;
sentAt: z.ZodOptional<z.ZodDate>;
status: z.ZodEnum<["scheduled", "sent", "failed", "cancelled"]>;
message: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
message?: string | undefined;
sentAt?: Date | undefined;
}, {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
message?: string | undefined;
sentAt?: Date | undefined;
}>, "many">>;
attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
type: z.ZodEnum<["document", "image", "video", "audio"]>;
url: z.ZodString;
size: z.ZodNumber;
mimeType: z.ZodString;
uploadedBy: z.ZodString;
uploadedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
mimeType: string;
uploadedAt: Date;
uploadedBy: string;
}, {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
mimeType: string;
uploadedAt: Date;
uploadedBy: string;
}>, "many">>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
createdBy: z.ZodOptional<z.ZodString>;
updatedBy: z.ZodOptional<z.ZodString>;
cancelledAt: z.ZodOptional<z.ZodDate>;
cancelledBy: z.ZodOptional<z.ZodString>;
cancellationReason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
duration: {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
};
providerId: string;
reason: string;
timeSlot: {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
};
createdBy?: string | undefined;
updatedBy?: string | undefined;
tags?: string[] | undefined;
notes?: string | undefined;
attachments?: {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
mimeType: string;
uploadedAt: Date;
uploadedBy: string;
}[] | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
prescribedBy: string;
prescribedAt: Date;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
performedBy: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
copay: number;
deductible: number;
insuranceAmount: number;
patientAmount: number;
paidAt?: Date | undefined;
invoiceNumber?: string | undefined;
billedAt?: Date | undefined;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
testName: string;
labName: string;
orderedBy: string;
orderedAt: Date;
loincCode?: string | undefined;
results?: {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}[] | undefined;
}[] | undefined;
imagingOrders?: {
facility: string;
orderedBy: string;
orderedAt: Date;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
results?: {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
} | undefined;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
referredBy: string;
referredAt: Date;
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
message?: string | undefined;
sentAt?: Date | undefined;
}[] | undefined;
cancelledBy?: string | undefined;
cancellationReason?: string | undefined;
}, {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
duration: {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
};
providerId: string;
reason: string;
timeSlot: {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
};
createdBy?: string | undefined;
updatedBy?: string | undefined;
tags?: string[] | undefined;
notes?: string | undefined;
attachments?: {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
mimeType: string;
uploadedAt: Date;
uploadedBy: string;
}[] | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
prescribedBy: string;
prescribedAt: Date;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
performedBy: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
copay: number;
deductible: number;
insuranceAmount: number;
patientAmount: number;
paidAt?: Date | undefined;
invoiceNumber?: string | undefined;
billedAt?: Date | undefined;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
testName: string;
labName: string;
orderedBy: string;
orderedAt: Date;
loincCode?: string | undefined;
results?: {
value: string;
testName: string;
isAbnormal: boolean;
reportedAt: Date;
notes?: string | undefined;
unit?: string | undefined;
referenceRange?: string | undefined;
}[] | undefined;
}[] | undefined;
imagingOrders?: {
facility: string;
orderedBy: string;
orderedAt: Date;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
results?: {
report: string;
reportedAt: Date;
images: string[];
radiologist?: string | undefined;
} | undefined;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
referredBy: string;
referredAt: Date;
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
message?: string | undefined;
sentAt?: Date | undefined;
}[] | undefined;
cancelledBy?: string | undefined;
cancellationReason?: string | undefined;
}>;
readonly AppointmentSlot: z.ZodObject<{
id: z.ZodString;
appointmentId: z.ZodOptional<z.ZodBranded<z.ZodString, "AppointmentId">>;
timeSlot: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
startTime: z.ZodDate;
endTime: z.ZodDate;
}, "strip", z.ZodTypeAny, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>, {
startTime: Date;
endTime: Date;
}, {
startTime: Date;
endTime: Date;
}>;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}, {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
}>;
duration: z.ZodObject<{
value: z.ZodEffects<z.ZodObject<{
minutes: z.ZodNumber;
hours: z.ZodNumber;
days: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>, {
minutes: number;
hours: number;
days: number;
}, {
minutes: number;
hours: number;
days: number;
}>;
isStandard: z.ZodBoolean;
isCustom: z.ZodBoolean;
createdAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}, {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
}>;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
recurringPattern: z.ZodOptional<z.ZodObject<{
frequency: z.ZodEnum<["daily", "weekly", "monthly", "yearly"]>;
interval: z.ZodNumber;
endDate: z.ZodOptional<z.ZodDate>;
maxOccurrences: z.ZodOptional<z.ZodNumber>;
daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
dayOfMonth: z.ZodOptional<z.ZodNumber>;
monthOfYear: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
}, {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
}>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
id: string;
createdAt: Date;
updatedAt: Date;
duration: {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
};
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
timeSlot: {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
};
appointmentId?: (string & z.BRAND<"AppointmentId">) | undefined;
blockReason?: string | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
}, {
id: string;
createdAt: Date;
updatedAt: Date;
duration: {
value: {
minutes: number;
hours: number;
days: number;
};
createdAt: Date;
isStandard: boolean;
isCustom: boolean;
};
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
timeSlot: {
value: {
startTime: Date;
endTime: Date;
};
createdAt: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
blockReason?: string | undefined;
};
appointmentId?: string | undefined;
blockReason?: string | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
}>;
readonly CreateAppointmentRequest: z.ZodEffects<z.ZodObject<{
patientId: z.ZodString;
providerId: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
type: z.ZodNativeEnum<typeof AppointmentType>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
isRecurring: z.ZodOptional<z.ZodBoolean>;
recurringPattern: z.ZodOptional<z.ZodObject<{
frequency: z.ZodEnum<["daily", "weekly", "monthly", "yearly"]>;
interval: z.ZodNumber;
endDate: z.ZodOptional<z.ZodDate>;
maxOccurrences: z.ZodOptional<z.ZodNumber>;
daysOfWeek: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
dayOfMonth: z.ZodOptional<z.ZodNumber>;
monthOfYear: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
}, {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
}>>;
reminders: z.ZodOptional<z.ZodArray<z.ZodObject<{
type: z.ZodEnum<["email", "sms", "phone", "push"]>;
minutesBefore: z.ZodNumber;
message: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}, {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}>, "many">>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
tags?: string[] | undefined;
notes?: string | undefined;
symptoms?: string[] | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}[] | undefined;
isRecurring?: boolean | undefined;
}, {
type: AppointmentType;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
tags?: string[] | undefined;
notes?: string | undefined;
symptoms?: string[] | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}[] | undefined;
isRecurring?: boolean | undefined;
}>, {
type: AppointmentType;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
tags?: string[] | undefined;
notes?: string | undefined;
symptoms?: string[] | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}[] | undefined;
isRecurring?: boolean | undefined;
}, {
type: AppointmentType;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
tags?: string[] | undefined;
notes?: string | undefined;
symptoms?: string[] | undefined;
recurringPattern?: {
frequency: "daily" | "weekly" | "monthly" | "yearly";
interval: number;
endDate?: Date | undefined;
maxOccurrences?: number | undefined;
daysOfWeek?: number[] | undefined;
dayOfMonth?: number | undefined;
monthOfYear?: number | undefined;
} | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
minutesBefore: number;
message?: string | undefined;
}[] | undefined;
isRecurring?: boolean | undefined;
}>;
readonly UpdateAppointmentRequest: z.ZodObject<{
startTime: z.ZodOptional<z.ZodDate>;
endTime: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
status: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentStatus>>;
reason: z.ZodOptional<z.ZodString>;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
diagnosis: z.ZodOptional<z.ZodArray<z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>, "many">>;
prescriptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}>, "many">>;
procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}, {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}>, "many">>;
labOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
}, "strip", z.ZodTypeAny, {
testName: string;
labName: string;
loincCode?: string | undefined;
}, {
testName: string;
labName: string;
loincCode?: string | undefined;
}>, "many">>;
imagingOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
}, "strip", z.ZodTypeAny, {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}, {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}>, "many">>;
referrals: z.ZodOptional<z.ZodArray<z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}>, "many">>;
followUp: z.ZodOptional<z.ZodObject<{
isRequired: z.ZodBoolean;
recommendedDate: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
reason: z.ZodOptional<z.ZodString>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}, {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}>>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
type?: AppointmentType | undefined;
status?: AppointmentStatus | undefined;
tags?: string[] | undefined;
notes?: string | undefined;
startTime?: Date | undefined;
endTime?: Date | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}[] | undefined;
reason?: string | undefined;
labOrders?: {
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
}, {
type?: AppointmentType | undefined;
status?: AppointmentStatus | undefined;
tags?: string[] | undefined;
notes?: string | undefined;
startTime?: Date | undefined;
endTime?: Date | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}[] | undefined;
reason?: string | undefined;
labOrders?: {
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
notes?: string | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
}>;
readonly CancelAppointmentRequest: z.ZodObject<{
reason: z.ZodString;
sendNotification: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
reason: string;
sendNotification?: boolean | undefined;
}, {
reason: string;
sendNotification?: boolean | undefined;
}>;
readonly RescheduleAppointmentRequest: z.ZodEffects<z.ZodObject<{
newStartTime: z.ZodDate;
newEndTime: z.ZodDate;
reason: z.ZodOptional<z.ZodString>;
sendNotification: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
newStartTime: Date;
newEndTime: Date;
reason?: string | undefined;
sendNotification?: boolean | undefined;
}, {
newStartTime: Date;
newEndTime: Date;
reason?: string | undefined;
sendNotification?: boolean | undefined;
}>, {
newStartTime: Date;
newEndTime: Date;
reason?: string | undefined;
sendNotification?: boolean | undefined;
}, {
newStartTime: Date;
newEndTime: Date;
reason?: string | undefined;
sendNotification?: boolean | undefined;
}>;
readonly AddDiagnosisRequest: z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>;
readonly AddPrescriptionRequest: z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}>;
readonly AddProcedureRequest: z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}, {
name: string;
notes?: string | undefined;
description?: string | undefined;
cptCode?: string | undefined;
}>;
readonly AddLabOrderRequest: z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
}, "strip", z.ZodTypeAny, {
testName: string;
labName: string;
loincCode?: string | undefined;
}, {
testName: string;
labName: string;
loincCode?: string | undefined;
}>;
readonly AddImagingOrderRequest: z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
}, "strip", z.ZodTypeAny, {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}, {
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}>;
readonly AddReferralRequest: z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}>;
readonly ScheduleFollowUpRequest: z.ZodObject<{
recommendedDate: z.ZodDate;
type: z.ZodNativeEnum<typeof AppointmentType>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
reason: string;
recommendedDate: Date;
notes?: string | undefined;
}, {
type: AppointmentType;
reason: string;
recommendedDate: Date;
notes?: string | undefined;
}>;
readonly AppointmentResponse: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "AppointmentId">;
patientId: z.ZodString;
providerId: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
type: z.ZodNativeEnum<typeof AppointmentType>;
status: z.ZodNativeEnum<typeof AppointmentStatus>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
diagnosis: z.ZodOptional<z.ZodArray<z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>, "many">>;
prescriptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}>, "many">>;
procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
performedAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}>, "many">>;
labOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}>, "many">>;
imagingOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}>, "many">>;
referrals: z.ZodOptional<z.ZodArray<z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}>, "many">>;
followUp: z.ZodOptional<z.ZodObject<{
isRequired: z.ZodBoolean;
recommendedDate: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
reason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}>>;
billing: z.ZodOptional<z.ZodObject<{
totalAmount: z.ZodNumber;
insuranceAmount: z.ZodNumber;
patientAmount: z.ZodNumber;
status: z.ZodEnum<["pending", "billed", "paid", "denied", "appealed"]>;
}, "strip", z.ZodTypeAny, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
cancelledAt: z.ZodOptional<z.ZodDate>;
cancellationReason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}, {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}>;
readonly AppointmentListResponse: z.ZodObject<{
appointments: z.ZodArray<z.ZodObject<{
id: z.ZodBranded<z.ZodString, "AppointmentId">;
patientId: z.ZodString;
providerId: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
type: z.ZodNativeEnum<typeof AppointmentType>;
status: z.ZodNativeEnum<typeof AppointmentStatus>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
diagnosis: z.ZodOptional<z.ZodArray<z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>, "many">>;
prescriptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}>, "many">>;
procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
performedAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}>, "many">>;
labOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}>, "many">>;
imagingOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}>, "many">>;
referrals: z.ZodOptional<z.ZodArray<z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}>, "many">>;
followUp: z.ZodOptional<z.ZodObject<{
isRequired: z.ZodBoolean;
recommendedDate: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
reason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}>>;
billing: z.ZodOptional<z.ZodObject<{
totalAmount: z.ZodNumber;
insuranceAmount: z.ZodNumber;
patientAmount: z.ZodNumber;
status: z.ZodEnum<["pending", "billed", "paid", "denied", "appealed"]>;
}, "strip", z.ZodTypeAny, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
cancelledAt: z.ZodOptional<z.ZodDate>;
cancellationReason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}, {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}>, "many">;
pagination: z.ZodObject<{
page: z.ZodNumber;
limit: z.ZodNumber;
total: z.ZodNumber;
totalPages: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
page: number;
limit: number;
total: number;
totalPages: number;
}, {
page: number;
limit: number;
total: number;
totalPages: number;
}>;
}, "strip", z.ZodTypeAny, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
appointments: {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}[];
}, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
appointments: {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}[];
}>;
readonly AppointmentSlotResponse: z.ZodObject<{
id: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
appointmentId: z.ZodOptional<z.ZodBranded<z.ZodString, "AppointmentId">>;
}, "strip", z.ZodTypeAny, {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: (string & z.BRAND<"AppointmentId">) | undefined;
blockReason?: string | undefined;
}, {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: string | undefined;
blockReason?: string | undefined;
}>;
readonly AppointmentSlotListResponse: z.ZodObject<{
slots: z.ZodArray<z.ZodObject<{
id: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
isAvailable: z.ZodBoolean;
isBooked: z.ZodBoolean;
isBlocked: z.ZodBoolean;
blockReason: z.ZodOptional<z.ZodString>;
appointmentId: z.ZodOptional<z.ZodBranded<z.ZodString, "AppointmentId">>;
}, "strip", z.ZodTypeAny, {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: (string & z.BRAND<"AppointmentId">) | undefined;
blockReason?: string | undefined;
}, {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: string | undefined;
blockReason?: string | undefined;
}>, "many">;
pagination: z.ZodObject<{
page: z.ZodNumber;
limit: z.ZodNumber;
total: z.ZodNumber;
totalPages: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
page: number;
limit: number;
total: number;
totalPages: number;
}, {
page: number;
limit: number;
total: number;
totalPages: number;
}>;
}, "strip", z.ZodTypeAny, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
slots: {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: (string & z.BRAND<"AppointmentId">) | undefined;
blockReason?: string | undefined;
}[];
}, {
pagination: {
page: number;
limit: number;
total: number;
totalPages: number;
};
slots: {
id: string;
startTime: Date;
endTime: Date;
isAvailable: boolean;
isBooked: boolean;
isBlocked: boolean;
appointmentId?: string | undefined;
blockReason?: string | undefined;
}[];
}>;
readonly AppointmentDetailResponse: z.ZodObject<{
appointment: z.ZodObject<{
id: z.ZodBranded<z.ZodString, "AppointmentId">;
patientId: z.ZodString;
providerId: z.ZodString;
startTime: z.ZodDate;
endTime: z.ZodDate;
type: z.ZodNativeEnum<typeof AppointmentType>;
status: z.ZodNativeEnum<typeof AppointmentStatus>;
reason: z.ZodString;
notes: z.ZodOptional<z.ZodString>;
symptoms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
diagnosis: z.ZodOptional<z.ZodArray<z.ZodObject<{
condition: z.ZodString;
icd10Code: z.ZodOptional<z.ZodString>;
severity: z.ZodEnum<["mild", "moderate", "severe"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}, {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}>, "many">>;
prescriptions: z.ZodOptional<z.ZodArray<z.ZodObject<{
medication: z.ZodString;
dosage: z.ZodString;
frequency: z.ZodString;
duration: z.ZodString;
instructions: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}, {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}>, "many">>;
procedures: z.ZodOptional<z.ZodArray<z.ZodObject<{
name: z.ZodString;
cptCode: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
performedAt: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}, {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}>, "many">>;
labOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
testName: z.ZodString;
loincCode: z.ZodOptional<z.ZodString>;
labName: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}>, "many">>;
imagingOrders: z.ZodOptional<z.ZodArray<z.ZodObject<{
studyName: z.ZodString;
modality: z.ZodEnum<["x-ray", "ct", "mri", "ultrasound", "mammography", "other"]>;
bodyPart: z.ZodString;
facility: z.ZodString;
status: z.ZodEnum<["ordered", "in-progress", "completed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}, {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}>, "many">>;
referrals: z.ZodOptional<z.ZodArray<z.ZodObject<{
specialist: z.ZodString;
specialty: z.ZodString;
reason: z.ZodString;
urgency: z.ZodEnum<["routine", "urgent", "emergency"]>;
notes: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}, {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}>, "many">>;
followUp: z.ZodOptional<z.ZodObject<{
isRequired: z.ZodBoolean;
recommendedDate: z.ZodOptional<z.ZodDate>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
reason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}, {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
}>>;
billing: z.ZodOptional<z.ZodObject<{
totalAmount: z.ZodNumber;
insuranceAmount: z.ZodNumber;
patientAmount: z.ZodNumber;
status: z.ZodEnum<["pending", "billed", "paid", "denied", "appealed"]>;
}, "strip", z.ZodTypeAny, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}, {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
}>>;
createdAt: z.ZodDate;
updatedAt: z.ZodDate;
cancelledAt: z.ZodOptional<z.ZodDate>;
cancellationReason: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}, {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
}>;
patient: z.ZodObject<{
id: z.ZodString;
firstName: z.ZodString;
lastName: z.ZodString;
dateOfBirth: z.ZodDate;
phoneNumber: z.ZodOptional<z.ZodString>;
email: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
id: string;
firstName: string;
lastName: string;
dateOfBirth: Date;
email?: string | undefined;
phoneNumber?: string | undefined;
}, {
id: string;
firstName: string;
lastName: string;
dateOfBirth: Date;
email?: string | undefined;
phoneNumber?: string | undefined;
}>;
provider: z.ZodObject<{
id: z.ZodString;
firstName: z.ZodString;
lastName: z.ZodString;
specialty: z.ZodOptional<z.ZodString>;
phoneNumber: z.ZodOptional<z.ZodString>;
email: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
id: string;
firstName: string;
lastName: string;
email?: string | undefined;
phoneNumber?: string | undefined;
specialty?: string | undefined;
}, {
id: string;
firstName: string;
lastName: string;
email?: string | undefined;
phoneNumber?: string | undefined;
specialty?: string | undefined;
}>;
reminders: z.ZodOptional<z.ZodArray<z.ZodObject<{
type: z.ZodEnum<["email", "sms", "phone", "push"]>;
scheduledAt: z.ZodDate;
sentAt: z.ZodOptional<z.ZodDate>;
status: z.ZodEnum<["scheduled", "sent", "failed", "cancelled"]>;
}, "strip", z.ZodTypeAny, {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
sentAt?: Date | undefined;
}, {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
sentAt?: Date | undefined;
}>, "many">>;
attachments: z.ZodOptional<z.ZodArray<z.ZodObject<{
id: z.ZodString;
name: z.ZodString;
type: z.ZodEnum<["document", "image", "video", "audio"]>;
url: z.ZodString;
size: z.ZodNumber;
uploadedAt: z.ZodDate;
}, "strip", z.ZodTypeAny, {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
uploadedAt: Date;
}, {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
uploadedAt: Date;
}>, "many">>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
patient: {
id: string;
firstName: string;
lastName: string;
dateOfBirth: Date;
email?: string | undefined;
phoneNumber?: string | undefined;
};
provider: {
id: string;
firstName: string;
lastName: string;
email?: string | undefined;
phoneNumber?: string | undefined;
specialty?: string | undefined;
};
appointment: {
type: AppointmentType;
id: string & z.BRAND<"AppointmentId">;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
};
tags?: string[] | undefined;
attachments?: {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
uploadedAt: Date;
}[] | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
sentAt?: Date | undefined;
}[] | undefined;
}, {
patient: {
id: string;
firstName: string;
lastName: string;
dateOfBirth: Date;
email?: string | undefined;
phoneNumber?: string | undefined;
};
provider: {
id: string;
firstName: string;
lastName: string;
email?: string | undefined;
phoneNumber?: string | undefined;
specialty?: string | undefined;
};
appointment: {
type: AppointmentType;
id: string;
createdAt: Date;
updatedAt: Date;
status: AppointmentStatus;
patientId: string;
startTime: Date;
endTime: Date;
providerId: string;
reason: string;
notes?: string | undefined;
symptoms?: string[] | undefined;
diagnosis?: {
severity: "moderate" | "mild" | "severe";
condition: string;
notes?: string | undefined;
icd10Code?: string | undefined;
}[] | undefined;
prescriptions?: {
duration: string;
medication: string;
dosage: string;
frequency: string;
instructions?: string | undefined;
}[] | undefined;
procedures?: {
name: string;
description?: string | undefined;
cptCode?: string | undefined;
performedAt?: Date | undefined;
}[] | undefined;
billing?: {
status: "pending" | "billed" | "paid" | "denied" | "appealed";
totalAmount: number;
insuranceAmount: number;
patientAmount: number;
} | undefined;
cancelledAt?: Date | undefined;
labOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
testName: string;
labName: string;
loincCode?: string | undefined;
}[] | undefined;
imagingOrders?: {
status: "cancelled" | "completed" | "ordered" | "in-progress";
facility: string;
studyName: string;
modality: "other" | "x-ray" | "ct" | "mri" | "ultrasound" | "mammography";
bodyPart: string;
}[] | undefined;
referrals?: {
specialist: string;
reason: string;
specialty: string;
urgency: "urgent" | "emergency" | "routine";
notes?: string | undefined;
}[] | undefined;
followUp?: {
isRequired: boolean;
type?: AppointmentType | undefined;
reason?: string | undefined;
recommendedDate?: Date | undefined;
} | undefined;
cancellationReason?: string | undefined;
};
tags?: string[] | undefined;
attachments?: {
type: "document" | "image" | "video" | "audio";
id: string;
name: string;
url: string;
size: number;
uploadedAt: Date;
}[] | undefined;
reminders?: {
type: "push" | "sms" | "email" | "phone";
status: "cancelled" | "scheduled" | "sent" | "failed";
scheduledAt: Date;
sentAt?: Date | undefined;
}[] | undefined;
}>;
readonly AppointmentSearchFilters: z.ZodObject<{
query: z.ZodOptional<z.ZodString>;
patientId: z.ZodOptional<z.ZodString>;
providerId: z.ZodOptional<z.ZodString>;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
status: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentStatus>>;
startDate: z.ZodOptional<z.ZodDate>;
endDate: z.ZodOptional<z.ZodDate>;
hasDiagnosis: z.ZodOptional<z.ZodBoolean>;
hasPrescriptions: z.ZodOptional<z.ZodBoolean>;
hasProcedures: z.ZodOptional<z.ZodBoolean>;
hasLabOrders: z.ZodOptional<z.ZodBoolean>;
hasImagingOrders: z.ZodOptional<z.ZodBoolean>;
hasReferrals: z.ZodOptional<z.ZodBoolean>;
hasFollowUp: z.ZodOptional<z.ZodBoolean>;
isCancelled: z.ZodOptional<z.ZodBoolean>;
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
createdAfter: z.ZodOptional<z.ZodDate>;
createdBefore: z.ZodOptional<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
type?: AppointmentType | undefined;
status?: AppointmentStatus | undefined;
tags?: string[] | undefined;
patientId?: string | undefined;
providerId?: string | undefined;
startDate?: Date | undefined;
endDate?: Date | undefined;
query?: string | undefined;
createdAfter?: Date | undefined;
createdBefore?: Date | undefined;
hasDiagnosis?: boolean | undefined;
hasPrescriptions?: boolean | undefined;
hasProcedures?: boolean | undefined;
hasLabOrders?: boolean | undefined;
hasImagingOrders?: boolean | undefined;
hasReferrals?: boolean | undefined;
hasFollowUp?: boolean | undefined;
isCancelled?: boolean | undefined;
}, {
type?: AppointmentType | undefined;
status?: AppointmentStatus | undefined;
tags?: string[] | undefined;
patientId?: string | undefined;
providerId?: string | undefined;
startDate?: Date | undefined;
endDate?: Date | undefined;
query?: string | undefined;
createdAfter?: Date | undefined;
createdBefore?: Date | undefined;
hasDiagnosis?: boolean | undefined;
hasPrescriptions?: boolean | undefined;
hasProcedures?: boolean | undefined;
hasLabOrders?: boolean | undefined;
hasImagingOrders?: boolean | undefined;
hasReferrals?: boolean | undefined;
hasFollowUp?: boolean | undefined;
isCancelled?: boolean | undefined;
}>;
readonly AppointmentSlotSearchFilters: z.ZodObject<{
providerId: z.ZodString;
startDate: z.ZodDate;
endDate: z.ZodDate;
type: z.ZodOptional<z.ZodNativeEnum<typeof AppointmentType>>;
duration: z.ZodOptional<z.ZodNumber>;
isAvailable: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
providerId: string;
startDate: Date;
endDate: Date;
type?: AppointmentType | undefined;
duration?: number | undefined;
isAvailable?: boolean | undefined;
}, {
providerId: string;
startDate: Date;
endDate: Date;
type?: AppointmentType | undefined;
duration?: number | undefined;
isAvailable?: boolean | undefined;
}>;
readonly AppointmentSortOptions: z.ZodEnum<["startTime", "endTime", "createdAt", "updatedAt", "status", "type", "patientName", "providerName"]>;
readonly ValidationUtils: {
isValidTimeSlot: (startTime: Date, endTime: Date) => boolean;
calculateDuration: (startTime: Date, endTime: Date) => {
minutes: number;
hours: number;
days: number;
};
isBusinessHours: (date: Date) => boolean;
isAvailableTimeSlot: (startTime: Date, endTime: Date, existingAppointments: any[]) => boolean;
validateAppointmentData: (data: any) => {
isValid: boolean;
errors: string[];
};
};
};
//# sourceMappingURL=appointment-schemas.d.ts.map