Skip to content

Commit

Permalink
refactor: split getAndResponseJpeg into two responsibility things
Browse files Browse the repository at this point in the history
- remove `getAndResponseJpeg` method in wado uri service
- for right responsibility:
  - response should in controller, not in service
  - so, move `setHeader` and `response.end` into controller
  • Loading branch information
Chinlinlee committed Jan 1, 2024
1 parent a91ad11 commit 553c605
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 20 deletions.
8 changes: 7 additions & 1 deletion api/WADO-URI/controller/retrieveInstance.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const { WadoUriService } = require("@api/WADO-URI/service/WADO-URI.service");
const { Controller } = require("../../controller.class");
const { ApiLogger } = require("../../../utils/logs/api-logger");
const { ApiErrorArrayHandler } = require("@error/api-errors.handler");
const { EventOutcomeIndicator } = require("@models/DICOM/audit/auditUtils");

class RetrieveSingleInstanceController extends Controller {
constructor(req, res) {
Expand All @@ -25,12 +26,17 @@ class RetrieveSingleInstanceController extends Controller {
this.response.setHeader("Content-Type", "application/dicom");
dicomInstanceReadStream.pipe(this.response);
} else if (contentType === "image/jpeg") {
this.service.getAndResponseJpeg();
let jpegBuffer = await this.service.handleRequestQueryAndGetJpeg();

this.response.setHeader("Content-Type", "image/jpeg");

this.response.end(jpegBuffer, "buffer");
}

this.response.on("finish", () => this.service.auditInstanceTransferred());

} catch (e) {
this.auditInstanceTransferred(EventOutcomeIndicator.MajorFailure);
let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.logger, e);
return apiErrorArrayHandler.doErrorResponse();
}
Expand Down
19 changes: 0 additions & 19 deletions api/WADO-URI/service/WADO-URI.service.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,25 +28,6 @@ class WadoUriService {
this.auditBeginTransferring();
}

async getAndResponseJpeg() {
try {

let jpegBuffer = await this.handleRequestQueryAndGetJpeg();

this.response.setHeader("Content-Type", "image/jpeg");

this.response.end(jpegBuffer, "buffer");
this.auditInstanceTransferred();

} catch (e) {
this.auditInstanceTransferred(EventOutcomeIndicator.MajorFailure);

let apiErrorArrayHandler = new ApiErrorArrayHandler(this.response, this.apiLogger, e);
return apiErrorArrayHandler.doErrorResponse();
}
}


/**
* @throws {NotFoundInstanceError}
* @returns {Promise<fs.ReadStream>}
Expand Down

0 comments on commit 553c605

Please sign in to comment.