diff --git a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs index 7649b71e6..1e55f164b 100644 --- a/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs +++ b/IRaCIS.Core.Application/Service/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationService.cs @@ -16,6 +16,8 @@ using IRaCIS.Core.Application.Contracts; using DocumentFormat.OpenXml.Spreadsheet; using Panda.DynamicWebApi.Attributes; using IRaCIS.Core.Domain.Share.Reading; +using System.Runtime.InteropServices; +using DocumentFormat.OpenXml.Bibliography; namespace IRaCIS.Core.Application.Service { @@ -371,13 +373,13 @@ namespace IRaCIS.Core.Application.Service await _subjectCriteriaEvaluationVisitStudyFilterRepository.AddAsync(new SubjectCriteriaEvaluationVisitStudyFilter { SubjectVisitId = subjectVisitId, SeriesId = item.SeriesId, TrialReadingCriterionId = trialReadingCriterionId, StudyId = item.StudyId, IsConfirmed = true }); } + //自动生成任务 + if (!await _repository.AnyAsync(t => t.SourceSubjectVisitId == subjectVisitId && t.TrialReadingCriterionId == trialReadingCriterionId && t.TaskState == TaskState.Effect)) + { + var trialId = _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => t.TrialId).FirstOrDefault(); - //if(! await _repository.AnyAsync(t=>t.SourceSubjectVisitId==subjectVisitId && t.TrialReadingCriterionId==trialReadingCriterionId && t.TaskState == TaskState.Effect)) - //{ - // var trialId=_subjectVisitRepository.Where(t=>t.Id==subjectVisitId).Select(t=>t.TrialId).FirstOrDefault(); - - // await _IVisitTaskHelpeService.BaseCritrionGenerateVisitTask(trialId, trialReadingCriterionId, true, new List() { subjectVisitId}); - //} + await _IVisitTaskHelpeService.BaseCritrionGenerateVisitTask(trialId, trialReadingCriterionId, true, new List() { subjectVisitId }); + } @@ -546,6 +548,24 @@ namespace IRaCIS.Core.Application.Service await _subjectCriteriaEvaluationVisitStudyFilterRepository.AddRangeAsync(_mapper.Map>(batchList)); + + var first = batchList.First(); + + if (batchList.Count(t => t.IsReading == true) >= 0 && batchList.All(t => t.IsConfirmed == false)) + { + await _subjectCriteriaEvaluationVisitFilterRepository.UpdatePartialFromQueryAsync(t => t.SubjectVisitId == first.SubjectVisitId && t.TrialReadingCriterionId == first.TrialReadingCriterionId, + u => new SubjectCriteriaEvaluationVisitFilter() { ImageFilterState = ImageFilterState.Filtering }); + } + + if (batchList.All(t => t.IsConfirmed == true)) + { + + await _subjectCriteriaEvaluationVisitFilterRepository.UpdatePartialFromQueryAsync(t => t.SubjectVisitId == first.SubjectVisitId && t.TrialReadingCriterionId == first.TrialReadingCriterionId, + u => new SubjectCriteriaEvaluationVisitFilter() { ImageFilterState = ImageFilterState.Finished }); + } + + + await _subjectCriteriaEvaluationVisitStudyFilterRepository.SaveChangesAsync(); return ResponseOutput.Ok(); diff --git a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs index 28135100b..3586e0e0d 100644 --- a/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs +++ b/IRaCIS.Core.Domain/Reading/AdditionalEvaluate/SubjectCriteriaEvaluationVisitFilter.cs @@ -79,8 +79,10 @@ namespace IRaCIS.Core.Domain.Models //默认值 待筛选 None = 0, + Filtering=1, + //筛选已完成 - Finished = 1 + Finished = 2 } }