import { ValidationOptions } from "class-validator"; import { CaseType } from "../common/enums"; /** * Represents a vital sign with value and unit. */ export declare class VitalSign { value: string; unit: string; } /** * Represents the results of a physical examination. */ export declare class PhysicalExamination { bloodPressure: VitalSign; heartRate: VitalSign; respiratoryRate: VitalSign; temperature: VitalSign; oxygenSaturation: VitalSign; height: VitalSign; weight: VitalSign; } /** * Represents a medical history item. */ export declare class MedicalHistoryItem { condition?: string; procedure?: string; } /** * Represents a family history item. */ export declare class FamilyHistoryItem { relation: string; condition: string; } /** * Represents a procedure item. */ export declare class ProcedureItem { description: string; complications?: string; } /** * Represents an investigation item. */ export declare class InvestigationItem { observations: Record; status: string; recordedDate: string; } /** * Represents a lab report item. */ export declare class LabReportItem { observations: Record; status: string; recordedDate: string; } /** * Common health information DTO base class. */ export declare class CommonHealthInformationDTO { chiefComplaints: string; physicalExamination: PhysicalExamination; medicalHistory: MedicalHistoryItem[]; familyHistory?: FamilyHistoryItem[]; conditions?: string[]; currentProcedures: ProcedureItem[]; currentMedications?: string[]; prescribedMedications?: string[]; allergies?: string[]; immunizations?: string[]; advisoryNotes?: string[]; carePlan?: string[]; followUp?: string[]; } /** * OP Consultation sections. */ export declare class OPConsultationSections extends CommonHealthInformationDTO { } /** * Discharge Summary sections. */ export declare class DischargeSummarySections extends CommonHealthInformationDTO { investigations: InvestigationItem; } /** * Prescription sections. */ export declare class PrescriptionSections { prescribedMedications: string[]; } /** * Wellness Record sections. */ export declare class WellnessRecordSections { vitalSigns: Record; bodyMeasurements: Record; physicalActivities: Record; womenHealth: Record; lifeStyle: Record; others: Record; } /** * Immunization Record sections. */ export declare class ImmunizationRecordSections { immunizations: string[]; } /** * Diagnostic Report sections. */ export declare class DiagnosticReportSections { labReports: LabReportItem; } /** * OP Consultation DTO. */ export declare class OPConsultationDTO { caseSheets?: string[] | undefined; payload?: OPConsultationSections | undefined; } /** * Discharge Summary DTO. */ export declare class DischargeSummaryDTO { caseSheets?: string[] | undefined; payload?: DischargeSummarySections | undefined; } /** * Prescription Record DTO. */ export declare class PrescriptionRecordDTO { caseSheets?: string[] | undefined; payload?: PrescriptionSections | undefined; } /** * Wellness Record DTO. */ export declare class WellnessRecordDTO { caseSheets?: string[] | undefined; payload?: WellnessRecordSections | undefined; } /** * Immunization Record DTO. */ export declare class ImmunizationRecordDTO { caseSheets?: string[] | undefined; payload?: ImmunizationRecordSections | undefined; } /** * Diagnostic Report DTO. */ export declare class DiagnosticReportDTO { caseSheets?: string[] | undefined; payload?: DiagnosticReportSections | undefined; } /** * Health Document Record DTO. */ export declare class HealthDocumentRecordDTO { caseSheets?: string[] | undefined; } /** * Union type for health information DTOs. */ export type HealthInformationDTOUnion = OPConsultationDTO | DischargeSummaryDTO | PrescriptionRecordDTO | WellnessRecordDTO | ImmunizationRecordDTO | DiagnosticReportDTO | HealthDocumentRecordDTO; /** * Custom validator for DTO type matching case type. */ export declare function ValidateDTOType(validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void; export declare class PatientType { firstName: string; middleName?: string; lastName: string; birthDate: string; gender: "male" | "female" | "other" | "unknown"; mobileNumber: string; emailId?: string; address: string; pincode: string; state: string; wantsToLinkWhatsapp?: boolean; photo?: string; idNumber: string; idType: string; abhaAddress?: string; resourceId?: string; } export declare class DoctorType { firstName: string; middleName?: string; lastName: string; birthDate: string; gender: "male" | "female" | "other" | "unknown"; mobileNumber: string; emailId?: string; address: string; pincode: string; state: string; wantsToLinkWhatsapp?: boolean; photo?: string; designation: string; joiningDate: string | undefined; department: string; registrationId: string; hprId?: string; resourceId?: string; } /** * Main Encounter Request DTO. */ export declare class EncounterRequestDTO { caseType: CaseType; enableExtraction: boolean; documentReferences?: string[]; patientDetails?: PatientType | undefined; doctorDetails?: DoctorType[] | undefined; recordId?: string; dto: HealthInformationDTOUnion; } export declare class ProcessDSDto { files?: string[]; encryptedData?: string; caseType: CaseType; } export declare class GetEncounterResponse { type: string | undefined; message: string | undefined; requestResource?: unknown; totalNumberOfRecords?: number; nextPageLink?: string; } export type EncryptionResponse = Record | string[] | string;