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

@ -1051,7 +1051,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
.WhereIf(!string.IsNullOrEmpty(inQuery.TaskName), t => t.OriginalReReadingTask.TaskName.Contains(inQuery.TaskName) || t.NewReReadingTask.TaskBlindName.Contains(inQuery.TaskName))
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => (t.OriginalReReadingTask.Subject.Code.Contains(inQuery.SubjectCode) && t.OriginalReReadingTask.IsAnalysisCreate == false) || (t.OriginalReReadingTask.BlindSubjectCode.Contains(inQuery.SubjectCode) && t.OriginalReReadingTask.IsAnalysisCreate))
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectName), t => t.OriginalReReadingTask.Subject.ShortName.Contains(inQuery.SubjectName ))
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectName), t => t.OriginalReReadingTask.Subject.ShortName.Contains(inQuery.SubjectName))
.WhereIf(inQuery.BeginAllocateDate != null, t => t.OriginalReReadingTask.AllocateTime > inQuery.BeginAllocateDate)
@ -1146,9 +1146,9 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
TrialReadingCriterionId = trialReadingCriterionId,
SubjectCode = inQuery.SubjectCode,
SubjectName=inQuery.SubjectName,
PatientIdStr=inQuery.PatientIdStr,
PatientName=inQuery.PatientName,
SubjectName = inQuery.SubjectName,
PatientIdStr = inQuery.PatientIdStr,
PatientName = inQuery.PatientName,
PageIndex = inQuery.PageIndex,
PageSize = inQuery.PageSize,
@ -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);
//是否是一致性分析任务 (一致性分析的任务 不会产生裁判 肿瘤学 仅仅有生成的访视和全局)