diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index ad48de76..b0e13ad8 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2020,7 +2020,7 @@ - SOD 百分比 整体访视期间最低点SOD相比增加 + SOD 百分比 整体访视期间SOD最低点SOD相比增加<20% @@ -2050,7 +2050,7 @@ - 当前访视点非淋巴结病灶长径>0 + 当前访视点非淋巴结病灶至少一个非淋巴结靶病灶的长径>0 diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index a85d8b4b..8ac891b4 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -630,6 +630,7 @@ namespace IRaCIS.Application.Services IsSign = x.IsSign, ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType, CriterionEnumList = x.ClinicalDataTrialSet.CriterionEnumList, + TrialClinicalDataSetCriteriaList=x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList, Id = x.Id, UploadRole = x.ClinicalDataTrialSet.UploadRole, IsCRCUpload = x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC, @@ -647,8 +648,9 @@ namespace IRaCIS.Application.Services // 根据标准 if (inDto.VisitTaskId != null) { - var criterionType = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Include(x => x.TrialReadingCriterion).Select(x => x.TrialReadingCriterion.CriterionType).FirstNotNullAsync(); - result = result.Where(x => x.CriterionEnumList.Contains((int)criterionType)).ToList(); + var visitTaskInfo = await _visitTaskRepository.FirstOrDefaultAsync(x => x.Id == inDto.VisitTaskId); + + result = result.Where(x => x.TrialClinicalDataSetCriteriaList.Any(z=>z.TrialReadingCriterionId==visitTaskInfo.TrialReadingCriterionId)).ToList(); } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs index 8e854dd3..3bc94370 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs @@ -55,7 +55,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public bool SODPercentLess30 { get; set; } /// - /// SOD 百分比 整体访视期间最低点SOD相比增加 + /// SOD 百分比 整体访视期间SOD最低点SOD相比增加<20% /// public bool LowPercentLess20 { get; set; } @@ -85,7 +85,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public string LastTargetLesionEvaluate { get; set; } /// - /// 当前访视点非淋巴结病灶长径>0 + /// 当前访视点非淋巴结病灶至少一个非淋巴结靶病灶的长径>0 /// public bool CurrentMajoreBigger0 { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs index 2be2e2e4..6ec1ee08 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs @@ -389,6 +389,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public ClinicalDataTable ClinicalTableData { get; set; } + + public List TrialClinicalDataSetCriteriaList { get; set; } } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs index 31ef0224..0cd5bc4c 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs @@ -1479,11 +1479,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate //// 上次访视点整体肿瘤评估 LastTargetLesionEvaluate = string.Empty, - // 当前访视点非淋巴结病灶长径>0 - CurrentMajoreBigger0 = true, + // 当前访视点非淋巴结病灶至少一个非淋巴结靶病灶的长径>0 mm + CurrentMajoreBigger0 = false, - // 至少一个淋巴结靶病灶短径≥10 mm - CurrenShortBigger10 = true, + // 当前访视点淋巴结病灶, 至少一个淋巴结靶病灶短径≥10 mm + CurrenShortBigger10 = false, //淋巴结非靶病灶状态全部为消失 NonTargetStateIsLoss = true, @@ -1499,7 +1499,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate if (item.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.IsLymph && x.Answer.EqEnum(YesOrNoOrNa.Yes))) { // 淋巴结非靶病灶状态全部为消失 - resultData.NonTargetStateIsLoss = item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.State).Select(x => x.Answer).FirstOrDefault()== NoTargetState.Loss.GetEnumInt(); + resultData.NonTargetStateIsLoss = resultData.NonTargetStateIsLoss&& item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.State).Select(x => x.Answer).FirstOrDefault()== NoTargetState.Loss.GetEnumInt(); } } @@ -1509,15 +1509,17 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate if (item.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.IsLymph && x.Answer.EqEnum(YesOrNoOrNa.Yes))) { // 淋巴结的短径 - resultData.DiameterLessThan10 = (item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.ShortAxis).Select(x => x.Answer).FirstOrDefault()).IsNullOrEmptyReturn0() < 10; + resultData.DiameterLessThan10 = resultData.DiameterLessThan10&&(item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.ShortAxis).Select(x => x.Answer).FirstOrDefault()).IsNullOrEmptyReturn0() < 10; + + resultData.CurrenShortBigger10= resultData.CurrenShortBigger10|| (item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.ShortAxis).Select(x => x.Answer).FirstOrDefault()).IsNullOrEmptyReturn0() >= 10; + - } if (item.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.IsLymph && !x.Answer.EqEnum(YesOrNoOrNa.Yes))) { - // 当前访视点非淋巴结病灶 - resultData.CurrentMajoreBigger0 = (item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.Answer).FirstOrDefault()).IsNullOrEmptyReturn0() > 0; + // 当前访视点非淋巴结病灶至少一个非淋巴结靶病灶的长径 + resultData.CurrentMajoreBigger0 = resultData.CurrentMajoreBigger0|| (item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.Answer).FirstOrDefault()).IsNullOrEmptyReturn0() > 0; } }