修改
This commit is contained in:
@@ -4,6 +4,7 @@ using IRaCIS.Core.Domain.Share;
|
||||
|
||||
using IRaCIS.Core.Infra.EFCore;
|
||||
using MediatR;
|
||||
using Newtonsoft.Json;
|
||||
using System.Linq.Expressions;
|
||||
|
||||
namespace IRaCIS.Core.Application.MediatR.Handlers
|
||||
@@ -92,8 +93,11 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
|
||||
var svGroup = dbList.GroupBy(t => new { t.SubjectVisitId, t.SiteCode, t.SubjectCode, t.VisitName })
|
||||
.Select(g => new { g.Key.SubjectCode, g.Key.VisitName, g.Key.SiteCode, g.Key.SubjectVisitId, StudyList = g.ToList() }).ToList();
|
||||
|
||||
List<DataInspection> datas = new List<DataInspection>();
|
||||
var createtime = DateTime.Now;
|
||||
foreach (var sv in svGroup)
|
||||
{
|
||||
|
||||
//找到etc 当前visit site 和subject 一致的检查列表
|
||||
var etcVisitStudyList = etcList.Where(t => t.SubjectCode == sv.SubjectCode && t.SiteCode == sv.SiteCode && t.VisitName == sv.VisitName).ToList();
|
||||
var dbVisitStudyList = dbCheckList.Where(t => t.SubjectCode == sv.SubjectCode && t.SiteCode == sv.SiteCode && t.VisitName == sv.VisitName).ToList();
|
||||
@@ -122,12 +126,61 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
|
||||
dbSV.CheckState = CheckStateEnum.CVPassed;
|
||||
dbSV.CheckPassedTime = DateTime.Now;
|
||||
dbSV.CheckResult = "核对EDC数据,完全一致";
|
||||
dbSV.ManualPassReason = "自动核查通过";
|
||||
dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dbSV.CheckResult, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt });
|
||||
}
|
||||
else
|
||||
{
|
||||
dbSV.CheckResult = "根据导入的一致性核查数据,请确认本访视以下不一致检查项信息:" + String.Join(" | ", dbExceptExcel.Select(t => $"EDC 缺少:{t.StudyDate} {t.Modality} ")) + " | "
|
||||
+ String.Join(" | ", excelExceptDB.Select(t => $"IRC 缺少:{t.StudyDate} {t.Modality}"));
|
||||
+ String.Join(" | ", excelExceptDB.Select(t => $"IRC 缺少:{t.StudyDate} {t.Modality}"));
|
||||
//新增一致性核查质疑记录
|
||||
datas.Add(new DataInspection()
|
||||
{
|
||||
|
||||
SiteId = dbSV.SiteId,
|
||||
SubjectId = dbSV.SubjectId,
|
||||
TrialId = dbSV.TrialId,
|
||||
SubjectVisitId = dbSV.Id,
|
||||
CreateTime = createtime.AddMilliseconds(200),
|
||||
Identification = "Add|Consistency Check Query|Data|Visit-Consistency Check",
|
||||
JsonDetail = JsonConvert.SerializeObject(new
|
||||
{
|
||||
SubmitState = "已提交",
|
||||
AuditState = "通过",
|
||||
CheckState = dbSV.CheckState == CheckStateEnum.CVIng ? "核查中" : "未核查",
|
||||
CheckResult= dbSV.CheckResult,
|
||||
TalkContent= dbSV.CheckResult,
|
||||
RequestBackState=dbSV.RequestBackState==RequestBackStateEnum.PM_AgressBack?"已回退":"未回退",
|
||||
CheckChallengeState = dbSV.CheckChallengeState == CheckChanllengeTypeEnum.Closed?"已关闭":"已回复",
|
||||
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
|
||||
datas.Add(new DataInspection()
|
||||
{
|
||||
|
||||
SiteId = dbSV.SiteId,
|
||||
SubjectId = dbSV.SubjectId,
|
||||
TrialId = dbSV.TrialId,
|
||||
SubjectVisitId = dbSV.Id,
|
||||
CreateTime = createtime.AddMilliseconds(500),
|
||||
Identification = "Edit|Consistency Check Query|Data|Visit-Consistency Check|Send",
|
||||
JsonDetail = JsonConvert.SerializeObject(new
|
||||
{
|
||||
SubmitState = "已提交",
|
||||
AuditState = "通过",
|
||||
CheckState = dbSV.CheckState == CheckStateEnum.CVIng ? "核查中" : "未核查",
|
||||
CheckResult = dbSV.CheckResult,
|
||||
TalkContent = dbSV.CheckResult,
|
||||
RequestBackState = dbSV.RequestBackState == RequestBackStateEnum.PM_AgressBack ? "已回退" : "未回退",
|
||||
CheckChallengeState = dbSV.CheckChallengeState == CheckChanllengeTypeEnum.Closed ? "已关闭" : "已回复",
|
||||
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
dbSV.CheckState = CheckStateEnum.CVIng;
|
||||
dbSV.CheckChallengeState = CheckChanllengeTypeEnum.PMWaitCRCReply;
|
||||
|
||||
@@ -137,6 +190,27 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
|
||||
|
||||
}
|
||||
dbSV.CheckTime = DateTime.Now;
|
||||
|
||||
// 在线一致性核查
|
||||
datas.Add(new DataInspection()
|
||||
{
|
||||
|
||||
SiteId = dbSV.SiteId,
|
||||
SubjectId = dbSV.SubjectId,
|
||||
TrialId = dbSV.TrialId,
|
||||
SubjectVisitId = dbSV.Id,
|
||||
CreateTime= createtime,
|
||||
Reason= dbSV.ManualPassReason,
|
||||
Identification = "Add|Visit|Status|Visit-Consistency Check",
|
||||
JsonDetail = JsonConvert.SerializeObject(new
|
||||
{
|
||||
SubmitState = "已提交",
|
||||
AuditState= "通过",
|
||||
CheckState = dbSV.CheckState== CheckStateEnum.CVIng? "核查中": "核查通过",
|
||||
|
||||
})
|
||||
});
|
||||
|
||||
await _subjectVisitRepository.SaveChangesAsync();
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user