修改统计
continuous-integration/drone/push Build is passing Details

Test_IRC_Net8
hang 2025-12-30 10:09:20 +08:00
parent c8e5a5173c
commit 109bdd263e
1 changed files with 11 additions and 7 deletions

View File

@ -16,6 +16,7 @@ namespace IRaCIS.Core.Application;
[ApiExplorerSettings(GroupName = "Trial")]
public class TrialStatService(
IRepository<Trial> _trialRepository,
IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository,
IRepository<ReadingQuestionTrial> _readingQuestionTrialRepository,
IRepository<SubjectVisit> _subjectVisitRepository,
IRepository<TrialDocument> _trialDocumentRepository,
@ -119,7 +120,7 @@ public class TrialStatService(
var trialReadingCriterionId = inQuery.TrialReadingCriterionId;
//每次查询必须是单标准的
var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == trialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionGroup, t.IsGlobalReading, t.IsArbitrationReading, t.IsOncologyReading, t.CriterionName, t.ArbitrationRule, t.TrialId }).FirstNotNullAsync();
var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == trialReadingCriterionId).Select(t => new { t.Id, t.CriterionType, t.CriterionGroup, t.IsGlobalReading, t.IsArbitrationReading, t.IsOncologyReading, t.CriterionName, t.ArbitrationRule, t.TrialId }).FirstNotNullAsync();
if (criterion.CriterionGroup == CriterionGroup.Nontumorous)
@ -216,7 +217,7 @@ public class TrialStatService(
);
//一定要两个人做完了,产生了裁判并且有结果的,否则就不算,并且排除基线
list = list.Where(t => t.IsJudgeSelect == true && t.VisitTaskNum != 0 && t.ReadingCategory==ReadingCategory.Visit)//全局的答案已经放在对应访视上了
list = list.Where(t => t.IsJudgeSelect == true && t.VisitTaskNum != 0 && t.ReadingCategory == ReadingCategory.Visit)//全局的答案已经放在对应访视上了
.GroupBy(t => t.SubjectCode).Select(g => g.OrderByDescending(t => t.VisitTaskNum).First()).ToList();
@ -239,15 +240,18 @@ public class TrialStatService(
// 先把 resultList 转成内存字典
var resultDict = resultList.ToDictionary(r => r.OverallTumorEvaluation, r => r.SubjectCodeList);
// 查询字典表,先把数据拉出来到内存,再合并
var translateList = _dictionaryRepository
.Where(t => t.Parent.Code == dicName)
var translateList = _readingTrialCriterionDictionaryRepository
.Where(t => t.ParentCode == dicName && t.CriterionId == criterion.Id)
.Select(t => new
{
t.Code,
t.Value,
t.Dictionary.Code,
t.Dictionary.Value,
})
.ToList()
.Where(t => t.Code != "-1")
.Select(t => new EfficacyEvaluationStatViewModel
{
DictionaryCode = dicName,
@ -267,7 +271,7 @@ public class TrialStatService(
var pdInfo = translateList
.WhereIf(criterion.CriterionType == CriterionType.IRECIST1Point1, t => t.OverallTumorEvaluation == "ICPD")
.WhereIf(criterion.CriterionType == CriterionType.IRECIST1Point1, t => t.OverallTumorEvaluation == "PD")
.WhereIf(criterion.CriterionType == CriterionType.RECIST1Point1, t => t.OverallTumorEvaluation == "PD")
.FirstOrDefault();
var firstPdList = new List<FirstPdInfo>();