修改PI 审核
parent
6b1a6a81eb
commit
4ba2aa4769
|
@ -200,8 +200,16 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
//任务来源访视Id 方便回更访视读片状态
|
||||
public Guid? SourceSubjectVisitId { get; set; }
|
||||
public Guid? SouceReadModuleId { get; set; }
|
||||
|
||||
|
||||
|
||||
public List<PIReadingResult> PIReadingResultList { get; set; }
|
||||
}
|
||||
|
||||
public class PIReadingResult
|
||||
{
|
||||
public string QuestionName { get; set; }
|
||||
|
||||
public string Answer { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
@ -478,7 +486,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
|
||||
public Guid CreateUserId { get; set; }
|
||||
|
||||
public string CreateUserName { get; set; }
|
||||
public string CreateUserName { get; set; }
|
||||
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
|
|
@ -362,7 +362,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
public async Task<IResponseOutput<PageOutput<ReadingTaskView>>> GetReadingTaskList(VisitTaskQuery queryVisitTask)
|
||||
{
|
||||
var visitTaskQueryable = GetReadingTaskQueryable(queryVisitTask)
|
||||
.ProjectTo<ReadingTaskView>(_mapper.ConfigurationProvider);
|
||||
.ProjectTo<ReadingTaskView>(_mapper.ConfigurationProvider,new { isEn_Us =_userInfo.IsEn_Us });
|
||||
|
||||
var defalutSortArray = new string[] { nameof(VisitTask.IsUrgent) + " desc", nameof(VisitTask.SubjectId), nameof(VisitTask.VisitTaskNum) };
|
||||
|
||||
|
|
|
@ -74,14 +74,16 @@ namespace IRaCIS.Core.Application.Service
|
|||
.ForMember(o => o.PDState, t => t.MapFrom(u => u.SourceSubjectVisit.PDState)) ;
|
||||
|
||||
|
||||
|
||||
var isEn_Us = true;
|
||||
|
||||
CreateMap<VisitTask, JudgeVisitTaskView>().IncludeBase<VisitTask, VisitTaskView>()
|
||||
|
||||
|
||||
.ForMember(o => o.HistoryReadingDoctorUserList, t => t.MapFrom(u => u.JudgeVisitList));
|
||||
|
||||
CreateMap<VisitTask, ReadingTaskView>().IncludeBase<VisitTask, VisitTaskView>();
|
||||
CreateMap<VisitTask, ReadingTaskView>().IncludeBase<VisitTask, VisitTaskView>()
|
||||
.ForMember(t=>t.PIReadingResultList,u=>u.MapFrom(c=>c.ReadingTaskQuestionAnswerList
|
||||
.Where(t=>t.ReadingQuestionTrial.IsJudgeQuestion==true ).Select(d=>new PIReadingResult() { QuestionName= isEn_Us?d.ReadingQuestionTrial.QuestionEnName:d.ReadingQuestionTrial.QuestionName,Answer=d.Answer})));
|
||||
|
||||
CreateMap<VisitTask, PIReaingTaskView>().IncludeBase<VisitTask, ReadingTaskView>()
|
||||
.ForMember(o => o.FirstAuditUserName, t => t.MapFrom(u => u.FirstAuditUser.UserName))
|
||||
|
|
|
@ -29,6 +29,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
Task SendTrialQCQuestionEmailAsync(Guid trialId);
|
||||
Task SendTrialImageQuestionAsync(Guid trialId);
|
||||
Task SendPIAuditResultAsync(Guid visitTaskId);
|
||||
}
|
||||
|
||||
public class EmailSendService : BaseService, IEmailSendService
|
||||
|
@ -299,8 +300,9 @@ namespace IRaCIS.Core.Application.Service
|
|||
var isEn_us = _userInfo.IsEn_Us;
|
||||
|
||||
var info = await _repository.Where<VisitTask>(t => t.Id == visitTaskId, ignoreQueryFilters: true).Select(t => new { t.TrialId, t.Trial.ResearchProgramNo, t.Trial.TrialCode, t.SourceSubjectVisit.VisitName, t.Subject.Code }).FirstOrDefaultAsync();
|
||||
var answerList= await _repository.Where<VisitTask>(t => t.Id == visitTaskId, ignoreQueryFilters: true).SelectMany(t=>t.ReadingTaskQuestionAnswerList).Select(t=>new { QuestionName= isEn_us? t.ReadingQuestionTrial.QuestionEnName:t.ReadingQuestionTrial.QuestionName,t.Answer}).ToListAsync();
|
||||
|
||||
|
||||
//var template = " <div style=\"margin-left: 2ch;\"> Role: {2} </div>";
|
||||
var piResult=string.Empty;
|
||||
|
||||
Func<TrialEmailNoticeConfig, (string topicStr, string htmlBodyStr, bool isEn_us, Guid? onlyToUserId)> topicAndHtmlFunc = trialEmailConfig =>
|
||||
|
|
|
@ -10,33 +10,33 @@ using System.Linq.Expressions;
|
|||
namespace IRaCIS.Core.Application.Triggers
|
||||
{
|
||||
|
||||
public class VisitTaskIAfterSignTrigger : IAfterSaveTrigger<VisitTask>
|
||||
public class VisitTaskIAfterSignTrigger : IAfterSaveTrigger<VisitTask>,IBeforeSaveTrigger<VisitTask>
|
||||
{
|
||||
|
||||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||
|
||||
private readonly IRepository<Subject> _subjectRepository;
|
||||
private readonly IUserInfo _userInfo;
|
||||
private readonly IEmailSendService _emailSendService;
|
||||
|
||||
|
||||
|
||||
|
||||
public VisitTaskIAfterSignTrigger(IRepository<VisitTask> visitTaskRepository, IRepository<Subject> subjectRepository)
|
||||
public VisitTaskIAfterSignTrigger(IRepository<VisitTask> visitTaskRepository, IRepository<Subject> subjectRepository, IUserInfo userInfo, IEmailSendService emailSendService)
|
||||
{
|
||||
_visitTaskRepository = visitTaskRepository;
|
||||
_subjectRepository = subjectRepository;
|
||||
_userInfo = userInfo;
|
||||
|
||||
_emailSendService = emailSendService;
|
||||
}
|
||||
|
||||
|
||||
//添加任务的时候 如果需要签名 并且已经签名了
|
||||
public async Task AfterSave(ITriggerContext<VisitTask> context, CancellationToken cancellationToken)
|
||||
{
|
||||
var visitTask = context.Entity;
|
||||
|
||||
|
||||
if (visitTask.SignTime != null && visitTask.ReadingTaskState == ReadingTaskState.HaveSigned
|
||||
|
||||
//&& _subjectRepository.Where(t=>t.Id==visitTask.SubjectId).SelectMany(c=>c.SubjectVisitList)
|
||||
//.Any(t=>t.Id==visitTask.SourceSubjectVisitId && t.IsBaseLine)
|
||||
)
|
||||
if (visitTask.SignTime != null && visitTask.ReadingTaskState == ReadingTaskState.HaveSigned )
|
||||
{
|
||||
//任务阅片完成 自动释放
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == visitTask.SubjectId && t.TrialReadingCriterionId==visitTask.TrialReadingCriterionId , t=>new VisitTask() { SubjectCriterionClaimUserId=null});
|
||||
|
@ -45,6 +45,19 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
|
||||
}
|
||||
|
||||
public async Task BeforeSave(ITriggerContext<VisitTask> context, CancellationToken cancellationToken)
|
||||
{
|
||||
var visitTask = context.Entity;
|
||||
|
||||
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI)
|
||||
{
|
||||
visitTask.PIAuditState = PIAuditState.PIAgree;
|
||||
}
|
||||
|
||||
if (context.ChangeType == ChangeType.Modified && visitTask.PIAuditState!=context.UnmodifiedEntity.PIAuditState && visitTask.PIAuditState==PIAuditState.PIAgree)
|
||||
{
|
||||
await _emailSendService.SendPIAuditResultAsync(visitTask.Id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue