HIR 申请重阅,如果后续任务已经拷贝了表单,申请当前任务后,后续拷贝的表单删除
continuous-integration/drone/push Build is passing Details

Test_HIR_Net8
hang 2025-01-07 13:40:24 +08:00
parent 5783f5836a
commit 282c0b40c2
1 changed files with 31 additions and 7 deletions

View File

@ -1522,7 +1522,9 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
[HttpPost]
[UnitOfWork]
public async Task<IResponseOutput> AIRReReading(AIRReReadingCommand command, [FromServices] IVisitTaskHelpeService _visitTaskCommonService)
public async Task<IResponseOutput> AIRReReading(AIRReReadingCommand command,
[FromServices] IVisitTaskHelpeService _visitTaskCommonService,
[FromServices] IRepository<ReadingTableQuestionAnswer> _readingTableQuestionAnswerRepository)
{
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.AIR)
{
@ -1592,6 +1594,28 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
RequestReReadingResultEnum = RequestReReadingResult.Agree,
ConfirmReReadingList = new List<ConfirmReReadingDTO>() { new ConfirmReReadingDTO() { Id = requestRecord.Id, OriginalReReadingTaskId = visitTaskId } }
}, _visitTaskCommonService);
//有序SR 申请重阅的时候,把后续任务的拷贝表单要清理掉
var taskInfo = _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => new { t.TrialReadingCriterion.IsReadingTaskViewInOrder, t.TrialReadingCriterionId, t.SubjectId, t.VisitTaskNum }).FirstOrDefault();
if (taskInfo.IsReadingTaskViewInOrder == ReadingOrder.InOrder)
{
var afterTaskIdList = _visitTaskRepository.Where(t => t.SubjectId == taskInfo.SubjectId && t.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
&& t.ReadingCategory == ReadingCategory.Visit && t.VisitTaskNum > taskInfo.VisitTaskNum).Select(t => t.Id).ToList();
await _readingCustomTagRepository.BatchDeleteNoTrackingAsync(t => afterTaskIdList.Contains(t.VisitTaskId));
await _readingTaskQuestionMarkRepository.BatchDeleteNoTrackingAsync(t => afterTaskIdList.Contains(t.VisitTaskId));
await _readingTaskQuestionAnswerRepository.BatchDeleteNoTrackingAsync(t => afterTaskIdList.Contains(t.VisitTaskId));
await _readingTableAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(t => afterTaskIdList.Contains(t.VisitTaskId));
await _readingTableQuestionAnswerRepository.BatchDeleteNoTrackingAsync(t => afterTaskIdList.Contains(t.VisitTaskId));
}
}
}
@ -2876,7 +2900,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == filterObj.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.CriterionType, x.IsAdditionalAssessment, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) && t.TaskAllocationState == TaskAllocationState.Allocated;
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze);
//是否是一致性分析任务 (一致性分析的任务 不会产生裁判 肿瘤学 仅仅有生成的访视和全局)