emr-types
Version:
Comprehensive TypeScript Types Library for Electronic Medical Record (EMR) Applications - Domain-Driven Design with Zod Validation
60 lines • 3.59 kB
TypeScript
export * from './entities/Patient';
export * from './value-objects/PatientId';
export * from './enums/PatientStatus';
export * from './events/PatientDomainEvent';
import type { Patient, PatientProfile, MedicalHistory } from './entities/Patient';
export type { Patient, PatientProfile, MedicalHistory, EmergencyContact, Allergy, ChronicCondition, CurrentMedication, InsuranceInfo, BillingInfo, PaymentMethod, PrivacySettings, ConsentRecord, PatientPreferences, Child, Guardian, FamilyHistoryItem, PastMedicalCondition, PastSurgery, PastHospitalization, CurrentSymptom, VitalSigns, MedicationHistoryItem, MedicationAllergy, Immunization, LabResult, ImagingResult, SocialHistory, CommunicationPreferences, AppointmentPreferences, ReminderPreferences, PaymentPlan, CreatePatientRequest, UpdatePatientRequest, PatientSearchFilters, PatientSearchResult, PatientStatistics } from './entities/Patient';
export type { PatientId, PatientIdFactory, PatientIdValidator, PatientIdUtils, isPatientId, isValidPatientIdString, PATIENT_ID_FORMATS, DEFAULT_PATIENT_ID_FORMAT, PatientIdExamples } from './value-objects/PatientId';
export { PatientStatus, PatientStatusCategories, PatientStatusPriority, PatientStatusDescriptions, PatientStatusUtils, isPatientStatus, isStatusInCategory, DEFAULT_PATIENT_STATUS, PATIENT_STATUS_TRANSITIONS, PatientStatusExamples } from './enums/PatientStatus';
export type { PatientDomainEvent, PatientRegisteredEvent, PatientUpdatedEvent, PatientStatusChangedEvent, PatientAssignedToDoctorEvent, PatientDischargedEvent, PatientTransferredEvent, PatientMedicalHistoryUpdatedEvent, PatientInsuranceUpdatedEvent, PatientBillingUpdatedEvent, PatientPrivacySettingsUpdatedEvent, PatientConsentRecordedEvent, PatientPreferencesUpdatedEvent, PatientEmergencyContactUpdatedEvent, PatientVitalSignsRecordedEvent, PatientMedicationPrescribedEvent, PatientMedicationDiscontinuedEvent, PatientAllergyRecordedEvent, PatientImmunizationRecordedEvent, PatientLabResultRecordedEvent, PatientImagingResultRecordedEvent, PatientEvent, PatientEventFactory, isPatientRegisteredEvent, isPatientUpdatedEvent, isPatientStatusChangedEvent, isPatientDomainEvent } from './events/PatientDomainEvent';
/**
* Patient domain utilities for common operations
*/
export declare const PatientDomainUtils: {
/**
* Calculate patient age from date of birth
*/
calculateAge(dateOfBirth: Date): number;
/**
* Calculate BMI from height and weight
*/
calculateBMI(height: number, weight: number): number;
/**
* Get BMI category
*/
getBMICategory(bmi: number): string;
/**
* Format patient name
*/
formatPatientName(firstName: string, lastName: string, middleName?: string): string;
/**
* Generate patient code
*/
generatePatientCode(tenantId: string, sequence: number): string;
/**
* Validate patient data
*/
validatePatientData(patient: {
firstName: string;
lastName: string;
dateOfBirth: Date;
email?: string;
phoneNumber?: string;
}): {
isValid: boolean;
errors: string[];
};
};
/**
* Type guard to check if a value is a Patient entity
*/
export declare function isPatient(value: unknown): value is Patient;
/**
* Type guard to check if a value is a PatientProfile
*/
export declare function isPatientProfile(value: unknown): value is PatientProfile;
/**
* Type guard to check if a value is a MedicalHistory
*/
export declare function isMedicalHistory(value: unknown): value is MedicalHistory;
//# sourceMappingURL=index.d.ts.map