This commit is contained in:
wayanrivan
2026-04-30 14:38:36 +07:00
parent 16789f4a85
commit 1c5b3a4938

View File

@ -19,15 +19,15 @@ const log: Logger<ILogObj> = new Logger({
export class QueueMonitoringController {
static async list(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['filter'] = { description: 'Filter: plain text or JSON object (status, slug, etc.)', in: 'query', type: 'string' }
#swagger.parameters['limit'] = { in: 'query', required: true, type: 'number' }
#swagger.parameters['page'] = { in: 'query', required: true, type: 'number' }
#swagger.parameters['with_deleted'] = { in: 'query', required: true, type: 'boolean' }
#swagger.parameters['order_field'] = { in: 'query', required: true, type: 'string' }
#swagger.parameters['order_direction'] = { in: 'query', required: true, schema: { '@enum': ['ASC', 'DESC'] } }
*/
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['filter'] = { description: 'Filter: plain text or JSON object (status, slug, etc.)', in: 'query', type: 'string' }
#swagger.parameters['limit'] = { in: 'query', required: true, type: 'number' }
#swagger.parameters['page'] = { in: 'query', required: true, type: 'number' }
#swagger.parameters['with_deleted'] = { in: 'query', required: true, type: 'boolean' }
#swagger.parameters['order_field'] = { in: 'query', required: true, type: 'string' }
#swagger.parameters['order_direction'] = { in: 'query', required: true, schema: { '@enum': ['ASC', 'DESC'] } }
*/
try {
const schema = Joi.object().keys({
filter: Joi.string().allow("").optional().label("Filter"),
@ -92,10 +92,10 @@ export class QueueMonitoringController {
static async detailBySlug(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['slug'] = { in: 'path', type: 'string' }
*/
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['slug'] = { in: 'path', type: 'string' }
*/
try {
const schema = Joi.object().keys({
slug: Joi.string().required().label("Queue Monitoring Slug"),
@ -193,12 +193,12 @@ export class QueueMonitoringController {
(queueMonitoring as any).currentQueue = latestOnGoing
? {
room: roomIdToRoomObj[latestOnGoing.roomId]?.room || null,
id: latestOnGoing.id,
qeue_number: latestOnGoing.qeue_number,
registration_status: latestOnGoing.registration_status,
fullname_patient: latestOnGoing.fullname_patient,
}
room: roomIdToRoomObj[latestOnGoing.roomId]?.room || null,
id: latestOnGoing.id,
qeue_number: latestOnGoing.qeue_number,
registration_status: latestOnGoing.registration_status,
fullname_patient: latestOnGoing.fullname_patient,
}
: null;
} catch (queryError: any) {
log.warn(`Failed to fetch queue data from emr.emr_registration_outpatient: ${queryError.message}`);
@ -224,10 +224,10 @@ export class QueueMonitoringController {
static async create(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.requestBody = { required: true, content: { "application/json": { schema: { $ref: "#/components/schemas/queueMonitoring" } } } }
*/
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.requestBody = { required: true, content: { "application/json": { schema: { $ref: "#/components/schemas/queueMonitoring" } } } }
*/
const queryRunner = OrmHelper.DB.createQueryRunner();
await queryRunner.startTransaction();
try {
@ -249,7 +249,12 @@ export class QueueMonitoringController {
await queryRunner.manager.save(queueMonitoring);
if (param.room_ids && param.room_ids.length > 0) {
await queryRunner.manager.getRepository(QueueMonitoringRooms).createQueryBuilder("qmr").delete().from(QueueMonitoringRooms).where('qmr."queueMonitoringId" = :id', { id: queueMonitoring.id }).execute();
await queryRunner.manager.getRepository(QueueMonitoringRooms)
.createQueryBuilder()
.delete()
.from(QueueMonitoringRooms)
.where('"id" = :id', { id: queueMonitoring.id })
.execute();
for (const roomId of param.room_ids) {
const room = await RoomModel.list({ id: roomId }).then((q) => q.getOne());
@ -280,10 +285,10 @@ export class QueueMonitoringController {
static async detail(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['id'] = { in: 'path', type: 'string' }
*/
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['id'] = { in: 'path', type: 'string' }
*/
try {
const schema = Joi.object().keys({
id: Joi.string().uuid().required().label("Queue Monitoring Id"),
@ -322,11 +327,11 @@ export class QueueMonitoringController {
static async update(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['id'] = { in: 'path', type: 'string' }
#swagger.requestBody = { required: true, content: { "application/json": { schema: { $ref: "#/components/schemas/queueMonitoring" } } } }
*/
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['id'] = { in: 'path', type: 'string' }
#swagger.requestBody = { required: true, content: { "application/json": { schema: { $ref: "#/components/schemas/queueMonitoring" } } } }
*/
const queryRunner = OrmHelper.DB.createQueryRunner();
await queryRunner.startTransaction();
@ -391,11 +396,11 @@ export class QueueMonitoringController {
static async delete(req: Request, res: Response, next: NextFunction): Promise<Response> {
/*
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['id'] = { in: 'path', required: true, type: 'string' }
#swagger.parameters['hard'] = { in: 'path', description: 'Is Hard Delete', required: false, type: 'boolean' }
*/
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['id'] = { in: 'path', required: true, type: 'string' }
#swagger.parameters['hard'] = { in: 'path', description: 'Is Hard Delete', required: false, type: 'boolean' }
*/
try {
const schema = Joi.object().keys({
id: Joi.string().uuid().required().label("ID"),
@ -433,10 +438,10 @@ export class QueueMonitoringController {
static async restore(req: Request, res: Response, next: NextFunction): Promise<Response> {
/*
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['id'] = { in: 'path', required: true, type: 'string' }
*/
#swagger.tags = ['Queue Monitoring']
#swagger.security = [{ "bearerAuth": [] }]
#swagger.parameters['id'] = { in: 'path', required: true, type: 'string' }
*/
try {
const schema = Joi.object().keys({
id: Joi.string().uuid().required().label("ID"),