重阅生成任务
This commit is contained in:
+33
-11
@@ -43,11 +43,12 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
private readonly IVisitTaskHelpeService _IVisitTaskHelpeService;
|
||||
private readonly IRepository<TaskMedicalReview> _taskMedicalReviewRepository;
|
||||
private readonly IRepository<VisitTaskReReading> _visitTaskReReadingRepository;
|
||||
|
||||
public SubjectCriteriaEvaluationService(IRepository<SubjectCriteriaEvaluation> subjectCriteriaEvaluationRepository, IRepository<Subject> subjectRepository,
|
||||
IRepository<SubjectCriteriaEvaluationVisitFilter> subjectCriteriaEvaluationVisitFilterRepository, IRepository<SubjectVisit> subjectVisitRepository,
|
||||
IRepository<SubjectCriteriaEvaluationVisitStudyFilter> subjectCriteriaEvaluationVisitStudyFilterRepository,
|
||||
IRepository<ReadingQuestionCriterionTrial> trialReadingCriterionRepository, IVisitTaskHelpeService IVisitTaskHelpeService, IRepository<ReadingQuestionTrial> trialReadingQuestionRepository, IRepository<VisitTask> visitTaskRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository)
|
||||
IRepository<ReadingQuestionCriterionTrial> trialReadingCriterionRepository, IVisitTaskHelpeService IVisitTaskHelpeService, IRepository<ReadingQuestionTrial> trialReadingQuestionRepository, IRepository<VisitTask> visitTaskRepository, IRepository<TaskMedicalReview> taskMedicalReviewRepository, IRepository<VisitTaskReReading> visitTaskReReadingRepository)
|
||||
{
|
||||
_subjectCriteriaEvaluationRepository = subjectCriteriaEvaluationRepository;
|
||||
_subjectRepository = subjectRepository;
|
||||
@@ -61,6 +62,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
_trialReadingQuestionRepository = trialReadingQuestionRepository;
|
||||
_visitTaskRepository = visitTaskRepository;
|
||||
_taskMedicalReviewRepository = taskMedicalReviewRepository;
|
||||
_visitTaskReReadingRepository = visitTaskReReadingRepository;
|
||||
}
|
||||
|
||||
|
||||
@@ -427,7 +429,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
SubjectVisitId = subjectVisit.Id,
|
||||
TrialId = subjectVisit.TrialId,
|
||||
SubjectId = subjectVisit.SubjectId,
|
||||
SubjectCode= subjectVisit.Subject.Code,
|
||||
SubjectCode = subjectVisit.Subject.Code,
|
||||
TrialReadingCriterionId = inQuery.TrialReadingCriterionId,
|
||||
LatestScanDate = subjectVisit.LatestScanDate,
|
||||
EarliestScanDate = subjectVisit.LatestScanDate,
|
||||
@@ -581,15 +583,26 @@ namespace IRaCIS.Core.Application.Service
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
|
||||
public async Task<List<InfluenceTaskInfo>> GetCriteriaVisitBackInfluenceTaskList(CriteriaVisitBackCommand command)
|
||||
public async Task<(List<InfluenceTaskInfo>, object)> GetCriteriaVisitBackInfluenceTaskList(CriteriaVisitBackCommand command)
|
||||
{
|
||||
|
||||
var isIRAppyTaskInfluenced = false;
|
||||
|
||||
var filterExpression = await GetTaskExpressionAsync(command);
|
||||
|
||||
var subjectVisit = await _subjectVisitRepository.FindAsync(command.SubjectVisitId);
|
||||
|
||||
if (await _visitTaskReReadingRepository.AnyAsync(t => t.RequestReReadingType == RequestReReadingType.DocotorApply && t.RequestReReadingResultEnum == RequestReReadingResult.Default &&
|
||||
t.OriginalReReadingTask.VisitTaskNum >= subjectVisit.VisitNum && t.OriginalReReadingTask.SubjectId == subjectVisit.SubjectId && t.OriginalReReadingTask.TrialReadingCriterionId == command.TrialReadingCriterionId))
|
||||
{
|
||||
isIRAppyTaskInfluenced = true;
|
||||
}
|
||||
|
||||
var list = await _visitTaskRepository.Where(filterExpression)
|
||||
|
||||
.OrderBy(t => t.VisitTaskNum).ProjectTo<InfluenceTaskInfo>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
||||
return list;
|
||||
return (list, new { IsIRAppyTaskInfluenced = isIRAppyTaskInfluenced });
|
||||
}
|
||||
|
||||
private async Task<Expression<Func<VisitTask, bool>>> GetTaskExpressionAsync(CriteriaVisitBackCommand command)
|
||||
@@ -622,12 +635,21 @@ namespace IRaCIS.Core.Application.Service
|
||||
/// <returns></returns>
|
||||
public async Task ConfirmBackCriteriaVisitTask(CriteriaVisitBackCommand command)
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
var filterExpression = await GetTaskExpressionAsync(command);
|
||||
|
||||
|
||||
|
||||
|
||||
var influenceTaskList = await _visitTaskRepository.Where(filterExpression, true).ToListAsync();
|
||||
|
||||
var subjectVisit = await _subjectVisitRepository.FindAsync(command.SubjectVisitId);
|
||||
|
||||
|
||||
|
||||
foreach (var influenceTask in influenceTaskList)
|
||||
{
|
||||
|
||||
@@ -679,15 +701,15 @@ namespace IRaCIS.Core.Application.Service
|
||||
//将筛选的访视 序列状态重置
|
||||
|
||||
//重置访视数据
|
||||
await _subjectCriteriaEvaluationVisitFilterRepository.BatchUpdateNoTrackingAsync(t => t.TrialReadingCriterionId== command.TrialReadingCriterionId && t.SubjectId == command.SubjectId && subjectVisitIdLsit.Contains(t.SubjectVisitId) ,
|
||||
t=>new SubjectCriteriaEvaluationVisitFilter()
|
||||
{
|
||||
ImageFilterState=ImageFilterState.None,
|
||||
ImageDeterminationResultState=ImageDeterminationResultState.None
|
||||
});
|
||||
await _subjectCriteriaEvaluationVisitFilterRepository.BatchUpdateNoTrackingAsync(t => t.TrialReadingCriterionId == command.TrialReadingCriterionId && t.SubjectId == command.SubjectId && subjectVisitIdLsit.Contains(t.SubjectVisitId),
|
||||
t => new SubjectCriteriaEvaluationVisitFilter()
|
||||
{
|
||||
ImageFilterState = ImageFilterState.None,
|
||||
ImageDeterminationResultState = ImageDeterminationResultState.None
|
||||
});
|
||||
|
||||
//删除序列数据
|
||||
await _subjectCriteriaEvaluationVisitStudyFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterionId == command.TrialReadingCriterionId && subjectVisitIdLsit.Contains(t.SubjectVisitId));
|
||||
await _subjectCriteriaEvaluationVisitStudyFilterRepository.BatchDeleteNoTrackingAsync(t => t.TrialReadingCriterionId == command.TrialReadingCriterionId && subjectVisitIdLsit.Contains(t.SubjectVisitId));
|
||||
|
||||
await _visitTaskRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user