入组或者PD 增加触发和消费者
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
2d1785f513
commit
9ad11b16d1
|
@ -12727,6 +12727,21 @@
|
|||
<param name="_trialRepository"></param>
|
||||
<param name="_mapper"></param>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.UrgentMedicalReviewAddedEventConsumer">
|
||||
<summary>
|
||||
加急的医学反馈任务 通知MIM
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.UrgentMIMRepliedMedicalReviewConsumer">
|
||||
<summary>
|
||||
MIM 回复医学返回通知IR
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.UrgentIRApplyedReReadingConsumer">
|
||||
<summary>
|
||||
加急阅片 IR 申请重阅
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.UserSiteSurveySubmitedEventConsumer">
|
||||
<summary>
|
||||
用户提交 发送邮件 通知SPM 或者PM
|
||||
|
@ -12742,6 +12757,36 @@
|
|||
调研表驳回发送邮件 之前已有,需要迁移过来
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.CRCSubmitedAndQCToAuditEventConsumer">
|
||||
<summary>
|
||||
CRC 提交了 通知QC进行质控
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.CRCRepliedQCChallengeEventConsumer">
|
||||
<summary>
|
||||
CRC 回复质控质疑 通知QC
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.QCRepliedQCChallengeEventConsumer">
|
||||
<summary>
|
||||
QC回复 质控质疑,通知CRC
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.CRCRepliedCheckChallengeEventConsumer">
|
||||
<summary>
|
||||
CRC 回复一致性核查质疑 通知PM
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.PMRepliedCheckChallengeEventConsumer">
|
||||
<summary>
|
||||
PM 一致性核查 通知CRC
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.CheckStateChangedToAuditEventConsumer">
|
||||
<summary>
|
||||
通知PM 进行一致性核查
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.MediatorHttpContextScopeFilterExtensions">
|
||||
<summary>
|
||||
参考链接:https://github.com/MassTransit/MassTransit/discussions/2498
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
using IRaCIS.Core.Application.MassTransit.Command;
|
||||
using IRaCIS.Core.Domain;
|
||||
using IRaCIS.Core.Domain.BaseModel;
|
||||
using MassTransit;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IRaCIS.Core.Application.MassTransit.Consumer;
|
||||
|
||||
/// <summary>
|
||||
/// 加急的医学反馈任务 通知MIM
|
||||
/// </summary>
|
||||
public class UrgentMedicalReviewAddedEventConsumer : IConsumer<UrgentMedicalReviewAddedEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<UrgentMedicalReviewAddedEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
//IR 回复医学反馈通知MIM
|
||||
public class UrgentIRRepliedMedicalReviewConsumer : IConsumer<UrgentIRRepliedMedicalReview>
|
||||
{
|
||||
public Task Consume(ConsumeContext<UrgentIRRepliedMedicalReview> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
public class UrgentIRRepliedMedicalReview : DomainEvent
|
||||
{
|
||||
public Guid ReadingMedicalReviewDialogId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// MIM 回复医学返回通知IR
|
||||
/// </summary>
|
||||
public class UrgentMIMRepliedMedicalReviewConsumer : IConsumer<UrgentMIMRepliedMedicalReview>
|
||||
{
|
||||
public Task Consume(ConsumeContext<UrgentMIMRepliedMedicalReview> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 加急阅片 IR 申请重阅
|
||||
/// </summary>
|
||||
public class UrgentIRApplyedReReadingConsumer : IConsumer<UrgentIRApplyedReReading>
|
||||
{
|
||||
public Task Consume(ConsumeContext<UrgentIRApplyedReReading> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
|
@ -8,41 +8,38 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IRaCIS.Core.Application.MassTransit.Consumer
|
||||
namespace IRaCIS.Core.Application.MassTransit.Consumer;
|
||||
|
||||
/// <summary>
|
||||
/// 用户提交 发送邮件 通知SPM 或者PM
|
||||
/// </summary>
|
||||
public class UserSiteSurveySubmitedEventConsumer : IConsumer<UserSiteSurveySubmitedEvent>
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户提交 发送邮件 通知SPM 或者PM
|
||||
/// </summary>
|
||||
public class UserSiteSurveySubmitedEventConsumer : IConsumer<UserSiteSurveySubmitedEvent>
|
||||
public Task Consume(ConsumeContext<UserSiteSurveySubmitedEvent> context)
|
||||
{
|
||||
public Task Consume(ConsumeContext<UserSiteSurveySubmitedEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 调研表初审通过,进行复审发送邮件
|
||||
/// </summary>
|
||||
public class SiteSurveySPMSubmitedEventConsumer : IConsumer<SiteSurveySPMSubmitedEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<SiteSurveySPMSubmitedEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 调研表驳回发送邮件 之前已有,需要迁移过来
|
||||
/// </summary>
|
||||
public class SiteSurverRejectedEventConsumer : IConsumer<SiteSurverRejectedEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<SiteSurverRejectedEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 调研表初审通过,进行复审发送邮件
|
||||
/// </summary>
|
||||
public class SiteSurveySPMSubmitedEventConsumer : IConsumer<SiteSurveySPMSubmitedEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<SiteSurveySPMSubmitedEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 调研表驳回发送邮件 之前已有,需要迁移过来
|
||||
/// </summary>
|
||||
public class SiteSurverRejectedEventConsumer : IConsumer<SiteSurverRejectedEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<SiteSurverRejectedEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
using IRaCIS.Core.Application.MassTransit.Command;
|
||||
using IRaCIS.Core.Domain;
|
||||
using IRaCIS.Core.Domain.BaseModel;
|
||||
using MassTransit;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IRaCIS.Core.Application.MassTransit.Consumer;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CRC 提交了 通知QC进行质控
|
||||
/// </summary>
|
||||
public class CRCSubmitedAndQCToAuditEventConsumer : IConsumer<CRCSubmitedAndQCToAuditEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<CRCSubmitedAndQCToAuditEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CRC 回复质控质疑 通知QC
|
||||
/// </summary>
|
||||
public class CRCRepliedQCChallengeEventConsumer : IConsumer<CRCRepliedQCChallengeEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<CRCRepliedQCChallengeEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// QC回复 质控质疑,通知CRC
|
||||
/// </summary>
|
||||
public class QCRepliedQCChallengeEventConsumer : IConsumer<QCRepliedQCChallengeEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<QCRepliedQCChallengeEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CRC 回复一致性核查质疑 通知PM
|
||||
/// </summary>
|
||||
public class CRCRepliedCheckChallengeEventConsumer : IConsumer<CRCRepliedCheckChallengeEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<CRCRepliedCheckChallengeEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// PM 一致性核查 通知CRC
|
||||
/// </summary>
|
||||
public class PMRepliedCheckChallengeEventConsumer : IConsumer<PMRepliedCheckChallengeEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<PMRepliedCheckChallengeEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 通知PM 进行一致性核查
|
||||
/// </summary>
|
||||
public class CheckStateChangedToAuditEventConsumer : IConsumer<CheckStateChangedToAuditEvent>
|
||||
{
|
||||
public Task Consume(ConsumeContext<CheckStateChangedToAuditEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
using IRaCIS.Core.Domain.BaseModel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IRaCIS.Core.Domain;
|
||||
|
||||
/// <summary>
|
||||
/// 加急的医学反馈任务 通知MIM
|
||||
/// </summary>
|
||||
public class UrgentMedicalReviewAddedEvent : DomainEvent
|
||||
{
|
||||
public Guid VisitTaskId { get; set; }
|
||||
public Guid MedicalReviewId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
//IR 回复医学反馈通知MIM
|
||||
public class UrgentIRRepliedMedicalReview : DomainEvent
|
||||
{
|
||||
public Guid ReadingMedicalReviewDialogId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// MIM 回复医学返回通知IR
|
||||
/// </summary>
|
||||
public class UrgentMIMRepliedMedicalReview : DomainEvent
|
||||
{
|
||||
public Guid ReadingMedicalReviewDialogId { get; set; }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 加急阅片 IR 申请重阅
|
||||
/// </summary>
|
||||
public class UrgentIRApplyedReReading : DomainEvent
|
||||
{
|
||||
public Guid VisitTaskId { get; set; }
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IRaCIS.Core.Domain._DomainEvent
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
using IRaCIS.Core.Domain.BaseModel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IRaCIS.Core.Domain;
|
||||
|
||||
/// <summary>
|
||||
/// CRC 提交了 通知QC进行质控
|
||||
/// </summary>
|
||||
public class CRCSubmitedAndQCToAuditEvent : DomainEvent
|
||||
{
|
||||
public Guid SubjectVisitId { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CRC 回复质控质疑 通知QC
|
||||
/// </summary>
|
||||
public class CRCRepliedQCChallengeEvent : DomainEvent
|
||||
{
|
||||
public Guid QCChallengeDialogId { get; set; }
|
||||
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
public Guid SubjectVisitId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// QC回复 质控质疑,通知CRC
|
||||
/// </summary>
|
||||
public class QCRepliedQCChallengeEvent : DomainEvent
|
||||
{
|
||||
public Guid QCChallengeDialogId { get; set; }
|
||||
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
public Guid SubjectVisitId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CRC 回复一致性核查质疑 通知PM
|
||||
/// </summary>
|
||||
public class CRCRepliedCheckChallengeEvent : DomainEvent
|
||||
{
|
||||
public Guid CheckChallengeDialogId { get; set; }
|
||||
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
public Guid SubjectVisitId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CRC 回复一致性核查质疑 通知PM
|
||||
/// </summary>
|
||||
public class PMRepliedCheckChallengeEvent : DomainEvent
|
||||
{
|
||||
public Guid CheckChallengeDialogId { get; set; }
|
||||
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
public Guid SubjectVisitId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 通知PM 进行一致性核查
|
||||
/// </summary>
|
||||
public class CheckStateChangedToAuditEvent : DomainEvent
|
||||
{
|
||||
public Guid SubjectVisitId { get; set; }
|
||||
|
||||
}
|
|
@ -5,23 +5,21 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IRaCIS.Core.Domain
|
||||
namespace IRaCIS.Core.Domain;
|
||||
|
||||
public class UserSiteSurveySubmitedEvent:DomainEvent
|
||||
{
|
||||
public class UserSiteSurveySubmitedEvent:DomainEvent
|
||||
{
|
||||
public Guid TrialSiteSurveyId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class SiteSurveySPMSubmitedEvent : DomainEvent
|
||||
{
|
||||
public Guid TrialSiteSurveyId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class SiteSurverRejectedEvent : DomainEvent
|
||||
{
|
||||
public Guid TrialSiteSurveyId { get; set; }
|
||||
}
|
||||
public Guid TrialSiteSurveyId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class SiteSurveySPMSubmitedEvent : DomainEvent
|
||||
{
|
||||
public Guid TrialSiteSurveyId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class SiteSurverRejectedEvent : DomainEvent
|
||||
{
|
||||
public Guid TrialSiteSurveyId { get; set; }
|
||||
}
|
||||
|
|
|
@ -70,21 +70,173 @@ public static class DBContext_Ext
|
|||
//入组或者PD 才执行下面的逻辑
|
||||
if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView)
|
||||
{
|
||||
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 &&
|
||||
originAuditState == AuditStateEnum.None && subjectVisit.AuditState == AuditStateEnum.ToAudit
|
||||
)
|
||||
{
|
||||
subjectVisit.AddDomainEvent(new CRCSubmitedAndQCToAuditEvent() { SubjectVisitId = subjectVisit.Id });
|
||||
}
|
||||
|
||||
//一致性核查通知PM发送邮件
|
||||
if (originCheckState == CheckStateEnum.None && subjectVisit.CheckState == CheckStateEnum.ToCheck
|
||||
)
|
||||
{
|
||||
subjectVisit.AddDomainEvent(new CheckStateChangedToAuditEvent() { SubjectVisitId = subjectVisit.Id });
|
||||
}
|
||||
|
||||
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(subjectVisit.DomainEvents.Select(t => new EventStoreRecord() { EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
foreach (var entry in changeTracker.Entries<QCChallengeDialog>())
|
||||
{
|
||||
var qCChallengeDialog = entry.Entity;
|
||||
|
||||
//跟踪的方式查询 不会查询数据库多次
|
||||
var findSubjectVisit = dbContext.SubjectVisit.Find(qCChallengeDialog.SubjectVisitId);
|
||||
var findTrial = dbContext.Trial.Find(findSubjectVisit.TrialId);
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView)
|
||||
{
|
||||
//CRC 针对质控质疑进行回复
|
||||
if (entry.State == EntityState.Added && qCChallengeDialog.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator)
|
||||
{
|
||||
qCChallengeDialog.AddDomainEvent(new CRCRepliedQCChallengeEvent() { QCChallengeDialogId = qCChallengeDialog.Id, SubjectVisitId = findSubjectVisit.Id, TrialId = findSubjectVisit.TrialId });
|
||||
}
|
||||
//QC 针对质控质疑进行回复
|
||||
else if (entry.State == EntityState.Added && qCChallengeDialog.UserTypeEnum == UserTypeEnum.IQC)
|
||||
{
|
||||
qCChallengeDialog.AddDomainEvent(new QCRepliedQCChallengeEvent() { QCChallengeDialogId = qCChallengeDialog.Id, SubjectVisitId = findSubjectVisit.Id, TrialId = findSubjectVisit.TrialId });
|
||||
|
||||
}
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(qCChallengeDialog.DomainEvents.Select(t => new EventStoreRecord() { EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach (var entry in changeTracker.Entries<CheckChallengeDialog>())
|
||||
{
|
||||
var checkChallengeDialog = entry.Entity;
|
||||
|
||||
//跟踪的方式查询 不会查询数据库多次
|
||||
var findSubjectVisit = dbContext.SubjectVisit.Find(checkChallengeDialog.SubjectVisitId);
|
||||
var findTrial = dbContext.Trial.Find(findSubjectVisit.TrialId);
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView)
|
||||
{
|
||||
//CRC 针对质控质疑进行回复
|
||||
if (entry.State == EntityState.Added && checkChallengeDialog.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator)
|
||||
{
|
||||
checkChallengeDialog.AddDomainEvent(new CRCRepliedCheckChallengeEvent() { CheckChallengeDialogId = checkChallengeDialog.Id, SubjectVisitId = findSubjectVisit.Id, TrialId = findSubjectVisit.TrialId });
|
||||
}
|
||||
else if (entry.State == EntityState.Added && checkChallengeDialog.UserTypeEnum == UserTypeEnum.ProjectManager)
|
||||
{
|
||||
checkChallengeDialog.AddDomainEvent(new PMRepliedCheckChallengeEvent() { CheckChallengeDialogId = checkChallengeDialog.Id, SubjectVisitId = findSubjectVisit.Id, TrialId = findSubjectVisit.TrialId });
|
||||
}
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(checkChallengeDialog.DomainEvents.Select(t => new EventStoreRecord() { EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//医学审核任务
|
||||
foreach (var entry in changeTracker.Entries<TaskMedicalReview>())
|
||||
{
|
||||
var taskMedicalReview = entry.Entity;
|
||||
|
||||
//跟踪的方式查询 不会查询数据库多次
|
||||
var findVisitTask = dbContext.VisitTask.Find(taskMedicalReview.VisitTaskId);
|
||||
var findTrial = dbContext.Trial.Find(findVisitTask.TrialId);
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView)
|
||||
{
|
||||
|
||||
if (entry.State == EntityState.Added)
|
||||
{
|
||||
taskMedicalReview.AddDomainEvent(new UrgentMedicalReviewAddedEvent() { MedicalReviewId = taskMedicalReview.Id, VisitTaskId = taskMedicalReview.VisitTaskId });
|
||||
}
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(taskMedicalReview.DomainEvents.Select(t => new EventStoreRecord() { EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//医学反馈
|
||||
foreach (var entry in changeTracker.Entries<ReadingMedicalReviewDialog>())
|
||||
{
|
||||
var readingMedicalReviewDialog = entry.Entity;
|
||||
|
||||
//跟踪的方式查询 不会查询数据库多次
|
||||
var findVisitTask = dbContext.VisitTask.Find(readingMedicalReviewDialog.VisitTaskId);
|
||||
var findTrial = dbContext.Trial.Find(findVisitTask.TrialId);
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView)
|
||||
{
|
||||
if (entry.State == EntityState.Added && readingMedicalReviewDialog.UserTypeEnumInt == (int)UserTypeEnum.MIM)
|
||||
{
|
||||
readingMedicalReviewDialog.AddDomainEvent(new UrgentMIMRepliedMedicalReview() { ReadingMedicalReviewDialogId = readingMedicalReviewDialog.Id });
|
||||
}
|
||||
else if (entry.State == EntityState.Added && readingMedicalReviewDialog.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
|
||||
{
|
||||
readingMedicalReviewDialog.AddDomainEvent(new UrgentIRRepliedMedicalReview() { ReadingMedicalReviewDialogId = readingMedicalReviewDialog.Id });
|
||||
}
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(readingMedicalReviewDialog.DomainEvents.Select(t => new EventStoreRecord() { EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//任务 申请重阅ReReadingApplyState
|
||||
|
||||
foreach (var entry in changeTracker.Entries<VisitTask>())
|
||||
{
|
||||
|
||||
var visitTask = entry.Entity;
|
||||
|
||||
//跟踪的方式查询 不会查询数据库多次
|
||||
var findTrial = dbContext.Trial.Find(visitTask.TrialId);
|
||||
|
||||
//入组或者PD 才执行下面的逻辑
|
||||
if (findTrial != null && findTrial.IsEnrollementQualificationConfirm && findTrial.IsPDProgressView)
|
||||
{
|
||||
var originReReadingApplyState = entry.Property(p => p.ReReadingApplyState).OriginalValue;
|
||||
|
||||
if (originReReadingApplyState == ReReadingApplyState.Default && visitTask.ReReadingApplyState == ReReadingApplyState.DocotorHaveApplyed)
|
||||
{
|
||||
visitTask.AddDomainEvent(new UrgentIRApplyedReReading() { VisitTaskId = visitTask.Id });
|
||||
}
|
||||
|
||||
//添加进记录
|
||||
eventStoreList.AddRange(visitTask.DomainEvents.Select(t => new EventStoreRecord() { EventType = t.GetType().Name, EventData = t.ToJsonStr() }));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
//跟随事务一起保存数据库
|
||||
dbContext.EventStoreRecord.AddRange(eventStoreList);
|
||||
dbContext.EventStoreRecord.AddRange(eventStoreList);
|
||||
}
|
||||
|
||||
|
||||
#region 暂时废弃
|
||||
/// <summary>
|
||||
/// 暂时废弃,没有场景使用
|
||||
|
@ -128,6 +280,4 @@ public static class DBContext_Ext
|
|||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue