diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs index 4d2a4307e..58d6ae888 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingQuestionService.cs @@ -415,7 +415,7 @@ namespace IRaCIS.Application.Services } - this.VerifyCalculateRelation(relationList, indto.Id.Value); + this.VerifyCalculateRelation(relationList, indto.Id.Value, indto.Id.Value); } var entity = await _readingQuestionTrialRepository.InsertOrUpdateAsync(indto, true); @@ -438,22 +438,29 @@ namespace IRaCIS.Application.Services return await query.ToListAsync(); } - private void VerifyCalculateRelation(List relationList,Guid QuestionId) + /// + /// 验证计算关系 + /// + /// + /// + /// + /// + private void VerifyCalculateRelation(List relationList,Guid QuestionId,Guid originalId) { var relation = relationList.Where(x=>x.CalculateQuestionList.Any(y=>y.QuestionId== QuestionId||y.TableQuestionId==QuestionId)).ToList(); - if (relation.Select(x => x.QuestionId).ToList().Contains(QuestionId)) + if (relation.Select(x => x.QuestionId).ToList().Contains(originalId)) { throw new BusinessValidationFailedException("计算依赖循环了!"); } else { - var newrelation = relation.Clone(); + relation.ForEach(x => { - VerifyCalculateRelation(newrelation, QuestionId); + VerifyCalculateRelation(relationList, x.QuestionId, originalId); }); } @@ -635,7 +642,7 @@ namespace IRaCIS.Application.Services } - this.VerifyCalculateRelation(relationList, indto.Id.Value); + this.VerifyCalculateRelation(relationList, indto.Id.Value, indto.Id.Value); } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index b647d0f37..948a06197 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -193,6 +193,7 @@ namespace IRaCIS.Core.Application await _readingQuestionCriterionTrialRepository.BatchUpdateNoTrackingAsync(x => x.Id == inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial() { IsOncologyReading = systemCriterion.IsOncologyReading, + IseCRFShowInDicomReading=systemCriterion.IseCRFShowInDicomReading, });