修改提示

Uat_Study
hang 2022-06-28 16:47:55 +08:00
parent ede9e552eb
commit 78b3633dbb
5 changed files with 82 additions and 15 deletions

View File

@ -17,26 +17,28 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid Id { get; set; }
public Guid TrialId { get; set; }
public string TaskCode { get; set; }
public string TaskName { get; set; }
public string TaskBlindName { get; set; }
public ReadingCategory ReadingCategory { get; set; }
public TaskAllocationState TaskAllocationState { get; set; }
public TaskState TaskState { get; set; }
public bool IsJudgeTaskReturn { get; set; }
//public bool IsJudgeTaskReturn { get; set; }
//public DateTime? CheckPassedTime { get; set; }
public DateTime? AllocateTime { get; set; }
public Guid SubjectId { get; set; }
public string TaskCode { get; set; }
public bool IsUrgent { get; set; }
public Arm ArmEnum { get; set; }
public Guid? DoctorUserId { get; set; }
public TaskState TaskState { get; set; }
public Guid CreateUserId { get; set; }
public DateTime CreateTime { get; set; }
@ -209,12 +211,23 @@ namespace IRaCIS.Core.Application.ViewModel
{
public Guid TrialId { get; set; }
public Guid AnalysisDoctorUserId { get; set; }
public Guid? CompareDoctorUserId { get; set; }
public int IntervalWeeks { get; set; }
public bool IsHaveReadingPeriod { get; set; }
public Guid? SiteId { get; set; }
public int? VisitCount { get; set; }
public Guid? SubjectId { get; set; }
public int? SubjectCount { get; set; }
//public int? SubjectCount { get; set; }
}
@ -226,6 +239,28 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid SubjectId { get; set; }
public String TrialSiteCode { get; set; } = String.Empty;
public string SubjectCode { get; set; } = String.Empty;
public int? VisitValidTaskCount { get; set; }
public int? VisitValidCount => VisitTaskList.Count();
public List<VisitTaskSimpleView> VisitTaskList { get; set; }
}
public class VisitTaskSimpleView
{
public Guid Id { get; set; }
public Guid TrialId { get; set; }
public string TaskCode { get; set; }
public string TaskName { get; set; }
public string TaskBlindName { get; set; }
public ReadingCategory ReadingCategory { get; set; }
public TaskAllocationState TaskAllocationState { get; set; }
public TaskState TaskState { get; set; }
}

View File

@ -228,10 +228,42 @@ namespace IRaCIS.Core.Application.Service
}
//public async Task<List<SelfConsistentView>> GetSelfConsistentList(SelfConsistentQuery inQuery)
//{
public async Task<List<SelfConsistentView>> GetSelfConsistentList(SelfConsistentQuery inQuery)
{
var query = _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && t.DoctorUserId == inQuery.AnalysisDoctorUserId)
.Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect)
.Where(t => t.SignTime!.Value.AddDays(inQuery.IntervalWeeks * 7 + 1) > DateTime.Now)
//重阅产生的访视任务 要把之前的访视任务去除
.Where(t => t.ReReadingApplyState != ReReadingApplyState.Agree)
.WhereIf(inQuery.IsHaveReadingPeriod == false, t => t.ReadingCategory == ReadingCategory.Visit)
.WhereIf(inQuery.IsHaveReadingPeriod == true, t => t.ReadingCategory == ReadingCategory.Visit || t.ReadingCategory == ReadingCategory.Global)
.GroupBy(t => new { t.SubjectId, t.Subject.SiteId, t.Subject.Code, t.TrialId, t.Subject.TrialSite.TrialSiteCode })
.Select(g => new SelfConsistentView()
{
SubjectId = g.Key.SubjectId,
TrialId = g.Key.TrialId,
SubjectCode = g.Key.Code,
TrialSiteCode = g.Key.TrialSiteCode,
SiteId = g.Key.SiteId,
//}
VisitTaskList = g.OrderBy(t=>t.SubjectVisit.VisitNum).Select(c=>new VisitTaskSimpleView()
{
Id=c.Id,
ReadingCategory=c.ReadingCategory,
TaskAllocationState=c.TaskAllocationState,
TaskBlindName=c.TaskBlindName,
TaskCode =c.TaskCode,
TaskName=c.TaskName,
TaskState=c.TaskState,
TrialId=c.TrialId
}).ToList(),
VisitValidTaskCount = g.Count()
});
return query.ToList();
}
@ -616,7 +648,7 @@ namespace IRaCIS.Core.Application.Service
}
else
{
throw new BusinessValidationFailedException("当前提交 Subject 以及医生所在Arm 与任务的Arm不一致,无法绑定,请核对数据");
throw new BusinessValidationFailedException("在配置表中未找到配置的医生,无法应用绑定,请核对数据");
}
}

View File

@ -88,7 +88,7 @@ namespace IRaCIS.Core.Infra.EFCore
//modelBuilder.HasDbFunction(typeof(DbContext).GetMethod(nameof(GetTableList)));
modelBuilder.Entity<TaskAllocationRule>().HasMany(t => t.DoctorVisitTaskList).WithOne(t => t.DoctorTaskAllocationRule).HasForeignKey(t=>t.DoctorUserId).HasPrincipalKey(u=>u.DoctorUserId);
modelBuilder.Entity<TaskAllocationRule>().HasMany(t => t.DoctorVisitTaskList).WithOne(t => t.DoctorTaskAllocationRule).HasForeignKey(t=> new { t.DoctorUserId,t.TrialId } ).HasPrincipalKey(u=> new { u.DoctorUserId,u.TrialId });
modelBuilder.Entity<SubjectUser>().HasMany(t => t.SubjectArmVisitTaskList).WithOne(t=>t.SujectArm).HasForeignKey(t => new { t.SubjectId,t.ArmEnum}).HasPrincipalKey(u => new { u.SubjectId,u.ArmEnum });
modelBuilder.Entity<VisitTask>().HasMany(t => t.JudgeVisitList).WithOne(t=>t.JudgeVisitTask);