修改一版
parent
fa0f04c808
commit
ff0f3ba39d
|
@ -4202,9 +4202,22 @@
|
|||
<param name="inDto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.TriggerJudgeQuestion(System.Guid)">
|
||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.AddReadingTask(System.Guid)">
|
||||
<summary>
|
||||
触发裁判任务
|
||||
添加阅片期任务
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.TriggerJudgeQuestionNew(System.Guid)">
|
||||
<summary>
|
||||
触发裁判任务(新)
|
||||
</summary>
|
||||
<param name="VisitTaskId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.TriggerJudgeQuestionOld(System.Guid)">
|
||||
<summary>
|
||||
触发裁判任务(老)
|
||||
</summary>
|
||||
<param name="VisitTaskId"></param>
|
||||
<returns></returns>
|
||||
|
|
|
@ -129,12 +129,12 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
//public String TrialSiteCode { get; set; } = String.Empty;
|
||||
//public Guid TrialId { get; set; }
|
||||
|
||||
public Guid SubjectId { get; set; }
|
||||
public Guid? SubjectId { get; set; }
|
||||
public string SubjectCode { get; set; } = String.Empty;
|
||||
|
||||
public bool IsUrgent => UnReadTaskList.Any(t => t.IsUrgent);
|
||||
|
||||
public int? UnReadTaskCount { get; set; }
|
||||
public int UnReadTaskCount { get; set; }
|
||||
|
||||
public DateTime? SuggesteFinishedTime => UnReadTaskList.Max(t => t.SuggesteFinishedTime);
|
||||
|
||||
|
@ -199,6 +199,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
public Guid TrialId { get; set; }
|
||||
|
||||
public string SubjectCode { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class SubjectAssignQuery : PageInput
|
||||
|
|
|
@ -190,14 +190,15 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
|
||||
/// <summary>
|
||||
/// IR 待阅片任务列表(Subject 维度统计)
|
||||
/// IR 待阅片任务列表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<PageOutput<IRUnReadSubjectView>> GetIRUnReadSubjectTaskList(IRUnReadSubjectQuery iRUnReadSubjectQuery)
|
||||
public async Task<(PageOutput<IRUnReadSubjectView>,object)> GetIRUnReadSubjectTaskList(IRUnReadSubjectQuery iRUnReadSubjectQuery)
|
||||
{
|
||||
var trialId = iRUnReadSubjectQuery.TrialId;
|
||||
#region 按照任务的维度统计分组
|
||||
|
||||
//var query = _visitTaskRepository.Where(t => t.TrialId == trialId)
|
||||
// .Where(t => t.DoctorUserId == _userInfo.Id && t.ReadingTaskState != ReadingTaskState.HaveSigned)
|
||||
// .GroupBy(t => new { t.SubjectId, t.Subject.Code })
|
||||
|
@ -213,21 +214,46 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
|
||||
#region 按照Subject 维度
|
||||
var isReadingTaskViewInOrder = await _trialRepository.Where(x => x.Id == iRUnReadSubjectQuery.TrialId).Select(x => x.IsReadingTaskViewInOrder).FirstOrDefaultAsync();
|
||||
if (isReadingTaskViewInOrder)
|
||||
{
|
||||
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);
|
||||
|
||||
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()
|
||||
|
||||
var result= await subjectQuery.ToPagedListAsync(iRUnReadSubjectQuery.PageIndex, iRUnReadSubjectQuery.PageSize, String.IsNullOrEmpty(iRUnReadSubjectQuery.SortField) ? nameof(IRUnReadSubjectView.SubjectId) : iRUnReadSubjectQuery.SortField, iRUnReadSubjectQuery.Asc);
|
||||
return (result, new {
|
||||
IsReadingTaskViewInOrder=isReadingTaskViewInOrder,
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
var taskQuery = _trialRepository.Where(x => x.Id == trialId )
|
||||
.Select(s => new IRUnReadSubjectView()
|
||||
{
|
||||
SubjectId = null,
|
||||
SubjectCode = String.Empty,
|
||||
UnReadTaskCount = s.VisitTaskList.Count(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.DoctorUserId == _userInfo.Id),
|
||||
UnReadTaskList = s.VisitTaskList.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);
|
||||
var result =await taskQuery.ToPagedListAsync(iRUnReadSubjectQuery.PageIndex, iRUnReadSubjectQuery.PageSize, String.IsNullOrEmpty(iRUnReadSubjectQuery.SortField) ? nameof(IRUnReadSubjectView.SubjectCode) : iRUnReadSubjectQuery.SortField, iRUnReadSubjectQuery.Asc);
|
||||
return (result, new
|
||||
{
|
||||
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);
|
||||
IsReadingTaskViewInOrder = isReadingTaskViewInOrder,
|
||||
});
|
||||
|
||||
|
||||
return await subjectQuery.ToPagedListAsync(iRUnReadSubjectQuery.PageIndex, iRUnReadSubjectQuery.PageSize, String.IsNullOrEmpty(iRUnReadSubjectQuery.SortField) ? nameof(IRUnReadSubjectView.SubjectId) : iRUnReadSubjectQuery.SortField, iRUnReadSubjectQuery.Asc);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace IRaCIS.Application.Services
|
|||
[ApiExplorerSettings(GroupName = "Reading")]
|
||||
public class ReadingImageTaskService : BaseService, IReadingImageTaskService
|
||||
{
|
||||
private readonly IMapper mapper;
|
||||
|
||||
private readonly IRepository<NoneDicomStudy> _noneDicomStudyRepository;
|
||||
private readonly IRepository<VisitTask> _visitTaskRepository;
|
||||
private readonly IVisitTaskHelpeService _visitTaskHelpeService;
|
||||
|
@ -47,7 +47,7 @@ namespace IRaCIS.Application.Services
|
|||
IRepository<ReadingQuestionTrial> readingQuestionTrialRepository
|
||||
)
|
||||
{
|
||||
this.mapper = mapper;
|
||||
base._mapper = mapper;
|
||||
this._noneDicomStudyRepository = noneDicomStudyRepository;
|
||||
this._visitTaskRepository = visitTaskRepository;
|
||||
this._visitTaskHelpeService = visitTaskHelpeService;
|
||||
|
@ -99,7 +99,7 @@ namespace IRaCIS.Application.Services
|
|||
}
|
||||
else
|
||||
{
|
||||
task = await _visitTaskRepository.Where(x => x.TrialId == trialId && x.ReadingTaskState != ReadingTaskState.HaveSigned).Select(x => new GetReadingTaskDto()
|
||||
task = await _visitTaskRepository.Where(x => x.TrialId == trialId && x.ReadingTaskState != ReadingTaskState.HaveSigned && x.DoctorUserId == _userInfo.Id).Select(x => new GetReadingTaskDto()
|
||||
{
|
||||
VisistTaskId = x.Id,
|
||||
ReadingCategory = x.ReadingCategory,
|
||||
|
|
Loading…
Reference in New Issue