修改审核

Uat_Study
hang 2022-06-30 14:47:58 +08:00
parent 4a611cd120
commit 2c76edd5e9
10 changed files with 232 additions and 242 deletions

View File

@ -129,7 +129,7 @@
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.GetReadingTaskList(IRaCIS.Core.Application.ViewModel.VisitTaskQuery)"> <member name="M:IRaCIS.Core.Application.Service.VisitTaskService.GetReadingTaskList(IRaCIS.Core.Application.ViewModel.VisitTaskQuery)">
<summary> <summary>
获取影像阅片列表 (排除重阅的) 相比而言多了几个字段 和配置信息 获取影像阅片列表 相比而言多了几个字段 和配置信息
</summary> </summary>
<param name="queryVisitTask"></param> <param name="queryVisitTask"></param>
<returns></returns> <returns></returns>
@ -143,7 +143,14 @@
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.GetReReadingTaskList(IRaCIS.Core.Application.ViewModel.VisitTaskQuery)"> <member name="M:IRaCIS.Core.Application.Service.VisitTaskService.GetReReadingTaskList(IRaCIS.Core.Application.ViewModel.VisitTaskQuery)">
<summary> <summary>
获取重阅影像阅片列表 PM 重阅追踪
</summary>
<param name="queryVisitTask"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.GetIRReReadingTaskList(IRaCIS.Core.Application.ViewModel.VisitTaskQuery)">
<summary>
获取IR 重阅影像阅片列表
</summary> </summary>
<param name="queryVisitTask"></param> <param name="queryVisitTask"></param>
<returns></returns> <returns></returns>
@ -161,13 +168,6 @@
<param name="queryVisitTask"></param> <param name="queryVisitTask"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.GetIRReReadingTaskList(IRaCIS.Core.Application.ViewModel.VisitTaskQuery)">
<summary>
获取IR 重阅影像阅片列表
</summary>
<param name="queryVisitTask"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.AssignSubjectDoctor(IRaCIS.Core.Application.ViewModel.AssginSubjectDoctorCommand)"> <member name="M:IRaCIS.Core.Application.Service.VisitTaskService.AssignSubjectDoctor(IRaCIS.Core.Application.ViewModel.AssginSubjectDoctorCommand)">
<summary> <summary>
批量为 多个Subject 分配医生 手动分配 IsReAssign 为true 批量删除 重新分配 批量为 多个Subject 分配医生 手动分配 IsReAssign 为true 批量删除 重新分配
@ -202,7 +202,7 @@
<param name="assignSubjectTaskToDoctorCommand"></param> <param name="assignSubjectTaskToDoctorCommand"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.ApplyReReading(IRaCIS.Core.Application.ViewModel.ApplyReReadingCommand,IRaCIS.Core.Application.Service.IVisitTaskHelpeService)"> <member name="M:IRaCIS.Core.Application.Service.VisitTaskService.ApplyReReading(IRaCIS.Core.Application.ViewModel.ApplyReReadingCommand)">
<summary> <summary>
申请重阅 1:IR 2:PM 申请重阅 1:IR 2:PM
</summary> </summary>
@ -210,7 +210,7 @@
<param name="_visitTaskCommonService"></param> <param name="_visitTaskCommonService"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.ConfirmReReading(IRaCIS.Core.Application.ViewModel.ConfirmReReadingCommand)"> <member name="M:IRaCIS.Core.Application.Service.VisitTaskService.ConfirmReReading(IRaCIS.Core.Application.ViewModel.ConfirmReReadingCommand,IRaCIS.Core.Application.Service.IVisitTaskHelpeService)">
<summary> <summary>
确认重阅与否 1同意 2 拒绝 确认重阅与否 1同意 2 拒绝
</summary> </summary>

View File

@ -146,18 +146,22 @@ namespace IRaCIS.Core.Application.ViewModel
//重阅 产生任务 //重阅 产生任务
public ReReadingApplyGenerateTaskCommand ReReadingApplyGenerateTaskCommand { get; set; } = new ReReadingApplyGenerateTaskCommand(); public VisitTask ReReadingTask { get; set; }
public Action< VisitTask> Action;
//public ReReadingApplyGenerateTaskCommand ReReadingApplyGenerateTaskCommand { get; set; } = new ReReadingApplyGenerateTaskCommand();
} }
public class ReReadingApplyGenerateTaskCommand //public class ReReadingApplyGenerateTaskCommand
{ //{
public RequestReReadingType RequestReReadingType { get; set; } // public RequestReReadingType RequestReReadingType { get; set; }
public string RequestReReadingReason { get; set; } // public string RequestReReadingReason { get; set; }
public List<VisitTask> ReReadingTaskList = new List<VisitTask>(); // public List<VisitTask> ReReadingTaskList = new List<VisitTask>();
} //}
public class ReadingGenerataTaskDTO public class ReadingGenerataTaskDTO

