From de6c0ae8cde813ad6910786c236eb97e08286acf Mon Sep 17 00:00:00 2001 From: "CHIN\\a5566" Date: Tue, 29 Aug 2023 15:01:11 +0800 Subject: [PATCH] refactor: auditMessageModel to static getter --- api/WADO-URI/service/WADO-URI.service.js | 3 --- .../controller/QIDO-RS/service/QIDO-RS.service.js | 3 --- .../controller/STOW-RS/service/stow-rs.service.js | 4 ---- .../WADO-RS/service/retrieveAudit.service.js | 3 --- dimse/instanceQueryTask.js | 2 -- dimse/patientQueryTask.js | 2 -- dimse/seriesQueryTask.js | 2 -- dimse/service/retrieveAudit.service.js | 3 --- dimse/studyQueryTask.js | 3 --- models/DICOM/audit/auditManager.js | 12 +++++++----- 10 files changed, 7 insertions(+), 30 deletions(-) diff --git a/api/WADO-URI/service/WADO-URI.service.js b/api/WADO-URI/service/WADO-URI.service.js index b4b1ec44..05f83b2e 100644 --- a/api/WADO-URI/service/WADO-URI.service.js +++ b/api/WADO-URI/service/WADO-URI.service.js @@ -9,7 +9,6 @@ const Magick = require("../../../models/magick"); const { NotFoundInstanceError, InvalidFrameNumberError, InstanceGoneError } = require("../../../error/dicom-instance"); const dicomModel = require("../../../models/mongodb/models/dicom"); const { AuditManager } = require("@models/DICOM/audit/auditManager"); -const auditMessageModel = require("@models/mongodb/models/auditMessage"); const { EventType } = require("@models/DICOM/audit/eventType"); const { EventOutcomeIndicator } = require("@models/DICOM/audit/auditUtils"); const { DicomWebService } = require("@root/api/dicom-web/service/dicom-web.service"); @@ -254,7 +253,6 @@ class WadoUriService { async auditBeginTransferring() { let auditManager = new AuditManager( - auditMessageModel, EventType.RETRIEVE_BEGIN, EventOutcomeIndicator.Success, DicomWebService.getRemoteAddress(this.request), DicomWebService.getRemoteHostname(this.request), DicomWebService.getServerAddress(), DicomWebService.getServerHostname() @@ -266,7 +264,6 @@ class WadoUriService { async auditInstanceTransferred(eventResult = EventOutcomeIndicator.Success) { let auditManager = new AuditManager( - auditMessageModel, EventType.RETRIEVE_END, eventResult, DicomWebService.getRemoteAddress(this.request), DicomWebService.getRemoteHostname(this.request), DicomWebService.getServerAddress(), DicomWebService.getServerHostname() diff --git a/api/dicom-web/controller/QIDO-RS/service/QIDO-RS.service.js b/api/dicom-web/controller/QIDO-RS/service/QIDO-RS.service.js index 0a113f51..761d202e 100644 --- a/api/dicom-web/controller/QIDO-RS/service/QIDO-RS.service.js +++ b/api/dicom-web/controller/QIDO-RS/service/QIDO-RS.service.js @@ -17,7 +17,6 @@ const { DicomWebStatusCodes } = require("@error/dicom-web-service"); const { AuditManager } = require("@models/DICOM/audit/auditManager"); -const auditMessageModel = require("@models/mongodb/models/auditMessage"); const { EventType } = require("@models/DICOM/audit/eventType"); const { EventOutcomeIndicator } = require("@models/DICOM/audit/auditUtils"); @@ -78,7 +77,6 @@ class QidoRsService { async getAndResponseDicomJson() { try { let queryAudit = new AuditManager( - auditMessageModel, EventType.QUERY, EventOutcomeIndicator.Success, DicomWebService.getRemoteAddress(this.request), DicomWebService.getRemoteHostname(this.request), @@ -123,7 +121,6 @@ class QidoRsService { async auditInstancesAccessed(dicomJson) { let queryAccessedAudit = new AuditManager( - auditMessageModel, EventType.QUERY_ACCESSED_INSTANCE, EventOutcomeIndicator.Success, DicomWebService.getRemoteAddress(this.request), DicomWebService.getRemoteHostname(this.request), diff --git a/api/dicom-web/controller/STOW-RS/service/stow-rs.service.js b/api/dicom-web/controller/STOW-RS/service/stow-rs.service.js index bf37070a..36bac7a0 100644 --- a/api/dicom-web/controller/STOW-RS/service/stow-rs.service.js +++ b/api/dicom-web/controller/STOW-RS/service/stow-rs.service.js @@ -13,7 +13,6 @@ const { logger } = require("../../../../../utils/logs/log"); const { raccoonConfig } = require("../../../../../config-class"); const { DicomWebService } = require("../../../service/dicom-web.service"); const { AuditManager } = require("@models/DICOM/audit/auditManager"); -const auditMessageModel = require("@models/mongodb/models/auditMessage"); const { EventType } = require("@models/DICOM/audit/eventType"); const { EventOutcomeIndicator } = require("@models/DICOM/audit/auditUtils"); @@ -94,7 +93,6 @@ class StowRsService { } catch(e) { // log transferred failure let auditManager = new AuditManager( - auditMessageModel, EventType.STORE_CREATE, EventOutcomeIndicator.MajorFailure, DicomWebService.getRemoteAddress(this.request), DicomWebService.getRemoteHostname(this.request), DicomWebService.getServerAddress(), DicomWebService.getServerHostname() @@ -139,13 +137,11 @@ class StowRsService { dicomJsonModel.setUidObj(); let beginAudit = new AuditManager( - auditMessageModel, EventType.STORE_BEGIN, EventOutcomeIndicator.Success, DicomWebService.getRemoteAddress(this.request), DicomWebService.getRemoteHostname(this.request), DicomWebService.getServerAddress(), DicomWebService.getServerHostname() ); let transferredAudit = new AuditManager( - auditMessageModel, EventType.STORE_CREATE, EventOutcomeIndicator.Success, DicomWebService.getRemoteAddress(this.request), DicomWebService.getRemoteHostname(this.request), DicomWebService.getServerAddress(), DicomWebService.getServerHostname() diff --git a/api/dicom-web/controller/WADO-RS/service/retrieveAudit.service.js b/api/dicom-web/controller/WADO-RS/service/retrieveAudit.service.js index 55aa4d8b..31321354 100644 --- a/api/dicom-web/controller/WADO-RS/service/retrieveAudit.service.js +++ b/api/dicom-web/controller/WADO-RS/service/retrieveAudit.service.js @@ -2,7 +2,6 @@ const _ = require("lodash"); const { AuditManager } = require("@models/DICOM/audit/auditManager"); const { EventType } = require("@models/DICOM/audit/eventType"); -const auditMessageModel = require("@models/mongodb/models/auditMessage"); const { DicomWebService } = require("@root/api/dicom-web/service/dicom-web.service"); class RetrieveAuditService { @@ -14,7 +13,6 @@ class RetrieveAuditService { async onBeginRetrieve() { let auditManager = new AuditManager( - auditMessageModel, EventType.RETRIEVE_BEGIN, this.eventResult, DicomWebService.getRemoteAddress(this.request), DicomWebService.getRemoteHostname(this.request), @@ -26,7 +24,6 @@ class RetrieveAuditService { async completedRetrieve() { let auditManager = new AuditManager( - auditMessageModel, EventType.RETRIEVE_END, this.eventResult, DicomWebService.getRemoteAddress(this.request), DicomWebService.getRemoteHostname(this.request), diff --git a/dimse/instanceQueryTask.js b/dimse/instanceQueryTask.js index 7414a281..13cda2bd 100644 --- a/dimse/instanceQueryTask.js +++ b/dimse/instanceQueryTask.js @@ -10,7 +10,6 @@ const { createInstanceQueryTaskInjectProxy } = require("@java-wrapper/org/github const { Tag } = require("@dcm4che/data/Tag"); const { logger } = require("@root/utils/logs/log"); const { AuditManager } = require("@models/DICOM/audit/auditManager"); -const auditMessageModel = require("@models/mongodb/models/auditMessage"); const { EventType } = require("@models/DICOM/audit/eventType"); const { EventOutcomeIndicator } = require("@models/DICOM/audit/auditUtils"); const { UID } = require("@dcm4che/data/UID"); @@ -116,7 +115,6 @@ class JsInstanceQueryTask extends JsSeriesQueryTask { async getNextInstanceCursor() { let queryAudit = new AuditManager( - auditMessageModel, EventType.QUERY, EventOutcomeIndicator.Success, await this.as.getRemoteAET(), await this.as.getRemoteHostName(), await this.as.getLocalAET(), await this.as.getLocalHostName() diff --git a/dimse/patientQueryTask.js b/dimse/patientQueryTask.js index 847f29d3..90e7a1d3 100644 --- a/dimse/patientQueryTask.js +++ b/dimse/patientQueryTask.js @@ -11,7 +11,6 @@ const { Association } = require("@dcm4che/net/Association"); const { PresentationContext } = require("@dcm4che/net/pdu/PresentationContext"); const { logger } = require("@root/utils/logs/log"); const { AuditManager } = require("@models/DICOM/audit/auditManager"); -const auditMessageModel = require("@models/mongodb/models/auditMessage"); const { EventType } = require("@models/DICOM/audit/eventType"); const { EventOutcomeIndicator } = require("@models/DICOM/audit/auditUtils"); const { UID } = require("@dcm4che/data/UID"); @@ -146,7 +145,6 @@ class JsPatientQueryTask { async initCursor() { let queryAudit = new AuditManager( - auditMessageModel, EventType.QUERY, EventOutcomeIndicator.Success, await this.as.getRemoteAET(), await this.as.getRemoteHostName(), diff --git a/dimse/seriesQueryTask.js b/dimse/seriesQueryTask.js index d877ecb1..9cdc11d1 100644 --- a/dimse/seriesQueryTask.js +++ b/dimse/seriesQueryTask.js @@ -10,7 +10,6 @@ const { createSeriesQueryTaskInjectProxy } = require("@java-wrapper/org/github/c const { Tag } = require("@dcm4che/data/Tag"); const { logger } = require("@root/utils/logs/log"); const { AuditManager } = require("@models/DICOM/audit/auditManager"); -const auditMessageModel = require("@models/mongodb/models/auditMessage"); const { EventType } = require("@models/DICOM/audit/eventType"); const { EventOutcomeIndicator } = require("@models/DICOM/audit/auditUtils"); const { UID } = require("@dcm4che/data/UID"); @@ -114,7 +113,6 @@ class JsSeriesQueryTask extends JsStudyQueryTask { async getNextSeriesCursor() { let queryAudit = new AuditManager( - auditMessageModel, EventType.QUERY, EventOutcomeIndicator.Success, await this.as.getRemoteAET(), await this.as.getRemoteHostName(), await this.as.getLocalAET(), await this.as.getLocalHostName() diff --git a/dimse/service/retrieveAudit.service.js b/dimse/service/retrieveAudit.service.js index 6fc70c1c..60f525bf 100644 --- a/dimse/service/retrieveAudit.service.js +++ b/dimse/service/retrieveAudit.service.js @@ -1,7 +1,6 @@ const { Association } = require("@dcm4che/net/Association"); const { AuditManager } = require("@models/DICOM/audit/auditManager"); const { EventType } = require("@models/DICOM/audit/eventType"); -const auditMessageModel = require("@models/mongodb/models/auditMessage"); class DimseRetrieveAuditService { constructor(association, studyUID, eventResult) { @@ -13,7 +12,6 @@ class DimseRetrieveAuditService { async onBeginRetrieve() { let auditManager = new AuditManager( - auditMessageModel, EventType.RETRIEVE_BEGIN, this.eventResult, await this.association.getRemoteAET(), await this.association.getRemoteHostName(), @@ -25,7 +23,6 @@ class DimseRetrieveAuditService { async completedRetrieve() { let auditManager = new AuditManager( - auditMessageModel, EventType.RETRIEVE_END, this.eventResult, await this.association.getRemoteAET(), await this.association.getRemoteHostName(), diff --git a/dimse/studyQueryTask.js b/dimse/studyQueryTask.js index d31703de..87ea9c9a 100644 --- a/dimse/studyQueryTask.js +++ b/dimse/studyQueryTask.js @@ -10,7 +10,6 @@ const dicomStudyModel = require("@models/mongodb/models/dicomStudy"); const { Attributes } = require("@dcm4che/data/Attributes"); const { logger } = require("@root/utils/logs/log"); const { AuditManager } = require("@models/DICOM/audit/auditManager"); -const auditMessageModel = require("@models/mongodb/models/auditMessage"); const { EventType } = require("@models/DICOM/audit/eventType"); const { EventOutcomeIndicator } = require("@models/DICOM/audit/auditUtils"); const { UID } = require("@dcm4che/data/UID"); @@ -112,7 +111,6 @@ class JsStudyQueryTask extends JsPatientQueryTask { async getNextStudyCursor() { let queryAudit = new AuditManager( - auditMessageModel, EventType.QUERY, EventOutcomeIndicator.Success, await this.as.getRemoteAET(), await this.as.getRemoteHostName(), await this.as.getLocalAET(), await this.as.getLocalHostName() @@ -144,7 +142,6 @@ class JsStudyQueryTask extends JsPatientQueryTask { return; let auditManager = new AuditManager( - auditMessageModel, EventType.QUERY_ACCESSED_INSTANCE, EventOutcomeIndicator.Success, await this.as.getRemoteAET(), await this.as.getRemoteHostName(), await this.as.getLocalAET(), await this.as.getLocalHostName() diff --git a/models/DICOM/audit/auditManager.js b/models/DICOM/audit/auditManager.js index 7160966b..b89b8596 100644 --- a/models/DICOM/audit/auditManager.js +++ b/models/DICOM/audit/auditManager.js @@ -9,13 +9,10 @@ const { EventType } = require("./eventType"); */ class AuditManager { - constructor(auditMessageModel, - eventType, eventResult, + constructor(eventType, eventResult, clientAETitle, clientHostname, serverAETitle, serverHostname ) { - /** @type { AuditMessageModel } */ - this.auditMessageModel = auditMessageModel; /** @type { EventType } */ this.eventType = eventType; @@ -155,11 +152,16 @@ class AuditManager { */ async saveToDb_(msg) { try { - await this.auditMessageModel.createMessage(msg); + await AuditManager.getAuditMessageModel().createMessage(msg); } catch (e) { throw e; } } + + static getAuditMessageModel() { + const mongoose = require("mongoose"); + return mongoose.model("auditMessage"); + } } module.exports.AuditManager = AuditManager; \ No newline at end of file