remove medical form and add specialist form
This commit is contained in:
@ -1,4 +1,4 @@
|
|||||||
import { Room, Paging, Service, MedicalForm } from "entity";
|
import { Room, Paging, Service, SpecialistForm } from "entity";
|
||||||
import { NextFunction, Response } from "express";
|
import { NextFunction, Response } from "express";
|
||||||
import { Request } from "express-jwt";
|
import { Request } from "express-jwt";
|
||||||
import Joi from "joi";
|
import Joi from "joi";
|
||||||
@ -78,7 +78,6 @@ export class RoomController {
|
|||||||
const res_list = query
|
const res_list = query
|
||||||
.leftJoinAndSelect("Room.department", "department")
|
.leftJoinAndSelect("Room.department", "department")
|
||||||
.leftJoinAndSelect("Room.serviceclass", "serviceclass")
|
.leftJoinAndSelect("Room.serviceclass", "serviceclass")
|
||||||
.leftJoinAndSelect("Room.medical_forms", "medical_forms")
|
|
||||||
.orderBy("Room." + param.order_field, param.order_direction)
|
.orderBy("Room." + param.order_field, param.order_direction)
|
||||||
.offset(offset)
|
.offset(offset)
|
||||||
.limit(param.limit);
|
.limit(param.limit);
|
||||||
@ -168,7 +167,7 @@ export class RoomController {
|
|||||||
location: Joi.string().required().label("Location"),
|
location: Joi.string().required().label("Location"),
|
||||||
floor: Joi.number().required().label("Floor"),
|
floor: Joi.number().required().label("Floor"),
|
||||||
picture: Joi.string().required().label("picture"),
|
picture: Joi.string().required().label("picture"),
|
||||||
medical_forms: Joi.array().items(Joi.string().uuid()).optional().label("Medical Forms"),
|
specialist_form: Joi.string().valid(...Object.values(SpecialistForm)).optional().allow(null, "").label("Specialist Form"),
|
||||||
});
|
});
|
||||||
|
|
||||||
let param: any = await schema.validateAsync(req.body);
|
let param: any = await schema.validateAsync(req.body);
|
||||||
@ -182,11 +181,7 @@ export class RoomController {
|
|||||||
let serviceclass = await ServiceClassModel.list({ id: param.serviceclass }).then((q) => q.getOne());
|
let serviceclass = await ServiceClassModel.list({ id: param.serviceclass }).then((q) => q.getOne());
|
||||||
if (!serviceclass) throw { message: "Class not found" };
|
if (!serviceclass) throw { message: "Class not found" };
|
||||||
|
|
||||||
let medicalForms: MedicalForm[] = [];
|
|
||||||
if (param.medical_forms && param.medical_forms.length > 0) {
|
|
||||||
medicalForms = await queryRunner.manager.getRepository(MedicalForm).find({ where: { id: In(param.medical_forms) } });
|
|
||||||
if (medicalForms.length !== param.medical_forms.length) throw { message: "Medical Form not found" };
|
|
||||||
}
|
|
||||||
|
|
||||||
let room = new Room();
|
let room = new Room();
|
||||||
room.room = param.room;
|
room.room = param.room;
|
||||||
@ -198,7 +193,7 @@ export class RoomController {
|
|||||||
room.location = param.location;
|
room.location = param.location;
|
||||||
room.picture = param.picture;
|
room.picture = param.picture;
|
||||||
room.floor = param.floor;
|
room.floor = param.floor;
|
||||||
room.medical_forms = medicalForms;
|
room.specialist_form = param.specialist_form || null;
|
||||||
room.created_by = req.auth?.data.name;
|
room.created_by = req.auth?.data.name;
|
||||||
room.updated_by = req.auth?.data.name;
|
room.updated_by = req.auth?.data.name;
|
||||||
await queryRunner.manager.save(room);
|
await queryRunner.manager.save(room);
|
||||||
@ -226,7 +221,7 @@ export class RoomController {
|
|||||||
id: Joi.string().uuid().required().label("Room Id"),
|
id: Joi.string().uuid().required().label("Room Id"),
|
||||||
});
|
});
|
||||||
let param: any = await schema.validateAsync(req.params);
|
let param: any = await schema.validateAsync(req.params);
|
||||||
let room = await RoomModel.list({ "Room.id": param.id }).then((q) => q.leftJoinAndSelect("Room.department", "department").leftJoinAndSelect("Room.serviceclass", "serviceclass").leftJoinAndSelect("Room.medical_forms", "medical_forms").getOne());
|
let room = await RoomModel.list({ "Room.id": param.id }).then((q) => q.leftJoinAndSelect("Room.department", "department").leftJoinAndSelect("Room.serviceclass", "serviceclass").getOne());
|
||||||
if (!room) throw { message: "Room Not Found" };
|
if (!room) throw { message: "Room Not Found" };
|
||||||
return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, room);
|
return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, room);
|
||||||
} catch (e: unknown) {
|
} catch (e: unknown) {
|
||||||
@ -258,7 +253,7 @@ export class RoomController {
|
|||||||
status: Joi.string().required().label("Status"),
|
status: Joi.string().required().label("Status"),
|
||||||
location: Joi.string().required().label("Location"),
|
location: Joi.string().required().label("Location"),
|
||||||
picture: Joi.string().required().label("picture"),
|
picture: Joi.string().required().label("picture"),
|
||||||
medical_forms: Joi.array().items(Joi.string().uuid()).optional().label("Medical Forms"),
|
specialist_form: Joi.string().valid(...Object.values(SpecialistForm)).optional().allow(null, "").label("Specialist Form"),
|
||||||
});
|
});
|
||||||
let param: any = await schema.validateAsync(req.body);
|
let param: any = await schema.validateAsync(req.body);
|
||||||
|
|
||||||
@ -274,11 +269,7 @@ export class RoomController {
|
|||||||
let room = await RoomModel.list({ "Room.id": param.id }).then((q) => q.getOne());
|
let room = await RoomModel.list({ "Room.id": param.id }).then((q) => q.getOne());
|
||||||
if (!room) throw { message: "Room " + Language.lang.failed_not_found };
|
if (!room) throw { message: "Room " + Language.lang.failed_not_found };
|
||||||
|
|
||||||
let medicalForms: MedicalForm[] = [];
|
|
||||||
if (param.medical_forms && param.medical_forms.length > 0) {
|
|
||||||
medicalForms = await queryRunner.manager.getRepository(MedicalForm).find({ where: { id: In(param.medical_forms) } });
|
|
||||||
if (medicalForms.length !== param.medical_forms.length) throw { message: "Medical Form not found" };
|
|
||||||
}
|
|
||||||
|
|
||||||
room.room = param.room;
|
room.room = param.room;
|
||||||
room.code = param.code;
|
room.code = param.code;
|
||||||
@ -289,7 +280,7 @@ export class RoomController {
|
|||||||
room.floor = param.floor;
|
room.floor = param.floor;
|
||||||
room.location = param.location;
|
room.location = param.location;
|
||||||
room.picture = param.picture;
|
room.picture = param.picture;
|
||||||
room.medical_forms = medicalForms;
|
room.specialist_form = param.specialist_form || null;
|
||||||
room.updated_by = req.auth?.data.name;
|
room.updated_by = req.auth?.data.name;
|
||||||
await queryRunner.manager.save(room);
|
await queryRunner.manager.save(room);
|
||||||
|
|
||||||
|
|||||||
@ -132,7 +132,7 @@ const doc = {
|
|||||||
$status: "Y",
|
$status: "Y",
|
||||||
$location: "Room location",
|
$location: "Room location",
|
||||||
$picture: "Room picture name",
|
$picture: "Room picture name",
|
||||||
medical_forms: ["uuid-string"],
|
specialist_form: { "@enum": ["dental", "cardiology", "dermatology", "gynecology", "orthopedics", "neurology"] },
|
||||||
},
|
},
|
||||||
room_number: {
|
room_number: {
|
||||||
$number: "101",
|
$number: "101",
|
||||||
|
|||||||
Reference in New Issue
Block a user