修改一版

This commit is contained in:
he
2022-04-21 14:57:23 +08:00
parent aaeeff9b00
commit fca6be727c
6 changed files with 145 additions and 15 deletions
@@ -7,6 +7,8 @@ using IRaCIS.Core.Domain.Share;
using Microsoft.Extensions.Hosting;
using System.Text;
using IRaCIS.Core.Application.Contracts;
using Newtonsoft.Json;
using MassTransit;
namespace IRaCIS.Core.Application.Services
{
@@ -15,7 +17,7 @@ namespace IRaCIS.Core.Application.Services
private readonly IRepository<DicomStudy> _studyRepository;
private readonly IRepository<DicomSeries> _seriesRepository;
private readonly IRepository<DicomInstance> _instanceRepository;
private readonly IRepository<DataInspection> _inspectionService;
private readonly IEasyCachingProvider _provider;
private readonly DicomFileStoreHelper _dicomFileStoreHelper;
@@ -26,6 +28,7 @@ namespace IRaCIS.Core.Application.Services
IRepository<DicomSeries> seriesRepository,
IRepository<DicomInstance> instanceRepository,
IHostEnvironment hostEnvironment,
IRepository<DataInspection> inspectionService,
DicomFileStoreHelper dicomFileStoreHelper,
IEasyCachingProvider provider)
{
@@ -36,7 +39,7 @@ namespace IRaCIS.Core.Application.Services
_seriesRepository = seriesRepository;
_instanceRepository = instanceRepository;
this._inspectionService = inspectionService;
_provider = provider;
}
@@ -165,9 +168,91 @@ namespace IRaCIS.Core.Application.Services
DicomSeries dicomSeries = CreateDicomSeries(dataset, dicomStudy, out bool isSeriesNeedAdd);
DicomInstance dicomInstance = CreateDicomInstance(dataset, dicomStudy, dicomSeries);
if (isStudyNeedAdd) await _studyRepository.AddAsync(dicomStudy);
if (isSeriesNeedAdd) await _seriesRepository.AddAsync(dicomSeries);
await _instanceRepository.AddAsync(dicomInstance);
List<DataInspection> datas = new List<DataInspection>();
var createtime=DateTime.Now;
if (isStudyNeedAdd)
{
//dicomStudy.Id = NewId.NextGuid();
//datas.Add(new DataInspection()
//{
// SiteId = dicomStudy.SiteId,
// SubjectId = dicomStudy.SubjectId,
// TrialId = dicomStudy.TrialId,
// SubjectVisitId = dicomStudy.SubjectVisitId,
// CreateTime = createtime,
// GeneralId= dicomStudy.Id,
// Identification = "Edit|Visit|Status|Visit-Image Upload|Add Image",
// JsonDetail = JsonConvert.SerializeObject(new
// {
// SubmitState = "待提交",
// })
//});
// 添加检查
await _studyRepository.AddAsync(dicomStudy);
}
if (isSeriesNeedAdd) {
// 添加序列
dicomSeries.Id = NewId.NextGuid();
datas.Add(new DataInspection()
{
SiteId = dicomStudy.SiteId,
SubjectId = dicomStudy.SubjectId,
TrialId = dicomStudy.TrialId,
GeneralId= dicomSeries.Id,
SubjectVisitId = dicomStudy.SubjectVisitId,
CreateTime = createtime.AddMilliseconds(10),
Identification = "Add|DICOM Series|Info|Visit-Image Upload",
JsonDetail = JsonConvert.SerializeObject(new
{
StudyCode=dicomStudy.StudyCode,
Modalities = dicomStudy.Modalities,
SeriesNumber= dicomSeries.SeriesNumber,
InstanceCount=dicomSeries.InstanceCount,
SeriesTime= dicomSeries.SeriesTime,
})
});
datas.Add(new DataInspection()
{
SiteId = dicomStudy.SiteId,
SubjectId = dicomStudy.SubjectId,
TrialId = dicomStudy.TrialId,
GeneralId = dicomSeries.Id,
SubjectVisitId = dicomStudy.SubjectVisitId,
CreateTime = createtime.AddMilliseconds(510),
Identification = "Init|DICOM Series|Status|Visit-Image Upload",
JsonDetail = JsonConvert.SerializeObject(new
{
StudyCode = dicomStudy.StudyCode,
Modalities = dicomStudy.Modalities,
SeriesNumber = dicomSeries.SeriesNumber,
InstanceCount = dicomSeries.InstanceCount,
SeriesTime = dicomSeries.SeriesTime,
IsReading= dicomSeries.IsReading,
})
});
await _seriesRepository.AddAsync(dicomSeries);
}
await _inspectionService.AddListInspectionRecordAsync(datas);
await _instanceRepository.AddAsync(dicomInstance);
@@ -1036,6 +1036,7 @@ namespace IRaCIS.Core.Application.Image.QA
TrialId = x.TrialId,
SubjectVisitId=x.SubjectVisitId,
GeneralId=x.Id,
CreateTime=DateTime.Now,
Identification= "Delete|DICOM Study|Data|Visit-Image Upload",
JsonDetail = JsonConvert.SerializeObject(new
{
@@ -1051,10 +1052,10 @@ namespace IRaCIS.Core.Application.Image.QA
});
#region will calls error wried
//ids.ToList().ForEach(async id =>
@@ -1064,11 +1065,53 @@ namespace IRaCIS.Core.Application.Image.QA
// var success3 = await _repository.DeleteFromQueryAsync<DicomSeries>(t => t.StudyId == id);
//});
#endregion
var createtime = DateTime.Now.AddMilliseconds(200);
foreach (var id in ids)
{
var success1 = await _repository.BatchDeleteAsync<DicomStudy>(t => t.Id == id);
var succeess2 = await _repository.BatchDeleteAsync<DicomInstance>(t => t.StudyId == id);
var DicomSeriess = await _repository.GetQueryable<DicomSeries>().Where(t => t.StudyId == id).Select(x => new {
x.StudyId,
x.SubjectId,
x.SiteId,
x.TrialId,
x.Id,
x.SubjectVisitId,
x.SeriesTime,
x.IsReading,
x.InstanceCount,
x.SeriesNumber,
StudyCode= x.DicomStudy.StudyCode,
Modalities=x.DicomStudy.Modalities,
}).ToListAsync();
DicomSeriess.ForEach(x =>
{
datas.Add(new DataInspection()
{
SiteId = x.SiteId,
SubjectId = x.SubjectId,
TrialId = x.TrialId,
GeneralId = x.Id,
SubjectVisitId = x.SubjectVisitId,
CreateTime = createtime,
Identification = "Delete|DICOM Series|Data|Visit-Image Upload",
JsonDetail = JsonConvert.SerializeObject(new
{
StudyCode = x.StudyCode,
Modalities = x.Modalities,
SeriesNumber = x.SeriesNumber,
InstanceCount = x.InstanceCount,
SeriesTime = x.SeriesTime,
IsReading = x.IsReading,
})
});
});
var success3 = await _repository.BatchDeleteAsync<DicomSeries>(t => t.StudyId == id);
var success4 = await _repository.BatchDeleteAsync<StudyMonitor>(t => t.StudyId == id);
@@ -479,12 +479,13 @@ namespace IRaCIS.Application.Services
CreateTime = createtime,
SubjectVisitName = x.VisitName,
TrialId = x.TrialId,
Reason="确认访视修改状态",
JsonDetail = JsonConvert.SerializeObject(new {
IsBaseLine = changedItem.IsBaseLine,
VisitName = changedItem.VisitName,
VisitNum = changedItem.VisitNum,
VisitDay = changedItem.VisitDay,
SubmitState = "未提交",
VisitWindowLeft = changedItem.VisitWindowLeft,
VisitWindowRight = changedItem.VisitWindowRight
}),