添加代码

Uat_Study
he 2022-04-25 17:21:13 +08:00
parent 210323eb8a
commit 0e30547736
7 changed files with 70 additions and 91 deletions

View File

@ -230,19 +230,7 @@ namespace IRaCIS.Api.Controllers
await _inspectionService.AddInspectionRecordAsync(data); await _inspectionService.AddInspectionRecordAsync(data);
List<DataInspection> datas = new List<DataInspection>();
datas.Add(new DataInspection()
{
SiteId = savedInfo.SiteId,
SubjectId = savedInfo.SubjectId,
TrialId = savedInfo.TrialId,
SubjectVisitId = savedInfo.SubjectVisitId,
Identification = "Edit|Visit|Status|Visit-Image Upload|Add Image",
JsonDetail = savedInfo.ToJcJson()
});
await _inspectionService.AddListInspectionRecordAsync(datas);
return ResponseOutput.Ok(archiveResult); return ResponseOutput.Ok(archiveResult);

View File

@ -175,24 +175,6 @@ namespace IRaCIS.Core.Application.Services
if (isStudyNeedAdd) 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); await _studyRepository.AddAsync(dicomStudy);
} }

View File

@ -402,7 +402,7 @@ namespace IRaCIS.Core.Application.Service.Inspection
public async Task SetEnum(DataInspectionAddDTO Data) public async Task SetEnum(DataInspectionAddDTO Data)
{ {
Data.JsonDetail= await _dataInspectionRepository.SetEnum(Data.Identification, Data.JsonDetail); Data.JsonDetail= await _dataInspectionRepository.SetEnum(Data.TrialId.Value, Data.Identification, Data.JsonDetail);
#region 枚举 #region 枚举
//try //try
//{ //{

View File

@ -28,6 +28,7 @@ namespace IRaCIS.Core.Application.Contracts
private readonly IHttpContextAccessor _httpContext; private readonly IHttpContextAccessor _httpContext;
private readonly IDictionaryService _dictionaryService; private readonly IDictionaryService _dictionaryService;
private readonly IInspectionService _inspectionService; private readonly IInspectionService _inspectionService;
private readonly IRepository<StudyMonitor> _studyMonitorRepository;
private readonly IRepository<NoneDicomStudyFile> _noneDicomStudyFileRepository; private readonly IRepository<NoneDicomStudyFile> _noneDicomStudyFileRepository;
@ -38,6 +39,7 @@ namespace IRaCIS.Core.Application.Contracts
IHttpContextAccessor httpContext, IHttpContextAccessor httpContext,
IDictionaryService dictionaryService, IDictionaryService dictionaryService,
IInspectionService inspectionService, IInspectionService inspectionService,
IRepository<StudyMonitor> studyMonitorRepository,
IRepository<NoneDicomStudyFile> noneDicomStudyFileRepository) IRepository<NoneDicomStudyFile> noneDicomStudyFileRepository)
{ {
_noneDicomStudyRepository = noneDicomStudyRepository; _noneDicomStudyRepository = noneDicomStudyRepository;
@ -45,6 +47,7 @@ namespace IRaCIS.Core.Application.Contracts
this._httpContext = httpContext; this._httpContext = httpContext;
this._dictionaryService = dictionaryService; this._dictionaryService = dictionaryService;
this._inspectionService = inspectionService; this._inspectionService = inspectionService;
this._studyMonitorRepository = studyMonitorRepository;
_noneDicomStudyFileRepository = noneDicomStudyFileRepository; _noneDicomStudyFileRepository = noneDicomStudyFileRepository;
} }
@ -130,20 +133,7 @@ namespace IRaCIS.Core.Application.Contracts
var subvisit = await _repository.GetQueryable<SubjectVisit>().FirstOrDefaultAsync(x => x.Id == subjectVisitId); var subvisit = await _repository.GetQueryable<SubjectVisit>().FirstOrDefaultAsync(x => x.Id == subjectVisitId);
// 修改访视状态
//List<DataInspection> datas = new List<DataInspection>();
//datas.Add(new DataInspection()
//{
// SiteId = subvisit.SiteId,
// SubjectId = subvisit.SubjectId,
// TrialId = subvisit.TrialId,
// SubjectVisitId = subvisit.Id,
// Identification = "Edit|Visit|Status|Visit-Image Upload|Add Image",
// JsonDetail = subvisit.ToJcJson()
//});
//await _inspectionService.AddListInspectionRecordAsync(datas);
return ResponseOutput.Ok(); return ResponseOutput.Ok();
} }
@ -179,23 +169,6 @@ namespace IRaCIS.Core.Application.Contracts
var data = JsonConvert.DeserializeObject<DataInspectionAddDTO>(fileDto.AuditInfo); var data = JsonConvert.DeserializeObject<DataInspectionAddDTO>(fileDto.AuditInfo);
data.GeneralId = fileDto.noneDicomStudyId; data.GeneralId = fileDto.noneDicomStudyId;
await _inspectionService.AddInspectionRecordAsync(data); await _inspectionService.AddInspectionRecordAsync(data);
var subvisit = await _repository.GetQueryable<SubjectVisit>().FirstOrDefaultAsync(x => x.Id == fileDto.subjectVisitId);
List<DataInspection> datas = new List<DataInspection>();
datas.Add(new DataInspection()
{
SiteId = subvisit.SiteId,
SubjectId = subvisit.SubjectId,
TrialId = subvisit.TrialId,
SubjectVisitId = subvisit.Id,
Identification = "Edit|Visit|Status|Visit-Image Upload|Add Image",
JsonDetail = subvisit.ToJcJson()
});
await _inspectionService.AddListInspectionRecordAsync(datas);
} }
return result; return result;
@ -265,7 +238,7 @@ namespace IRaCIS.Core.Application.Contracts
// 上传非Dicom 后 将状态改为待提交 分为普通上传 和QC后重传 普通上传时才改为待提交 // 上传非Dicom 后 将状态改为待提交 分为普通上传 和QC后重传 普通上传时才改为待提交
await _repository.BatchUpdateAsync<SubjectVisit>(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.None, u => new SubjectVisit() { SubmitState = SubmitStateEnum.ToSubmit }); await _repository.BatchUpdateAsync<SubjectVisit>(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.None, u => new SubjectVisit() { SubmitState = SubmitStateEnum.ToSubmit });
await _repository.AddAsync(new StudyMonitor() await _studyMonitorRepository.AddAsync(new StudyMonitor()
{ {
FileCount = formCollection.Files.Count, FileCount = formCollection.Files.Count,
FileSize = formCollection.Files.Sum(t => t.Length), FileSize = formCollection.Files.Sum(t => t.Length),
@ -316,7 +289,7 @@ namespace IRaCIS.Core.Application.Contracts
} }
await _repository.AddAsync(new NoneDicomStudyFile() { FileName = fileName, Path = relativePath, NoneDicomStudyId = noneDicomStudyId }); await _noneDicomStudyFileRepository.AddAsync(new NoneDicomStudyFile() { FileName = fileName, Path = relativePath, NoneDicomStudyId = noneDicomStudyId });
} }
} }

