diff --git a/api/dicom-web/controller/QIDO-RS/allPatient.js b/api/dicom-web/controller/QIDO-RS/allPatient.js deleted file mode 100644 index 852f22f4..00000000 --- a/api/dicom-web/controller/QIDO-RS/allPatient.js +++ /dev/null @@ -1,23 +0,0 @@ -const { BaseQueryController } = require("./base.controller"); - -class QueryAllPatientsController extends BaseQueryController { - constructor(req, res) { - super(req, res); - this.level = "patient"; - } - - logAction() { - this.apiLogger.logger.info("Query all patients"); - } -} - -/** - * - * @param {import('express').Request} req - * @param {import('express').Response} res - */ -module.exports = async function (req, res) { - let controller = new QueryAllPatientsController(req, res); - - await controller.doPipeline(); -}; diff --git a/api/dicom-web/controller/QIDO-RS/base.controller.js b/api/dicom-web/controller/QIDO-RS/base.controller.js index 7a1dfb3b..cb89dfe9 100644 --- a/api/dicom-web/controller/QIDO-RS/base.controller.js +++ b/api/dicom-web/controller/QIDO-RS/base.controller.js @@ -6,9 +6,6 @@ const { ApiErrorArrayHandler } = require("@error/api-errors.handler"); class BaseQueryController extends Controller { constructor(req, res) { super(req, res); - this.apiLogger = new ApiLogger(this.request, "QIDO-RS"); - this.apiLogger.addTokenValue(); - this.level = "patient"; } logAction() { @@ -16,17 +13,15 @@ class BaseQueryController extends Controller { } async mainProcess() { - this.logAction(); - try { - let qidoRsService = new QidoRsService(this.request, this.response, this.level); + let qidoRsService = new QidoRsService(this.request, this.response, this.request.dicomLevel); let foundDicomJson = await qidoRsService.getDicomJson(); if (foundDicomJson.length === 0 ) { return this.response.status(204).send(); } return this.response.status(200).set("Content-Type", "application/dicom+json").json(foundDicomJson); } 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/QIDO-RS/queryAllInstances.js b/api/dicom-web/controller/QIDO-RS/queryAllInstances.js deleted file mode 100644 index 5378306e..00000000 --- a/api/dicom-web/controller/QIDO-RS/queryAllInstances.js +++ /dev/null @@ -1,28 +0,0 @@ -const { - QidoRsService -} = require("./service/QIDO-RS.service"); -const { ApiLogger } = require("../../../../utils/logs/api-logger"); -const { Controller } = require("../../../controller.class"); -const { BaseQueryController } = require("./base.controller"); - -class QueryAllInstancesController extends BaseQueryController { - constructor(req, res) { - super(req, res); - this.level = "instance"; - } - - logAction() { - this.apiLogger.logger.info("Query all instances"); - } -} - -/** - * - * @param {import('express').Request} req - * @param {import('express').Response} res - */ -module.exports = async function (req, res) { - let controller = new QueryAllInstancesController(req, res); - - await controller.doPipeline(); -}; diff --git a/api/dicom-web/controller/QIDO-RS/queryAllSeries.js b/api/dicom-web/controller/QIDO-RS/queryAllSeries.js deleted file mode 100644 index 32da7961..00000000 --- a/api/dicom-web/controller/QIDO-RS/queryAllSeries.js +++ /dev/null @@ -1,22 +0,0 @@ -const { BaseQueryController } = require("./base.controller"); - -class QueryAllSeriesController extends BaseQueryController { - constructor(req, res) { - super(req, res); - this.level = "series"; - } - - logAction() { - this.apiLogger.logger.info("Query all series"); - } -} -/** - * - * @param {import('express').Request} req - * @param {import('express').Response} res - */ -module.exports = async function (req, res) { - let controller = new QueryAllSeriesController(req, res); - - await controller.doPipeline(); -}; diff --git a/api/dicom-web/controller/QIDO-RS/queryAllStudies.js b/api/dicom-web/controller/QIDO-RS/queryAllStudies.js deleted file mode 100644 index 47da4ad4..00000000 --- a/api/dicom-web/controller/QIDO-RS/queryAllStudies.js +++ /dev/null @@ -1,28 +0,0 @@ -const { - QidoRsService -} = require("./service/QIDO-RS.service"); -const { ApiLogger } = require("../../../../utils/logs/api-logger"); -const { BaseQueryController } = require("./base.controller"); - -class QueryAllStudiesController extends BaseQueryController { - constructor(req, res) { - super(req, res); - this.level = "study"; - } - - logAction() { - this.apiLogger.logger.info(`Query All Studies`); - } -} - -/** - * - * @param {import('express').Request} req - * @param {import('express').Response} res - */ -module.exports = async function (req, res) { - let controller = new QueryAllStudiesController(req, res); - - await controller.doPipeline(); -}; - diff --git a/api/dicom-web/controller/QIDO-RS/queryStudies-Instances.js b/api/dicom-web/controller/QIDO-RS/queryStudies-Instances.js deleted file mode 100644 index 57bb6c9e..00000000 --- a/api/dicom-web/controller/QIDO-RS/queryStudies-Instances.js +++ /dev/null @@ -1,28 +0,0 @@ -const { - QidoRsService -} = require("./service/QIDO-RS.service"); -const { ApiLogger } = require("../../../../utils/logs/api-logger"); -const { Controller } = require("../../../controller.class"); -const { BaseQueryController } = require("./base.controller"); - -class QueryInstancesOfStudiesController extends BaseQueryController { - constructor(req, res) { - super(req, res); - this.level = "instance"; - } - - logAction() { - this.apiLogger.logger.info(`Query instances in study, Study UID: ${this.request.params.studyUID}`); - } -} - -/** - * - * @param {import('express').Request} req - * @param {import('express').Response} res - */ -module.exports = async function (req, res) { - let controller = new QueryInstancesOfStudiesController(req, res); - - await controller.doPipeline(); -}; \ No newline at end of file diff --git a/api/dicom-web/controller/QIDO-RS/queryStudies-Series-Instance.js b/api/dicom-web/controller/QIDO-RS/queryStudies-Series-Instance.js deleted file mode 100644 index 6e145aa5..00000000 --- a/api/dicom-web/controller/QIDO-RS/queryStudies-Series-Instance.js +++ /dev/null @@ -1,29 +0,0 @@ -const _ = require("lodash"); -const { - QidoRsService -} = require("./service/QIDO-RS.service"); -const { ApiLogger } = require("../../../../utils/logs/api-logger"); -const { Controller } = require("../../../controller.class"); -const { BaseQueryController } = require("./base.controller"); - -class QueryInstancesOfSeriesOfStudiesController extends BaseQueryController { - constructor(req, res) { - super(req, res); - this.level = "instance"; - } - - logAction() { - this.apiLogger.logger.info(`Query instance Level, Study UID: ${this.request.params.studyUID}, Series UID: ${this.request.params.seriesUID}`); - } -} - -/** - * - * @param {import('express').Request} req - * @param {import('express').Response} res - */ -module.exports = async function (req, res) { - let controller = new QueryInstancesOfSeriesOfStudiesController(req, res); - - await controller.doPipeline(); -}; diff --git a/api/dicom-web/controller/QIDO-RS/queryStudies-Series.js b/api/dicom-web/controller/QIDO-RS/queryStudies-Series.js deleted file mode 100644 index b01f936e..00000000 --- a/api/dicom-web/controller/QIDO-RS/queryStudies-Series.js +++ /dev/null @@ -1,27 +0,0 @@ -const { - QidoRsService -} = require("./service/QIDO-RS.service"); -const { ApiLogger } = require("../../../../utils/logs/api-logger"); -const { Controller } = require("../../../controller.class"); -const { BaseQueryController } = require("./base.controller"); - -class QuerySeriesOfStudiesController extends BaseQueryController { - constructor(req, res) { - super(req, res); - this.level = "series"; - } - - logAction() { - this.apiLogger.logger.info(`Query series Level, Study UID: ${this.request.params.studyUID}`); - } -} -/** - * - * @param {import('express').Request} req - * @param {import('express').Response} res - */ -module.exports = async function (req, res) { - let controller = new QuerySeriesOfStudiesController(req, res); - - await controller.doPipeline(); -}; diff --git a/api/dicom-web/qido-rs.route.js b/api/dicom-web/qido-rs.route.js index 99bd21ee..c1930e1d 100644 --- a/api/dicom-web/qido-rs.route.js +++ b/api/dicom-web/qido-rs.route.js @@ -5,6 +5,8 @@ const router = express(); const { dictionary } = require("../../models/DICOM/dicom-tags-dic"); +const { ApiLogger } = require("@root/utils/logs/api-logger"); +const { BaseQueryController } = require("./controller/QIDO-RS/base.controller"); const KEYWORD_KEYS = Object.keys(dictionary.keyword); const HEX_KEYS = Object.keys(dictionary.tag); @@ -48,6 +50,10 @@ function convertKeywordToHex(attribute) { return attribute; } +const queryController = async (req, res) => { + let controller = new BaseQueryController(req, res); + await controller.doPipeline(); +}; /** * @openapi @@ -79,7 +85,13 @@ function convertKeywordToHex(attribute) { */ router.get("/studies", validateParams(queryValidation, "query", { allowUnknown: true -}), require("./controller/QIDO-RS/queryAllStudies")); +}), (req, res, next) => { + req.dicomLevel = "study"; + req.logger = new ApiLogger(req, "QIDO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info(`Query Studies, Incoming Parameters: ${JSON.stringify(req.query)}`); + next(); +}, queryController); /** * @openapi @@ -117,7 +129,14 @@ router.get( "/studies/:studyUID/series", validateParams(queryValidation, "query", { allowUnknown: true }), - require("./controller/QIDO-RS/queryStudies-Series") + (req, res, next) => { + req.dicomLevel = "series"; + req.logger = new ApiLogger(req, "QIDO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info("Query Study's Series, Incoming Parameters: " + JSON.stringify(req.query)); + next(); + }, + queryController ); /** @@ -159,7 +178,14 @@ router.get( "/studies/:studyUID/instances", validateParams(queryValidation, "query", { allowUnknown: true }), - require("./controller/QIDO-RS/queryStudies-Instances") + (req, res, next) => { + req.dicomLevel = "instance"; + req.logger = new ApiLogger(req, "QIDO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info("Query Study's Instances, Incoming Parameters: " + JSON.stringify(req.query)); + next(); + }, + queryController ); /** @@ -202,7 +228,14 @@ router.get( "/studies/:studyUID/series/:seriesUID/instances", validateParams(queryValidation, "query", { allowUnknown: true }), - require("./controller/QIDO-RS/queryStudies-Series-Instance") + (req, res, next) => { + req.dicomLevel = "instance"; + req.logger = new ApiLogger(req, "QIDO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info("Query Study's Series' Instances, Incoming Parameters: " + JSON.stringify(req.query)); + next(); + }, + queryController ); /** @@ -241,7 +274,14 @@ router.get( "/series", validateParams(queryValidation, "query", { allowUnknown: true }), - require("./controller/QIDO-RS/queryAllSeries") + (req, res, next) => { + req.dicomLevel = "series"; + req.logger = new ApiLogger(req, "QIDO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info("Query All Series, Incoming Parameters: " + JSON.stringify(req.query)); + next(); + }, + queryController ); /** @@ -282,7 +322,14 @@ router.get( "/instances", validateParams(queryValidation, "query", { allowUnknown: true }), - require("./controller/QIDO-RS/queryAllInstances") + (req, res, next) => { + req.dicomLevel = "instance"; + req.logger = new ApiLogger(req, "QIDO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info("Query All Instances, Incoming Parameters: " + JSON.stringify(req.query)); + next(); + }, + queryController ); /** @@ -310,7 +357,17 @@ router.get( */ router.get( "/patients", - require("./controller/QIDO-RS/allPatient") + validateParams({limit: queryValidation.limit, offset: queryValidation.offset}, "query", { + allowUnknown: true + }), + (req, res, next) => { + req.dicomLevel = "patient"; + req.logger = new ApiLogger(req, "QIDO-RS"); + req.logger.addTokenValue(); + req.logger.logger.info("Query All Patients, Incoming Parameters: " + JSON.stringify(req.query)); + next(); + }, + queryController ); //#endregion