修改一版

Uat_Study
he 2023-01-30 13:35:51 +08:00
parent ab89154e67
commit e18b890f96
2 changed files with 36 additions and 7 deletions

View File

@ -24,12 +24,15 @@ namespace IRaCIS.Core.Application.Service.RC
private readonly IRepository<ReadingTableQuestionAnswer> _readingTableQuestionAnswerRepository;
private readonly IRepository<ReadingTableAnswerRowInfo> _readingTableAnswerRowInfoRepository;
private readonly IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository;
public ReadingQuestionService(
IRepository<ReadingQuestionCriterionSystem> readingQuestionCriterionSystemRepository,
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
IRepository<ReadingQuestionTrial> readingQuestionTrialRepository,
IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository,
IRepository<VisitTask> visitTaskRepository,
IRepository<ReadingTableQuestionTrial> readingTableQuestionTrialRepository,
IRepository<ReadingTableQuestionAnswer> readingTableQuestionAnswerRepository,
IRepository<ReadingTableAnswerRowInfo> readingTableAnswerRowInfoRepository,
IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswer,
@ -38,7 +41,7 @@ namespace IRaCIS.Core.Application.Service.RC
this._readingQuestionCriterionSystemRepository = readingQuestionCriterionSystemRepository;
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
this._readingQuestionTrialRepository = readingQuestionTrialRepository;
this._readingTableQuestionTrialRepository = readingTableQuestionTrialRepository;
this._readingCriterionPageRepository = readingCriterionPageRepository;
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
this._visitTaskRepository = visitTaskRepository;
@ -63,10 +66,6 @@ namespace IRaCIS.Core.Application.Service.RC
});
var taskquery = _visitTaskRepository.Where(x => x.TrialReadingCriterionId == trialReadingCriterionId).AsQueryable();
await _readingTaskQuestionAnswer.BatchDeleteNoTrackingAsync(x => taskquery.Any(y=>y.Id==x.VisitTaskId));
await _readingTableAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => taskquery.Any(y => y.Id == x.VisitTaskId));
await _readingTableQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => taskquery.Any(y => y.Id == x.VisitTaskId));
return ResponseOutput.Ok();
}

View File

@ -35,6 +35,15 @@ namespace IRaCIS.Core.Application
private readonly IRepository<ReadingCriterionDictionary> _readingCriterionDictionaryRepository;
private readonly IReadingQuestionService iReadingQuestionService;
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswer;
private readonly IRepository<VisitTask> _visitTaskRepository;
private readonly IRepository<ReadingTableQuestionAnswer> _readingTableQuestionAnswerRepository;
private readonly IRepository<ReadingTableAnswerRowInfo> _readingTableAnswerRowInfoRepository;
private readonly IRepository<ReadingTableQuestionTrial> _readingTableQuestionTrialRepository;
public TrialConfigService(IRepository<Trial> trialRepository,
IRepository<TrialQCQuestion> trialQCQuestionRepository,
IRepository<ReadingQuestionCriterionTrial> readingQuestionCriterionTrialRepository,
@ -46,7 +55,14 @@ namespace IRaCIS.Core.Application
IRepository<ReadingCriterionDictionary> readingCriterionDictionaryRepository,
IReadingQuestionService iReadingQuestionService,
IEasyCachingProvider provider,
IOrganInfoService iOrganInfoService
IOrganInfoService iOrganInfoService,
IRepository<VisitTask> visitTaskRepository,
IRepository<ReadingTableQuestionTrial> readingTableQuestionTrialRepository,
IRepository<ReadingTableQuestionAnswer> readingTableQuestionAnswerRepository,
IRepository<ReadingTableAnswerRowInfo> readingTableAnswerRowInfoRepository,
IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswer
)
{
_trialRepository = trialRepository;
@ -58,9 +74,15 @@ namespace IRaCIS.Core.Application
this._readingQuestionTrialRepository = readingQuestionTrialRepository;
this._readingQuestionCriterionSystemRepository = readingQuestionCriterionSystemRepository;
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
this._readingCriterionPageRepository = readingCriterionPageRepository;
this._provider = provider;
this._iOrganInfoService = iOrganInfoService;
this._readingTableQuestionTrialRepository = readingTableQuestionTrialRepository;
this._readingCriterionPageRepository = readingCriterionPageRepository;
this._visitTaskRepository = visitTaskRepository;
this._readingTableQuestionAnswerRepository = readingTableQuestionAnswerRepository;
this._readingTableAnswerRowInfoRepository = readingTableAnswerRowInfoRepository;
this._readingTaskQuestionAnswer = readingTaskQuestionAnswer;
}
@ -193,6 +215,14 @@ namespace IRaCIS.Core.Application
TrialReadingCriterionId = inDto.TrialReadingCriterionId,
});
// 清除多余答案
var questionQuery = _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == inDto.TrialReadingCriterionId).AsQueryable();
var tableQuestionQuery = _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == inDto.TrialReadingCriterionId).AsQueryable();
await _readingTaskQuestionAnswer.BatchDeleteNoTrackingAsync(x => questionQuery.Count(y => y.Id == x.ReadingQuestionTrialId) == 0) ;
await _readingTableAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => questionQuery.Count(y => y.Id == x.QuestionId)==0);
await _readingTableQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => tableQuestionQuery.Count(y => y.Id == x.TableQuestionId)==0);
var systemCriterion = await _readingQuestionCriterionSystemRepository.Where(x => x.Id == trialCriterion.ReadingQuestionCriterionSystemId).FirstNotNullAsync();
await _readingQuestionCriterionTrialRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial()