159 lines
9.8 KiB
C#
159 lines
9.8 KiB
C#
using AutoMapper;
|
|
using IRaCIS.Application.Contracts;
|
|
using IRaCIS.Core.Application.Contracts;
|
|
using IRaCIS.Core.Application.ViewModel;
|
|
using IRaCIS.Core.Domain.Models;
|
|
using IRaCIS.Core.Domain.Share;
|
|
|
|
namespace IRaCIS.Core.Application.Service
|
|
{
|
|
public class AllocationConfig : Profile
|
|
{
|
|
public AllocationConfig()
|
|
{
|
|
|
|
List<Guid> subjectIdList=new List<Guid> ();
|
|
|
|
CreateMap<TaskAllocationRule, TaskAllocationRuleView>()
|
|
.ForMember(o => o.UserCode, t => t.MapFrom(u => u.DoctorUser.UserCode))
|
|
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
|
.ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
|
|
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.DoctorUser.UserTypeRole.UserTypeShortName))
|
|
//.ForMember(o => o.ArmList, t => t.MapFrom(u => u.DoctorVisitTaskList.Where(c => c.TrialId == u.TrialId).Select(t => t.ArmEnum).Distinct()))
|
|
.ForMember(o => o.TotalTaskCount, t => t.MapFrom(u => u.Trial.VisitTaskList.Count()))
|
|
.ForMember(o => o.ApplyedTotalTaskCount, t => t.MapFrom(u => u.Trial.VisitTaskList.Count(t => t.DoctorUserId != null)))
|
|
.ForMember(o => o.WaitApplySelfTaskCount, t => t.MapFrom(u =>
|
|
subjectIdList.Count==0? u.Trial.SubjectDoctorUserList.Where(d => d.DoctorUserId == u.DoctorUserId).SelectMany(t => t.SubjectArmVisitTaskList.Where(t => t.DoctorUserId == null)).Count()
|
|
: u.Trial.SubjectDoctorUserList.Where(d => d.DoctorUserId == u.DoctorUserId && subjectIdList.Contains(d.SubjectId)).SelectMany(t => t.SubjectArmVisitTaskList.Where(t => t.DoctorUserId == null)).Count()
|
|
))
|
|
|
|
.ForMember(o => o.WaitApplyTotalTaskCount, t => t.MapFrom(u =>
|
|
subjectIdList.Count == 0 ? u.Trial.VisitTaskList.Where(t => t.DoctorUserId == null).Count()
|
|
: u.Trial.VisitTaskList.Where(t => t.DoctorUserId == null && subjectIdList.Contains(t.SubjectId)).Count() ))
|
|
|
|
|
|
|
|
.ForMember(o => o.SelfUndoTaskCount, t => t.MapFrom(u => u.Trial.VisitTaskList.Count(t => t.DoctorUserId == u.DoctorUserId && t.ReadingTaskState != ReadingTaskState.HaveSigned)))
|
|
.ForMember(o => o.SelfTaskCount, t => t.MapFrom(u => u.Trial.VisitTaskList.Count(t => t.DoctorUserId == u.DoctorUserId)))
|
|
.ForMember(o => o.TotalSubjectCount, t => t.MapFrom(u => u.Trial.SubjectList.Count()))
|
|
.ForMember(o => o.ApplyedTotalSubjectCount, t => t.MapFrom(u => u.Trial.SubjectList.Count(c => c.SubjectVisitTaskList.Any(d => d.DoctorUserId !=null))))
|
|
.ForMember(o => o.WaitApplyTotalSubjectCount, t => t.MapFrom(u =>
|
|
subjectIdList.Count == 0 ? u.Trial.SubjectList.Where(t => t.SubjectVisitTaskList.Any(c => c.DoctorUserId == null)).Count()
|
|
: u.Trial.SubjectList.Where(t => subjectIdList.Contains(t.Id) && t.SubjectVisitTaskList.Any(c => c.DoctorUserId == null)).Count()
|
|
))
|
|
|
|
.ForMember(o => o.SelfSubjectCount, t => t.MapFrom(u => u.Trial.SubjectDoctorUserList.Where(t => t.DoctorUserId == u.DoctorUserId).Count()))
|
|
.ForMember(o => o.SelfApplyedSubjectCount, t => t.MapFrom(u => u.Trial.SubjectDoctorUserList.Where(t => t.DoctorUserId == u.DoctorUserId && t.SubjectArmVisitTaskList.Any(c => c.DoctorUserId != null)).Count()))
|
|
|
|
.ForMember(o => o.WaitApplySelfSubjectCount, t => t.MapFrom(u =>
|
|
subjectIdList.Count == 0 ? u.Trial.SubjectDoctorUserList.Where(t => t.DoctorUserId == u.DoctorUserId && t.SubjectArmVisitTaskList.Any(c=>c.DoctorUserId ==null)).Count()
|
|
: u.Trial.SubjectDoctorUserList.Where(t => t.DoctorUserId == u.DoctorUserId && subjectIdList.Contains(t.SubjectId) && t.SubjectArmVisitTaskList.Any(c => c.DoctorUserId == null)).Count()
|
|
))
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CreateMap<TaskAllocationRule, AllocateInfo>()
|
|
//.ForMember(o => o.ArmList, t => t.MapFrom(u => u.DoctorVisitTaskList.Where(c => c.TrialId == u.TrialId).Select(t => t.ArmEnum).Distinct()))
|
|
.ForMember(o => o.TotalTaskCount, t => t.MapFrom(u => u.Trial.VisitTaskList.Count()))
|
|
|
|
.ForMember(o => o.SelfTaskCount, t => t.MapFrom(u => u.Trial.VisitTaskList.Count(t => t.DoctorUserId == u.DoctorUserId)));
|
|
|
|
|
|
|
|
|
|
CreateMap<VisitTask, VisitTaskView>()
|
|
.ForMember(o => o.SiteId, t => t.MapFrom(u => u.Subject.SiteId))
|
|
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
|
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
|
.ForMember(o => o.UserCode, t => t.MapFrom(u => u.DoctorUser.UserCode))
|
|
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
|
.ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
|
|
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.DoctorUser.UserTypeRole.UserTypeShortName));
|
|
|
|
|
|
|
|
|
|
CreateMap<VisitTask, JudgeVisitTaskView>()
|
|
.ForMember(o => o.SiteId, t => t.MapFrom(u => u.Subject.SiteId))
|
|
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
|
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
|
.ForMember(o => o.UserCode, t => t.MapFrom(u => u.DoctorUser.UserCode))
|
|
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
|
.ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
|
|
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.DoctorUser.UserTypeRole.UserTypeShortName))
|
|
|
|
.ForMember(o => o.HistoryReadingDoctorUserList, t => t.MapFrom(u => u.JudgeVisitList));
|
|
|
|
CreateMap<VisitTask, ReadingTaskView>()
|
|
.ForMember(o => o.SiteId, t => t.MapFrom(u => u.Subject.SiteId))
|
|
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
|
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
|
.ForMember(o => o.UserCode, t => t.MapFrom(u => u.DoctorUser.UserCode))
|
|
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
|
.ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
|
|
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.DoctorUser.UserTypeRole.UserTypeShortName));
|
|
|
|
CreateMap<VisitTask, ReReadingTaskView>()
|
|
.ForMember(o => o.ReReadingOriginalTaskCode, t => t.MapFrom(u => u.OriginalReReadingTask.TaskCode))
|
|
|
|
.ForMember(o => o.SiteId, t => t.MapFrom(u => u.Subject.SiteId))
|
|
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
|
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
|
.ForMember(o => o.UserCode, t => t.MapFrom(u => u.DoctorUser.UserCode))
|
|
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
|
.ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
|
|
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.DoctorUser.UserTypeRole.UserTypeShortName));
|
|
|
|
CreateMap<VisitTask, IRHaveReadView>()
|
|
.ForMember(o => o.SiteId, t => t.MapFrom(u => u.Subject.SiteId))
|
|
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
|
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
|
;
|
|
|
|
|
|
|
|
|
|
CreateMap<VisitTask, HistoryReadingDoctorUser>()
|
|
.ForMember(o => o.UserCode, t => t.MapFrom(u => u.DoctorUser.UserCode))
|
|
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
|
.ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
|
|
.ForMember(o => o.JudgeTaskCode, t => t.MapFrom(u => u.TaskCode))
|
|
.ForMember(o => o.DoctorUserId, t => t.MapFrom(u => u.DoctorUser.Id));
|
|
|
|
|
|
CreateMap<Subject, SubjectAssignView>()
|
|
.ForMember(o => o.SubjectId, t => t.MapFrom(u => u.Id))
|
|
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.TrialSite.TrialSiteCode))
|
|
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Code))
|
|
.ForMember(o => o.IsAssignedDoctorUser, t => t.MapFrom(u => u.SubjectDoctorList.Any()))
|
|
|
|
|
|
.ForMember(o => o.DoctorUserList, t => t.MapFrom(u => u.SubjectDoctorList.OrderBy(t => t.ArmEnum)));
|
|
|
|
CreateMap<SubjectUser, AssignDoctorView>()
|
|
//.ForMember(o => o.AssignTime, t => t.MapFrom(u => u.AssignTime))
|
|
.ForMember(o => o.UserCode, t => t.MapFrom(u => u.DoctorUser.UserCode))
|
|
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
|
.ForMember(o => o.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
|
|
.ForMember(o => o.IsAssignDoctorApplyedTask, t => t.MapFrom(u => u.Subject.SubjectVisitTaskList.Any(c => c.DoctorUserId == u.DoctorUserId)))
|
|
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.DoctorUser.UserTypeRole.UserTypeShortName));
|
|
|
|
|
|
|
|
CreateMap<TaskAllocationRuleAddOrEdit, TaskAllocationRule>();
|
|
|
|
|
|
CreateMap<User, TrialDoctorUserSelectView>()
|
|
.ForMember(o => o.DoctorUserId, t => t.MapFrom(u => u.Id))
|
|
.ForMember(o => o.FullName, t => t.MapFrom(u => u.FullName));
|
|
|
|
|
|
}
|
|
}
|
|
|
|
}
|