2026-05-19 22:29:29 +03:30
|
|
|
import {
|
|
|
|
|
ArrayMinSize,
|
|
|
|
|
IsArray,
|
|
|
|
|
IsIn,
|
|
|
|
|
IsOptional,
|
|
|
|
|
IsString,
|
|
|
|
|
IsUUID,
|
|
|
|
|
MaxLength,
|
|
|
|
|
ValidateNested,
|
|
|
|
|
} from 'class-validator';
|
|
|
|
|
import { Type } from 'class-transformer';
|
|
|
|
|
|
|
|
|
|
const TREATMENT_TYPES = ['consultation', 'filling', 'endo', 'visit', 'hygiene'] as const;
|
|
|
|
|
|
2026-06-28 15:34:56 +03:30
|
|
|
export class SaveTreatmentDetailDto {
|
2026-05-19 22:29:29 +03:30
|
|
|
@IsString()
|
|
|
|
|
@MaxLength(64)
|
|
|
|
|
clientId: string;
|
|
|
|
|
|
|
|
|
|
@IsOptional()
|
|
|
|
|
@IsUUID()
|
|
|
|
|
id?: string;
|
|
|
|
|
|
|
|
|
|
@IsIn(TREATMENT_TYPES)
|
|
|
|
|
treatmentType: string;
|
|
|
|
|
|
|
|
|
|
@IsArray()
|
|
|
|
|
@IsString({ each: true })
|
|
|
|
|
teeth: string[];
|
|
|
|
|
|
|
|
|
|
@IsOptional()
|
|
|
|
|
@IsString()
|
|
|
|
|
@MaxLength(5000)
|
|
|
|
|
comment?: string;
|
|
|
|
|
|
|
|
|
|
@IsOptional()
|
|
|
|
|
@IsArray()
|
|
|
|
|
@IsUUID(undefined, { each: true })
|
|
|
|
|
attachmentIds?: string[];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class SaveTreatmentDraftDto {
|
|
|
|
|
@IsArray()
|
|
|
|
|
@ArrayMinSize(1)
|
|
|
|
|
@ValidateNested({ each: true })
|
2026-06-28 15:34:56 +03:30
|
|
|
@Type(() => SaveTreatmentDetailDto)
|
|
|
|
|
details: SaveTreatmentDetailDto[];
|
2026-05-19 22:29:29 +03:30
|
|
|
}
|
|
|
|
|
|
2026-06-28 15:34:56 +03:30
|
|
|
export class SaveLabCaseDto {
|
|
|
|
|
@IsString()
|
|
|
|
|
@MaxLength(64)
|
|
|
|
|
clientId: string;
|
|
|
|
|
|
|
|
|
|
@IsOptional()
|
|
|
|
|
@IsUUID()
|
|
|
|
|
id?: string;
|
|
|
|
|
|
|
|
|
|
@IsOptional()
|
|
|
|
|
@IsUUID()
|
|
|
|
|
destinationOrganizationId?: string;
|
|
|
|
|
|
|
|
|
|
@IsOptional()
|
|
|
|
|
@IsString()
|
|
|
|
|
@MaxLength(5000)
|
|
|
|
|
labComment?: string;
|
|
|
|
|
|
2026-05-19 22:29:29 +03:30
|
|
|
@IsArray()
|
|
|
|
|
@ArrayMinSize(1)
|
|
|
|
|
@IsUUID(undefined, { each: true })
|
2026-06-28 15:34:56 +03:30
|
|
|
treatmentDetailIds: string[];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class SaveTreatmentLabCasesDto {
|
|
|
|
|
@IsArray()
|
|
|
|
|
@ValidateNested({ each: true })
|
|
|
|
|
@Type(() => SaveLabCaseDto)
|
|
|
|
|
labCases: SaveLabCaseDto[];
|
2026-05-19 22:29:29 +03:30
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class ListPatientTreatmentHistoryDto {
|
|
|
|
|
@IsOptional()
|
|
|
|
|
limit?: number;
|
|
|
|
|
}
|