This commit is contained in:
2026-04-15 15:10:31 +07:00
parent d2126633cb
commit ec104565f0

View File

@ -48,22 +48,38 @@ export class ExaminationDetailController {
const offset = (param.page - 1) * param.limit; const offset = (param.page - 1) * param.limit;
let limit = param.limit; let limit = param.limit;
const res_count = query; const res_count = query.clone();
const res_list = query const res_ids = query
.leftJoinAndSelect("ExaminationDetail.measurement_unit", "measurementUnit") .clone()
.leftJoinAndSelect("ExaminationDetail.reference_range", "referenceRange") .select("ExaminationDetail.id", "id")
.orderBy("ExaminationDetail." + param.order_field, param.order_direction) .orderBy("ExaminationDetail." + param.order_field, param.order_direction)
.offset(offset) .offset(offset)
.limit(limit); .limit(limit);
if (param.with_deleted) { if (param.with_deleted) {
res_count.withDeleted(); res_count.withDeleted();
res_list.withDeleted(); res_ids.withDeleted();
} }
const current_page = param.page; const current_page = param.page;
const total_count_data = await res_count.getCount(); const total_count_data = await res_count.getCount();
const list_data = await res_list.getMany(); const ids = (await res_ids.getRawMany()).map((r: any) => r.id).filter(Boolean);
let list_data: any[] = [];
if (ids.length > 0) {
const res_list = OrmHelper.DB.getRepository(ExaminationDetail)
.createQueryBuilder("ExaminationDetail")
.leftJoinAndSelect("ExaminationDetail.measurement_unit", "measurementUnit")
.leftJoinAndSelect("ExaminationDetail.reference_range", "referenceRange")
.where("ExaminationDetail.id IN (:...ids)", { ids })
.orderBy("ExaminationDetail." + param.order_field, param.order_direction);
if (param.with_deleted) {
res_list.withDeleted();
}
list_data = await res_list.getMany();
}
const count_data = CommonHelper.countObject(list_data); const count_data = CommonHelper.countObject(list_data);
return ReturnHelper.successResponselist(res, 200, Language.lang.success_view, count_data, current_page, total_count_data, list_data); return ReturnHelper.successResponselist(res, 200, Language.lang.success_view, count_data, current_page, total_count_data, list_data);
@ -135,8 +151,7 @@ export class ExaminationDetailController {
let param: any = await schema.validateAsync(req.params); let param: any = await schema.validateAsync(req.params);
let examinationDetail = await ExaminationDetailModel.list({ "ExaminationDetail.id": param.id }) let examinationDetail = await ExaminationDetailModel.list({ "ExaminationDetail.id": param.id }).then((q) => q.leftJoinAndSelect("ExaminationDetail.measurement_unit", "measurementUnit").leftJoinAndSelect("ExaminationDetail.reference_range", "referenceRange").getOne());
.then((q) => q.leftJoinAndSelect("ExaminationDetail.measurement_unit", "measurementUnit").leftJoinAndSelect("ExaminationDetail.reference_range", "referenceRange").getOne());
if (!examinationDetail) throw { message: "Examination Detail Not Found" }; if (!examinationDetail) throw { message: "Examination Detail Not Found" };