修改一版

Uat_Study
he 2022-04-21 14:57:23 +08:00
parent aaeeff9b00
commit fca6be727c
6 changed files with 145 additions and 15 deletions

View File

@ -369,7 +369,7 @@ namespace IRaCIS.Core.API.Controllers
var fun = await _qCOperationService.UploadVisitCheckExcel(file, opt.trialId);
return ResponseOutput.Ok();
return fun;
//var data = JsonConvert.DeserializeObject<DataInspectionAddDTO>(opt.AuditInfo);
//return await _inspectionService.Enforcement(opt.trialId, data, null, null, fun);
}

View File

@ -69,7 +69,9 @@ namespace IRaCIS.Api.Controllers
public async Task<IResponseOutput> ArchiveStudy([FromForm] ArchiveStudyCommand archiveStudyCommand)
{
DataInspectionAddDTO data = JsonConvert.DeserializeObject<DataInspectionAddDTO>(archiveStudyCommand.AuditInfo);
data.CreateTime = DateTime.Now;
//Stopwatch sw = new Stopwatch();
var startTime = DateTime.Now;
//sw.Start();
@ -213,10 +215,8 @@ namespace IRaCIS.Api.Controllers
return ResponseOutput.NotOk("未完成该检查的归档", archiveResult);
}
DataInspectionAddDTO data = JsonConvert.DeserializeObject<DataInspectionAddDTO>(archiveStudyCommand.AuditInfo);
data.GeneralId = archivedStudyIds[0];
data.CreateTime = DateTime.Now;
data.GeneralId = archivedStudyIds[0];
await _inspectionService.AddInspectionRecordAsync(data);

View File

@ -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);

View File

@ -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);

View File

@ -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
}),

View File

@ -149,6 +149,7 @@ namespace IRaCIS.Core.Infra.EFCore
/// <returns></returns>
public async Task AddListInspectionRecordAsync(List<DataInspection> datas)
{
//var trialIds= datas.Select(x=>x.TrialId).Distinct().ToList();
//var subjectVisitIds= datas.Select(x=>x.SubjectVisitId).Distinct().ToList();
//var subjectIds = datas.Select(x => x.SubjectId).Distinct().ToList();