diff --git a/api/dicom-web/controller/WADO-RS/thumbnail/base.controller.js b/api/dicom-web/controller/WADO-RS/thumbnail/base.controller.js new file mode 100644 index 00000000..1c73f9d8 --- /dev/null +++ b/api/dicom-web/controller/WADO-RS/thumbnail/base.controller.js @@ -0,0 +1,38 @@ +const { Controller } = require("@root/api/controller.class"); +const { StudyImagePathFactory } = require("../service/WADO-RS.service"); +const { ThumbnailService } = require("../service/thumbnail.service"); +const { ApiLogger } = require("@root/utils/logs/api-logger"); + +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); + return thumbnailService.getThumbnailAndResponse(); + } catch (e) { + let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); + this.apiLogger.logger.error(errorStr); + + this.response.writeHead(500, { + "Content-Type": "application/dicom+json" + }); + return this.response.end({ + code: 500, + message: "An exception occurred" + }); + } + } +} + +module.exports.BaseThumbnailController = BaseThumbnailController; \ No newline at end of file diff --git a/api/dicom-web/controller/WADO-RS/thumbnail/frame.js b/api/dicom-web/controller/WADO-RS/thumbnail/frame.js index 2354aad0..602be5a8 100644 --- a/api/dicom-web/controller/WADO-RS/thumbnail/frame.js +++ b/api/dicom-web/controller/WADO-RS/thumbnail/frame.js @@ -1,42 +1,18 @@ -const { Controller } = require("../../../../controller.class"); -const { ApiLogger } = require("../../../../../utils/logs/api-logger"); const { - ThumbnailService, InstanceThumbnailFactory } = require("../service/thumbnail.service"); +const { BaseThumbnailController } = require("./base.controller"); - - -class RetrieveFrameThumbnailController extends Controller { +class RetrieveFrameThumbnailController extends BaseThumbnailController { constructor(req, res) { super(req, res); + this.factory = InstanceThumbnailFactory; } - async mainProcess() { - - let apiLogger = new ApiLogger(this.request, "WADO-RS"); - apiLogger.addTokenValue(); - - 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}\ - frames: ${JSON.stringify(this.request.params.frameNumber)}`); - - try { - let thumbnailService = new ThumbnailService(this.request, this.response, apiLogger, InstanceThumbnailFactory); - return thumbnailService.getThumbnailAndResponse(); - } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - return this.response.end({ - code: 500, - message: "An exception occurred" - }); - } + 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)}`); } } diff --git a/api/dicom-web/controller/WADO-RS/thumbnail/instance.js b/api/dicom-web/controller/WADO-RS/thumbnail/instance.js index 12a6a80c..48ae2241 100644 --- a/api/dicom-web/controller/WADO-RS/thumbnail/instance.js +++ b/api/dicom-web/controller/WADO-RS/thumbnail/instance.js @@ -1,41 +1,20 @@ -const { Controller } = require("../../../../controller.class"); -const { ApiLogger } = require("../../../../../utils/logs/api-logger"); const { - ThumbnailService, InstanceThumbnailFactory } = require("../service/thumbnail.service"); +const { BaseThumbnailController } = require("./base.controller"); -class RetrieveInstanceThumbnailController extends Controller { +class RetrieveInstanceThumbnailController extends BaseThumbnailController { constructor(req, res) { super(req, res); + this.factory = InstanceThumbnailFactory; } - async mainProcess() { - - let apiLogger = new ApiLogger(this.request, "WADO-RS"); - apiLogger.addTokenValue(); - - 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}`); - - try { - let thumbnailService = new ThumbnailService(this.request, this.response, apiLogger, InstanceThumbnailFactory); - return thumbnailService.getThumbnailAndResponse(); - } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - return this.response.end({ - code: 500, - message: "An exception occurred" - }); - } + 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}`); } } diff --git a/api/dicom-web/controller/WADO-RS/thumbnail/series.js b/api/dicom-web/controller/WADO-RS/thumbnail/series.js index 346ca652..2ac25881 100644 --- a/api/dicom-web/controller/WADO-RS/thumbnail/series.js +++ b/api/dicom-web/controller/WADO-RS/thumbnail/series.js @@ -4,37 +4,19 @@ const { ThumbnailService, SeriesThumbnailFactory } = require("../service/thumbnail.service"); +const { BaseThumbnailController } = require("./base.controller"); -class RetrieveSeriesThumbnailController extends Controller { +class RetrieveSeriesThumbnailController extends BaseThumbnailController { constructor(req, res) { super(req, res); + this.factory = SeriesThumbnailFactory; } - async mainProcess() { - - let apiLogger = new ApiLogger(this.request, "WADO-RS"); - apiLogger.addTokenValue(); - - apiLogger.logger.info(`Get Study's Series' Thumbnail [study UID: ${this.request.params.studyUID},\ - series UID: ${this.request.params.seriesUID}]`); - - try { - let thumbnailService = new ThumbnailService(this.request, this.response, apiLogger, SeriesThumbnailFactory); - return thumbnailService.getThumbnailAndResponse(); - } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - return this.response.end({ - code: 500, - message: "An exception occurred" - }); - } + logAction() { + this.apiLogger.logger.info(`Get Study's Series' Thumbnail [study UID: ${this.request.params.studyUID},\ +series UID: ${this.request.params.seriesUID}]`); } } diff --git a/api/dicom-web/controller/WADO-RS/thumbnail/study.js b/api/dicom-web/controller/WADO-RS/thumbnail/study.js index c9e3899f..6ddcbaf4 100644 --- a/api/dicom-web/controller/WADO-RS/thumbnail/study.js +++ b/api/dicom-web/controller/WADO-RS/thumbnail/study.js @@ -1,39 +1,15 @@ -const { Controller } = require("../../../../controller.class"); -const { ApiLogger } = require("../../../../../utils/logs/api-logger"); const { - ThumbnailService, StudyThumbnailFactory } = require("../service/thumbnail.service"); +const { + BaseThumbnailController +} = require("./base.controller"); - -class RetrieveStudyThumbnailController extends Controller { +class RetrieveStudyThumbnailController extends BaseThumbnailController { constructor(req, res) { super(req, res); - } - - async mainProcess() { - - let apiLogger = new ApiLogger(this.request, "WADO-RS"); - apiLogger.addTokenValue(); - - apiLogger.logger.info(`Get Study's Thumbnail [study UID: ${this.request.params.studyUID}]`); - - try { - let thumbnailService = new ThumbnailService(this.request, this.response, apiLogger, StudyThumbnailFactory); - return thumbnailService.getThumbnailAndResponse(); - } catch (e) { - let errorStr = JSON.stringify(e, Object.getOwnPropertyNames(e)); - apiLogger.logger.error(errorStr); - - this.response.writeHead(500, { - "Content-Type": "application/dicom+json" - }); - return this.response.end({ - code: 500, - message: "An exception occurred" - }); - } + this.factory = StudyThumbnailFactory; } }