update:examination detail

This commit is contained in:
wayanrivan
2026-04-15 11:36:02 +07:00
parent 187503d44d
commit 6d97ddd9fe
2 changed files with 24 additions and 14 deletions

View File

@ -87,7 +87,7 @@ export class ExaminationDetailController {
name: Joi.string().max(256).required().label("Name"),
order_no: Joi.string().max(256).required().label("Order No."),
measurement_unit_id: Joi.string().uuid().required().label("Measurement Unit ID"),
reference_range_id: Joi.string().uuid().required().label("Reference Range ID"),
reference_range_ids: Joi.array().items(Joi.string().uuid()).min(1).required().label("Reference Range IDs"),
status: Joi.string().required().label("Status"),
});
@ -96,17 +96,22 @@ export class ExaminationDetailController {
let measurementUnit = await MeasurementUnitModel.list({ "MeasurementUnit.id": param.measurement_unit_id }).then((q) => q.getOne());
if (!measurementUnit) throw { message: "Measurement Unit not found" };
let referenceRange = await ReferenceRangeModel.list({ "ReferenceRange.id": param.reference_range_id }).then((q) => q.getOne());
if (!referenceRange) throw { message: "Reference Range not found" };
const referenceRanges = await Promise.all(
param.reference_range_ids.map(async (id: string) => {
const rr = await ReferenceRangeModel.list({ "ReferenceRange.id": id }).then((q) => q.getOne());
if (!rr) throw { message: `Reference Range ${id} not found` };
return rr;
})
);
let examinationDetail = new ExaminationDetail();
examinationDetail.name = param.name;
examinationDetail.order_no = param.order_no;
examinationDetail.measurement_unit = measurementUnit;
examinationDetail.reference_range = referenceRange;
examinationDetail.reference_range = referenceRanges;
examinationDetail.status = param.status;
examinationDetail.created_by = req.auth.data.name;
examinationDetail.updated_by = req.auth.data.name;
examinationDetail.created_by = req.auth?.data.name;
examinationDetail.updated_by = req.auth?.data.name;
await queryRunner.manager.save(examinationDetail);
await queryRunner.commitTransaction();
@ -166,7 +171,7 @@ export class ExaminationDetailController {
name: Joi.string().max(256).required().label("Name"),
order_no: Joi.string().max(256).required().label("Order No."),
measurement_unit_id: Joi.string().uuid().required().label("Measurement Unit ID"),
reference_range_id: Joi.string().uuid().required().label("Reference Range ID"),
reference_range_ids: Joi.array().items(Joi.string().uuid()).min(1).required().label("Reference Range IDs"),
status: Joi.string().required().label("Status"),
});
@ -179,15 +184,20 @@ export class ExaminationDetailController {
let measurementUnit = await MeasurementUnitModel.list({ "MeasurementUnit.id": param.measurement_unit_id }).then((q) => q.getOne());
if (!measurementUnit) throw { message: "Measurement Unit not found" };
let referenceRange = await ReferenceRangeModel.list({ "ReferenceRange.id": param.reference_range_id }).then((q) => q.getOne());
if (!referenceRange) throw { message: "Reference Range not found" };
const referenceRanges = await Promise.all(
param.reference_range_ids.map(async (id: string) => {
const rr = await ReferenceRangeModel.list({ "ReferenceRange.id": id }).then((q) => q.getOne());
if (!rr) throw { message: `Reference Range ${id} not found` };
return rr;
})
);
examinationDetail.name = param.name;
examinationDetail.order_no = param.order_no;
examinationDetail.measurement_unit = measurementUnit;
examinationDetail.reference_range = referenceRange;
examinationDetail.reference_range = referenceRanges;
examinationDetail.status = param.status;
examinationDetail.updated_by = req.auth.data.name;
examinationDetail.updated_by = req.auth?.data.name;
await queryRunner.manager.save(examinationDetail);
await queryRunner.commitTransaction();
@ -224,7 +234,7 @@ export class ExaminationDetailController {
if (!examinationDetail) throw { message: "Examination Detail " + Language.lang.failed_not_found };
examinationDetail.deleted_by = req.auth.data.name;
examinationDetail.deleted_by = req.auth?.data.name;
examinationDetail.deleted_at = moment().toDate();
await OrmHelper.DB.manager.save(examinationDetail);
affected = 1;
@ -273,4 +283,4 @@ export class ExaminationDetailController {
return ReturnHelper.errorResponse(res, 500, 402, Language.lang.failed_restore, err.message);
}
}
}
}

View File

@ -216,7 +216,7 @@ const doc = {
$name: "Examination Detail name",
$order_no: "Order number",
$measurement_unit_id: "uuid-string",
$reference_range_id: "uuid-string",
$reference_range_ids: "[] array uuid-string",
$status: { "@enum": ["Y", "N"] },
},
serviceExamination: {