View File

@ -53,8 +53,6 @@ namespace IRaCIS.Core.Application.ViewModel
public class VisitTaskView : VisitTaskViewBasic public class VisitTaskView : VisitTaskViewBasic
{ {
public string UserCode { get; set; } public string UserCode { get; set; }
public string UserName { get; set; } public string UserName { get; set; }
public string FullName { get; set; } public string FullName { get; set; }
@ -93,19 +91,26 @@ namespace IRaCIS.Core.Application.ViewModel
} }
public class IRReReadingTaskView: ReReadingTaskView //public class IRReReadingTaskView: ReReadingTaskView
//{
//}
public class ReReadingTaskView
{ {
} //重阅原始编号
//public string ReReadingOriginalTaskCode { get; set; }
public VisitTaskView OriginalReReadingTask { get; set; }
public string? ReReadingNewTaskCode { get; set; }
public class ReReadingTaskView : VisitTaskView
{
public ReReadingApplyState ReReadingApplyState { get; set; } public ReReadingApplyState ReReadingApplyState { get; set; }
public ReadingTaskState ReadingTaskState { get; set; } public ReadingTaskState ReadingTaskState { get; set; }
public RequestReReadingType RequestReReadingType { get; set; } public RequestReReadingType RequestReReadingType { get; set; }
public string RequestReReadingRejectReason { get; set; } = string.Empty; public string RequestReReadingRejectReason { get; set; } = string.Empty;
@ -128,8 +133,6 @@ namespace IRaCIS.Core.Application.ViewModel
//产生重阅的根任务Id //产生重阅的根任务Id
public Guid RootReReadingTaskId { get; set; } public Guid RootReReadingTaskId { get; set; }
//重阅原始编号
public string ReReadingOriginalTaskCode { get; set; }
} }
@ -512,7 +515,6 @@ namespace IRaCIS.Core.Application.ViewModel
public List<ConfirmReReadingDTO> ConfirmReReadingList { get; set; } public List<ConfirmReReadingDTO> ConfirmReReadingList { get; set; }
public string RequestReReadingRejectReason { get; set; } = string.Empty; public string RequestReReadingRejectReason { get; set; } = string.Empty;
public RequestReReadingResult RequestReReadingResultEnum { get; set; } public RequestReReadingResult RequestReReadingResultEnum { get; set; }
} }

View File

@ -292,8 +292,10 @@ namespace IRaCIS.Core.Application.Service
break; break;
case ReadingCategory.ReReading: case ReadingCategory.ReReading:
foreach (var reReadingVisitTask in generateTaskCommand.ReReadingApplyGenerateTaskCommand.ReReadingTaskList) var reReadingVisitTask = generateTaskCommand.ReReadingTask;
{
//foreach (var reReadingVisitTask in generateTaskCommand.ReReadingTaskList)
//{
//reReadingVisitTask.OriginalReReadingId = reReadingVisitTask.Id; //reReadingVisitTask.OriginalReReadingId = reReadingVisitTask.Id;
//reReadingVisitTask.Id = Guid.Empty; //reReadingVisitTask.Id = Guid.Empty;
//reReadingVisitTask.SignTime = null; //reReadingVisitTask.SignTime = null;
@ -323,7 +325,7 @@ namespace IRaCIS.Core.Application.Service
SourceSubjectVisitId = reReadingVisitTask.SourceSubjectVisitId, SourceSubjectVisitId = reReadingVisitTask.SourceSubjectVisitId,
IsReReadingCreate = true, IsReReadingCreate = true,
TaskState = TaskState.NotEffect, TaskState = TaskState.Effect,
Code = currentMaxCodeInt + 1, Code = currentMaxCodeInt + 1,
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)), TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)),
@ -333,24 +335,10 @@ namespace IRaCIS.Core.Application.Service
}); });
var rootReReadingTaskId = await _visitTaskReReadingRepository.Where(t => t.NewReReadingTaskId == reReadingVisitTask.Id).Select(u => u.RootReReadingTaskId).FirstOrDefaultAsync(); generateTaskCommand.Action(newTask);
//await _visitTaskReReadingRepository.BatchUpdateNoTrackingAsync(t=>t.)
var visitTaskReReading = await _visitTaskReReadingRepository.AddAsync(new VisitTaskReReading()
{
RootReReadingTaskId = rootReReadingTaskId == Guid.Empty ? reReadingVisitTask.Id : rootReReadingTaskId,
OriginalReReadingTaskId = reReadingVisitTask.Id,
NewReReadingTaskId = newTask.Id,
RequestReReadingTime = DateTime.Now,
RequestReReadingUserId = _userInfo.Id,
RequestReReadingReason = generateTaskCommand.ReReadingApplyGenerateTaskCommand.RequestReReadingReason,
RequestReReadingType = generateTaskCommand.ReReadingApplyGenerateTaskCommand.RequestReReadingType,
});
//是否增加任务类别 //是否增加任务类别
@ -358,7 +346,7 @@ namespace IRaCIS.Core.Application.Service
_provider.Set<int>($"{trialId}_{StaticData.CacheKey.TaskMaxCode}", currentMaxCodeInt, TimeSpan.FromMinutes(30)); _provider.Set<int>($"{trialId}_{StaticData.CacheKey.TaskMaxCode}", currentMaxCodeInt, TimeSpan.FromMinutes(30));
} //}
break; break;
case ReadingCategory.Judge: case ReadingCategory.Judge:

