update:examination detail
This commit is contained in:
@ -87,7 +87,7 @@ export class ExaminationDetailController {
|
|||||||
name: Joi.string().max(256).required().label("Name"),
|
name: Joi.string().max(256).required().label("Name"),
|
||||||
order_no: Joi.string().max(256).required().label("Order No."),
|
order_no: Joi.string().max(256).required().label("Order No."),
|
||||||
measurement_unit_id: Joi.string().uuid().required().label("Measurement Unit ID"),
|
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"),
|
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());
|
let measurementUnit = await MeasurementUnitModel.list({ "MeasurementUnit.id": param.measurement_unit_id }).then((q) => q.getOne());
|
||||||
if (!measurementUnit) throw { message: "Measurement Unit not found" };
|
if (!measurementUnit) throw { message: "Measurement Unit not found" };
|
||||||
|
|
||||||
let referenceRange = await ReferenceRangeModel.list({ "ReferenceRange.id": param.reference_range_id }).then((q) => q.getOne());
|
const referenceRanges = await Promise.all(
|
||||||
if (!referenceRange) throw { message: "Reference Range not found" };
|
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();
|
let examinationDetail = new ExaminationDetail();
|
||||||
examinationDetail.name = param.name;
|
examinationDetail.name = param.name;
|
||||||
examinationDetail.order_no = param.order_no;
|
examinationDetail.order_no = param.order_no;
|
||||||
examinationDetail.measurement_unit = measurementUnit;
|
examinationDetail.measurement_unit = measurementUnit;
|
||||||
examinationDetail.reference_range = referenceRange;
|
examinationDetail.reference_range = referenceRanges;
|
||||||
examinationDetail.status = param.status;
|
examinationDetail.status = param.status;
|
||||||
examinationDetail.created_by = req.auth.data.name;
|
examinationDetail.created_by = req.auth?.data.name;
|
||||||
examinationDetail.updated_by = req.auth.data.name;
|
examinationDetail.updated_by = req.auth?.data.name;
|
||||||
await queryRunner.manager.save(examinationDetail);
|
await queryRunner.manager.save(examinationDetail);
|
||||||
|
|
||||||
await queryRunner.commitTransaction();
|
await queryRunner.commitTransaction();
|
||||||
@ -166,7 +171,7 @@ export class ExaminationDetailController {
|
|||||||
name: Joi.string().max(256).required().label("Name"),
|
name: Joi.string().max(256).required().label("Name"),
|
||||||
order_no: Joi.string().max(256).required().label("Order No."),
|
order_no: Joi.string().max(256).required().label("Order No."),
|
||||||
measurement_unit_id: Joi.string().uuid().required().label("Measurement Unit ID"),
|
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"),
|
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());
|
let measurementUnit = await MeasurementUnitModel.list({ "MeasurementUnit.id": param.measurement_unit_id }).then((q) => q.getOne());
|
||||||
if (!measurementUnit) throw { message: "Measurement Unit not found" };
|
if (!measurementUnit) throw { message: "Measurement Unit not found" };
|
||||||
|
|
||||||
let referenceRange = await ReferenceRangeModel.list({ "ReferenceRange.id": param.reference_range_id }).then((q) => q.getOne());
|
const referenceRanges = await Promise.all(
|
||||||
if (!referenceRange) throw { message: "Reference Range not found" };
|
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.name = param.name;
|
||||||
examinationDetail.order_no = param.order_no;
|
examinationDetail.order_no = param.order_no;
|
||||||
examinationDetail.measurement_unit = measurementUnit;
|
examinationDetail.measurement_unit = measurementUnit;
|
||||||
examinationDetail.reference_range = referenceRange;
|
examinationDetail.reference_range = referenceRanges;
|
||||||
examinationDetail.status = param.status;
|
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.manager.save(examinationDetail);
|
||||||
|
|
||||||
await queryRunner.commitTransaction();
|
await queryRunner.commitTransaction();
|
||||||
@ -224,7 +234,7 @@ export class ExaminationDetailController {
|
|||||||
|
|
||||||
if (!examinationDetail) throw { message: "Examination Detail " + Language.lang.failed_not_found };
|
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();
|
examinationDetail.deleted_at = moment().toDate();
|
||||||
await OrmHelper.DB.manager.save(examinationDetail);
|
await OrmHelper.DB.manager.save(examinationDetail);
|
||||||
affected = 1;
|
affected = 1;
|
||||||
|
|||||||
@ -216,7 +216,7 @@ const doc = {
|
|||||||
$name: "Examination Detail name",
|
$name: "Examination Detail name",
|
||||||
$order_no: "Order number",
|
$order_no: "Order number",
|
||||||
$measurement_unit_id: "uuid-string",
|
$measurement_unit_id: "uuid-string",
|
||||||
$reference_range_id: "uuid-string",
|
$reference_range_ids: "[] array uuid-string",
|
||||||
$status: { "@enum": ["Y", "N"] },
|
$status: { "@enum": ["Y", "N"] },
|
||||||
},
|
},
|
||||||
serviceExamination: {
|
serviceExamination: {
|
||||||
|
|||||||
Reference in New Issue
Block a user