From ce724a03a0fe987206abaadedb480208a63ddbb3 Mon Sep 17 00:00:00 2001 From: avicenan Date: Fri, 22 May 2026 22:05:23 +0900 Subject: [PATCH] remove medical form and add specialist form --- src/controllers/room.ts | 25 ++++++++----------------- src/swagger/builder.js | 2 +- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/controllers/room.ts b/src/controllers/room.ts index e504905..247b345 100644 --- a/src/controllers/room.ts +++ b/src/controllers/room.ts @@ -1,4 +1,4 @@ -import { Room, Paging, Service, MedicalForm } from "entity"; +import { Room, Paging, Service, SpecialistForm } from "entity"; import { NextFunction, Response } from "express"; import { Request } from "express-jwt"; import Joi from "joi"; @@ -78,7 +78,6 @@ export class RoomController { const res_list = query .leftJoinAndSelect("Room.department", "department") .leftJoinAndSelect("Room.serviceclass", "serviceclass") - .leftJoinAndSelect("Room.medical_forms", "medical_forms") .orderBy("Room." + param.order_field, param.order_direction) .offset(offset) .limit(param.limit); @@ -168,7 +167,7 @@ export class RoomController { location: Joi.string().required().label("Location"), floor: Joi.number().required().label("Floor"), 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); @@ -182,11 +181,7 @@ export class RoomController { let serviceclass = await ServiceClassModel.list({ id: param.serviceclass }).then((q) => q.getOne()); 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(); room.room = param.room; @@ -198,7 +193,7 @@ export class RoomController { room.location = param.location; room.picture = param.picture; room.floor = param.floor; - room.medical_forms = medicalForms; + room.specialist_form = param.specialist_form || null; room.created_by = req.auth?.data.name; room.updated_by = req.auth?.data.name; await queryRunner.manager.save(room); @@ -226,7 +221,7 @@ export class RoomController { id: Joi.string().uuid().required().label("Room Id"), }); 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" }; return ReturnHelper.successResponseAny(res, 200, Language.lang.success_view, room); } catch (e: unknown) { @@ -258,7 +253,7 @@ export class RoomController { status: Joi.string().required().label("Status"), location: Joi.string().required().label("Location"), 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); @@ -274,11 +269,7 @@ export class RoomController { let room = await RoomModel.list({ "Room.id": param.id }).then((q) => q.getOne()); 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.code = param.code; @@ -289,7 +280,7 @@ export class RoomController { room.floor = param.floor; room.location = param.location; room.picture = param.picture; - room.medical_forms = medicalForms; + room.specialist_form = param.specialist_form || null; room.updated_by = req.auth?.data.name; await queryRunner.manager.save(room); diff --git a/src/swagger/builder.js b/src/swagger/builder.js index 7e63986..2e14c8d 100644 --- a/src/swagger/builder.js +++ b/src/swagger/builder.js @@ -132,7 +132,7 @@ const doc = { $status: "Y", $location: "Room location", $picture: "Room picture name", - medical_forms: ["uuid-string"], + specialist_form: { "@enum": ["dental", "cardiology", "dermatology", "gynecology", "orthopedics", "neurology"] }, }, room_number: { $number: "101",