diff --git a/api/dicom-web/controller/WADO-RS/thumbnail/frame.js b/api/dicom-web/controller/WADO-RS/thumbnail/frame.js deleted file mode 100644 index 602be5a8..00000000 --- a/api/dicom-web/controller/WADO-RS/thumbnail/frame.js +++ /dev/null @@ -1,28 +0,0 @@ -const { - InstanceThumbnailFactory -} = require("../service/thumbnail.service"); -const { BaseThumbnailController } = require("./base.controller"); - -class RetrieveFrameThumbnailController extends BaseThumbnailController { - constructor(req, res) { - super(req, res); - this.factory = InstanceThumbnailFactory; - } - - logAction() { - this.apiLogger.logger.info(`Get Study's Series' Instance Thumbnail [series UID: ${this.request.params.seriesUID}]\ -instance UID: ${this.request.params.instanceUID}\ -frames: ${JSON.stringify(this.request.params.frameNumber)}`); - } -} - -/** - * - * @param {import("http").IncomingMessage} req - * @param {import("http").ServerResponse} res - */ -module.exports = async function (req, res) { - let controller = new RetrieveFrameThumbnailController(req, res); - - await controller.doPipeline(); -}; \ No newline at end of file diff --git a/api/dicom-web/controller/WADO-RS/thumbnail/instance.js b/api/dicom-web/controller/WADO-RS/thumbnail/instance.js deleted file mode 100644 index 48ae2241..00000000 --- a/api/dicom-web/controller/WADO-RS/thumbnail/instance.js +++ /dev/null @@ -1,30 +0,0 @@ -const { - InstanceThumbnailFactory -} = require("../service/thumbnail.service"); -const { BaseThumbnailController } = require("./base.controller"); - - - -class RetrieveInstanceThumbnailController extends BaseThumbnailController { - constructor(req, res) { - super(req, res); - this.factory = InstanceThumbnailFactory; - } - - logAction() { - this.apiLogger.logger.info(`Get Study's Series' Instance Thumbnail [study UID: ${this.request.params.studyUID},\ -series UID: ${this.request.params.seriesUID}]\ -instance UID: ${this.request.params.instanceUID}`); - } -} - -/** - * - * @param {import("http").IncomingMessage} req - * @param {import("http").ServerResponse} res - */ -module.exports = async function (req, res) { - let controller = new RetrieveInstanceThumbnailController(req, res); - - await controller.doPipeline(); -}; \ No newline at end of file diff --git a/api/dicom-web/controller/WADO-RS/thumbnail/base.controller.js b/api/dicom-web/controller/WADO-RS/thumbnail/retrieveThumbnail.controller.js similarity index 70% rename from api/dicom-web/controller/WADO-RS/thumbnail/base.controller.js rename to api/dicom-web/controller/WADO-RS/thumbnail/retrieveThumbnail.controller.js index c96cb0df..e3e50c2b 100644 --- a/api/dicom-web/controller/WADO-RS/thumbnail/base.controller.js +++ b/api/dicom-web/controller/WADO-RS/thumbnail/retrieveThumbnail.controller.js @@ -7,23 +7,15 @@ const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class BaseThumbnailController extends Controller { constructor(req, res) { super(req, res); - this.factory = StudyImagePathFactory; - this.apiLogger = new ApiLogger(this.request, "WADO-RS"); - this.apiLogger.addTokenValue(); - } - - logAction() { - this.apiLogger.logger.info(`Get Study's Thumbnail [study UID: ${this.request.params.studyUID}]`); } async mainProcess() { try { - this.logAction(); - let thumbnailService = new ThumbnailService(this.request, this.response, this.apiLogger, this.factory); + let thumbnailService = new ThumbnailService(this.request, this.response, this.request.logger, this.request.factory); let thumbnail = await thumbnailService.getThumbnail(); return this.response.end(thumbnail, "binary"); } catch (e) { - let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.request.logger, e); return apiErrorArrayHandler.doErrorResponse(); } } diff --git a/api/dicom-web/controller/WADO-RS/thumbnail/series.js b/api/dicom-web/controller/WADO-RS/thumbnail/series.js deleted file mode 100644 index 2ac25881..00000000 --- a/api/dicom-web/controller/WADO-RS/thumbnail/series.js +++ /dev/null @@ -1,32 +0,0 @@ -const { Controller } = require("../../../../controller.class"); -const { ApiLogger } = require("../../../../../utils/logs/api-logger"); -const { - ThumbnailService, - SeriesThumbnailFactory -} = require("../service/thumbnail.service"); -const { BaseThumbnailController } = require("./base.controller"); - - - -class RetrieveSeriesThumbnailController extends BaseThumbnailController { - constructor(req, res) { - super(req, res); - this.factory = SeriesThumbnailFactory; - } - - logAction() { - this.apiLogger.logger.info(`Get Study's Series' Thumbnail [study UID: ${this.request.params.studyUID},\ -series UID: ${this.request.params.seriesUID}]`); - } -} - -/** - * - * @param {import("http").IncomingMessage} req - * @param {import("http").ServerResponse} res - */ -module.exports = async function (req, res) { - let controller = new RetrieveSeriesThumbnailController(req, res); - - await controller.doPipeline(); -}; \ No newline at end of file diff --git a/api/dicom-web/controller/WADO-RS/thumbnail/study.js b/api/dicom-web/controller/WADO-RS/thumbnail/study.js deleted file mode 100644 index 6ddcbaf4..00000000 --- a/api/dicom-web/controller/WADO-RS/thumbnail/study.js +++ /dev/null @@ -1,25 +0,0 @@ -const { - StudyThumbnailFactory -} = require("../service/thumbnail.service"); -const { - BaseThumbnailController -} = require("./base.controller"); - - -class RetrieveStudyThumbnailController extends BaseThumbnailController { - constructor(req, res) { - super(req, res); - this.factory = StudyThumbnailFactory; - } -} - -/** - * - * @param {import("http").IncomingMessage} req - * @param {import("http").ServerResponse} res - */ -module.exports = async function (req, res) { - let controller = new RetrieveStudyThumbnailController(req, res); - - await controller.doPipeline(); -}; \ No newline at end of file diff --git a/api/dicom-web/wado-rs-thumbnail.route.js b/api/dicom-web/wado-rs-thumbnail.route.js index 9b9e6c4c..d33f2edb 100644 --- a/api/dicom-web/wado-rs-thumbnail.route.js +++ b/api/dicom-web/wado-rs-thumbnail.route.js @@ -3,6 +3,14 @@ const Joi = require("joi"); const { validateParams, intArrayJoi } = require("../validator"); const router = express(); +const { BaseThumbnailController } = require("./controller/WADO-RS/thumbnail/retrieveThumbnail.controller"); +const { ApiLogger } = require("@root/utils/logs/api-logger"); +const { StudyThumbnailFactory, SeriesThumbnailFactory, InstanceThumbnailFactory } = require("./controller/WADO-RS/service/thumbnail.service"); + +const RetrieveThumbnailController = async function (req, res) { + let controller = new BaseThumbnailController(req, res); + await controller.doPipeline(); +}; //#region WADO-RS Retrieve Transaction Thumbnail Resources @@ -27,7 +35,14 @@ const router = express(); */ router.get( "/studies/:studyUID/thumbnail", - require("./controller/WADO-RS/thumbnail/study") + (req, res, next) => { + req.factory = StudyThumbnailFactory; + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`Get Study's Thumbnail [study UID: ${req.params.studyUID}]`); + next(); + }, + RetrieveThumbnailController ); /** @@ -52,7 +67,14 @@ router.get( */ router.get( "/studies/:studyUID/series/:seriesUID/thumbnail", - require("./controller/WADO-RS/thumbnail/series") + (req, res, next) => { + req.factory = SeriesThumbnailFactory; + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`Get Study's Series' Thumbnail [study UID: ${req.params.studyUID}, series UID: ${req.params.seriesUID}]`); + next(); + }, + RetrieveThumbnailController ); /** @@ -78,7 +100,15 @@ router.get( */ router.get( "/studies/:studyUID/series/:seriesUID/instances/:instanceUID/thumbnail", - require("./controller/WADO-RS/thumbnail/instance") + (req, res, next) => { + req.factory = InstanceThumbnailFactory; + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`Get Study's Series' Instance's Thumbnail [study UID: ${req.params.studyUID},`+ + ` series UID: ${req.params.seriesUID}, instance UID: ${req.params.instanceUID}]`); + next(); + }, + RetrieveThumbnailController ); /** @@ -107,8 +137,16 @@ router.get( "/studies/:studyUID/series/:seriesUID/instances/:instanceUID/frames/:frameNumber/thumbnail", validateParams({ frameNumber : intArrayJoi.intArray().items(Joi.number().integer().min(1)).single() - } , "params" , {allowUnknown : true}), - require("./controller/WADO-RS/thumbnail/frame") + } , "params" , {allowUnknown : true}), + (req, res, next) => { + req.factory = InstanceThumbnailFactory; + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`Get Study's Instance's Frame's Thumbnail [study UID: ${req.params.studyUID},`+ + ` series UID: ${req.params.seriesUID}, instance UID: ${req.params.instanceUID}, frame number: ${req.params.frameNumber}]`); + next(); + }, + RetrieveThumbnailController );