diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 461808771..72ae08d78 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -129,7 +129,7 @@
- 获取影像阅片列表 (排除重阅的) 相比而言多了几个字段 和配置信息
+ 获取影像阅片列表 相比而言多了几个字段 和配置信息
@@ -143,7 +143,14 @@
- 获取重阅影像阅片列表
+ PM 重阅追踪
+
+
+
+
+
+
+ 获取IR 重阅影像阅片列表
@@ -161,13 +168,6 @@
-
-
- 获取IR 重阅影像阅片列表
-
-
-
-
批量为 多个Subject 分配医生 手动分配 IsReAssign 为true 批量删除 重新分配
@@ -202,7 +202,7 @@
-
+
申请重阅 1:IR 2:PM
@@ -210,7 +210,7 @@
-
+
确认重阅与否 1同意 2 拒绝
diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs
index f16472897..3b8cab18f 100644
--- a/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/DTO/TaskAllocationRuleViewModel.cs
@@ -134,7 +134,7 @@ namespace IRaCIS.Core.Application.ViewModel
//访视任务产生的时候传递
- public List VisitGenerataTaskList { get; set; }=new List();
+ public List VisitGenerataTaskList { get; set; } = new List();
//裁判的时候传递
public List JudgeVisitTaskIdList { get; set; } = new List();
@@ -142,22 +142,26 @@ namespace IRaCIS.Core.Application.ViewModel
///
/// 阅片期
///
- public List ReadingGenerataTaskList= new List();
+ public List ReadingGenerataTaskList = new List();
//重阅 产生任务
- 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 RequestReReadingType RequestReReadingType { get; set; }
+ //public class ReReadingApplyGenerateTaskCommand
+ //{
+ // public RequestReReadingType RequestReReadingType { get; set; }
- public string RequestReReadingReason { get; set; }
+ // public string RequestReReadingReason { get; set; }
- public List ReReadingTaskList = new List();
- }
+ // public List ReReadingTaskList = new List();
+ //}
public class ReadingGenerataTaskDTO
diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
index b7935d311..be164e8bf 100644
--- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
@@ -53,8 +53,6 @@ namespace IRaCIS.Core.Application.ViewModel
public class VisitTaskView : VisitTaskViewBasic
{
-
-
public string UserCode { get; set; }
public string UserName { 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 ReadingTaskState ReadingTaskState { get; set; }
-
-
public RequestReReadingType RequestReReadingType { get; set; }
public string RequestReReadingRejectReason { get; set; } = string.Empty;
@@ -128,8 +133,6 @@ namespace IRaCIS.Core.Application.ViewModel
//产生重阅的根任务Id
public Guid RootReReadingTaskId { get; set; }
- //重阅原始编号
- public string ReReadingOriginalTaskCode { get; set; }
}
@@ -512,7 +515,6 @@ namespace IRaCIS.Core.Application.ViewModel
public List ConfirmReReadingList { get; set; }
-
public string RequestReReadingRejectReason { get; set; } = string.Empty;
public RequestReReadingResult RequestReReadingResultEnum { get; set; }
}
diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs
index 058e279d5..322578e92 100644
--- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs
@@ -292,8 +292,10 @@ namespace IRaCIS.Core.Application.Service
break;
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.Id = Guid.Empty;
//reReadingVisitTask.SignTime = null;
@@ -323,7 +325,7 @@ namespace IRaCIS.Core.Application.Service
SourceSubjectVisitId = reReadingVisitTask.SourceSubjectVisitId,
IsReReadingCreate = true,
- TaskState = TaskState.NotEffect,
+ TaskState = TaskState.Effect,
Code = currentMaxCodeInt + 1,
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);
-
- 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,
-
- });
+ //await _visitTaskReReadingRepository.BatchUpdateNoTrackingAsync(t=>t.)
//是否增加任务类别
@@ -358,7 +346,7 @@ namespace IRaCIS.Core.Application.Service
_provider.Set($"{trialId}_{StaticData.CacheKey.TaskMaxCode}", currentMaxCodeInt, TimeSpan.FromMinutes(30));
- }
+ //}
break;
case ReadingCategory.Judge:
diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
index 2004539ad..a4c1c7ce0 100644
--- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
@@ -163,7 +163,7 @@ namespace IRaCIS.Core.Application.Service
///
- /// 获取影像阅片列表 (排除重阅的) 相比而言多了几个字段 和配置信息
+ /// 获取影像阅片列表 相比而言多了几个字段 和配置信息
///
///
///
@@ -171,7 +171,7 @@ namespace IRaCIS.Core.Application.Service
public async Task<(PageOutput, object)> GetReadingTaskList(VisitTaskQuery queryVisitTask)
{
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.SubjectId != null, t => t.SubjectId == queryVisitTask.SubjectId)
@@ -231,7 +231,7 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task> 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.SignTime!.Value.AddDays(inQuery.IntervalWeeks * 7 + 1) > DateTime.Now)
//重阅产生的访视任务 要把之前的访视任务去除
@@ -256,8 +256,8 @@ namespace IRaCIS.Core.Application.Service
TaskCode = c.TaskCode,
TaskName = c.TaskName,
TaskState = c.TaskState,
- ArmEnum=c.ArmEnum,
- SubjectId=c.SubjectId,
+ ArmEnum = c.ArmEnum,
+ SubjectId = c.SubjectId,
TrialId = c.TrialId
}).ToList(),
@@ -271,7 +271,7 @@ namespace IRaCIS.Core.Application.Service
///
- /// 获取重阅影像阅片列表
+ /// PM 重阅追踪
///
///
///
@@ -281,23 +281,22 @@ namespace IRaCIS.Core.Application.Service
var visitTaskQueryable = _visitTaskReReadingRepository
- .Where(t => t.NewReReadingTask.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.NewReReadingTask.Subject.SiteId == queryVisitTask.SiteId)
- .WhereIf(queryVisitTask.SubjectId != null, t => t.NewReReadingTask.SubjectId == queryVisitTask.SubjectId)
- .WhereIf(queryVisitTask.IsUrgent != null, t => t.NewReReadingTask.IsUrgent == queryVisitTask.IsUrgent)
- .WhereIf(queryVisitTask.DoctorUserId != null, t => t.NewReReadingTask.DoctorUserId == queryVisitTask.DoctorUserId)
- .WhereIf(queryVisitTask.ReadingTaskState != null, t => t.NewReReadingTask.ReadingTaskState == queryVisitTask.ReadingTaskState)
- .WhereIf(queryVisitTask.TaskAllocationState != null, t => t.NewReReadingTask.TaskAllocationState == queryVisitTask.TaskAllocationState)
- .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.NewReReadingTask.Subject.Code.Contains(queryVisitTask.SubjectCode))
- .WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.NewReReadingTask.AllocateTime > queryVisitTask.BeginAllocateDate)
- .WhereIf(queryVisitTask.EndAllocateDate != null, t => t.NewReReadingTask.AllocateTime < queryVisitTask.EndAllocateDate.Value.AddDays(1))
+ .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.OriginalReReadingTask.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(_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);
@@ -305,6 +304,45 @@ namespace IRaCIS.Core.Application.Service
}
+ ///
+ /// 获取IR 重阅影像阅片列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> 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(_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;
+ }
+
+
+
+
+
///
/// IR 待阅片任务列表
///
@@ -419,42 +457,6 @@ namespace IRaCIS.Core.Application.Service
}
- ///
- /// 获取IR 重阅影像阅片列表
- ///
- ///
- ///
- [HttpPost]
- public async Task> 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(_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
///
[HttpPost]
[UnitOfWork]
- public async Task ApplyReReading(ApplyReReadingCommand applyReReadingCommand, [FromServices] IVisitTaskHelpeService _visitTaskCommonService)
+ public async Task ApplyReReading(ApplyReReadingCommand applyReReadingCommand)
{
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("重阅已申请,或者重阅已同意状态下不允许申请重阅");
}
- if(task.ReadingCategory == ReadingCategory.Judge && task.TaskState== TaskState.HaveReturned)
+ if (task.ReadingCategory == ReadingCategory.Judge && task.TaskState == TaskState.HaveReturned)
{
throw new BusinessValidationFailedException("访视重阅导致裁判任务重置的,不能申请重阅");
}
@@ -1002,24 +1004,23 @@ namespace IRaCIS.Core.Application.Service
}
}
- }
- //产生的新任务,状态保持跟申请的一直
- var reReadingTaskList = taskList.Clone();
+ var rootReReadingTaskId = _visitTaskReReadingRepository.Where(t => t.NewReReadingTaskId == task.Id).Select(u => u.RootReReadingTaskId).FirstOrDefault();
- await _visitTaskCommonService.AddTaskAsync(new GenerateTaskCommand()
- {
- TrialId = applyReReadingCommand.TrialId,
- ReadingCategory = ReadingCategory.ReReading,
-
-
- ReReadingApplyGenerateTaskCommand = new ReReadingApplyGenerateTaskCommand()
+ //添加申请记录
+ var visitTaskReReading = await _visitTaskReReadingRepository.AddAsync(new VisitTaskReReading()
{
+
+ RootReReadingTaskId = rootReReadingTaskId == Guid.Empty ? task.Id : rootReReadingTaskId,
+
+ RequestReReadingTime = DateTime.Now,
+ RequestReReadingUserId = _userInfo.Id,
RequestReReadingReason = applyReReadingCommand.RequestReReadingReason,
RequestReReadingType = applyReReadingCommand.RequestReReadingType,
- ReReadingTaskList = reReadingTaskList
- }
- });
+
+ });
+ }
+
//产生新的任务
@@ -1036,53 +1037,81 @@ namespace IRaCIS.Core.Application.Service
///
[HttpPost]
[UnitOfWork]
- public async Task ConfirmReReading(ConfirmReReadingCommand agreeReReadingCommand)
+ public async Task ConfirmReReading(ConfirmReReadingCommand agreeReReadingCommand, [FromServices] IVisitTaskHelpeService _visitTaskCommonService)
{
-
+ var trialId = agreeReReadingCommand.TrialId;
foreach (var item in agreeReReadingCommand.ConfirmReReadingList)
{
+
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == item.OriginalReReadingTaskId, u => new VisitTask()
{
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 (_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();
+ var origenalTask = (await _visitTaskRepository.Where(t => item.OriginalReReadingTaskId == t.Id).FirstOrDefaultAsync()).IfNullThrowException();
- 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,
- AllocateTime = DateTime.Now,
- });
- }
+
+
+ _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)
+ {
+
+ }
+
+ //PM 立即分配
+ if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager)
+ {
+ newTask.DoctorUserId = origenalTask.DoctorUserId;
+ newTask.TaskAllocationState = TaskAllocationState.Allocated;
+ newTask.AllocateTime = DateTime.Now;
+ }
+
+ }
+
+
+
+ });
}
+
}
+
+
+
+
await _visitTaskRepository.SaveChangesAsync();
diff --git a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs
index 72ab01f2c..ec74df080 100644
--- a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs
@@ -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()
: 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().IncludeMembers(t => t.OriginalReReadingTask)
- .ForMember(o => o.ReReadingOriginalTaskCode, t => t.MapFrom(u => u.OriginalReReadingTask.TaskCode))
- .ForMember(o => o.Id, t => t.MapFrom(u => u.Id))
+ //CreateMap().IncludeMembers(t => t.OriginalReReadingTask)
+ // .ForMember(o => o.ReReadingOriginalTaskCode, t => t.MapFrom(u => u.OriginalReReadingTask.TaskCode))
+ // .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.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.UserCode, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.UserCode))
- .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.UserTypeShortName, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.UserTypeRole.UserTypeShortName));
+ // .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.SubjectCode, t => t.MapFrom(u => u.OriginalReReadingTask.Subject.Code))
+ // .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.FullName, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.FullName))
+ // .ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.OriginalReReadingTask.DoctorUser.UserTypeRole.UserTypeShortName));
- CreateMap()
- .ForMember(o => o.Id, t => t.Ignore());
+ //CreateMap()
+ // .ForMember(o => o.Id, t => t.Ignore());
- CreateMap().IncludeMembers(t => t.NewReReadingTask)
- .ForMember(o => o.ReReadingOriginalTaskCode, t => t.MapFrom(u => u.OriginalReReadingTask.TaskCode))
- .ForMember(o => o.Id, t => t.MapFrom(u => u.Id))
+ CreateMap()
+ .ForMember(o => o.ReReadingNewTaskCode, t => t.MapFrom(u => u.NewReReadingTask.TaskCode))
+ .ForMember(o => o.OriginalReReadingTask, t => t.MapFrom(u => u.OriginalReReadingTask));
- .ForMember(o => o.SiteId, t => t.MapFrom(u => u.NewReReadingTask.Subject.SiteId))
- .ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.NewReReadingTask.Subject.TrialSite.TrialSiteCode))
- .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.NewReReadingTask.Subject.Code))
- .ForMember(o => o.UserCode, t => t.MapFrom(u => u.NewReReadingTask.DoctorUser.UserCode))
- .ForMember(o => o.UserName, t => t.MapFrom(u => u.NewReReadingTask.DoctorUser.UserName))
- .ForMember(o => o.FullName, t => t.MapFrom(u => u.NewReReadingTask.DoctorUser.FullName))
- .ForMember(o => o.UserTypeShortName, t => t.MapFrom(u => u.NewReReadingTask.DoctorUser.UserTypeRole.UserTypeShortName));
+ //CreateMap()
+ // .ForMember(o => o.Id, t => t.Ignore())
+ // .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.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
+ // .ForMember(o => o.UserCode, t => t.MapFrom(u => u.DoctorUser.UserCode))
+ // .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()
- .ForMember(o => o.Id, t => t.Ignore());
CreateMap()
.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.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
- ;
+ .ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code));
diff --git a/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs b/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs
index 47ae911a9..55cea8c3c 100644
--- a/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs
+++ b/IRaCIS.Core.Domain.Share/Allocation/AllocationRelation.cs
@@ -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
{
SingleReadingArm = 0,
diff --git a/IRaCIS.Core.Domain/Allocation/TaskMedicalReview.cs b/IRaCIS.Core.Domain/Allocation/TaskMedicalReview.cs
index 89b52a26b..045faa5c6 100644
--- a/IRaCIS.Core.Domain/Allocation/TaskMedicalReview.cs
+++ b/IRaCIS.Core.Domain/Allocation/TaskMedicalReview.cs
@@ -50,7 +50,7 @@ namespace IRaCIS.Core.Domain.Models
/// AuditState
///
[Required]
- public int AuditState { get; set; }
+ public MedicalReviewAuditState AuditState { get; set; }
///
/// AuditSuggestion
@@ -66,7 +66,7 @@ namespace IRaCIS.Core.Domain.Models
///
/// DoctorUserIdeaEnum
///
- public int DoctorUserIdeaEnum { get; set; }
+ public MedicalReviewDoctorUserIdea DoctorUserIdeaEnum { get; set; }
///
/// MedicalManagerUserId
diff --git a/IRaCIS.Core.Domain/Allocation/TaskMedicalReviewRule.cs b/IRaCIS.Core.Domain/Allocation/TaskMedicalReviewRule.cs
index 5dd76f410..0143b6d64 100644
--- a/IRaCIS.Core.Domain/Allocation/TaskMedicalReviewRule.cs
+++ b/IRaCIS.Core.Domain/Allocation/TaskMedicalReviewRule.cs
@@ -18,84 +18,32 @@ namespace IRaCIS.Core.Domain.Models
public class TaskMedicalReviewRule : Entity, IAuditUpdate, IAuditAdd
{
-
-
- ///
- /// CreateUserId
- ///
- [Required]
public Guid CreateUserId { get; set; }
- ///
- /// CreateTime
- ///
- [Required]
public DateTime CreateTime { get; set; }
- ///
- /// UpdateTime
- ///
- [Required]
public DateTime UpdateTime { get; set; }
-
- ///
- /// UpdateUserId
- ///
- [Required]
+
public Guid UpdateUserId { get; set; }
-
- ///
- /// DoctorUserId
- ///
- [Required]
+
public Guid DoctorUserId { get; set; }
- ///
- /// IsEnable
- ///
- [Required]
public bool IsEnable { get; set; }
- ///
- /// Note
- ///
- [Required]
public string Note { get; set; }
-
- ///
- /// TrialId
- ///
- [Required]
- public Guid TrialId { get; set; }
-
- ///
- /// PlanVisitCount
- ///
- [Required]
+
+ public Guid TrialId { get; set; }
+
public int PlanVisitCount { get; set; }
-
- ///
- /// PlanJudgeCount
- ///
- [Required]
+
public int PlanJudgeCount { get; set; }
- ///
- /// PlanGlobalCount
- ///
- [Required]
public int PlanGlobalCount { get; set; }
- ///
- /// PlanTumorCount
- /// DoctorVisitTaskList { get; set; }
public List TaskMedicalReviewList { get; set; }
diff --git a/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs b/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs
index a0318cdcf..04dcfb2a8 100644
--- a/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs
+++ b/IRaCIS.Core.Domain/Allocation/VisitTaskReReading.cs
@@ -24,10 +24,10 @@ namespace IRaCIS.Core.Domain.Models
//产生重阅的根任务Id
- public Guid RootReReadingTaskId { get; set; }
+ public Guid? RootReReadingTaskId { get; set; }
//重阅申请 产生的新任务Id
- public Guid NewReReadingTaskId { get; set; }
+ public Guid? NewReReadingTaskId { get; set; }
public Guid RequestReReadingUserId { get; set; }