@@ -50,7 +50,7 @@ public static class DBContext_Ext
|
||||
}
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(trialSiteSurvey.DomainEvents.Select(t => new EventStoreRecord() { Id=t.EventId, EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
eventStoreList.AddRange(trialSiteSurvey.DomainEvents.Select(t => new EventStoreRecord() { Id = t.EventId, EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
|
||||
|
||||
@@ -63,17 +63,13 @@ public static class DBContext_Ext
|
||||
{
|
||||
var subjectVisit = entry.Entity;
|
||||
|
||||
////跟踪的方式查询 不会查询数据库多次
|
||||
//var findTrial = dbContext.Trial.Find(subjectVisit.TrialId);
|
||||
var originSubmitState = entry.Property(p => p.SubmitState).OriginalValue;
|
||||
var originAuditState = entry.Property(p => p.AuditState).OriginalValue;
|
||||
var originCheckState = entry.Property(p => p.CheckState).OriginalValue;
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if (/*findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView && */
|
||||
(subjectVisit.IsEnrollmentConfirm || subjectVisit.PDState == PDStateEnum.PDProgress))
|
||||
if ((subjectVisit.IsEnrollmentConfirm || subjectVisit.PDState == PDStateEnum.PDProgress))
|
||||
{
|
||||
var originSubmitState = entry.Property(p => p.SubmitState).OriginalValue;
|
||||
var originAuditState = entry.Property(p => p.AuditState).OriginalValue;
|
||||
var originCheckState = entry.Property(p => p.CheckState).OriginalValue;
|
||||
|
||||
//质控状态变为待审核的时候
|
||||
|
||||
if (originSubmitState == SubmitStateEnum.ToSubmit && subjectVisit.SubmitState == SubmitStateEnum.Submitted &&
|
||||
@@ -102,9 +98,8 @@ public static class DBContext_Ext
|
||||
{
|
||||
var qCChallengeDialog = entry.Entity;
|
||||
|
||||
//跟踪的方式查询 不会查询数据库多次
|
||||
var findSubjectVisit = dbContext.SubjectVisit.Find(qCChallengeDialog.SubjectVisitId).IfNullThrowException();
|
||||
//var findTrial = dbContext.Trial.Find(findSubjectVisit.TrialId);
|
||||
var findSubjectVisit = dbContext.SubjectVisit.Where(t => t.Id == qCChallengeDialog.SubjectVisitId)
|
||||
.Select(t => new { IsEnrollmentConfirm = t.IsEnrollmentConfirm, PDState = t.PDState, t.Id, t.TrialId }).FirstOrDefault().IfNullThrowException();
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if ((findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress))
|
||||
@@ -122,7 +117,7 @@ public static class DBContext_Ext
|
||||
}
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(qCChallengeDialog.DomainEvents.Select(t => new EventStoreRecord() {Id = t.EventId, EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
eventStoreList.AddRange(qCChallengeDialog.DomainEvents.Select(t => new EventStoreRecord() { Id = t.EventId, EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -131,8 +126,8 @@ public static class DBContext_Ext
|
||||
{
|
||||
var checkChallengeDialog = entry.Entity;
|
||||
|
||||
//跟踪的方式查询 不会查询数据库多次
|
||||
var findSubjectVisit = dbContext.SubjectVisit.Find(checkChallengeDialog.SubjectVisitId).IfNullThrowException();
|
||||
var findSubjectVisit = dbContext.SubjectVisit.Where(t => t.Id == checkChallengeDialog.SubjectVisitId)
|
||||
.Select(t => new { IsEnrollmentConfirm = t.IsEnrollmentConfirm, PDState = t.PDState, t.Id, t.TrialId }).FirstOrDefault().IfNullThrowException();
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if ((findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress))
|
||||
@@ -159,34 +154,35 @@ public static class DBContext_Ext
|
||||
{
|
||||
var taskMedicalReview = entry.Entity;
|
||||
|
||||
//跟踪的方式查询 不会查询数据库多次
|
||||
var findVisitTask = dbContext.VisitTask.Find(taskMedicalReview.VisitTaskId).IfNullThrowException();
|
||||
|
||||
var findSubjectVisit = new SubjectVisit();
|
||||
if (findVisitTask.SourceSubjectVisitId != null)
|
||||
if (entry.State == EntityState.Added)
|
||||
{
|
||||
findSubjectVisit = dbContext.SubjectVisit.Find(findVisitTask.SourceSubjectVisitId);
|
||||
}
|
||||
else
|
||||
{
|
||||
var readMoudule = dbContext.ReadModule.Find(findVisitTask.SouceReadModuleId);
|
||||
findSubjectVisit = dbContext.SubjectVisit.Find(readMoudule.SubjectVisitId);
|
||||
}
|
||||
var findVisitTask = dbContext.VisitTask.Where(t => t.Id == taskMedicalReview.VisitTaskId).Select(t => new { t.SourceSubjectVisitId, t.SouceReadModuleId }).FirstOrDefault().IfNullThrowException();
|
||||
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if (findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress)
|
||||
{
|
||||
|
||||
if (entry.State == EntityState.Added)
|
||||
var findSubjectVisit = new EnrollmentConfirmAndPD();
|
||||
if (findVisitTask.SourceSubjectVisitId != null)
|
||||
{
|
||||
taskMedicalReview.AddDomainEvent(new UrgentMedicalReviewAddedEvent() { MedicalReviewId = taskMedicalReview.Id, VisitTaskId = taskMedicalReview.VisitTaskId });
|
||||
findSubjectVisit = dbContext.SubjectVisit.Where(t => t.Id == findVisitTask.SourceSubjectVisitId)
|
||||
.Select(t => new EnrollmentConfirmAndPD { IsEnrollmentConfirm = t.IsEnrollmentConfirm, PDState = t.PDState }).FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
var subjectVisitId = dbContext.ReadModule.Where(t => t.Id == findVisitTask.SouceReadModuleId).Select(t => t.SubjectVisitId).FirstOrDefault();
|
||||
|
||||
findSubjectVisit = dbContext.SubjectVisit.Where(t => t.Id == subjectVisitId)
|
||||
.Select(t => new EnrollmentConfirmAndPD { IsEnrollmentConfirm = t.IsEnrollmentConfirm, PDState = t.PDState }).FirstOrDefault();
|
||||
}
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(taskMedicalReview.DomainEvents.Select(t => new EventStoreRecord() { Id = t.EventId, EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if (findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress)
|
||||
{
|
||||
|
||||
taskMedicalReview.AddDomainEvent(new UrgentMedicalReviewAddedEvent() { MedicalReviewId = taskMedicalReview.Id, VisitTaskId = taskMedicalReview.VisitTaskId });
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(taskMedicalReview.DomainEvents.Select(t => new EventStoreRecord() { Id = t.EventId, EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//医学反馈
|
||||
@@ -194,17 +190,22 @@ public static class DBContext_Ext
|
||||
{
|
||||
var readingMedicalReviewDialog = entry.Entity;
|
||||
|
||||
//跟踪的方式查询 不会查询数据库多次
|
||||
var findVisitTask = dbContext.VisitTask.Find(readingMedicalReviewDialog.VisitTaskId).IfNullThrowException();
|
||||
var findSubjectVisit = new SubjectVisit();
|
||||
|
||||
|
||||
var findVisitTask = dbContext.VisitTask.Where(t => t.Id == readingMedicalReviewDialog.VisitTaskId).Select(t => new { t.SourceSubjectVisitId, t.SouceReadModuleId }).FirstOrDefault().IfNullThrowException();
|
||||
|
||||
var findSubjectVisit = new EnrollmentConfirmAndPD();
|
||||
if (findVisitTask.SourceSubjectVisitId != null)
|
||||
{
|
||||
findSubjectVisit = dbContext.SubjectVisit.Find(findVisitTask.SourceSubjectVisitId);
|
||||
findSubjectVisit = dbContext.SubjectVisit.Where(t => t.Id == findVisitTask.SourceSubjectVisitId)
|
||||
.Select(t => new EnrollmentConfirmAndPD { IsEnrollmentConfirm = t.IsEnrollmentConfirm, PDState = t.PDState }).FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
var readMoudule = dbContext.ReadModule.Find(findVisitTask.SouceReadModuleId);
|
||||
findSubjectVisit = dbContext.SubjectVisit.Find(readMoudule.SubjectVisitId);
|
||||
var subjectVisitId = dbContext.ReadModule.Where(t => t.Id == findVisitTask.SouceReadModuleId).Select(t => t.SubjectVisitId).FirstOrDefault();
|
||||
|
||||
findSubjectVisit = dbContext.SubjectVisit.Where(t => t.Id == subjectVisitId)
|
||||
.Select(t => new EnrollmentConfirmAndPD { IsEnrollmentConfirm = t.IsEnrollmentConfirm, PDState = t.PDState }).FirstOrDefault();
|
||||
}
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
@@ -231,39 +232,50 @@ public static class DBContext_Ext
|
||||
{
|
||||
|
||||
var visitTask = entry.Entity;
|
||||
var findSubjectVisit = new SubjectVisit();
|
||||
|
||||
if (visitTask.SourceSubjectVisitId != null)
|
||||
{
|
||||
findSubjectVisit = dbContext.SubjectVisit.Find(visitTask.SourceSubjectVisitId).IfNullThrowException();
|
||||
}
|
||||
else
|
||||
{
|
||||
var readMoudule = dbContext.ReadModule.Find(visitTask.SouceReadModuleId).IfNullThrowException();
|
||||
findSubjectVisit = dbContext.SubjectVisit.Find(readMoudule.SubjectVisitId).IfNullThrowException();
|
||||
}
|
||||
var originReReadingApplyState = entry.Property(p => p.ReReadingApplyState).OriginalValue;
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if (findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress)
|
||||
if (originReReadingApplyState == ReReadingApplyState.Default && visitTask.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed)
|
||||
{
|
||||
var originReReadingApplyState = entry.Property(p => p.ReReadingApplyState).OriginalValue;
|
||||
var findSubjectVisit = new EnrollmentConfirmAndPD();
|
||||
|
||||
if (originReReadingApplyState == ReReadingApplyState.Default && visitTask.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed)
|
||||
if (visitTask.SourceSubjectVisitId != null)
|
||||
{
|
||||
visitTask.AddDomainEvent(new UrgentIRApplyedReReading() { VisitTaskId = visitTask.Id });
|
||||
findSubjectVisit = dbContext.SubjectVisit.Where(t => t.Id == visitTask.SourceSubjectVisitId)
|
||||
.Select(t => new EnrollmentConfirmAndPD { IsEnrollmentConfirm = t.IsEnrollmentConfirm, PDState = t.PDState }).FirstOrDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
var subjectVisitId = dbContext.ReadModule.Where(t => t.Id == visitTask.SouceReadModuleId).Select(t => t.SubjectVisitId).FirstOrDefault();
|
||||
|
||||
findSubjectVisit = dbContext.SubjectVisit.Where(t => t.Id == subjectVisitId)
|
||||
.Select(t => new EnrollmentConfirmAndPD { IsEnrollmentConfirm = t.IsEnrollmentConfirm, PDState = t.PDState }).FirstOrDefault();
|
||||
}
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(visitTask.DomainEvents.Select(t => new EventStoreRecord() { Id = t.EventId, EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if (findSubjectVisit.IsEnrollmentConfirm || findSubjectVisit.PDState == PDStateEnum.PDProgress)
|
||||
{
|
||||
|
||||
visitTask.AddDomainEvent(new UrgentIRApplyedReReading() { VisitTaskId = visitTask.Id });
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(visitTask.DomainEvents.Select(t => new EventStoreRecord() { Id = t.EventId, EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
//跟随事务一起保存数据库
|
||||
dbContext.EventStoreRecord.AddRange(eventStoreList);
|
||||
}
|
||||
|
||||
public class EnrollmentConfirmAndPD
|
||||
{
|
||||
public bool IsEnrollmentConfirm { get; set; }
|
||||
|
||||
public PDStateEnum PDState { get; set; }
|
||||
}
|
||||
#region 暂时废弃
|
||||
/// <summary>
|
||||
/// 暂时废弃,没有场景使用
|
||||
|
||||
Reference in New Issue
Block a user