View File

@ -1043,17 +1043,6 @@ namespace IRaCIS.Core.Application.Image.QA
var subvisit = await _repository.GetQueryable<SubjectVisit>().FirstOrDefaultAsync(x => x.Id == subjectVisitId); var subvisit = await _repository.GetQueryable<SubjectVisit>().FirstOrDefaultAsync(x => x.Id == subjectVisitId);
datas.Add(new DataInspection()
{
SiteId = subvisit.SiteId,
SubjectId = subvisit.SubjectId,
TrialId = subvisit.TrialId,
SubjectVisitId = subvisit.Id,
Identification = "Edit|Visit|Status|Visit-Image Upload|Add Image",
JsonDetail = subvisit.ToJcJson()
});
await _inspectionService.AddListInspectionRecordAsync(datas); await _inspectionService.AddListInspectionRecordAsync(datas);
return ResponseOutput.Ok(); return ResponseOutput.Ok();
} }

View File

@ -47,7 +47,7 @@ namespace IRaCIS.Core.Infra.EFCore
/// <param name="json">json对象</param> /// <param name="json">json对象</param>
/// <returns></returns> /// <returns></returns>
Task<string> SetEnum(string Identification, string json); Task<string> SetEnum(Guid trial, string Identification, string json);
} }

View File

@ -230,6 +230,8 @@ namespace IRaCIS.Core.Infra.EFCore
{ {
_dbSet.Remove(entity); _dbSet.Remove(entity);
if (autoSave) if (autoSave)
{ {
return await SaveChangesAsync(cancellationToken); return await SaveChangesAsync(cancellationToken);
@ -414,9 +416,6 @@ namespace IRaCIS.Core.Infra.EFCore
#endregion #endregion
#region 不常用 #region 不常用
/// <summary>EF跟踪方式 生成 部分字段更新 (只更新传递的字段名 new[] {nameof(User.Name), nameof(User.Age))</summary> /// <summary>EF跟踪方式 生成 部分字段更新 (只更新传递的字段名 new[] {nameof(User.Name), nameof(User.Age))</summary>
public async Task<TEntity> UpdatePartialFieldsAsync(TEntity entity, string[] propertyNames, public async Task<TEntity> UpdatePartialFieldsAsync(TEntity entity, string[] propertyNames,
bool autoSave = false, bool ignoreEntityNullProperty = true, params EntityVerifyExp<TEntity>[] verify) bool autoSave = false, bool ignoreEntityNullProperty = true, params EntityVerifyExp<TEntity>[] verify)
@ -471,10 +470,10 @@ namespace IRaCIS.Core.Infra.EFCore
/// <param name="json">Json对象</param> /// <param name="json">Json对象</param>
/// <returns></returns> /// <returns></returns>
/// <exception cref="BusinessValidationFailedException"></exception> /// <exception cref="BusinessValidationFailedException"></exception>
public async Task<string> SetEnum(string Identification, string json) public async Task<string> SetEnum(Guid trilaid, string Identification, string json)
{ {
var list =await (from u in _dbContext.FrontAuditConfig.Where(x=>x.Identification== Identification) var list =await (from u in _dbContext.FrontAuditConfig.Where(x=>x.Identification== Identification)
join p in _dbContext.FrontAuditConfig.Where(x=>x.DictionaryCode!=null&& x.DictionaryCode != string.Empty&&x.DictionaryType != null&&x.DictionaryType != string.Empty) on u.Id equals p.ParentId join p in _dbContext.FrontAuditConfig.Where(x=>x.Code== "AuditState"||(x.DictionaryCode!=null&& x.DictionaryCode != string.Empty&&x.DictionaryType != null&&x.DictionaryType != string.Empty)) on u.Id equals p.ParentId
select new select new
{ {
Key= p.Code, Key= p.Code,
@ -482,6 +481,17 @@ namespace IRaCIS.Core.Infra.EFCore
Type= p.DictionaryType Type= p.DictionaryType
}).ToListAsync(); }).ToListAsync();
// 添加单双审
var trialtype = await _dbContext.Trial.AsQueryable().Where(x => x.Id == trilaid).Select(x => x.QCProcessEnum).FirstOrDefaultAsync();
list.Add(new
{
Key = "AuditState",
Code = trialtype == TrialQCProcess.SingleAudit ? "AuditStateRC" : "AuditStatePE",
Type = "Code",
});
try try
{ {
var JsonData = JsonConvert.DeserializeObject<IDictionary<string, object>>(json); var JsonData = JsonConvert.DeserializeObject<IDictionary<string, object>>(json);
@ -602,8 +612,47 @@ namespace IRaCIS.Core.Infra.EFCore
JsonDetail = entity.ToJcJson() JsonDetail = entity.ToJcJson()
}); });
} }
// dicom影像
else if (typeof(TEntity) == typeof(DicomStudy))
{
DicomStudy data = entity as DicomStudy;
await UpdateSubjectVisit(data.SubjectVisitId, SubmitStateEnum.ToSubmit,"上传Dicom影像");
}
// 非Dicom影像
else if (typeof(TEntity) == typeof(NoneDicomStudy))
{
DicomStudy data = entity as DicomStudy;
await UpdateSubjectVisit(data.SubjectVisitId, SubmitStateEnum.ToSubmit, "上传非Dicom影像");
}
// 修改访视状态记录稽查
async Task UpdateSubjectVisit(Guid subvisitVisit, SubmitStateEnum submit,string reason)
{
var subjectvisit = await _dbContext.SubjectVisit.AsNoTracking().AsQueryable().Where(x => x.Id == subvisitVisit).FirstOrDefaultAsync();
if (subjectvisit.SubmitState != submit)
{
subjectvisit.SubmitState = submit;
}
List<DataInspection> inspections = new List<DataInspection>();
inspections.Add(new DataInspection()
{
Identification= "Edit|Visit|Status|Visit-Image Upload|Add Image",
TrialId= subjectvisit.TrialId,
SiteId=subjectvisit.SiteId,
SubjectId=subjectvisit.SubjectId,
SubjectVisitId=subjectvisit.Id,
Reason= reason,
JsonDetail= subjectvisit.ToJcJson(),
});
}
await AddListInspectionRecordAsync(datas); await AddListInspectionRecordAsync(datas);
} }
/// <summary> /// <summary>
/// 添加稽查记录 /// 添加稽查记录
/// </summary> /// </summary>
@ -633,7 +682,7 @@ namespace IRaCIS.Core.Infra.EFCore
{ {
add.CreateTime = DateTime.Now; add.CreateTime = DateTime.Now;
} }
add.JsonDetail = await SetEnum(add.Identification, add.JsonDetail); add.JsonDetail = await SetEnum(add.TrialId,add.Identification, add.JsonDetail);
await SetDataInspectionDateType(add); await SetDataInspectionDateType(add);
} }
@ -641,6 +690,8 @@ namespace IRaCIS.Core.Infra.EFCore
} }
/// <summary> /// <summary>
/// IsNullOrEmpty /// IsNullOrEmpty
/// </summary> /// </summary>
@ -691,17 +742,13 @@ namespace IRaCIS.Core.Infra.EFCore
{ {
JsonData[item] = DateTime.Parse(JsonData[item].ToString()).ToString("yyyy-MM-dd HH:mm:ss"); JsonData[item] = DateTime.Parse(JsonData[item].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
} }
} }
catch (Exception) catch (Exception)
{ {
continue; continue;
} }
} }
} }
Data.JsonDetail = JsonConvert.SerializeObject(JsonData); Data.JsonDetail = JsonConvert.SerializeObject(JsonData);