diff --git a/api/dicom-web/controller/WADO-RS/deletion/base.controller.js b/api/dicom-web/controller/WADO-RS/deletion/delete.controller.js similarity index 73% rename from api/dicom-web/controller/WADO-RS/deletion/base.controller.js rename to api/dicom-web/controller/WADO-RS/deletion/delete.controller.js index e6f96059..76292723 100644 --- a/api/dicom-web/controller/WADO-RS/deletion/base.controller.js +++ b/api/dicom-web/controller/WADO-RS/deletion/delete.controller.js @@ -1,18 +1,14 @@ const { Controller } = require("@root/api/controller.class"); -const { ApiLogger } = require("@root/utils/logs/api-logger"); const { DeleteService } = require("@api/dicom-web/controller/WADO-RS/deletion/service/delete"); const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class BaseDeleteController extends Controller { constructor(req, res) { super(req, res); - this.apiLogger = new ApiLogger(this.request, "WADO-RS"); - this.apiLogger.addTokenValue(); - this.level = "study"; } async mainProcess() { - let deleteService = new DeleteService(this.request, this.response, this.level); + let deleteService = new DeleteService(this.request, this.response, this.request.dicomLevel); try { await deleteService.delete(); @@ -24,13 +20,13 @@ class BaseDeleteController extends Controller { Method: "DELETE" }); } catch(e) { - let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e); + let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.request.logger, e); return apiErrorArrayHandler.doErrorResponse(); } } getDeleteSuccessfulMessage() { - return `Delete Study permanently, StudyInstanceUID: ${this.request.params.studyUID}`; + return `Delete ${this.request.dicomLevel} permanently, ${JSON.stringify(this.request.params)}`; } } diff --git a/api/dicom-web/controller/WADO-RS/deletion/instance.js b/api/dicom-web/controller/WADO-RS/deletion/instance.js deleted file mode 100644 index ce745014..00000000 --- a/api/dicom-web/controller/WADO-RS/deletion/instance.js +++ /dev/null @@ -1,25 +0,0 @@ -const { BaseDeleteController } = require("./base.controller"); - -class DeleteInstanceController extends BaseDeleteController { - constructor(req, res) { - super(req, res); - this.level = "instance"; - } - - getDeleteSuccessfulMessage() { - `Delete Study permanently, StudyInstanceUID: ${this.request.params.studyUID}, SeriesInstanceUID: ${this.request.params.seriesUID}, SOPInstanceUID: ${this.request.params.instanceUID}`; - } -} - - -/** - * - * @param {import("express").Request} - * @param {import("express").Response} - * @returns - */ -module.exports = async function(req, res) { - let deleteStudyController = new DeleteInstanceController(req, res); - - await deleteStudyController.doPipeline(); -}; \ No newline at end of file diff --git a/api/dicom-web/controller/WADO-RS/deletion/series.js b/api/dicom-web/controller/WADO-RS/deletion/series.js deleted file mode 100644 index f8d4a440..00000000 --- a/api/dicom-web/controller/WADO-RS/deletion/series.js +++ /dev/null @@ -1,25 +0,0 @@ -const { BaseDeleteController } = require("./base.controller"); - -class DeleteSeriesController extends BaseDeleteController { - constructor(req, res) { - super(req, res); - this.level = "series"; - } - - getDeleteSuccessfulMessage() { - return `Delete Series permanently, StudyInstanceUID: ${this.request.params.studyUID}, SeriesInstanceUID: ${this.request.params.seriesUID}`; - } -} - - -/** - * - * @param {import("express").Request} - * @param {import("express").Response} - * @returns - */ -module.exports = async function(req, res) { - let deleteStudyController = new DeleteSeriesController(req, res); - - await deleteStudyController.doPipeline(); -}; \ No newline at end of file diff --git a/api/dicom-web/controller/WADO-RS/deletion/study.js b/api/dicom-web/controller/WADO-RS/deletion/study.js deleted file mode 100644 index 441f77dd..00000000 --- a/api/dicom-web/controller/WADO-RS/deletion/study.js +++ /dev/null @@ -1,21 +0,0 @@ -const { BaseDeleteController } = require("./base.controller"); - -class DeleteStudyController extends BaseDeleteController { - constructor(req, res) { - super(req, res); - this.level = "study"; - } -} - - -/** - * - * @param {import("express").Request} - * @param {import("express").Response} - * @returns - */ -module.exports = async function(req, res) { - let deleteStudyController = new DeleteStudyController(req, res); - - await deleteStudyController.doPipeline(); -}; \ No newline at end of file diff --git a/api/dicom-web/delete.route.js b/api/dicom-web/delete.route.js index 0c6e1242..65ffe630 100644 --- a/api/dicom-web/delete.route.js +++ b/api/dicom-web/delete.route.js @@ -3,14 +3,50 @@ const Joi = require("joi"); const { validateParams, intArrayJoi } = require("../validator"); const router = express(); +const { BaseDeleteController } = require("./controller/WADO-RS/deletion/delete.controller"); +const { ApiLogger } = require("@root/utils/logs/api-logger"); +const DeleteController = async (req, res) => { + let deleteController = new BaseDeleteController(req, res); + await deleteController.doPipeline(); +}; //#region Delete -router.delete("/studies/:studyUID", require("./controller/WADO-RS/deletion/study")); +router.delete( + "/studies/:studyUID", + (req, res, next) => { + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`delete study: ${req.params.studyUID}`); + req.dicomLevel = "study"; + next(); + }, + DeleteController +); -router.delete("/studies/:studyUID/series/:seriesUID", require("./controller/WADO-RS/deletion/series")); +router.delete( + "/studies/:studyUID/series/:seriesUID", + (req, res, next) => { + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`delete series, study: ${req.params.studyUID}, series: ${req.params.seriesUID}`); + req.dicomLevel = "series"; + next(); + }, + DeleteController +); -router.delete("/studies/:studyUID/series/:seriesUID/instances/:instanceUID", require("./controller/WADO-RS/deletion/instance")); +router.delete( + "/studies/:studyUID/series/:seriesUID/instances/:instanceUID", + (req, res, next) => { + req.logger = new ApiLogger(req, "WADO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`delete instance, study: ${req.params.studyUID}, series: ${req.params.seriesUID}, instance: ${req.params.instanceUID}`); + req.dicomLevel = "instance"; + next(); + }, + DeleteController +); //#endregion