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