任务阅片修改
This commit is contained in:
+39
-18
@@ -178,7 +178,7 @@ namespace IRaCIS.Application.Services
|
||||
[HttpPost]
|
||||
public async Task<List<ReadingCustomTagDto>> GetCustomTag(GetCustomTagInDto inQuery)
|
||||
{
|
||||
var result= await _readingCustomTagRepository.Where(x => x.VisitTaskId == inQuery.VisitTaskId).ProjectTo<ReadingCustomTagDto>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
var result = await _readingCustomTagRepository.Where(x => x.VisitTaskId == inQuery.VisitTaskId).ProjectTo<ReadingCustomTagDto>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -664,7 +664,7 @@ namespace IRaCIS.Application.Services
|
||||
throw new BusinessValidationFailedException(_localizer["ReadingImage_BeSigned"]);
|
||||
}
|
||||
|
||||
if(await _visitTaskRepository.AnyAsync(x=> x.Id == visitTaskid && x.DoctorUserId != _userInfo.Id && x.SubjectCriterionClaimUserId != _userInfo.Id))
|
||||
if (await _visitTaskRepository.AnyAsync(x => x.Id == visitTaskid && x.DoctorUserId != _userInfo.Id && x.SubjectCriterionClaimUserId != _userInfo.Id))
|
||||
{
|
||||
throw new BusinessValidationFailedException("当前任务领取人不是你,不允许提交签名");
|
||||
}
|
||||
@@ -2111,7 +2111,7 @@ namespace IRaCIS.Application.Services
|
||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
||||
public async Task<IResponseOutput> SubmitDicomVisitTask(SubmitDicomVisitTaskInDto inDto)
|
||||
{
|
||||
|
||||
|
||||
await this.SubmitTaskChangeState(inDto.VisitTaskId);
|
||||
return ResponseOutput.Ok(true);
|
||||
}
|
||||
@@ -2209,7 +2209,7 @@ namespace IRaCIS.Application.Services
|
||||
SubjectId = taskInfo.SubjectId,
|
||||
TrialId = taskInfo.TrialId,
|
||||
VisitTaskId = taskInfo.Id,
|
||||
|
||||
|
||||
});
|
||||
|
||||
var isBaseLine = false;
|
||||
@@ -2330,16 +2330,37 @@ namespace IRaCIS.Application.Services
|
||||
if (task != null)
|
||||
{
|
||||
// 有序 自动领取该Subject
|
||||
await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, SubejctId = task.SubjectId, TrialReadingCriterionId=task.TrialReadingCriterionId, VisitTaskId=task.VisitTaskId, IsInOrder = true });
|
||||
await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, SubejctId = task.SubjectId, TrialReadingCriterionId = task.TrialReadingCriterionId, VisitTaskId = task.VisitTaskId, IsInOrder = true });
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//无序取数据
|
||||
task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == trialReadingCriterionId && x.ReadingTaskState != ReadingTaskState.HaveSigned /*&& x.DoctorUserId == _userInfo.Id*/
|
||||
&& x.TrialReadingCriterionId == trialReadingCriterionId
|
||||
&& x.TaskState == TaskState.Effect)
|
||||
.Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign)
|
||||
|
||||
#region 这里多了分配,删除之前的逻辑
|
||||
////无序取数据
|
||||
//task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == trialReadingCriterionId && x.ReadingTaskState != ReadingTaskState.HaveSigned /*&& x.DoctorUserId == _userInfo.Id*/
|
||||
//&& x.TrialReadingCriterionId == trialReadingCriterionId
|
||||
//&& x.TaskState == TaskState.Effect)
|
||||
// .Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign)
|
||||
// .Select(x => new GetReadingTaskDto()
|
||||
// {
|
||||
// VisitTaskId = x.Id,
|
||||
// ArmEnum = x.ArmEnum,
|
||||
// TaskBlindName = x.TaskBlindName,
|
||||
// ReadingCategory = x.ReadingCategory,
|
||||
// VisistId = x.SourceSubjectVisitId != null ? x.SourceSubjectVisitId.Value : x.ReadModule == null ? default(Guid) : x.ReadModule.SubjectVisitId,
|
||||
// VisitNum = x.VisitTaskNum,
|
||||
// SubjectId = x.SubjectId,
|
||||
// SubjectCode = x.Subject.Code,
|
||||
// TrialReadingCriterionId = x.TrialReadingCriterionId,
|
||||
// }).OrderByDescending(t => t.TaskBlindName).FirstOrDefaultAsync();
|
||||
#endregion
|
||||
|
||||
var taskQuery = await _visitTaskService.GetNotOrderReadingQueryableAsync(inDto.TrialId,(Guid) trialReadingCriterionId);
|
||||
|
||||
var list = taskQuery.ToList();
|
||||
|
||||
task = await taskQuery.OrderByDescending(t => t.TaskBlindName)
|
||||
.Select(x => new GetReadingTaskDto()
|
||||
{
|
||||
VisitTaskId = x.Id,
|
||||
@@ -2351,12 +2372,12 @@ namespace IRaCIS.Application.Services
|
||||
SubjectId = x.SubjectId,
|
||||
SubjectCode = x.Subject.Code,
|
||||
TrialReadingCriterionId = x.TrialReadingCriterionId,
|
||||
}).OrderByDescending(t => t.TaskBlindName).FirstOrDefaultAsync();
|
||||
}).OrderByDescending(t => t.TaskBlindName).FirstOrDefaultAsync();
|
||||
|
||||
if (task != null)
|
||||
{
|
||||
// 无序
|
||||
await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, VisitTaskId = task.VisitTaskId, IsInOrder = false });
|
||||
await ClaimOrCancelSubjectAsync(new ClaimSubjectDto() { IsClaim = true, VisitTaskId = task.VisitTaskId, IsInOrder = false });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2506,14 +2527,14 @@ namespace IRaCIS.Application.Services
|
||||
if (claimSubjectDto.IsClaim)
|
||||
{
|
||||
//每个subject 每个标准的领取放在 任务上 免得加表
|
||||
if(_visitTaskRepository.Any(t=>t.Id== claimSubjectDto.SubejctId && t.TrialReadingCriterionId==claimSubjectDto.TrialReadingCriterionId
|
||||
if (_visitTaskRepository.Any(t => t.Id == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId
|
||||
&& t.SubjectCriterionClaimUserId != _userInfo.Id && t.SubjectCriterionClaimUserId != null))
|
||||
{
|
||||
throw new BusinessValidationFailedException("当前任务已被其他人领取,请进行其他的阅片任务");
|
||||
}
|
||||
else
|
||||
{
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId , u => new VisitTask() { SubjectCriterionClaimUserId = _userInfo.Id });
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId, u => new VisitTask() { SubjectCriterionClaimUserId = _userInfo.Id });
|
||||
|
||||
//列表可以看到当前阅片人是谁
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.Id == claimSubjectDto.VisitTaskId, u => new VisitTask() { DoctorUserId = _userInfo.Id });
|
||||
@@ -2524,7 +2545,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
// 创建一个任务
|
||||
IJobDetail job = JobBuilder.Create<CancelTaskQuartZJob>()
|
||||
|
||||
|
||||
.UsingJobData("SubjectId", claimSubjectDto.SubejctId) // 传递GUID参数给任务
|
||||
.UsingJobData("TrialReadingCriterionId", claimSubjectDto.TrialReadingCriterionId)
|
||||
.UsingJobData("IsInOrder", claimSubjectDto.IsInOrder)
|
||||
@@ -2543,7 +2564,7 @@ namespace IRaCIS.Application.Services
|
||||
}
|
||||
else
|
||||
{
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId , u => new VisitTask() { SubjectCriterionClaimUserId = null });
|
||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => t.SubjectId == claimSubjectDto.SubejctId && t.TrialReadingCriterionId == claimSubjectDto.TrialReadingCriterionId, u => new VisitTask() { SubjectCriterionClaimUserId = null });
|
||||
}
|
||||
}
|
||||
//无序 直接用DoctorUserId 当做领取人
|
||||
@@ -2563,7 +2584,7 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
|
||||
IJobDetail job = JobBuilder.Create<CancelTaskQuartZJob>()
|
||||
.UsingJobData("VisitTaskId",(Guid) claimSubjectDto.VisitTaskId) // 传递GUID参数给任务
|
||||
.UsingJobData("VisitTaskId", (Guid)claimSubjectDto.VisitTaskId) // 传递GUID参数给任务
|
||||
.UsingJobData("IsInOrder", claimSubjectDto.IsInOrder).Build();
|
||||
|
||||
// 创建一个触发器,设置任务执行时间为24小时后
|
||||
@@ -2590,7 +2611,7 @@ namespace IRaCIS.Application.Services
|
||||
await VerifyTaskIsSign(visitTaskId);
|
||||
await _visitTaskRepository.UpdatePartialFromQueryAsync(visitTaskId, x => new VisitTask()
|
||||
{
|
||||
DoctorUserId=_userInfo.Id,
|
||||
DoctorUserId = _userInfo.Id,
|
||||
ReadingTaskState = ReadingTaskState.HaveSigned,
|
||||
SignTime = DateTime.Now,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user