diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index 61f027698..f41418480 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -187,8 +187,8 @@ namespace IRaCIS.Application.Services public async Task> GetCRCClinicalData(GetCRCClinicalDataInDto inDto) { List cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId) - .WhereIf(inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit) - .WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit) + .WhereIf(inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit|| x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Study) + .WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Study) .Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC) .Select(x => new GetCRCClinicalDataOutDto() { diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs index 44b414aa0..fceea7ca6 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingJudgeTaskService.cs @@ -426,9 +426,10 @@ namespace IRaCIS.Application.Services SignTime = DateTime.Now, JudgeResultImagePath = string.Join(',', inDto.JudgeResultImagePathList), }); - await _visitTaskRepository.SaveChangesAsync(); - // 需要判断是否添加肿瘤学任务 - var taskInfo = await _visitTaskRepository.Where(x => x.JudgeVisitTaskId == inDto.VisitTaskId).Include(x => x.TrialReadingCriterion).FirstNotNullAsync(); + var result = await _visitTaskRepository.SaveChangesAsync(); + + // 需要判断是否添加肿瘤学任务 + var taskInfo = await _visitTaskRepository.Where(x => x.JudgeVisitTaskId == inDto.VisitTaskId).Include(x => x.TrialReadingCriterion).FirstNotNullAsync(); if (taskInfo.ReadingCategory == ReadingCategory.Visit) { @@ -461,7 +462,7 @@ namespace IRaCIS.Application.Services } - var result = await _visitTaskRepository.SaveChangesAsync(); + // 创建任务关联关系 diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs index ca38c5187..594aa2137 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingOncologyTaskService.cs @@ -128,7 +128,9 @@ namespace IRaCIS.Application.Services //visitTask = await _visitTaskRepository.Where(x => x.Id == judgeResultTaskId).FirstNotNullAsync(); visitTaskIdList= await _visitTaskRepository.Where(x => x.Id == judgeResultTaskId).Select(x=>x.RelatedVisitTaskIdList).FirstNotNullAsync(); - } + globalOrVisitTaskInfo = await _visitTaskRepository.Where(x => x.Id == judgeResultTaskId).FirstNotNullAsync(); + + } @@ -154,17 +156,17 @@ namespace IRaCIS.Application.Services { // 按照全局那边的查询法 globalVisits =await _visitTaskRepository.Where(x => - x.TrialId == taskInfo.TrialId && - x.SubjectId == taskInfo.SubjectId && + x.TrialId == globalOrVisitTaskInfo.TrialId && + x.SubjectId == globalOrVisitTaskInfo.SubjectId && x.ReadingCategory == ReadingCategory.Visit && - x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId && + x.TrialReadingCriterionId == globalOrVisitTaskInfo.TrialReadingCriterionId && x.ReadingTaskState == ReadingTaskState.HaveSigned && - x.IsAnalysisCreate == taskInfo.IsAnalysisCreate && - x.ArmEnum == taskInfo.ArmEnum && - x.IsSelfAnalysis == taskInfo.IsSelfAnalysis && - x.DoctorUserId == taskInfo.DoctorUserId && + x.IsAnalysisCreate == globalOrVisitTaskInfo.IsAnalysisCreate && + x.ArmEnum == globalOrVisitTaskInfo.ArmEnum && + x.IsSelfAnalysis == globalOrVisitTaskInfo.IsSelfAnalysis && + x.DoctorUserId == globalOrVisitTaskInfo.DoctorUserId && x.TaskState == TaskState.Effect && - x.VisitTaskNum < globalOrVisitTaskInfo.VisitTaskNum) + x.VisitTaskNum <= globalOrVisitTaskInfo.VisitTaskNum) .OrderBy(x => x.VisitTaskNum).Select(x => new GlobalVisitInfo() { VisitName = x.TaskName, @@ -172,7 +174,7 @@ namespace IRaCIS.Application.Services VisitTaskId = x.Id, IsConvertedTask = x.IsConvertedTask, IsFirstChangeTask = x.IsConvertedTask && x.BeforeConvertedTaskId != null, - ArmEnum = taskInfo.ArmEnum, + ArmEnum = globalOrVisitTaskInfo.ArmEnum, VisitNum = x.SourceSubjectVisit.VisitNum, IsBaseLine = x.SourceSubjectVisit.IsBaseLine, VisitId = x.SourceSubjectVisitId!.Value, @@ -182,7 +184,7 @@ namespace IRaCIS.Application.Services Count = x.ToList().Count() }).ToList(), //CrterionDictionaryGroup= x.CrterionDictionaryGroup, - BeforeQuestionList = x.ReadingTaskQuestionAnswerList.Where(y => y.ReadingQuestionTrial.GlobalReadingShowType != GlobalReadingShowType.NotShow).OrderBy(y => y.ReadingQuestionTrial.ShowOrder) + AfterQuestionList = x.ReadingTaskQuestionAnswerList.Where(y => y.ReadingQuestionTrial.GlobalReadingShowType != GlobalReadingShowType.NotShow).OrderBy(y => y.ReadingQuestionTrial.ShowOrder) .Select(y => new GlobalQuestionInfo() { @@ -430,13 +432,15 @@ namespace IRaCIS.Application.Services else { - globalOrVisitTaskId = await _visitTaskRepository.Where(x => x.SourceSubjectVisitId == readModuleInfo.SubjectVisitId && x.TaskState == TaskState.Effect + var visitTask = await _visitTaskRepository.Where(x => x.SourceSubjectVisitId == readModuleInfo.SubjectVisitId && x.TaskState == TaskState.Effect && x.TrialReadingCriterionId == readModuleInfo.TrialReadingCriterionId - && x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.Id).FirstOrDefaultAsync(); + && x.ReadingCategory==ReadingCategory.Visit + && x.ReadingTaskState == ReadingTaskState.HaveSigned).FirstNotNullAsync(); + + globalOrVisitTaskId = visitTask.Id; + + var judgeVisitTaskId = visitTask.JudgeVisitTaskId; - var judgeVisitTaskId = await _visitTaskRepository.Where(x => x.SourceSubjectVisitId == readModuleInfo.SubjectVisitId && x.TaskState == TaskState.Effect - &&x.TrialReadingCriterionId== readModuleInfo.TrialReadingCriterionId - && x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.JudgeVisitTaskId).FirstOrDefaultAsync(); // 要判断是否为老裁判任务的Id if (judgeVisitTaskId != null) {