From feb1ed160421d90865f47a43d29966ddd0a0c227 Mon Sep 17 00:00:00 2001 From: chinlinlee Date: Mon, 22 Jan 2024 12:51:50 +0800 Subject: [PATCH] feat: add `findOneByDicomUID` for study/series/instance models and use for delete --- api/dicom-web/controller/WADO-RS/deletion/service/delete.js | 6 +++--- models/mongodb/models/instance.model.js | 3 +++ models/mongodb/models/series.model.js | 3 +++ models/mongodb/models/study.model.js | 3 +++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/api/dicom-web/controller/WADO-RS/deletion/service/delete.js b/api/dicom-web/controller/WADO-RS/deletion/service/delete.js index 9b4a33c7..977a9d2e 100644 --- a/api/dicom-web/controller/WADO-RS/deletion/service/delete.js +++ b/api/dicom-web/controller/WADO-RS/deletion/service/delete.js @@ -28,7 +28,7 @@ class DeleteService { } async deleteStudy() { - let study = await StudyModel.findOne({ + let study = await StudyModel.findOneByDicomUID({ ...this.request.params }); @@ -46,7 +46,7 @@ class DeleteService { } async deleteSeries() { - let aSeries = await SeriesModel.findOne({ + let aSeries = await SeriesModel.findOneByDicomUID({ ...this.request.params }); @@ -64,7 +64,7 @@ class DeleteService { async deleteInstance() { - let instance = await InstanceModel.findOne({ + let instance = await InstanceModel.findOneByDicomUID({ ...this.request.params }); diff --git a/models/mongodb/models/instance.model.js b/models/mongodb/models/instance.model.js index d60bdef7..afb00213 100644 --- a/models/mongodb/models/instance.model.js +++ b/models/mongodb/models/instance.model.js @@ -34,6 +34,9 @@ let dicomSchemaOptions = _.merge( { strict: false, methods: { + findOneByDicomUID: async function ({ studyUID, seriesUID, instanceUID }) { + return await mongoose.model("dicom").findOne({ studyUID, seriesUID, instanceUID }).exec(); + }, deleteDicomInstances: async function () { let instancePath = this.instancePath; try { diff --git a/models/mongodb/models/series.model.js b/models/mongodb/models/series.model.js index 72e32bdd..4b3501d4 100644 --- a/models/mongodb/models/series.model.js +++ b/models/mongodb/models/series.model.js @@ -34,6 +34,9 @@ let dicomSeriesSchemaOptions = _.merge( } }, statics: { + findOneByDicomUID: async function({ studyUID, seriesUID }) { + return await mongoose.model("dicomSeries").findOne({ studyUID, seriesUID }).exec(); + }, /** * * @param {import("@root/utils/typeDef/dicom").DicomJsonQueryOptions} queryOptions diff --git a/models/mongodb/models/study.model.js b/models/mongodb/models/study.model.js index 4d1df6e8..2b0cc386 100644 --- a/models/mongodb/models/study.model.js +++ b/models/mongodb/models/study.model.js @@ -44,6 +44,9 @@ let dicomStudySchemaOptions = _.merge( } }, statics: { + findOneByDicomUID: async function({ studyUID }) { + return await mongoose.model("dicomStudy").findOne({ studyUID }).exec(); + }, /** * * @param {import("@root/utils/typeDef/dicom").DicomJsonQueryOptions} queryOptions