修改影响列表
parent
23e20a208b
commit
72a070086d
|
@ -4,10 +4,10 @@
|
|||
"Hangfire": "Server=123.56.94.154,1433\\MSSQLSERVER;Database=Hangfire_IRaCIS;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true"
|
||||
},
|
||||
"JwtSetting": {
|
||||
"SecurityKey": "3e6dbfa227234a03977a2f421bdb7f4f", // 密钥
|
||||
"Issuer": "IRaCIS", // 颁发者
|
||||
"Audience": "ZhiZhun", // 接收者
|
||||
"TokenExpireDays": "7" // 过期时间(7day)
|
||||
"SecurityKey": "3e6dbfa227234a03977a2f421bdb7f4f", // <EFBFBD><EFBFBD>Կ
|
||||
"Issuer": "IRaCIS", // <EFBFBD>䷢<EFBFBD><EFBFBD>
|
||||
"Audience": "ZhiZhun", // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
"TokenExpireDays": "7" // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣨7day<EFBFBD><EFBFBD>
|
||||
},
|
||||
"IpRateLimiting": {
|
||||
"EnableEndpointRateLimiting": true, //False: globally executed, true: executed for each
|
||||
|
@ -80,7 +80,7 @@
|
|||
"DefaultPassword": "123456"
|
||||
}
|
||||
|
||||
//网站根地址,为了访问文件 dicom 和上传的文档... 实测发现不用将域名拼接返回,浏览器会自动加上当前ip,避免了多环境读取环境配置文件
|
||||
//<EFBFBD><EFBFBD>վ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD>Ϊ<EFBFBD>˷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD> dicom <EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>... ʵ<EFBFBD>ⷢ<EFBFBD>ֲ<EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD>ӷ<EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>ǰip<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -205,19 +205,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
public ReReadingOrBackOptType OptType { get; set; }
|
||||
}
|
||||
|
||||
public enum ReReadingOrBackOptType
|
||||
{
|
||||
//取消分配
|
||||
CancelAssign=0,
|
||||
|
||||
//失效
|
||||
Abandon=1,
|
||||
|
||||
//重阅重置
|
||||
|
||||
Return=2,
|
||||
|
||||
}
|
||||
public class VisitTaskSimpleView
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
|
|
@ -240,6 +240,8 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
|
||||
public string? TaskCode { get; set; }
|
||||
|
||||
public String? TrialSiteCode { get; set; }
|
||||
|
||||
public ReReadingApplyState? ReReadingApplyState { get; set; }
|
||||
|
||||
|
||||
|
|
|
@ -688,6 +688,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
.WhereIf(queryVisitTask.DoctorUserId != null, t => t.DoctorUserId == queryVisitTask.DoctorUserId)
|
||||
.WhereIf(queryVisitTask.ReadingCategory != null, t => t.ReadingCategory == queryVisitTask.ReadingCategory)
|
||||
.WhereIf(queryVisitTask.TaskAllocationState != null, t => t.TaskAllocationState == queryVisitTask.TaskAllocationState)
|
||||
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TrialSiteCode), t => t.BlindTrialSiteCode.Contains(queryVisitTask.TrialSiteCode) || t.Subject.TrialSite.TrialSiteCode.Contains(queryVisitTask.TrialSiteCode))
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.TaskName.Contains(queryVisitTask.TaskName) || t.TaskBlindName.Contains(queryVisitTask.TaskName))
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => t.Subject.Code.Contains(queryVisitTask.SubjectCode) || t.BlindSubjectCode.Contains(queryVisitTask.SubjectCode))
|
||||
.WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.AllocateTime > queryVisitTask.BeginAllocateDate)
|
||||
|
@ -724,6 +726,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
.WhereIf(queryVisitTask.DoctorUserId != null, t => t.DoctorUserId == queryVisitTask.DoctorUserId)
|
||||
.WhereIf(queryVisitTask.TaskAllocationState != null, t => t.TaskAllocationState == queryVisitTask.TaskAllocationState)
|
||||
.WhereIf(queryVisitTask.ReadingTaskState != null, t => t.ReadingTaskState == queryVisitTask.ReadingTaskState)
|
||||
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TrialSiteCode), t => t.BlindTrialSiteCode.Contains(queryVisitTask.TrialSiteCode) || t.Subject.TrialSite.TrialSiteCode.Contains(queryVisitTask.TrialSiteCode))
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.TaskName.Contains(queryVisitTask.TaskName) || t.TaskBlindName.Contains(queryVisitTask.TaskName))
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => t.Subject.Code.Contains(queryVisitTask.SubjectCode) || t.BlindSubjectCode.Contains(queryVisitTask.SubjectCode))
|
||||
.WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.AllocateTime > queryVisitTask.BeginAllocateDate)
|
||||
|
@ -763,6 +767,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
.WhereIf(queryVisitTask.ReadingCategory != null, t => t.ReadingCategory == queryVisitTask.ReadingCategory)
|
||||
.WhereIf(queryVisitTask.ReadingTaskState != null, t => t.ReadingTaskState == queryVisitTask.ReadingTaskState)
|
||||
.WhereIf(queryVisitTask.TaskAllocationState != null, t => t.TaskAllocationState == queryVisitTask.TaskAllocationState)
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TrialSiteCode), t => t.BlindTrialSiteCode.Contains(queryVisitTask.TrialSiteCode) || t.Subject.TrialSite.TrialSiteCode.Contains(queryVisitTask.TrialSiteCode))
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.TaskName.Contains(queryVisitTask.TaskName) || t.TaskBlindName.Contains(queryVisitTask.TaskName))
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => t.Subject.Code.Contains(queryVisitTask.SubjectCode) || t.BlindSubjectCode.Contains(queryVisitTask.SubjectCode))
|
||||
.WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.AllocateTime > queryVisitTask.BeginAllocateDate)
|
||||
|
@ -803,6 +808,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
.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.TrialSiteCode), t => t.OriginalReReadingTask.BlindTrialSiteCode.Contains(queryVisitTask.TrialSiteCode) || t.OriginalReReadingTask.Subject.TrialSite.TrialSiteCode.Contains(queryVisitTask.TrialSiteCode))
|
||||
.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) || t.OriginalReReadingTask.BlindSubjectCode.Contains(queryVisitTask.SubjectCode))
|
||||
.WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime > queryVisitTask.BeginAllocateDate)
|
||||
|
@ -841,6 +847,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
.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.TrialSiteCode), t => t.OriginalReReadingTask.BlindTrialSiteCode.Contains(queryVisitTask.TrialSiteCode) || t.OriginalReReadingTask.Subject.TrialSite.TrialSiteCode.Contains(queryVisitTask.TrialSiteCode))
|
||||
.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) || t.OriginalReReadingTask.BlindSubjectCode.Contains(queryVisitTask.SubjectCode))
|
||||
.WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime > queryVisitTask.BeginAllocateDate)
|
||||
|
@ -872,6 +879,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
.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.TrialSiteCode), t => t.OriginalReReadingTask.BlindTrialSiteCode.Contains(queryVisitTask.TrialSiteCode) || t.OriginalReReadingTask.Subject.TrialSite.TrialSiteCode.Contains(queryVisitTask.TrialSiteCode))
|
||||
.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) || t.OriginalReReadingTask.BlindSubjectCode.Contains(queryVisitTask.SubjectCode))
|
||||
.WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime > queryVisitTask.BeginAllocateDate)
|
||||
|
@ -1046,6 +1054,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
.WhereIf(queryVisitTask.ReadingCategory != null, t => t.ReadingCategory == queryVisitTask.ReadingCategory)
|
||||
.WhereIf(queryVisitTask.TaskAllocationState != null, t => t.TaskAllocationState == queryVisitTask.TaskAllocationState)
|
||||
.WhereIf(queryVisitTask.TaskState != null, t => t.TaskState == queryVisitTask.TaskState)
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TrialSiteCode), t => t.BlindTrialSiteCode.Contains(queryVisitTask.TrialSiteCode) || t.Subject.TrialSite.TrialSiteCode.Contains(queryVisitTask.TrialSiteCode))
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.TaskName), t => t.TaskName.Contains(queryVisitTask.TaskName) || t.TaskBlindName.Contains(queryVisitTask.TaskName))
|
||||
.WhereIf(!string.IsNullOrEmpty(queryVisitTask.SubjectCode), t => t.Subject.Code.Contains(queryVisitTask.SubjectCode) || t.BlindSubjectCode.Contains(queryVisitTask.SubjectCode))
|
||||
.WhereIf(queryVisitTask.BeginAllocateDate != null, t => t.AllocateTime > queryVisitTask.BeginAllocateDate)
|
||||
|
@ -1296,8 +1305,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
#region 影响的任务
|
||||
|
||||
|
||||
|
||||
var influenceTaskList = await _visitTaskRepository.Where(filterExpression, true).ToListAsync();
|
||||
|
||||
var trakingOrigenalTask = influenceTaskList.Where(t => t.Id == origenalTask.Id).First();
|
||||
|
||||
foreach (var influenceTask in influenceTaskList)
|
||||
{
|
||||
//处理申请的任务
|
||||
|
@ -1305,18 +1318,17 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
{
|
||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
||||
|
||||
influenceTaskList.ForEach(t =>
|
||||
{
|
||||
//记录实际影像的任务
|
||||
//influenceTaskList.ForEach(t =>
|
||||
//{
|
||||
// //记录实际影像的任务
|
||||
|
||||
// influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
//});
|
||||
|
||||
influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
});
|
||||
|
||||
//将医学审核设置为失效
|
||||
|
||||
var taskIdList = influenceTaskList.Select(t => t.Id).ToList();
|
||||
|
||||
await _taskMedicalReviewRepository.UpdatePartialFromQueryAsync(t => taskIdList.Contains(t.VisitTaskId) && t.AuditState != MedicalReviewAuditState.HaveSigned, u => new TaskMedicalReview() { IsInvalid = false });
|
||||
await _taskMedicalReviewRepository.UpdatePartialFromQueryAsync(t => taskIdList.Contains(t.VisitTaskId) && t.AuditState == MedicalReviewAuditState.WaitAudit, u => new TaskMedicalReview() { IsInvalid = false });
|
||||
}
|
||||
|
||||
//申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配
|
||||
|
@ -1325,10 +1337,13 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||
{
|
||||
influenceTask.TaskState = TaskState.HaveReturned;
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
|
||||
}
|
||||
else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading)
|
||||
{
|
||||
influenceTask.TaskState = TaskState.Adbandon;
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1336,6 +1351,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
influenceTask.AllocateTime = null;
|
||||
influenceTask.SuggesteFinishedTime = null;
|
||||
influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate;
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.CancelAssign });
|
||||
}
|
||||
}
|
||||
//当前访视
|
||||
|
@ -1344,10 +1361,14 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||
{
|
||||
influenceTask.TaskState = TaskState.HaveReturned;
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
|
||||
}
|
||||
else
|
||||
{
|
||||
influenceTask.TaskState = TaskState.Adbandon;
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1411,6 +1432,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
var influenceTaskList = await _visitTaskRepository.Where(filterExpression, true).ToListAsync();
|
||||
|
||||
var trakingOrigenalTask = influenceTaskList.Where(t => t.Id == origenalTask.Id).First();
|
||||
|
||||
foreach (var influenceTask in influenceTaskList)
|
||||
{
|
||||
//处理申请的任务
|
||||
|
@ -1418,22 +1441,28 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
{
|
||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
||||
|
||||
influenceTaskList.ForEach(t =>
|
||||
{
|
||||
//记录实际影像的任务
|
||||
//influenceTaskList.ForEach(t =>
|
||||
//{
|
||||
// //记录实际影像的任务
|
||||
|
||||
influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
});
|
||||
// influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
//});
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
|
||||
}
|
||||
else
|
||||
{
|
||||
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||
{
|
||||
influenceTask.TaskState = TaskState.HaveReturned;
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
|
||||
}
|
||||
else
|
||||
{
|
||||
influenceTask.TaskState = TaskState.Adbandon;
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1504,6 +1533,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
var influenceTaskList = await _visitTaskRepository.Where(filterExpression, true).ToListAsync();
|
||||
|
||||
var trakingOrigenalTask = influenceTaskList.Where(t => t.Id == origenalTask.Id).First();
|
||||
|
||||
foreach (var influenceTask in influenceTaskList)
|
||||
{
|
||||
|
||||
|
@ -1512,12 +1543,18 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
{
|
||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
||||
|
||||
influenceTaskList.ForEach(t =>
|
||||
{
|
||||
//记录实际影像的任务
|
||||
//influenceTaskList.ForEach(t =>
|
||||
//{
|
||||
// //记录实际影像的任务
|
||||
|
||||
influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
});
|
||||
// influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
//});
|
||||
|
||||
//将医学审核设置为失效
|
||||
var taskIdList = influenceTaskList.Select(t => t.Id).ToList();
|
||||
await _taskMedicalReviewRepository.UpdatePartialFromQueryAsync(t => taskIdList.Contains(t.VisitTaskId) && t.AuditState == MedicalReviewAuditState.WaitAudit, u => new TaskMedicalReview() { IsInvalid = false });
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
|
||||
}
|
||||
//处理其他任务
|
||||
else
|
||||
|
@ -1525,10 +1562,14 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||
{
|
||||
influenceTask.TaskState = TaskState.HaveReturned;
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
|
||||
}
|
||||
else
|
||||
{
|
||||
influenceTask.TaskState = TaskState.Adbandon;
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
|
||||
}
|
||||
|
||||
|
||||
|
@ -1594,6 +1635,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
var influenceTaskList = await _visitTaskRepository.Where(filterExpression, true).ToListAsync();
|
||||
|
||||
var trakingOrigenalTask = influenceTaskList.Where(t => t.Id == origenalTask.Id).First();
|
||||
|
||||
foreach (var influenceTask in influenceTaskList)
|
||||
{
|
||||
//申请原任务处理
|
||||
|
@ -1601,23 +1644,28 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
{
|
||||
ReReadingTaskTrackingDeal(influenceTask, agreeReReadingCommand);
|
||||
|
||||
influenceTaskList.ForEach(t =>
|
||||
{
|
||||
//记录实际影像的任务
|
||||
//influenceTaskList.ForEach(t =>
|
||||
//{
|
||||
// //记录实际影像的任务
|
||||
|
||||
influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
});
|
||||
// influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
//});
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
|
||||
}
|
||||
else
|
||||
{
|
||||
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||
{
|
||||
influenceTask.TaskState = TaskState.HaveReturned;
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
|
||||
}
|
||||
else
|
||||
{
|
||||
influenceTask.TaskState = TaskState.Adbandon;
|
||||
|
||||
trakingOrigenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1874,18 +1922,21 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
#region 方式二
|
||||
|
||||
var origenalTask = influenceTaskList.Where(t => t.Id == task.Id).First();
|
||||
|
||||
foreach (var influenceTask in influenceTaskList)
|
||||
{
|
||||
//同意的访视
|
||||
if (influenceTask.Id == task.Id)
|
||||
{
|
||||
influenceTaskList.ForEach(t =>
|
||||
{
|
||||
//记录实际影像的任务
|
||||
|
||||
influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
});
|
||||
}
|
||||
////同意的访视 因为要记录具体的操作,所以废弃
|
||||
//if (influenceTask.Id == task.Id)
|
||||
//{
|
||||
// influenceTaskList.ForEach(t =>
|
||||
// {
|
||||
// //记录实际影像的任务
|
||||
|
||||
// influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
// });
|
||||
//}
|
||||
|
||||
//申请的访视 要不是重阅重置,要不就是失效 不会存在取消分配
|
||||
if (influenceTask.ReadingCategory == ReadingCategory.Visit && influenceTask.VisitTaskNum != task.VisitTaskNum)
|
||||
|
@ -1894,10 +1945,13 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||
{
|
||||
influenceTask.TaskState = TaskState.HaveReturned;
|
||||
|
||||
origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id,OptType=ReReadingOrBackOptType.Return });
|
||||
}
|
||||
else if (influenceTask.ReadingTaskState == ReadingTaskState.Reading)
|
||||
{
|
||||
influenceTask.TaskState = TaskState.Adbandon;
|
||||
origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1905,6 +1959,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
influenceTask.AllocateTime = null;
|
||||
influenceTask.SuggesteFinishedTime = null;
|
||||
influenceTask.TaskAllocationState = TaskAllocationState.NotAllocate;
|
||||
|
||||
origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.CancelAssign });
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1914,10 +1970,12 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||
{
|
||||
influenceTask.TaskState = TaskState.HaveReturned;
|
||||
origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
|
||||
}
|
||||
else
|
||||
{
|
||||
influenceTask.TaskState = TaskState.Adbandon;
|
||||
origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1956,28 +2014,34 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
var currentVisitList = await _visitTaskRepository.Where(t => t.SourceSubjectVisitId == task.SourceSubjectVisitId && t.ReadingCategory == ReadingCategory.Visit && t.TaskState == TaskState.Effect && t.VisitTaskNum == task.VisitTaskNum, true).ToListAsync();
|
||||
|
||||
foreach (var visitTask in currentVisitList)
|
||||
var origenalTask = currentVisitList.Where(t => t.Id == task.Id).First();
|
||||
|
||||
foreach (var influenceTask in currentVisitList)
|
||||
{
|
||||
if (visitTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||
if (influenceTask.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||
{
|
||||
//另外阅片人完成阅片了 就设置为重阅重置
|
||||
visitTask.TaskState = TaskState.HaveReturned;
|
||||
influenceTask.TaskState = TaskState.HaveReturned;
|
||||
|
||||
origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Return });
|
||||
}
|
||||
else
|
||||
{
|
||||
visitTask.TaskState = TaskState.Adbandon;
|
||||
influenceTask.TaskState = TaskState.Adbandon;
|
||||
|
||||
origenalTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = influenceTask.Id, OptType = ReReadingOrBackOptType.Abandon });
|
||||
}
|
||||
|
||||
//同意的访视
|
||||
if (visitTask.Id == task.Id)
|
||||
{
|
||||
currentVisitList.ForEach(t =>
|
||||
{
|
||||
//记录实际影像的任务
|
||||
////同意的访视
|
||||
//if (influenceTask.Id == task.Id)
|
||||
//{
|
||||
// currentVisitList.ForEach(t =>
|
||||
// {
|
||||
// //记录实际影像的任务
|
||||
|
||||
visitTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
});
|
||||
}
|
||||
// influenceTask.TaskInfluenceList.Add(new TaskInfluence() { InfluenceTaskId = t.Id });
|
||||
// });
|
||||
//}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2365,7 +2429,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
/// <returns></returns>
|
||||
public async Task<List<InfluenceTaskInfo>> GetInfluencedTaskList(Guid taskId)
|
||||
{
|
||||
var list = await _repository.Where<TaskInfluence>(t => t.OriginalTaskId == taskId).Select(t => t.InfluenceTask).ProjectTo<InfluenceTaskInfo>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
var list = await _repository.Where<TaskInfluence>(t => t.OriginalTaskId == taskId)/*.Select(t => t.InfluenceTask)*/.ProjectTo<InfluenceTaskInfo>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
||||
return list;
|
||||
}
|
||||
|
|
|
@ -71,8 +71,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
CreateMap<TaskAllocationRule, AssignDoctorStatView>().IncludeBase<TaskAllocationRule, TaskAllocationRuleDTO>()
|
||||
.ForMember(o => o.AssignedSubjectCount, t => t.MapFrom(u => u.Enroll.DoctorTrialVisitTaskList.Select(t=>t.SubjectId).Distinct().Count()))
|
||||
.ForMember(o => o.WaitDealAllTaskCount, t => t.MapFrom(u => u.Enroll.DoctorTrialVisitTaskList.Where(t=>t.ReadingTaskState!=ReadingTaskState.HaveSigned && t.TaskState==TaskState.Effect).Count()))
|
||||
.ForMember(o => o.WaitDealTrialTaskCount, t => t.MapFrom(u => u.Trial.VisitTaskList.Where(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect).Count()));
|
||||
.ForMember(o => o.WaitDealTrialTaskCount, t => t.MapFrom(u => u.Enroll.DoctorTrialVisitTaskList.Where(t=>t.ReadingTaskState!=ReadingTaskState.HaveSigned && t.TaskState==TaskState.Effect).Count()))
|
||||
.ForMember(o => o.WaitDealAllTaskCount, t => t.MapFrom(u => u.DoctorUser.VisitTaskList.Where(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.TaskState == TaskState.Effect).Count()));
|
||||
|
||||
|
||||
|
||||
|
@ -244,7 +244,16 @@ namespace IRaCIS.Core.Application.Service
|
|||
CreateMap<VisitTask, InfluenceTaskInfo>()
|
||||
//.ForMember(o => o.DoctorUser, t => t.MapFrom(u => u.DoctorUser))
|
||||
.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))
|
||||
.ForMember(o => o.OptType, t => t.Ignore());
|
||||
|
||||
|
||||
CreateMap<TaskInfluence, InfluenceTaskInfo>().IncludeMembers(c => c.InfluenceTask)
|
||||
.ForMember(o => o.OptType, t => t.MapFrom(u => u.OptType))
|
||||
.ForMember(o => o.Id, t => t.MapFrom(u => u.InfluenceTask.Id));
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,6 +49,14 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
public bool IsHaveSiteSurveyRecord { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class TrialSiteSimpleSelect
|
||||
{
|
||||
|
||||
public string TrialSiteCode { get; set; } = string.Empty;
|
||||
|
||||
}
|
||||
|
||||
public class LoginReturnDTO
|
||||
{
|
||||
public TrialSurveyInitInfo TrialInfo { get; set; } = new TrialSurveyInitInfo();
|
||||
|
|
|
@ -328,6 +328,20 @@ namespace IRaCIS.Core.Application.Services
|
|||
}
|
||||
|
||||
|
||||
public async Task<IEnumerable<string>> GetTrialSiteCodeSelect(Guid trialId,bool isIncludeVirtualSite)
|
||||
{
|
||||
//CRC只看到他负责的
|
||||
|
||||
var list = await _trialSiteRepository.Where(t => t.TrialId == trialId)
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA, t => t.CRCUserList.Any(t => t.UserId == _userInfo.Id))
|
||||
.Select(t=> t.TrialSiteCode).ToListAsync();
|
||||
|
||||
var virtualList = await _repository.Where<VisitTask>(t => t.IsSelfAnalysis==true).Select(t => t.BlindTrialSiteCode).Distinct().ToListAsync();
|
||||
|
||||
return isIncludeVirtualSite? list.Concat(virtualList): list;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>删除 项目 下某一site </summary>
|
||||
[HttpDelete("{id:guid}/{trialId:guid}")]
|
||||
[TrialAudit(AuditType.TrialAudit, AuditOptType.DeleteTrialSite)]
|
||||
|
|
|
@ -19,7 +19,7 @@ namespace IRaCIS.Application.Services
|
|||
//_cache = cache;
|
||||
}
|
||||
|
||||
public async Task<string> Get()
|
||||
public async Task<string> Get()
|
||||
{
|
||||
|
||||
//var subject1 = Guid.Parse("431D0C58-ABC5-4166-B9BC-08DA0E391693");
|
||||
|
@ -45,7 +45,11 @@ namespace IRaCIS.Application.Services
|
|||
// Console.WriteLine(await BNRFactory.Default.Create($"[CN:{item}][redis:city/0000000]"));
|
||||
//}
|
||||
|
||||
var needAddVisitList = await _repository.Where<VisitTask>(t => t.TrialId == Guid.Empty).DistinctBy(t => t.VisitTaskNum).ToListAsync();
|
||||
//var needAddVisitList = await _repository.Where<VisitTask>(t => t.TrialId == Guid.Empty).DistinctBy(t => t.VisitTaskNum).ToListAsync();
|
||||
|
||||
await _repository.BatchUpdateAsync<TaskInfluence>(t => t.InfluenceTask.TaskState == Core.Domain.Share.TaskState.HaveReturned, u => new TaskInfluence() { OptType = ReReadingOrBackOptType.Return });
|
||||
|
||||
await _repository.BatchUpdateAsync<TaskInfluence>(t => t.InfluenceTask.TaskState == Core.Domain.Share.TaskState.Adbandon, u => new TaskInfluence() { OptType = ReReadingOrBackOptType.Abandon });
|
||||
|
||||
return _userInfo.LocalIp;
|
||||
}
|
||||
|
|
|
@ -9,30 +9,50 @@ using System.ComponentModel.DataAnnotations;
|
|||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
namespace IRaCIS.Core.Domain.Models
|
||||
{
|
||||
///<summary>
|
||||
///TaskInfluence
|
||||
///</summary>
|
||||
[Table("TaskInfluence")]
|
||||
public class TaskInfluence : Entity, IAuditAdd
|
||||
{
|
||||
///<summary>
|
||||
///TaskInfluence
|
||||
///</summary>
|
||||
[Table("TaskInfluence")]
|
||||
public class TaskInfluence : Entity, IAuditAdd
|
||||
{
|
||||
|
||||
|
||||
|
||||
public Guid CreateUserId { get; set; }
|
||||
public Guid CreateUserId { get; set; }
|
||||
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
|
||||
public Guid OriginalTaskId { get; set; }
|
||||
public Guid OriginalTaskId { get; set; }
|
||||
|
||||
public VisitTask OriginalTask { get; set; }
|
||||
public VisitTask OriginalTask { get; set; }
|
||||
|
||||
public VisitTask InfluenceTask { get; set; }
|
||||
public VisitTask InfluenceTask { get; set; }
|
||||
|
||||
|
||||
public Guid InfluenceTaskId { get; set; }
|
||||
public Guid InfluenceTaskId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
//对影响任务进行的操作
|
||||
public ReReadingOrBackOptType OptType { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
public enum ReReadingOrBackOptType
|
||||
{
|
||||
//取消分配
|
||||
CancelAssign = 0,
|
||||
|
||||
//失效
|
||||
Abandon = 1,
|
||||
|
||||
//重阅重置
|
||||
|
||||
Return = 2,
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public List<TrialExperienceCriteria> TrialExperienceCriteriaList { get; set; }
|
||||
|
||||
|
||||
// UserDoctor表关联 一个医生 可被多个用户管理
|
||||
|
||||
public List<UserDoctor> UserList { get; set; }
|
||||
|
|
|
@ -19,6 +19,8 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public List<UserRole> UserRoleList { get; set; } = new List<UserRole>();
|
||||
public List<TrialUser> UserTrials { get; set; } = new List<TrialUser>();
|
||||
|
||||
public List<VisitTask> VisitTaskList { get; set; }
|
||||
|
||||
|
||||
[StringLength(255)]
|
||||
public string UserName { get; set; } = String.Empty;
|
||||
|
|
|
@ -71,6 +71,8 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
public List<EnrollReadingCategory> EnrollReadingCategoryList { get; set; }
|
||||
|
||||
}
|
||||
|
|
|
@ -90,8 +90,9 @@ namespace IRaCIS.Core.Infra.EFCore
|
|||
|
||||
|
||||
|
||||
modelBuilder.Entity<User>().HasMany(t => t.VisitTaskList).WithOne(t => t.DoctorUser).HasForeignKey(t => t.DoctorUserId);
|
||||
|
||||
modelBuilder.Entity<Enroll>().HasMany(t => t.DoctorTrialVisitTaskList).WithOne(t => t.Enroll).HasForeignKey(t => new { t.DoctorUserId, t.TrialId }).HasPrincipalKey(u => new { u.DoctorUserId, u.TrialId });
|
||||
modelBuilder.Entity<VisitTask>().HasOne(t => t.Enroll).WithMany(t => t.DoctorTrialVisitTaskList).HasForeignKey(t => new { t.DoctorUserId, t.TrialId }).HasPrincipalKey(u => new { u.DoctorUserId, u.TrialId });
|
||||
|
||||
//modelBuilder.Entity<TaskAllocationRule>().HasMany(t => t.DoctorVisitTaskList).WithOne(t => t.DoctorTaskAllocationRule).HasForeignKey(t => new { t.DoctorUserId, t.TrialId }).HasPrincipalKey(u => new { u.DoctorUserId, u.TrialId });
|
||||
|
||||
|
|
Loading…
Reference in New Issue