修改医生统计数字
parent
bb181075a5
commit
793b798ef8
|
@ -86,7 +86,7 @@
|
||||||
<param name="queryVisitTask"></param>
|
<param name="queryVisitTask"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.GetIRUnReadSubjectTaskList(System.Guid)">
|
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.GetIRUnReadSubjectTaskList(IRaCIS.Core.Application.ViewModel.IRUnReadSubjectQuery)">
|
||||||
<summary>
|
<summary>
|
||||||
IR 待阅片任务列表(Subject 维度统计)
|
IR 待阅片任务列表(Subject 维度统计)
|
||||||
</summary>
|
</summary>
|
||||||
|
|
|
@ -24,17 +24,27 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
public DateTime UpdateTime { get; set; }
|
public DateTime UpdateTime { get; set; }
|
||||||
public Guid UpdateUserId { get; set; }
|
public Guid UpdateUserId { get; set; }
|
||||||
|
|
||||||
|
//总任务数
|
||||||
public int? TotalTaskCount { get; set; }
|
public int? TotalTaskCount { get; set; }
|
||||||
|
|
||||||
|
//应用的总数
|
||||||
|
public int? ApplyedTotalTaskCount { get; set; }
|
||||||
|
|
||||||
|
//自己的任务数量
|
||||||
public int? SelfTaskCount { get; set; }
|
public int? SelfTaskCount { get; set; }
|
||||||
|
|
||||||
|
//分配给自己的Subject数量
|
||||||
public int? SelfSubjectCount { get; set; }
|
public int? SelfSubjectCount { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
//已应用的Subject 总数
|
||||||
|
public int? ApplyedTotalSubjectCount { get; set; }
|
||||||
|
|
||||||
|
//系统Subject 总数
|
||||||
public int? TotalSubjectCount { get; set; }
|
public int? TotalSubjectCount { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public List<int> ArmList { get; set; }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -189,6 +189,13 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
public Guid? OriginalReReadingId { get; set; }
|
public Guid? OriginalReReadingId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class IRUnReadSubjectQuery:PageInput
|
||||||
|
{
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
|
public string SubjectCode { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class SubjectAssignQuery : PageInput
|
public class SubjectAssignQuery : PageInput
|
||||||
{
|
{
|
||||||
[NotDefault]
|
[NotDefault]
|
||||||
|
|
|
@ -192,21 +192,46 @@ namespace IRaCIS.Core.Application.Service
|
||||||
/// IR 待阅片任务列表(Subject 维度统计)
|
/// IR 待阅片任务列表(Subject 维度统计)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpGet("{trialId:guid}")]
|
[HttpPost]
|
||||||
public async Task<List<IRUnReadSubjectView>> GetIRUnReadSubjectTaskList(Guid trialId)
|
public async Task<PageOutput<IRUnReadSubjectView>> GetIRUnReadSubjectTaskList(IRUnReadSubjectQuery iRUnReadSubjectQuery)
|
||||||
{
|
{
|
||||||
var query = _visitTaskRepository.Where(t => t.TrialId == trialId)
|
var trialId = iRUnReadSubjectQuery.TrialId;
|
||||||
.Where(t => t.DoctorUserId == _userInfo.Id && t.ReadingTaskState != ReadingTaskState.HaveSigned)
|
#region 按照任务的维度统计分组
|
||||||
.GroupBy(t => new { t.SubjectId, t.Subject.Code })
|
//var query = _visitTaskRepository.Where(t => t.TrialId == trialId)
|
||||||
.Select(g => new IRUnReadSubjectView()
|
// .Where(t => t.DoctorUserId == _userInfo.Id && t.ReadingTaskState != ReadingTaskState.HaveSigned)
|
||||||
{
|
// .GroupBy(t => new { t.SubjectId, t.Subject.Code })
|
||||||
SubjectCode = g.Key.Code,
|
// .Select(g => new IRUnReadSubjectView()
|
||||||
SubjectId = g.Key.SubjectId,
|
// {
|
||||||
UnReadTaskCount = g.Count(),
|
// SubjectCode = g.Key.Code,
|
||||||
UnReadTaskList = g.AsQueryable().Select(c => new IRUnreadTaskView() { Id = c.Id, SuggesteFinishedTime = c.SuggesteFinishedTime, IsUrgent = c.IsUrgent }).ToList()
|
// SubjectId = g.Key.SubjectId,
|
||||||
});
|
// UnReadTaskCount = g.Count(),
|
||||||
|
// UnReadTaskList = g.AsQueryable().Select(c => new IRUnreadTaskView() { Id = c.Id, SuggesteFinishedTime = c.SuggesteFinishedTime, IsUrgent = c.IsUrgent }).ToList()
|
||||||
|
// });
|
||||||
|
//return query.ToList();
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region 按照Subject 维度
|
||||||
|
|
||||||
|
var subjectQuery = _subjectRepository.Where(t => t.TrialId == trialId)
|
||||||
|
.Where(t => t.SubjectDoctorList.Any(t => t.DoctorUserId == _userInfo.Id))
|
||||||
|
.WhereIf(!string.IsNullOrEmpty(iRUnReadSubjectQuery.SubjectCode), t => t.Code.Contains(iRUnReadSubjectQuery.SubjectCode))
|
||||||
|
.Select(s => new IRUnReadSubjectView()
|
||||||
|
{
|
||||||
|
SubjectId = s.Id,
|
||||||
|
SubjectCode = s.Code,
|
||||||
|
UnReadTaskCount = s.SubjectVisitTaskList.Count(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.DoctorUserId == _userInfo.Id),
|
||||||
|
UnReadTaskList = s.SubjectVisitTaskList.Where(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.DoctorUserId == _userInfo.Id).Select(u => new IRUnreadTaskView() { Id = u.Id, IsUrgent = u.IsUrgent, SuggesteFinishedTime = u.SuggesteFinishedTime }).ToList(),
|
||||||
|
})
|
||||||
|
.Where(t=>t.UnReadTaskCount>0);
|
||||||
|
|
||||||
|
|
||||||
|
return await subjectQuery.ToPagedListAsync(iRUnReadSubjectQuery.PageIndex, iRUnReadSubjectQuery.PageSize, String.IsNullOrEmpty(iRUnReadSubjectQuery.SortField)?nameof(IRUnReadSubjectView.SubjectId): iRUnReadSubjectQuery.SortField, iRUnReadSubjectQuery.Asc);
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
return query.ToList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -290,6 +315,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
public async Task<PageOutput<SubjectAssignView>> GetSubjectAssignList(SubjectAssignQuery querySubjectAssign)
|
public async Task<PageOutput<SubjectAssignView>> GetSubjectAssignList(SubjectAssignQuery querySubjectAssign)
|
||||||
{
|
{
|
||||||
var subjectQuery = _subjectRepository.Where(t => t.TrialId == querySubjectAssign.TrialId)
|
var subjectQuery = _subjectRepository.Where(t => t.TrialId == querySubjectAssign.TrialId)
|
||||||
|
.Where(t => t.SubjectVisitTaskList.Any())
|
||||||
.WhereIf(querySubjectAssign.SiteId != null, t => t.SiteId == querySubjectAssign.SiteId)
|
.WhereIf(querySubjectAssign.SiteId != null, t => t.SiteId == querySubjectAssign.SiteId)
|
||||||
.WhereIf(querySubjectAssign.SubjectId != null, t => t.Id == querySubjectAssign.SubjectId)
|
.WhereIf(querySubjectAssign.SubjectId != null, t => t.Id == querySubjectAssign.SubjectId)
|
||||||
.WhereIf(querySubjectAssign.IsHaveAssigned != null && querySubjectAssign.IsHaveAssigned == true, t => t.SubjectDoctorList.Count() > 0)
|
.WhereIf(querySubjectAssign.IsHaveAssigned != null && querySubjectAssign.IsHaveAssigned == true, t => t.SubjectDoctorList.Count() > 0)
|
||||||
|
@ -342,7 +368,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 批量取消Subject 分配的医生
|
/// 批量取消Subject 分配的医生
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns> 数量
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<IResponseOutput> CancelSubjectAssignDoctor(CancelSubjectAssignCommand cancelSubjectAssignCommand)
|
public async Task<IResponseOutput> CancelSubjectAssignDoctor(CancelSubjectAssignCommand cancelSubjectAssignCommand)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,10 +16,13 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
.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.FullName, t => t.MapFrom(u => u.DoctorUser.FullName))
|
||||||
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.DoctorUser.UserTypeRole.UserTypeShortName))
|
.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.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.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.SelfTaskCount, t => t.MapFrom(u => u.Trial.VisitTaskList.Count(t => t.DoctorUserId == u.DoctorUserId)))
|
.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.TotalSubjectCount, t => t.MapFrom(u => u.Trial.SubjectList.Count()))
|
||||||
|
.ForMember(o => o.ApplyedTotalSubjectCount, t => t.MapFrom(u => u.Trial.SubjectList.Count(c=>c.SubjectDoctorList.Any(d=>d.DoctorUserId==u.DoctorUserId))))
|
||||||
.ForMember(o => o.SelfSubjectCount, t => t.MapFrom(u => u.Trial.SubjectDoctorUserList.Where(t => t.DoctorUserId == u.DoctorUserId).Count()));
|
.ForMember(o => o.SelfSubjectCount, t => t.MapFrom(u => u.Trial.SubjectDoctorUserList.Where(t => t.DoctorUserId == u.DoctorUserId).Count()));
|
||||||
|
|
||||||
CreateMap<TaskAllocationRule, AllocateInfo>()
|
CreateMap<TaskAllocationRule, AllocateInfo>()
|
||||||
|
|
Loading…
Reference in New Issue