View File

@ -163,7 +163,7 @@ namespace IRaCIS.Core.Application.Service
/// <summary> /// <summary>
/// 获取影像阅片列表 (排除重阅的) 相比而言多了几个字段 和配置信息 /// 获取影像阅片列表 相比而言多了几个字段 和配置信息
/// </summary> /// </summary>
/// <param name="queryVisitTask"></param> /// <param name="queryVisitTask"></param>
/// <returns></returns> /// <returns></returns>
@ -171,7 +171,7 @@ namespace IRaCIS.Core.Application.Service
public async Task<(PageOutput<ReadingTaskView>, object)> GetReadingTaskList(VisitTaskQuery queryVisitTask) public async Task<(PageOutput<ReadingTaskView>, object)> GetReadingTaskList(VisitTaskQuery queryVisitTask)
{ {
var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId) var visitTaskQueryable = _visitTaskRepository.Where(t => t.TrialId == queryVisitTask.TrialId)
.Where(t => t.IsReReadingCreate == false && t.DoctorUserId != null) .Where(t =>/* t.IsReReadingCreate == false &&*/ t.DoctorUserId != null)
.WhereIf(queryVisitTask.SiteId != null, t => t.Subject.SiteId == queryVisitTask.SiteId) .WhereIf(queryVisitTask.SiteId != null, t => t.Subject.SiteId == queryVisitTask.SiteId)
.WhereIf(queryVisitTask.SubjectId != null, t => t.SubjectId == queryVisitTask.SubjectId) .WhereIf(queryVisitTask.SubjectId != null, t => t.SubjectId == queryVisitTask.SubjectId)
@ -271,7 +271,7 @@ namespace IRaCIS.Core.Application.Service
/// <summary> /// <summary>
/// 获取重阅影像阅片列表 /// PM 重阅追踪
/// </summary> /// </summary>
/// <param name="queryVisitTask"></param> /// <param name="queryVisitTask"></param>
/// <returns></returns> /// <returns></returns>
@ -281,23 +281,22 @@ namespace IRaCIS.Core.Application.Service
var visitTaskQueryable = _visitTaskReReadingRepository var visitTaskQueryable = _visitTaskReReadingRepository
.Where(t => t.NewReReadingTask.TrialId == queryVisitTask.TrialId) .Where(t => t.OriginalReReadingTask.TrialId == queryVisitTask.TrialId)
.WhereIf(queryVisitTask.RootReReadingTaskId != null, t => t.RootReReadingTaskId == queryVisitTask.RootReReadingTaskId || t.OriginalReReadingTaskId == queryVisitTask.RootReReadingTaskId) .WhereIf(queryVisitTask.RootReReadingTaskId != null, t => t.RootReReadingTaskId == queryVisitTask.RootReReadingTaskId || t.OriginalReReadingTaskId == queryVisitTask.RootReReadingTaskId)
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskCode), t => t.OriginalReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode) || t.RootReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode)) .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskCode), t => t.OriginalReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode) || t.RootReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode))
.WhereIf(queryVisitTask.SiteId != null, t => t.OriginalReReadingTask.Subject.SiteId == queryVisitTask.SiteId)
.WhereIf(queryVisitTask.SiteId != null, t => t.NewReReadingTask.Subject.SiteId == queryVisitTask.SiteId) .WhereIf(queryVisitTask.SubjectId != null, t => t.OriginalReReadingTask.SubjectId == queryVisitTask.SubjectId)
.WhereIf(queryVisitTask.SubjectId != null, t => t.NewReReadingTask.SubjectId == queryVisitTask.SubjectId) .WhereIf(queryVisitTask.IsUrgent != null, t => t.OriginalReReadingTask.IsUrgent == queryVisitTask.IsUrgent)
.WhereIf(queryVisitTask.IsUrgent != null, t => t.NewReReadingTask.IsUrgent == queryVisitTask.IsUrgent) .WhereIf(queryVisitTask.DoctorUserId != null, t => t.OriginalReReadingTask.DoctorUserId == queryVisitTask.DoctorUserId)
.WhereIf(queryVisitTask.DoctorUserId != null, t => t.NewReReadingTask.DoctorUserId == queryVisitTask.DoctorUserId) .WhereIf(queryVisitTask.ReadingTaskState != null, t => t.OriginalReReadingTask.ReadingTaskState == queryVisitTask.ReadingTaskState)
.WhereIf(queryVisitTask.ReadingTaskState != null, t => t.NewReReadingTask.ReadingTaskState == queryVisitTask.ReadingTaskState) .WhereIf(queryVisitTask.TaskAllocationState != null, t => t.OriginalReReadingTask.TaskAllocationState == queryVisitTask.TaskAllocationState)
.WhereIf(queryVisitTask.TaskAllocationState != null, t => t.NewReReadingTask.TaskAllocationState == queryVisitTask.TaskAllocationState) .WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.OriginalReReadingTask.TaskName.Contains(queryVisitTask.TaskName) || t.OriginalReReadingTask.TaskBlindName.Contains(queryVisitTask.TaskName))
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.NewReReadingTask.TaskName.Contains(queryVisitTask.TaskName) || t.NewReReadingTask.TaskBlindName.Contains(queryVisitTask.TaskName)) .WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => t.OriginalReReadingTask.Subject.Code.Contains(queryVisitTask.SubjectCode))
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => t.NewReReadingTask.Subject.Code.Contains(queryVisitTask.SubjectCode)) .WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime > queryVisitTask.BeginAllocateDate)
.WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.NewReReadingTask.AllocateTime > queryVisitTask.BeginAllocateDate) .WhereIf(queryVisitTask.EndAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime < queryVisitTask.EndAllocateDate.Value.AddDays(1))
.WhereIf(queryVisitTask.EndAllocateDate != null, t => t.NewReReadingTask.AllocateTime < queryVisitTask.EndAllocateDate.Value.AddDays(1))
.ProjectTo<ReReadingTaskView>(_mapper.ConfigurationProvider); .ProjectTo<ReReadingTaskView>(_mapper.ConfigurationProvider);
var defalutSortArray = new string[] { nameof(VisitTask.IsUrgent) + " desc", nameof(VisitTask.SubjectId) }; var defalutSortArray = new string[] { nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.IsUrgent) + " desc", nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.SubjectId) };
var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray); var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray);
@ -305,6 +304,45 @@ namespace IRaCIS.Core.Application.Service
} }
/// <summary>
/// 获取IR 重阅影像阅片列表
/// </summary>
/// <param name="queryVisitTask"></param>
/// <returns></returns>
[HttpPost]
public async Task<PageOutput<ReReadingTaskView>> GetIRReReadingTaskList(VisitTaskQuery queryVisitTask)
{
var visitTaskQueryable = _visitTaskReReadingRepository
.Where(t => t.OriginalReReadingTask.DoctorUserId == _userInfo.Id)
.Where(t => t.OriginalReReadingTask.TrialId == queryVisitTask.TrialId)
.WhereIf(queryVisitTask.RootReReadingTaskId != null, t => t.RootReReadingTaskId == queryVisitTask.RootReReadingTaskId || t.OriginalReReadingTaskId == queryVisitTask.RootReReadingTaskId)
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskCode), t => t.OriginalReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode) || t.RootReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode))
.WhereIf(queryVisitTask.SiteId != null, t => t.OriginalReReadingTask.Subject.SiteId == queryVisitTask.SiteId)
.WhereIf(queryVisitTask.SubjectId != null, t => t.OriginalReReadingTask.SubjectId == queryVisitTask.SubjectId)
.WhereIf(queryVisitTask.IsUrgent != null, t => t.OriginalReReadingTask.IsUrgent == queryVisitTask.IsUrgent)
.WhereIf(queryVisitTask.DoctorUserId != null, t => t.OriginalReReadingTask.DoctorUserId == queryVisitTask.DoctorUserId)
.WhereIf(queryVisitTask.ReadingTaskState != null, t => t.OriginalReReadingTask.ReadingTaskState == queryVisitTask.ReadingTaskState)
.WhereIf(queryVisitTask.TaskAllocationState != null, t => t.OriginalReReadingTask.TaskAllocationState == queryVisitTask.TaskAllocationState)
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.OriginalReReadingTask.TaskName.Contains(queryVisitTask.TaskName) || t.NewReReadingTask.TaskBlindName.Contains(queryVisitTask.TaskName))
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => t.OriginalReReadingTask.Subject.Code.Contains(queryVisitTask.SubjectCode))
.WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime > queryVisitTask.BeginAllocateDate)
.WhereIf(queryVisitTask.EndAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime < queryVisitTask.EndAllocateDate.Value.AddDays(1))
.ProjectTo<ReReadingTaskView>(_mapper.ConfigurationProvider);
var defalutSortArray = new string[] { nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.IsUrgent) + " desc", nameof(ReReadingTaskView.OriginalReReadingTask) + "." + nameof(ReReadingTaskView.OriginalReReadingTask.SubjectId) };
var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray);
return pageList;
}
/// <summary> /// <summary>
/// IR 待阅片任务列表 /// IR 待阅片任务列表
/// </summary> /// </summary>
@ -419,42 +457,6 @@ namespace IRaCIS.Core.Application.Service
} }
/// <summary>
/// 获取IR 重阅影像阅片列表
/// </summary>
/// <param name="queryVisitTask"></param>
/// <returns></returns>
[HttpPost]
public async Task<PageOutput<IRReReadingTaskView>> GetIRReReadingTaskList(VisitTaskQuery queryVisitTask)
{
var visitTaskQueryable = _visitTaskReReadingRepository
.Where(t => t.OriginalReReadingTask.DoctorUserId == _userInfo.Id)
.Where(t => t.OriginalReReadingTask.TrialId == queryVisitTask.TrialId)
.WhereIf(queryVisitTask.RootReReadingTaskId != null, t => t.RootReReadingTaskId == queryVisitTask.RootReReadingTaskId || t.OriginalReReadingTaskId == queryVisitTask.RootReReadingTaskId)
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskCode), t => t.OriginalReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode) || t.RootReReadingTask.TaskCode.Contains(queryVisitTask.TaskCode))
.WhereIf(queryVisitTask.SiteId != null, t => t.OriginalReReadingTask.Subject.SiteId == queryVisitTask.SiteId)
.WhereIf(queryVisitTask.SubjectId != null, t => t.OriginalReReadingTask.SubjectId == queryVisitTask.SubjectId)
.WhereIf(queryVisitTask.IsUrgent != null, t => t.OriginalReReadingTask.IsUrgent == queryVisitTask.IsUrgent)
.WhereIf(queryVisitTask.DoctorUserId != null, t => t.OriginalReReadingTask.DoctorUserId == queryVisitTask.DoctorUserId)
.WhereIf(queryVisitTask.ReadingTaskState != null, t => t.OriginalReReadingTask.ReadingTaskState == queryVisitTask.ReadingTaskState)
.WhereIf(queryVisitTask.TaskAllocationState != null, t => t.OriginalReReadingTask.TaskAllocationState == queryVisitTask.TaskAllocationState)
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.OriginalReReadingTask.TaskName.Contains(queryVisitTask.TaskName) || t.NewReReadingTask.TaskBlindName.Contains(queryVisitTask.TaskName))
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => t.OriginalReReadingTask.Subject.Code.Contains(queryVisitTask.SubjectCode))
.WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime > queryVisitTask.BeginAllocateDate)
.WhereIf(queryVisitTask.EndAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime < queryVisitTask.EndAllocateDate.Value.AddDays(1))
.ProjectTo<IRReReadingTaskView>(_mapper.ConfigurationProvider);
var defalutSortArray = new string[] { nameof(VisitTask.IsUrgent) + " desc", nameof(VisitTask.SubjectId) };
var pageList = await visitTaskQueryable.ToPagedListAsync(queryVisitTask.PageIndex, queryVisitTask.PageSize, queryVisitTask.SortField, queryVisitTask.Asc, string.IsNullOrWhiteSpace(queryVisitTask.SortField), defalutSortArray);
return pageList;
}
@ -967,7 +969,7 @@ namespace IRaCIS.Core.Application.Service
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[UnitOfWork] [UnitOfWork]
public async Task<IResponseOutput> ApplyReReading(ApplyReReadingCommand applyReReadingCommand, [FromServices] IVisitTaskHelpeService _visitTaskCommonService) public async Task<IResponseOutput> ApplyReReading(ApplyReReadingCommand applyReReadingCommand)
{ {
var taskList = await _visitTaskRepository.Where(t => applyReReadingCommand.TaskIdList.Contains(t.Id), true).Include(t => t.JudgeVisitTask).ToListAsync(); var taskList = await _visitTaskRepository.Where(t => applyReReadingCommand.TaskIdList.Contains(t.Id), true).Include(t => t.JudgeVisitTask).ToListAsync();
@ -1002,24 +1004,23 @@ namespace IRaCIS.Core.Application.Service
} }
} }
}
//产生的新任务,状态保持跟申请的一直 var rootReReadingTaskId = _visitTaskReReadingRepository.Where(t => t.NewReReadingTaskId == task.Id).Select(u => u.RootReReadingTaskId).FirstOrDefault();
var reReadingTaskList = taskList.Clone();
await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand() //添加申请记录
var visitTaskReReading = await _visitTaskReReadingRepository.AddAsync(new VisitTaskReReading()
{ {
TrialId = applyReReadingCommand.TrialId,
ReadingCategory = ReadingCategory.ReReading,
RootReReadingTaskId = rootReReadingTaskId == Guid.Empty ? task.Id : rootReReadingTaskId,
ReReadingApplyGenerateTaskCommand = new ReReadingApplyGenerateTaskCommand() RequestReReadingTime = DateTime.Now,
{ RequestReReadingUserId = _userInfo.Id,
RequestReReadingReason = applyReReadingCommand.RequestReReadingReason, RequestReReadingReason = applyReReadingCommand.RequestReReadingReason,
RequestReReadingType = applyReReadingCommand.RequestReReadingType, RequestReReadingType = applyReReadingCommand.RequestReReadingType,
ReReadingTaskList = reReadingTaskList
}
}); });
}
//产生新的任务 //产生新的任务
@ -1036,12 +1037,13 @@ namespace IRaCIS.Core.Application.Service
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[UnitOfWork] [UnitOfWork]
public async Task<IResponseOutput> ConfirmReReading(ConfirmReReadingCommand agreeReReadingCommand) public async Task<IResponseOutput> ConfirmReReading(ConfirmReReadingCommand agreeReReadingCommand, [FromServices] IVisitTaskHelpeService _visitTaskCommonService)
{ {
var trialId = agreeReReadingCommand.TrialId;
foreach (var item in agreeReReadingCommand.ConfirmReReadingList) foreach (var item in agreeReReadingCommand.ConfirmReReadingList)
{ {
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == item.OriginalReReadingTaskId, u => new VisitTask() await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == item.OriginalReReadingTaskId, u => new VisitTask()
{ {
ReReadingApplyState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? ReReadingApplyState.Agree : ReReadingApplyState.Reject), ReReadingApplyState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? ReReadingApplyState.Agree : ReReadingApplyState.Reject),
@ -1049,40 +1051,67 @@ namespace IRaCIS.Core.Application.Service
}); });
await _visitTaskReReadingRepository.UpdatePartialFromQueryAsync(t => t.Id == item.Id, u => new VisitTaskReReading()
{
RequestReReadingConfirmUserId = _userInfo.Id,
RequestReReadingResultEnum = agreeReReadingCommand.RequestReReadingResultEnum,
RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason
});
if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree) if (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree)
{ {
var origenalTask = (await _visitTaskRepository.Where(t => item.OriginalReReadingTaskId == t.Id).FirstOrDefaultAsync()).IfNullThrowException();
//产生的新任务,状态保持跟申请的一致
await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand()
{
TrialId = trialId,
ReadingCategory = ReadingCategory.ReReading,
ReReadingTask = origenalTask,
//同步才可以
Action = (newTask) =>
{
_visitTaskReReadingRepository.UpdatePartialFromQueryAsync(t => t.Id == item.Id, u => new VisitTaskReReading()
{
RequestReReadingConfirmUserId = _userInfo.Id,
RequestReReadingResultEnum = agreeReReadingCommand.RequestReReadingResultEnum,
RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason,
NewReReadingTaskId = newTask.Id,
}).Wait();
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer) if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
{ {
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == item.NewReReadingTaskId, u => new VisitTask()
{
TaskState = TaskState.Effect
});
}
//立即分配
else if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
{
var doctorUserId = await _visitTaskRepository.Where(t => t.Id == item.OriginalReReadingTaskId).Select(t => t.DoctorUserId).FirstOrDefaultAsync();
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == item.NewReReadingTaskId, u => new VisitTask()
{
TaskState = TaskState.Effect,
DoctorUserId = doctorUserId,
TaskAllocationState=TaskAllocationState.Allocated,
AllocateTime = DateTime.Now,
});
} }
//PM 立即分配
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
{
newTask.DoctorUserId = origenalTask.DoctorUserId;
newTask.TaskAllocationState = TaskAllocationState.Allocated;
newTask.AllocateTime = DateTime.Now;
} }
} }
});
}
}
await _visitTaskRepository.SaveChangesAsync(); await _visitTaskRepository.SaveChangesAsync();

