Skip to content

Commit

Permalink
feat: implement count API for MWL item
Browse files Browse the repository at this point in the history
  • Loading branch information
Chinlinlee committed Dec 21, 2023
1 parent fa81ba6 commit 188b10d
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
const { MwlItemModel } = require("@models/sql/models/mwlItems.model");
const { GetMwlItemCountService } = require("@root/api/dicom-web/controller/MWL-RS/service/count-mwlItem.service");
const { convertAllQueryToDicomTag } = require("@root/api/dicom-web/service/base-query.service");
const { cloneDeep } = require("lodash");

class SqlGetMwlItemCountService extends GetMwlItemCountService{
constructor(req, res) {
super(req, res);
}

async getMwlItemCount() {
return await MwlItemModel.getCount(this.query);
}

initQuery_() {
let query = cloneDeep(this.request.query);
let queryKeys = Object.keys(query).sort();
for (let i = 0; i < queryKeys.length; i++) {
let queryKey = queryKeys[i];
if (!query[queryKey]) delete query[queryKey];
}

this.query = convertAllQueryToDicomTag(query, false);
}
}

module.exports.GetMwlItemCountService = SqlGetMwlItemCountService;
2 changes: 1 addition & 1 deletion api/dicom-web/controller/MWL-RS/count-mwlItem.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const { ApiErrorArrayHandler } = require("@error/api-errors.handler");
const { Controller } = require("@root/api/controller.class");
const { ApiLogger } = require("@root/utils/logs/api-logger");
const { GetMwlItemCountService } = require("./service/count-mwlItem.service");
const { GetMwlItemCountService } = require("@mwl-service/count-mwlItem.service");

class GetMwlItemCountController extends Controller {
constructor(req, res) {
Expand Down
8 changes: 8 additions & 0 deletions models/sql/models/mwlItems.model.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ class MwlItemModel extends Model {
return item.json;
}));
}

static async getCount(query) {
let queryBuilder = new MwlQueryBuilder({query});
let q = queryBuilder.build();
return await this.count({
...q
});
}
};

/** @type { import("sequelize").ModelAttributes } */
Expand Down

0 comments on commit 188b10d

Please sign in to comment.