修改审核

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

@ -134,7 +134,7 @@ namespace IRaCIS.Core.Application.ViewModel
//访视任务产生的时候传递 //访视任务产生的时候传递
public List<VisitGenerataTaskDTO> VisitGenerataTaskList { get; set; }=new List<VisitGenerataTaskDTO>(); public List<VisitGenerataTaskDTO> VisitGenerataTaskList { get; set; } = new List<VisitGenerataTaskDTO>();
//裁判的时候传递 //裁判的时候传递
public List<Guid> JudgeVisitTaskIdList { get; set; } = new List<Guid>(); public List<Guid> JudgeVisitTaskIdList { get; set; } = new List<Guid>();
@ -142,22 +142,26 @@ namespace IRaCIS.Core.Application.ViewModel
/// <summary> /// <summary>
/// 阅片期 /// 阅片期
/// </summary> /// </summary>
public List<ReadingGenerataTaskDTO> ReadingGenerataTaskList= new List<ReadingGenerataTaskDTO>(); public List<ReadingGenerataTaskDTO> ReadingGenerataTaskList = new List<ReadingGenerataTaskDTO>();
//重阅 产生任务 //重阅 产生任务
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)
@ -231,7 +231,7 @@ namespace IRaCIS.Core.Application.Service
[HttpPost] [HttpPost]
public async Task<List<SelfConsistentView>> GetSelfConsistentList(SelfConsistentQuery inQuery) public async Task<List<SelfConsistentView>> GetSelfConsistentList(SelfConsistentQuery inQuery)
{ {
var query = _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && t.DoctorUserId == inQuery.AnalysisDoctorUserId) var query = _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && t.DoctorUserId == inQuery.AnalysisDoctorUserId)
.Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect) .Where(t => t.ReadingTaskState == ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect)
.Where(t => t.SignTime!.Value.AddDays(inQuery.IntervalWeeks * 7 + 1) > DateTime.Now) .Where(t => t.SignTime!.Value.AddDays(inQuery.IntervalWeeks * 7 + 1) > DateTime.Now)
//重阅产生的访视任务 要把之前的访视任务去除 //重阅产生的访视任务 要把之前的访视任务去除
@ -256,8 +256,8 @@ namespace IRaCIS.Core.Application.Service
TaskCode = c.TaskCode, TaskCode = c.TaskCode,
TaskName = c.TaskName, TaskName = c.TaskName,
TaskState = c.TaskState, TaskState = c.TaskState,
ArmEnum=c.ArmEnum, ArmEnum = c.ArmEnum,
SubjectId=c.SubjectId, SubjectId = c.SubjectId,
TrialId = c.TrialId TrialId = c.TrialId
}).ToList(), }).ToList(),
@ -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();
@ -980,7 +982,7 @@ namespace IRaCIS.Core.Application.Service
throw new BusinessValidationFailedException("重阅已申请,或者重阅已同意状态下不允许申请重阅"); throw new BusinessValidationFailedException("重阅已申请,或者重阅已同意状态下不允许申请重阅");
} }
if(task.ReadingCategory == ReadingCategory.Judge && task.TaskState== TaskState.HaveReturned) if (task.ReadingCategory == ReadingCategory.Judge && task.TaskState == TaskState.HaveReturned)
{ {
throw new BusinessValidationFailedException("访视重阅导致裁判任务重置的,不能申请重阅"); throw new BusinessValidationFailedException("访视重阅导致裁判任务重置的,不能申请重阅");
} }
@ -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,
ReReadingApplyGenerateTaskCommand = new ReReadingApplyGenerateTaskCommand()
{ {
RootReReadingTaskId = rootReReadingTaskId == Guid.Empty ? task.Id : rootReReadingTaskId,
RequestReReadingTime = DateTime.Now,
RequestReReadingUserId = _userInfo.Id,
RequestReReadingReason = applyReReadingCommand.RequestReReadingReason, RequestReReadingReason = applyReReadingCommand.RequestReReadingReason,
RequestReReadingType = applyReReadingCommand.RequestReReadingType, RequestReReadingType = applyReReadingCommand.RequestReReadingType,
ReReadingTaskList = reReadingTaskList
} });
}); }
//产生新的任务 //产生新的任务
@ -1036,53 +1037,81 @@ 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),
TaskState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? TaskState.HaveReturned : TaskState.Effect) TaskState = (agreeReReadingCommand.RequestReReadingResultEnum == RequestReReadingResult.Agree ? TaskState.HaveReturned : TaskState.Effect)
}); });
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)
{ {
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer) var origenalTask = (await _visitTaskRepository.Where(t => item.OriginalReReadingTaskId == t.Id).FirstOrDefaultAsync()).IfNullThrowException();
{
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()
//产生的新任务,状态保持跟申请的一致
await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand()
{
TrialId = trialId,
ReadingCategory = ReadingCategory.ReReading,
ReReadingTask = origenalTask,
//同步才可以
Action = (newTask) =>
{ {
TaskState = TaskState.Effect,
DoctorUserId = doctorUserId,
TaskAllocationState=TaskAllocationState.Allocated, _visitTaskReReadingRepository.UpdatePartialFromQueryAsync(t => t.Id == item.Id, u => new VisitTaskReReading()
AllocateTime = DateTime.Now, {
}); RequestReReadingConfirmUserId = _userInfo.Id,
} RequestReReadingResultEnum = agreeReReadingCommand.RequestReReadingResultEnum,
RequestReReadingRejectReason = agreeReReadingCommand.RequestReReadingRejectReason,
NewReReadingTaskId = newTask.Id,
}).Wait();
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer)
{
}
//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> public Guid TrialId { get; set; }
/// TrialId
/// </summary>
[Required]
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; }