View File

@ -62,10 +62,6 @@ namespace IRaCIS.Core.Application.Service
subjectIdList.Count == 0 ? u.Trial.VisitTaskList.Where(t => isJudgeDoctor ? t.ArmEnum == Arm.JudgeArm : t.ArmEnum != Arm.JudgeArm).Where(t => t.DoctorUserId == null).Count() subjectIdList.Count == 0 ? u.Trial.VisitTaskList.Where(t => isJudgeDoctor ? t.ArmEnum == Arm.JudgeArm : t.ArmEnum != Arm.JudgeArm).Where(t => t.DoctorUserId == null).Count()
: u.Trial.VisitTaskList.Where(t => isJudgeDoctor ? t.ArmEnum == Arm.JudgeArm : t.ArmEnum != Arm.JudgeArm).Where(t => t.DoctorUserId == null && subjectIdList.Contains(t.SubjectId)).Count())) : u.Trial.VisitTaskList.Where(t => isJudgeDoctor ? t.ArmEnum == Arm.JudgeArm : t.ArmEnum != Arm.JudgeArm).Where(t => t.DoctorUserId == null && subjectIdList.Contains(t.SubjectId)).Count()))
; ;
@ -109,43 +105,42 @@ namespace IRaCIS.Core.Application.Service
CreateMap<VisitTaskReReading, IRReReadingTaskView>().IncludeMembers(t => t.OriginalReReadingTask) //CreateMap<VisitTaskReReading, IRReReadingTaskView>().IncludeMembers(t => t.OriginalReReadingTask)
.ForMember(o => o.ReReadingOriginalTaskCode, t => t.MapFrom(u => u.OriginalReReadingTask.TaskCode)) // .ForMember(o => o.ReReadingOriginalTaskCode, t => t.MapFrom(u => u.OriginalReReadingTask.TaskCode))
.ForMember(o => o.Id, t => t.MapFrom(u => u.Id)) // .ForMember(o => o.Id, t => t.MapFrom(u => u.Id))
.ForMember(o => o.SiteId, t => t.MapFrom(u => u.OriginalReReadingTask.Subject.SiteId)) // .ForMember(o => o.SiteId, t => t.MapFrom(u => u.OriginalReReadingTask.Subject.SiteId))
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.OriginalReReadingTask.Subject.TrialSite.TrialSiteCode)) // .ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.OriginalReReadingTask.Subject.TrialSite.TrialSiteCode))
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.OriginalReReadingTask.Subject.Code)) // .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.OriginalReReadingTask.Subject.Code))
.ForMember(o => o.UserCode, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.UserCode)) // .ForMember(o => o.UserCode, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.UserCode))
.ForMember(o => o.UserName, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.UserName)) // .ForMember(o => o.UserName, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.UserName))
.ForMember(o => o.FullName, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.FullName)) // .ForMember(o => o.FullName, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.FullName))
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.UserTypeRole.UserTypeShortName)); // .ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.UserTypeRole.UserTypeShortName));
CreateMap<VisitTask, IRReReadingTaskView>() //CreateMap<VisitTask, IRReReadingTaskView>()
.ForMember(o => o.Id, t => t.Ignore()); // .ForMember(o => o.Id, t => t.Ignore());
CreateMap<VisitTaskReReading, ReReadingTaskView>().IncludeMembers(t => t.NewReReadingTask) CreateMap<VisitTaskReReading, ReReadingTaskView>()
.ForMember(o => o.ReReadingOriginalTaskCode, t => t.MapFrom(u => u.OriginalReReadingTask.TaskCode)) .ForMember(o => o.ReReadingNewTaskCode, t => t.MapFrom(u => u.NewReReadingTask.TaskCode))
.ForMember(o => o.Id, t => t.MapFrom(u => u.Id)) .ForMember(o => o.OriginalReReadingTask, t => t.MapFrom(u => u.OriginalReReadingTask));
.ForMember(o => o.SiteId, t => t.MapFrom(u => u.NewReReadingTask.Subject.SiteId)) //CreateMap<VisitTask, ReReadingTaskView>()
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.NewReReadingTask.Subject.TrialSite.TrialSiteCode)) // .ForMember(o => o.Id, t => t.Ignore())
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.NewReReadingTask.Subject.Code)) // .ForMember(o => o.SiteId, t => t.MapFrom(u => u.Subject.SiteId))
.ForMember(o => o.UserCode, t => t.MapFrom(u => u.NewReReadingTask.DoctorUser.UserCode)) // .ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
.ForMember(o => o.UserName, t => t.MapFrom(u => u.NewReReadingTask.DoctorUser.UserName)) // .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
.ForMember(o => o.FullName, t => t.MapFrom(u => u.NewReReadingTask.DoctorUser.FullName)) // .ForMember(o => o.UserCode, t => t.MapFrom(u => u.DoctorUser.UserCode))
.ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.NewReReadingTask.DoctorUser.UserTypeRole.UserTypeShortName)); // .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.Id, t => t.Ignore());
CreateMap<VisitTask, IRHaveReadView>() CreateMap<VisitTask, IRHaveReadView>()
.ForMember(o => o.SiteId, t => t.MapFrom(u => u.Subject.SiteId)) .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.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code)) .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code));
;

View File

@ -40,6 +40,30 @@ namespace IRaCIS.Core.Domain.Share
} }
public enum MedicalReviewAuditState
{
//待审核
WaitAudit=0,
//审核中
Auditing=1,
HaveSigned=2
}
public enum MedicalReviewDoctorUserIdea
{
defalut=0,
Agree=1,
NotAgree=2
}
public enum Arm public enum Arm
{ {
SingleReadingArm = 0, SingleReadingArm = 0,

View File

@ -50,7 +50,7 @@ namespace IRaCIS.Core.Domain.Models
/// AuditState /// AuditState
/// </summary> /// </summary>
[Required] [Required]
public int AuditState { get; set; } public MedicalReviewAuditState AuditState { get; set; }
/// <summary> /// <summary>
/// AuditSuggestion /// AuditSuggestion
@ -66,7 +66,7 @@ namespace IRaCIS.Core.Domain.Models
/// <summary> /// <summary>
/// DoctorUserIdeaEnum /// DoctorUserIdeaEnum
/// </summary> /// </summary>
public int DoctorUserIdeaEnum { get; set; } public MedicalReviewDoctorUserIdea DoctorUserIdeaEnum { get; set; }
/// <summary> /// <summary>
/// MedicalManagerUserId /// MedicalManagerUserId

View File

@ -18,84 +18,32 @@ namespace IRaCIS.Core.Domain.Models
public class TaskMedicalReviewRule : Entity, IAuditUpdate, IAuditAdd public class TaskMedicalReviewRule : Entity, IAuditUpdate, IAuditAdd
{ {
/// <summary>
/// CreateUserId
/// </summary>
[Required]
public Guid CreateUserId { get; set; } public Guid CreateUserId { get; set; }
/// <summary>
/// CreateTime
/// </summary>
[Required]
public DateTime CreateTime { get; set; } public DateTime CreateTime { get; set; }
/// <summary>
/// UpdateTime
/// </summary>
[Required]
public DateTime UpdateTime { get; set; } public DateTime UpdateTime { get; set; }
/// <summary>
/// UpdateUserId
/// </summary>
[Required]
public Guid UpdateUserId { get; set; } public Guid UpdateUserId { get; set; }
/// <summary>
/// DoctorUserId
/// </summary>
[Required]
public Guid DoctorUserId { get; set; } public Guid DoctorUserId { get; set; }
/// <summary>
/// IsEnable
/// </summary>
[Required]
public bool IsEnable { get; set; } public bool IsEnable { get; set; }
/// <summary>
/// Note
/// </summary>
[Required]
public string Note { get; set; } public string Note { get; set; }
/// <summary>
/// TrialId
/// </summary>
[Required]
public Guid TrialId { get; set; } public Guid TrialId { get; set; }
/// <summary>
/// PlanVisitCount
/// </summary>
[Required]
public int PlanVisitCount { get; set; } public int PlanVisitCount { get; set; }
/// <summary>
/// PlanJudgeCount
/// </summary>
[Required]
public int PlanJudgeCount { get; set; } public int PlanJudgeCount { get; set; }
/// <summary>
/// PlanGlobalCount
/// </summary>
[Required]
public int PlanGlobalCount { get; set; } public int PlanGlobalCount { get; set; }
/// <summary>
/// PlanTumorCount
/// </summaryDoctorVisitTaskList
[Required]
public int PlanTumorCount { get; set; } public int PlanTumorCount { get; set; }
public User DoctorUser { get; set; } public User DoctorUser { get; set; }
public List<VisitTask> DoctorVisitTaskList { get; set; } public List<VisitTask> DoctorVisitTaskList { get; set; }
public List<TaskMedicalReview> TaskMedicalReviewList { get; set; } public List<TaskMedicalReview> TaskMedicalReviewList { get; set; }

View File

@ -24,10 +24,10 @@ namespace IRaCIS.Core.Domain.Models
//产生重阅的根任务Id //产生重阅的根任务Id
public Guid RootReReadingTaskId { get; set; } public Guid? RootReReadingTaskId { get; set; }
//重阅申请 产生的新任务Id //重阅申请 产生的新任务Id
public Guid NewReReadingTaskId { get; set; } public Guid? NewReReadingTaskId { get; set; }
public Guid RequestReReadingUserId { get; set; } public Guid RequestReReadingUserId { get; set; }