修改审核
parent
4a611cd120
commit
2c76edd5e9
|
@ -129,7 +129,7 @@
|
|||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.GetReadingTaskList(IRaCIS.Core.Application.ViewModel.VisitTaskQuery)">
|
||||
<summary>
|
||||
获取影像阅片列表 (排除重阅的) 相比而言多了几个字段 和配置信息
|
||||
获取影像阅片列表 相比而言多了几个字段 和配置信息
|
||||
</summary>
|
||||
<param name="queryVisitTask"></param>
|
||||
<returns></returns>
|
||||
|
@ -143,7 +143,14 @@
|
|||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.VisitTaskService.GetReReadingTaskList(IRaCIS.Core.Application.ViewModel.VisitTaskQuery)">
|
||||
<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>
|
||||
<param name="queryVisitTask"></param>
|
||||
<returns></returns>
|
||||
|
@ -161,13 +168,6 @@
|
|||
<param name="queryVisitTask"></param>
|
||||
<returns></returns>
|
||||
</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)">
|
||||
<summary>
|
||||
批量为 多个Subject 分配医生 手动分配 IsReAssign 为true 批量删除 重新分配
|
||||
|
@ -202,7 +202,7 @@
|
|||
<param name="assignSubjectTaskToDoctorCommand"></param>
|
||||
<returns></returns>
|
||||
</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>
|
||||
申请重阅 1:IR 2:PM
|
||||
</summary>
|
||||
|
@ -210,7 +210,7 @@
|
|||
<param name="_visitTaskCommonService"></param>
|
||||
<returns></returns>
|
||||
</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>
|
||||
确认重阅与否 1同意 2 拒绝
|
||||
</summary>
|
||||
|
|
|
@ -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>();
|
||||
|
@ -142,22 +142,26 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
/// <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 RequestReReadingType RequestReReadingType { get; set; }
|
||||
//public class ReReadingApplyGenerateTaskCommand
|
||||
//{
|
||||
// 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
|
||||
|
|
|
@ -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<ConfirmReReadingDTO> ConfirmReReadingList { get; set; }
|
||||
|
||||
|
||||
public string RequestReReadingRejectReason { get; set; } = string.Empty;
|
||||
public RequestReReadingResult RequestReReadingResultEnum { get; set; }
|
||||
}
|
||||
|
|
|
@ -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<int>($"{trialId}_{StaticData.CacheKey.TaskMaxCode}", currentMaxCodeInt, TimeSpan.FromMinutes(30));
|
||||
|
||||
}
|
||||
//}
|
||||
|
||||
break;
|
||||
case ReadingCategory.Judge:
|
||||
|
|
|
@ -163,7 +163,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
|
||||
/// <summary>
|
||||
/// 获取影像阅片列表 (排除重阅的) 相比而言多了几个字段 和配置信息
|
||||
/// 获取影像阅片列表 相比而言多了几个字段 和配置信息
|
||||
/// </summary>
|
||||
/// <param name="queryVisitTask"></param>
|
||||
/// <returns></returns>
|
||||
|
@ -171,7 +171,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
public async Task<(PageOutput<ReadingTaskView>, 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<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.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
|
|||
|
||||
|
||||
/// <summary>
|
||||
/// 获取重阅影像阅片列表
|
||||
/// PM 重阅追踪
|
||||
/// </summary>
|
||||
/// <param name="queryVisitTask"></param>
|
||||
/// <returns></returns>
|
||||
|
@ -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<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);
|
||||
|
||||
|
@ -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>
|
||||
/// IR 待阅片任务列表
|
||||
/// </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>
|
||||
[HttpPost]
|
||||
[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();
|
||||
|
||||
|
@ -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,12 +1037,13 @@ namespace IRaCIS.Core.Application.Service
|
|||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
[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)
|
||||
{
|
||||
|
||||
await _visitTaskRepository.UpdatePartialFromQueryAsync(t => t.Id == item.OriginalReReadingTaskId, u => new VisitTask()
|
||||
{
|
||||
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 (_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();
|
||||
|
||||
|
||||
|
|
|
@ -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<VisitTaskReReading, IRReReadingTaskView>().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<VisitTaskReReading, IRReReadingTaskView>().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<VisitTask, IRReReadingTaskView>()
|
||||
.ForMember(o => o.Id, t => t.Ignore());
|
||||
//CreateMap<VisitTask, IRReReadingTaskView>()
|
||||
// .ForMember(o => o.Id, t => t.Ignore());
|
||||
|
||||
|
||||
|
||||
CreateMap<VisitTaskReReading, ReReadingTaskView>().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<VisitTaskReReading, ReReadingTaskView>()
|
||||
.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<VisitTask, ReReadingTaskView>()
|
||||
// .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<VisitTask, ReReadingTaskView>()
|
||||
.ForMember(o => o.Id, t => t.Ignore());
|
||||
|
||||
CreateMap<VisitTask, IRHaveReadView>()
|
||||
.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));
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -50,7 +50,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
/// AuditState
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int AuditState { get; set; }
|
||||
public MedicalReviewAuditState AuditState { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// AuditSuggestion
|
||||
|
@ -66,7 +66,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
/// <summary>
|
||||
/// DoctorUserIdeaEnum
|
||||
/// </summary>
|
||||
public int DoctorUserIdeaEnum { get; set; }
|
||||
public MedicalReviewDoctorUserIdea DoctorUserIdeaEnum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// MedicalManagerUserId
|
||||
|
|
|
@ -18,84 +18,32 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public class TaskMedicalReviewRule : Entity, IAuditUpdate, IAuditAdd
|
||||
{
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// CreateUserId
|
||||
/// </summary>
|
||||
[Required]
|
||||
public Guid CreateUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// CreateTime
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// UpdateTime
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// UpdateUserId
|
||||
/// </summary>
|
||||
[Required]
|
||||
public Guid UpdateUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// DoctorUserId
|
||||
/// </summary>
|
||||
[Required]
|
||||
public Guid DoctorUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// IsEnable
|
||||
/// </summary>
|
||||
[Required]
|
||||
public bool IsEnable { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Note
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string Note { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// TrialId
|
||||
/// </summary>
|
||||
[Required]
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PlanVisitCount
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int PlanVisitCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PlanJudgeCount
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int PlanJudgeCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PlanGlobalCount
|
||||
/// </summary>
|
||||
[Required]
|
||||
public int PlanGlobalCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// PlanTumorCount
|
||||
/// </summaryDoctorVisitTaskList
|
||||
[Required]
|
||||
public int PlanTumorCount { get; set; }
|
||||
|
||||
|
||||
public User DoctorUser { get; set; }
|
||||
|
||||
|
||||
public List<VisitTask> DoctorVisitTaskList { get; set; }
|
||||
|
||||
public List<TaskMedicalReview> TaskMedicalReviewList { get; set; }
|
||||
|
|
|
@ -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; }
|
||||
|
||||
|
|
Loading…
Reference in New Issue