diff --git a/api/dicom-web/controller/WADO-RS/bulkdata/bulkdata.js b/api/dicom-web/controller/WADO-RS/bulkdata/bulkdata.js index 85da4720..b8b24e0d 100644 --- a/api/dicom-web/controller/WADO-RS/bulkdata/bulkdata.js +++ b/api/dicom-web/controller/WADO-RS/bulkdata/bulkdata.js @@ -1,5 +1,5 @@ const { SpecificBulkDataFactory } = require("@api/dicom-web/controller/WADO-RS/bulkdata/service/bulkdata"); -const { BaseBulkDataController } = require("./base.controller"); +const { BaseBulkDataController } = require("./retrieveBulkData.controller"); class BulkDataController extends BaseBulkDataController { constructor(req, res) { diff --git a/api/dicom-web/controller/WADO-RS/bulkdata/instance.js b/api/dicom-web/controller/WADO-RS/bulkdata/instance.js index 44b76c81..f444944d 100644 --- a/api/dicom-web/controller/WADO-RS/bulkdata/instance.js +++ b/api/dicom-web/controller/WADO-RS/bulkdata/instance.js @@ -1,5 +1,5 @@ const { InstanceBulkDataFactory } = require("@api/dicom-web/controller/WADO-RS/bulkdata/service/bulkdata"); -const { BaseBulkDataController } = require("./base.controller"); +const { BaseBulkDataController } = require("./retrieveBulkData.controller"); const { InstanceImagePathFactory } = require("@api/dicom-web/controller/WADO-RS/service/WADO-RS.service"); class InstanceBulkDataController extends BaseBulkDataController { diff --git a/api/dicom-web/controller/WADO-RS/bulkdata/base.controller.js b/api/dicom-web/controller/WADO-RS/bulkdata/retrieveBulkData.controller.js similarity index 78% rename from api/dicom-web/controller/WADO-RS/bulkdata/base.controller.js rename to api/dicom-web/controller/WADO-RS/bulkdata/retrieveBulkData.controller.js index 8403f66d..98fc88b8 100644 --- a/api/dicom-web/controller/WADO-RS/bulkdata/base.controller.js +++ b/api/dicom-web/controller/WADO-RS/bulkdata/retrieveBulkData.controller.js @@ -7,20 +7,10 @@ const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class BaseBulkDataController extends Controller { constructor(req, res) { super(req, res); - this.apiLogger = new ApiLogger(this.request, "WADO-RS"); - this.apiLogger.addTokenValue(); - this.bulkDataFactoryType = StudyBulkDataFactory; - this.imagePathFactoryType = StudyImagePathFactory; - this.bulkDataService = new BulkDataService(this.request, this.response, this.bulkDataFactoryType); - } - - logAction() { - throw new Error("Abstract Method not implemented."); + this.bulkDataService = new BulkDataService(this.request, this.response, this.request.bulkDataFactoryType); } async mainProcess() { - this.logAction(); - try { let bulkData = await this.bulkDataService.getBulkData(); @@ -33,7 +23,7 @@ class BaseBulkDataController extends Controller { this.bulkDataService.multipartWriter.writeFinalBoundary(); return this.response.end(); } catch (e) { - let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.request.logger, e); return apiErrorArrayHandler.doErrorResponse(); } } @@ -43,7 +33,7 @@ class BaseBulkDataController extends Controller { await this.bulkDataService.writeBulkData(bulkData); } - let imagePathFactory = new this.imagePathFactoryType({ + let imagePathFactory = new this.request.imagePathFactoryType({ ...this.request.params }); await imagePathFactory.getImagePaths(); diff --git a/api/dicom-web/controller/WADO-RS/bulkdata/series.js b/api/dicom-web/controller/WADO-RS/bulkdata/series.js index e1a253a7..f7ec6982 100644 --- a/api/dicom-web/controller/WADO-RS/bulkdata/series.js +++ b/api/dicom-web/controller/WADO-RS/bulkdata/series.js @@ -1,5 +1,5 @@ const { SeriesBulkDataFactory } = require("@api/dicom-web/controller/WADO-RS/bulkdata/service/bulkdata"); -const { BaseBulkDataController } = require("./base.controller"); +const { BaseBulkDataController } = require("./retrieveBulkData.controller"); const { SeriesImagePathFactory } = require("@api/dicom-web/controller/WADO-RS/service/WADO-RS.service"); class SeriesBulkDataController extends BaseBulkDataController { diff --git a/api/dicom-web/controller/WADO-RS/bulkdata/study.js b/api/dicom-web/controller/WADO-RS/bulkdata/study.js index 82c5b15d..0a709ca4 100644 --- a/api/dicom-web/controller/WADO-RS/bulkdata/study.js +++ b/api/dicom-web/controller/WADO-RS/bulkdata/study.js @@ -1,5 +1,5 @@ const { StudyBulkDataFactory } = require("@api/dicom-web/controller/WADO-RS/bulkdata/service/bulkdata"); -const { BaseBulkDataController } = require("./base.controller"); +const { BaseBulkDataController } = require("./retrieveBulkData.controller"); const { StudyImagePathFactory } = require("@api/dicom-web/controller/WADO-RS/service/WADO-RS.service"); class StudyBulkDataController extends BaseBulkDataController { diff --git a/api/dicom-web/wado-rs-bulkdata.route.js b/api/dicom-web/wado-rs-bulkdata.route.js index 79e76e5e..34d0d022 100644 --- a/api/dicom-web/wado-rs-bulkdata.route.js +++ b/api/dicom-web/wado-rs-bulkdata.route.js @@ -3,6 +3,16 @@ const Joi = require("joi"); const { validateParams, intArrayJoi } = require("../validator"); const router = express(); +const { BaseBulkDataController } = require("./controller/WADO-RS/bulkdata/retrieveBulkData.controller"); +const { ApiLogger } = require("@root/utils/logs/api-logger"); +const { StudyBulkDataFactory, SeriesBulkDataFactory, InstanceBulkDataFactory, SpecificBulkDataFactory } = require("./controller/WADO-RS/bulkdata/service/bulkdata"); +const { StudyImagePathFactory, SeriesImagePathFactory, InstanceImagePathFactory } = require("./controller/WADO-RS/service/WADO-RS.service"); + +const BulkDataController = async (req, res) => { + let bulkDataController = new BaseBulkDataController(req, res); + await bulkDataController.doPipeline(); +}; + /** * @openapi * /dicom-web/studies/{studyUID}/bulkdata: @@ -19,7 +29,15 @@ const router = express(); */ router.get( "/studies/:studyUID/bulkdata", - require("./controller/WADO-RS/bulkdata/study") + (req, res, next) => { + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`Get bulk data from study: ${req.params.studyUID}`); + req.bulkDataFactoryType = StudyBulkDataFactory; + req.imagePathFactoryType = StudyImagePathFactory; + next(); + }, + BulkDataController ); /** @@ -39,7 +57,15 @@ router.get( */ router.get( "/studies/:studyUID/series/:seriesUID/bulkdata", - require("./controller/WADO-RS/bulkdata/series") + (req, res, next) => { + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`Get series' bulk data from study: ${req.params.studyUID}, series: ${req.params.seriesUID}`); + req.bulkDataFactoryType = SeriesBulkDataFactory; + req.imagePathFactoryType = SeriesImagePathFactory; + next(); + }, + BulkDataController ); /** @@ -60,7 +86,15 @@ router.get( */ router.get( "/studies/:studyUID/series/:seriesUID/instances/:instanceUID/bulkdata", - require("./controller/WADO-RS/bulkdata/instance") + (req, res, next) => { + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`Get instance's bulk data from study: ${req.params.studyUID}, series: ${req.params.seriesUID}, instance: ${req.params.instanceUID}`); + req.bulkDataFactoryType = InstanceBulkDataFactory; + req.imagePathFactoryType = InstanceImagePathFactory; + next(); + }, + BulkDataController ); /** @@ -82,7 +116,16 @@ router.get( */ router.get( "/studies/:studyUID/series/:seriesUID/instances/:instanceUID/bulkdata/:binaryValuePath", - require("./controller/WADO-RS/bulkdata/bulkdata") + (req, res, next) => { + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`Get bulk data from study: ${req.params.studyUID}, series: ${req.params.seriesUID}, instance: ${req.params.instanceUID}`+ + `, binaryValuePath: ${req.params.binaryValuePath}`); + req.bulkDataFactoryType = SpecificBulkDataFactory; + req.imagePathFactoryType = StudyImagePathFactory; + next(); + }, + BulkDataController ); module.exports = router; \ No newline at end of file