修改一版
parent
7dd1f7f23d
commit
7b740597c2
|
@ -4,6 +4,7 @@ using IRaCIS.Core.Domain.Share;
|
|||
|
||||
using MediatR;
|
||||
using System.Linq.Expressions;
|
||||
using System.Text;
|
||||
|
||||
namespace IRaCIS.Core.Application.MediatR.Handlers
|
||||
{
|
||||
|
@ -99,50 +100,91 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
|
|||
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();
|
||||
|
||||
|
||||
StringBuilder dialogMsg = new StringBuilder();
|
||||
dialogMsg.Append("你好根据本系统自动像识别,该受者本访视已提交的像检查情况如下:");
|
||||
var num = 0;
|
||||
foreach (var item in sv.StudyList)
|
||||
{
|
||||
num++;
|
||||
dialogMsg.AppendLine($"<br>{num}.{item.StudyDate}{item.Modality}");
|
||||
}
|
||||
|
||||
var dbSV = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == sv.SubjectVisitId).IfNullThrowException();
|
||||
|
||||
if (etcVisitStudyList.Count == 0)
|
||||
{
|
||||
|
||||
dialogMsg.AppendLine($"<br>存在问题如下:");
|
||||
num = 0;
|
||||
foreach (var item in sv.StudyList)
|
||||
{
|
||||
num++;
|
||||
dialogMsg.AppendLine($"<br>{num}.{item.StudyDate}{item.Modality} 在导入模板中不存在 不存在!");
|
||||
}
|
||||
|
||||
dialogMsg.AppendLine(@$"<br>说明:为高效解决/处理以上全部质疑问题,麻烦您准确核实实际影像检查情况。请注意影像日期与实际检查的日期可能会不一致,部分检查(如PET -CT)可能同时存在多种模态影像。准确核实后,请回复该访视正确的影像检查情况。");
|
||||
|
||||
dbSV.CheckResult = "当前访视在EDC表中未找到数据,请核对 SubjectCode、 SiteCode 、VisitName 是否和ETC系统保持一致";
|
||||
dbSV.CheckState = CheckStateEnum.CVIng;
|
||||
dbSV.ForwardState = ForwardStateEnum.ToForward;
|
||||
dbSV.CheckChallengeState = CheckChanllengeTypeEnum.PMWaitCRCReply;
|
||||
dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dbSV.CheckResult, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt,CreateTime=DateTime.Now });
|
||||
dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dialogMsg.ToString(), UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt,CreateTime=DateTime.Now });
|
||||
}
|
||||
else
|
||||
{
|
||||
//etc 和数据库 并集
|
||||
var unionList = dbVisitStudyList.Union(etcVisitStudyList);
|
||||
// 数据库存在
|
||||
var dbExceptExcel = dbVisitStudyList.Except(etcVisitStudyList);
|
||||
|
||||
// excel 存在
|
||||
var excelExceptDB = etcVisitStudyList.Except(dbCheckList);
|
||||
|
||||
//两者没有差别
|
||||
if (dbExceptExcel.Count() == 0)
|
||||
{
|
||||
|
||||
dialogMsg.AppendLine($"核对EDC数据,完全一致, 审核通过");
|
||||
dialogMsg.AppendLine(@$"<br>说明:为高效解决/处理以上全部质疑问题,麻烦您准确核实实际影像检查情况。请注意影像日期与实际检查的日期可能会不一致,部分检查(如PET -CT)可能同时存在多种模态影像。准确核实后,请回复该访视正确的影像检查情况。");
|
||||
dbSV.CheckState = CheckStateEnum.CVPassed;
|
||||
dbSV.CheckPassedTime = DateTime.Now;
|
||||
dbSV.CheckResult = "核对EDC数据,完全一致";
|
||||
dbSV.ManualPassReason = "自动核查通过";
|
||||
dbSV.RequestBackState = dbSV.RequestBackState== RequestBackStateEnum.CRC_RequestBack? RequestBackStateEnum.PM_NotAgree: RequestBackStateEnum.NotRequest;
|
||||
dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dbSV.CheckResult, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt, CreateTime = DateTime.Now });
|
||||
dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dialogMsg.ToString(), UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt, CreateTime = DateTime.Now });
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
dialogMsg.AppendLine($"<br>存在问题如下:");
|
||||
|
||||
num = 0;
|
||||
foreach (var item in dbExceptExcel)
|
||||
{
|
||||
num++;
|
||||
dialogMsg.AppendLine($"<br>{num}.EDC 缺少{item.StudyDate}{item.Modality} !");
|
||||
}
|
||||
|
||||
foreach (var item in excelExceptDB)
|
||||
{
|
||||
num++;
|
||||
dialogMsg.AppendLine($"<br>{num}.IRC 缺少{item.StudyDate}{item.Modality} !");
|
||||
}
|
||||
|
||||
|
||||
dialogMsg.AppendLine(@$"<br>说明:为高效解决/处理以上全部质疑问题,麻烦您准确核实实际影像检查情况。请注意影像日期与实际检查的日期可能会不一致,部分检查(如PET -CT)可能同时存在多种模态影像。准确核实后,请回复该访视正确的影像检查情况。");
|
||||
|
||||
dbSV.CheckResult = "根据导入的一致性核查数据,请确认本访视以下不一致检查项信息:" + String.Join(" | ", dbExceptExcel.Select(t => $"EDC 缺少:{t.StudyDate} {t.Modality} ")) + " | "
|
||||
+ String.Join(" | ", excelExceptDB.Select(t => $"IRC 缺少:{t.StudyDate} {t.Modality}"));
|
||||
//新增一致性核查质疑记录
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dbSV.CheckState = CheckStateEnum.CVIng;
|
||||
dbSV.CheckChallengeState = CheckChanllengeTypeEnum.PMWaitCRCReply;
|
||||
|
||||
//讲核查结果发送消息给CRC
|
||||
dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dbSV.CheckResult, UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt, CreateTime = DateTime.Now });
|
||||
dbSV.CheckChallengeDialogList.Add(new CheckChallengeDialog() { SubjectVisitId = sv.SubjectVisitId, TalkContent = dialogMsg.ToString(), UserTypeEnum = (UserTypeEnum)_userInfo.UserTypeEnumInt, CreateTime = DateTime.Now });
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue