diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 2eabf674d..bfad115dd 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -4521,6 +4521,11 @@ 是否是第一次转化的任务 + + + 是否存在临床数据 + + 当新答案为空的时候 是否是有原数据 diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 9bf93330a..3dcc4a3e1 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -227,7 +227,7 @@ namespace IRaCIS.Core.Application.Service.Allocation public async Task>> GetPIReadingAuditList(VisitTaskQuery queryVisitTask) { - CriterionType? criterionType = _trialReadingCriterionRepository.Where(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t=>t.CriterionType).FirstOrDefault(); + //CriterionType? criterionType = _trialReadingCriterionRepository.Where(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t=>t.CriterionType).FirstOrDefault(); var visitTaskQueryable = GetReadingTaskQueryable(queryVisitTask) .ProjectTo(_mapper.ConfigurationProvider); @@ -239,9 +239,9 @@ namespace IRaCIS.Core.Application.Service.Allocation var trialTaskConfig = _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).ProjectTo(_mapper.ConfigurationProvider).FirstOrDefault(); var questionList = _readingQuestionTrialRepository.Where(t => t.TrialId == queryVisitTask.TrialId && t.ReadingQuestionCriterionTrialId == queryVisitTask.TrialReadingCriterionId) - //.Where(t => t.IsJudgeQuestion == true) - .WhereIf(criterionType!=null&& criterionType!=CriterionType.SelfDefine,t=>t.IsJudgeQuestion==true) - .WhereIf(criterionType != null && criterionType == CriterionType.SelfDefine, t => t.AssessmentResultEnum == AssessmentResultType.AssessmentResult) + .Where(t => t.IsJudgeQuestion == true) + //.WhereIf(criterionType!=null&& criterionType!=CriterionType.SelfDefine,t=>t.IsJudgeQuestion==true) + // .WhereIf(criterionType != null && criterionType == CriterionType.SelfDefine, t => t.AssessmentResultEnum == AssessmentResultType.AssessmentResult) .Select(t => new { QuestionId = t.Id, QuestionName = _userInfo.IsEn_Us ? t.QuestionEnName : t.QuestionName ,t.DictionaryCode}).ToList(); trialTaskConfig!.OtherObj = questionList; diff --git a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs index 905d6503a..7fcb7756b 100644 --- a/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Allocation/_MapConfig.cs @@ -84,7 +84,7 @@ namespace IRaCIS.Core.Application.Service CreateMap().IncludeBase() .ForMember(t=>t.PIReadingResultList,u=>u.MapFrom(c=>c.ReadingTaskQuestionAnswerList - .Where(t=> t.ReadingQuestionCriterionTrial.CriterionType==CriterionType.SelfDefine? t.ReadingQuestionTrial.AssessmentResultEnum == AssessmentResultType.AssessmentResult: t.ReadingQuestionTrial.IsJudgeQuestion==true) + .Where(t=> /*t.ReadingQuestionCriterionTrial.CriterionType==CriterionType.SelfDefine? t.ReadingQuestionTrial.AssessmentResultEnum == AssessmentResultType.AssessmentResult:*/ t.ReadingQuestionTrial.IsJudgeQuestion==true) .Select(d=>new PIReadingResult() { QuestionId= d.ReadingQuestionTrialId,Answer=d.Answer}))); CreateMap().IncludeBase() diff --git a/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs b/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs index 46ed1e447..848de647d 100644 --- a/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs +++ b/IRaCIS.Core.Application/Service/Common/InternationalizationService.cs @@ -144,7 +144,8 @@ namespace IRaCIS.Core.Application.Service await _internationalizationRepository.SaveChangesAsync(); - + //清理缓存 + _provider.Set>(StaticData.InternationalData.Front, new List(), TimeSpan.FromDays(1)); return ResponseOutput.Ok(); } @@ -183,6 +184,9 @@ namespace IRaCIS.Core.Application.Service } + //清理缓存 + _provider.Set>(StaticData.InternationalData.Front, new List(), TimeSpan.FromDays(1)); + return ResponseOutput.Ok(entity.Id.ToString()); } @@ -192,6 +196,9 @@ namespace IRaCIS.Core.Application.Service public async Task DeleteInternationalization(Guid internationalizationId) { var success = await _internationalizationRepository.DeleteFromQueryAsync(t => t.Id == internationalizationId, true); + + //清理缓存 + _provider.Set>(StaticData.InternationalData.Front, new List(), TimeSpan.FromDays(1)); return ResponseOutput.Ok(); } diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index 2df1d2848..ec7c73af0 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -1322,13 +1322,14 @@ namespace IRaCIS.Core.Application.Service /// /// /// + [HttpPost] public async Task> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery queryEmailNoticeConfig) { var emailNoticeConfigQueryable = _emailNoticeConfigRepository .WhereIf(queryEmailNoticeConfig.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == queryEmailNoticeConfig.BusinessScenarioEnum) .WhereIf(queryEmailNoticeConfig.IsReturnRequired != null, t => t.IsReturnRequired == queryEmailNoticeConfig.IsReturnRequired) .WhereIf(queryEmailNoticeConfig.IsEnable != null, t => t.IsEnable == queryEmailNoticeConfig.IsEnable) - + .WhereIf(queryEmailNoticeConfig.CriterionTypeEnum != null, t => t.CriterionTypeEnum == queryEmailNoticeConfig.CriterionTypeEnum) .ProjectTo(_mapper.ConfigurationProvider, new { trialId = queryEmailNoticeConfig.TrialId }); return await emailNoticeConfigQueryable.ToPagedListAsync(queryEmailNoticeConfig.PageIndex, queryEmailNoticeConfig.PageSize, queryEmailNoticeConfig.SortField, queryEmailNoticeConfig.Asc); diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index 57ef41677..7156f4d5a 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -190,23 +190,24 @@ namespace IRaCIS.Application.Services .WhereIf(inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit) .WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit) .Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC) - .Include(x=>x.ClinicalDataTrialSet) - .OrderBy(x=>x.ClinicalDataTrialSet.CreateTime) + .Include(x => x.ClinicalDataTrialSet) + .OrderBy(x => x.ClinicalDataTrialSet.CreateTime) .Select(x => new GetCRCClinicalDataOutDto() { Id = x.Id, - ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us) , + ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us), ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType, - ClinicalDataSetEnName=x.ClinicalDataTrialSet.ClinicalDataSetEnName, + ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName, ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id, FileName = x.ClinicalDataTrialSet.FileName, UploadRole = x.ClinicalDataTrialSet.UploadRole, Path = x.ClinicalDataTrialSet.Path, IsBlind = x.IsBlind, IsComplete = x.IsComplete, - ClinicalFromList=x.Subject.ClinicalFormList.Where(y=>y.ReadingId==x.ReadingId&&y.ClinicalDataTrialSetId==x.ClinicalDataTrialSetId).Select(y=> new ClinicalFromData() { - CheckDate=y.CheckDate, - ClinicalFormId=y.Id + ClinicalFromList = x.Subject.ClinicalFormList.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData() + { + CheckDate = y.CheckDate, + ClinicalFormId = y.Id }).ToList(), PDFFileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto() { @@ -215,7 +216,7 @@ namespace IRaCIS.Application.Services Path = y.Path, CreateTime = y.CreateTime, }).ToList(), - + }).ToListAsync(); var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.SubjectVisitId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); @@ -287,7 +288,7 @@ namespace IRaCIS.Application.Services //} data.IsBlind = inDto.IsBlind; - data.IsComplete=inDto.IsComplete; + data.IsComplete = inDto.IsComplete; data.IsSign = true; data.ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned; @@ -304,7 +305,24 @@ namespace IRaCIS.Application.Services await this.iServiceProvider.GetService().AddOncologyTask(readingId); - await DealVisiTaskClinicalDataSignedAsync(data.TrialId, data.SubjectId, data.ReadingId, data.IsVisit, inDto.TrialReadingCriterionId); + //如果先生成了任务,再签名subject级别 PM 临床数据,那么会导致其他标准的任务签名状态无法得到维护 + + if (await _repository.AnyAsync(t => t.Id == data.ClinicalDataTrialSetId && t.UploadRole == UploadRole.PM && t.ClinicalDataLevel == ClinicalLevel.Subject)) + { + var needDealTrialReadingCriterionIdList = _repository.Where(t => t.Id == data.ClinicalDataTrialSetId) + .SelectMany(t => t.TrialClinicalDataSetCriteriaList) + .Select(u => u.TrialReadingCriterionId).Distinct().ToList(); + + foreach (var trialReadingCriterionId in needDealTrialReadingCriterionIdList) + { + await DealVisiTaskClinicalDataSignedAsync(data.TrialId, data.SubjectId, data.ReadingId, data.IsVisit, trialReadingCriterionId); + } + } + else + { + await DealVisiTaskClinicalDataSignedAsync(data.TrialId, data.SubjectId, data.ReadingId, data.IsVisit, inDto.TrialReadingCriterionId); + + } return ResponseOutput.Result(result); } @@ -313,7 +331,7 @@ namespace IRaCIS.Application.Services public async Task DealVisiTaskClinicalDataSignedAsync(Guid trialId, Guid subjectId, Guid readingId, bool isVisit, Guid trialReadingCritrialId) { //获取确认的临床数据配置 - var trialClinicalDataSetList = _clinicalDataTrialSetRepository.Where(t => t.TrialId == trialId && t.IsConfirm).Include(t => t.TrialClinicalDataSetCriteriaList).ToList(); + var trialClinicalDataSetList = _clinicalDataTrialSetRepository.Where(t => t.TrialId == trialId && t.IsConfirm).Include(t => t.TrialClinicalDataSetCriteriaList).ToList(); //var criterionType = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == trialReadingCritrialId).Select(t => t.CriterionType).FirstOrDefaultAsync(); @@ -328,7 +346,7 @@ namespace IRaCIS.Application.Services { var isBaseLine = await _subjectVisitRepository.Where(t => t.Id == readingId).Select(t => t.IsBaseLine).FirstOrDefaultAsync(); - + //判断是否基线 if (isBaseLine) @@ -414,7 +432,7 @@ namespace IRaCIS.Application.Services } //有序阅片才维护 IsFrontTaskNeedSignButNotSign 这个状态 - if (_readingQuestionCriterionTrialRepository.Any(t=>t.Id==trialReadingCritrialId && t.IsReadingTaskViewInOrder == true)) + if (_readingQuestionCriterionTrialRepository.Any(t => t.Id == trialReadingCritrialId && t.IsReadingTaskViewInOrder == true)) { @@ -429,8 +447,8 @@ namespace IRaCIS.Application.Services (t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum) // 前序存在 未一致性核查未通过的 - || t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum>sv.VisitNum) - + || t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum) + )) .Select(t => t.Id); @@ -442,7 +460,7 @@ namespace IRaCIS.Application.Services var visitTaskIdQueryable2 = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务 - + .Where(t => t.IsFrontTaskNeedSignButNotSign == true && //前序任务 不存在需要签名 但是没签名 @@ -461,14 +479,14 @@ namespace IRaCIS.Application.Services } - + } // 废弃 接口合并到签名哪里 - + [HttpPut] public async Task PMClinicalDataConfirm(PMClinicalDataConfirmCommand command) { @@ -522,7 +540,7 @@ namespace IRaCIS.Application.Services keyValuePairs.Add(ModuleTypeEnum.Oncology, ClinicalLevel.OncologyRead); - + var usedIdsQuery = _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.ReadingId && x.Id != inDto.ReadingClinicalDataId).Select(x => x.ClinicalDataTrialSetId); @@ -537,20 +555,20 @@ namespace IRaCIS.Application.Services .WhereIf(inDto.IsVisit && !inDto.IsBaseLine, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit) .WhereIf(!inDto.IsVisit, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead || x.ClinicalDataLevel == ClinicalLevel.OncologyRead) .WhereIf(readModule != null, x => x.ClinicalDataLevel == keyValuePairs[readModule!.ModuleType]) - .WhereIf(inDto.TrialReadingCriterionId!=null,x=>x.TrialClinicalDataSetCriteriaList.Any(y=>y.TrialReadingCriterionId== inDto.TrialReadingCriterionId)) + .WhereIf(inDto.TrialReadingCriterionId != null, x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == inDto.TrialReadingCriterionId)) //.WhereIf(criterion!=null,x=>x.CriterionEnumListStr.Contains($"|{(int)criterion.CriterionType}|")) .Select(x => new GetTrialClinicalDataSelectOutDto() { ClinicalDataLevel = x.ClinicalDataLevel, ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us), - ClinicalDataSetEnName=x.ClinicalDataSetEnName, + ClinicalDataSetEnName = x.ClinicalDataSetEnName, ClinicalUploadType = x.ClinicalUploadType, FileName = x.FileName, Path = x.Path, Id = x.Id, CriterionEnumList = x.CriterionEnumList, }).ToListAsync(); - + return clinicalList; } @@ -699,20 +717,21 @@ namespace IRaCIS.Application.Services Path = y.Path, CreateTime = y.CreateTime, }).ToList(), - + }); var result = new List(); if (!inDto.IsOnlyGetCRCReadModule) { - result = await resultQuery.ToListAsync(); + result = await resultQuery.ToListAsync(); } var readingIds = result.Select(x => x.ReadingId).ToList(); - var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId??default(Guid))).ToListAsync(); - result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => { + var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync(); + result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => + { - x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId&&y.ClinicalDataTrialSetId==x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData() + x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData() { CheckDate = y.CheckDate, ClinicalFormId = y.Id @@ -723,35 +742,36 @@ namespace IRaCIS.Application.Services // 这里处理CRC上传 阅片期的临床数据 var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId) - .WhereIf(inDto.SelectIsSign,x=>x.IsPMConfirm) - .WhereIf(!inDto.SelectIsSign, x => x.IsCRCConfirm) - .FirstOrDefaultAsync(); + .WhereIf(inDto.SelectIsSign, x => x.IsPMConfirm) + .WhereIf(!inDto.SelectIsSign, x => x.IsCRCConfirm) + .FirstOrDefaultAsync(); if (readModule != null) { var moduleCriterionFromList = await _readModuleCriterionFromRepository .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.ClinicalDataTrialSetId) - .Where(x => x.ReadModuleId == readModule.Id).Select(x => new{ - ClinicalFormId= x.ClinicalFormId, - CheckDate= x.ClinicalForm.CheckDate, - ClinicalDataTrialSetId= x.ClinicalForm.ClinicalDataTrialSetId - - - }).ToListAsync(); + .Where(x => x.ReadModuleId == readModule.Id).Select(x => new + { + ClinicalFormId = x.ClinicalFormId, + CheckDate = x.ClinicalForm.CheckDate, + ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId + + + }).ToListAsync(); var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring) .WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead) .WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead) - .Where(x=>x.TrialClinicalDataSetCriteriaList.Any(y=>y.TrialReadingCriterionId==readModule.TrialReadingCriterionId)) + .Where(x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == readModule.TrialReadingCriterionId)) .Select(x => new GetReadingClinicalDataListOutDto() { ClinicalDataLevel = x.ClinicalDataLevel, SubjectId = inDto.SubjectId, ReadingId = default(Guid), - IsCRCApplicationRevoke=readModule.IsCRCApplicationRevoke, - IsCRCConfirm= readModule.IsCRCConfirm, - IsPMConfirm= readModule.IsPMConfirm, + IsCRCApplicationRevoke = readModule.IsCRCApplicationRevoke, + IsCRCConfirm = readModule.IsCRCConfirm, + IsPMConfirm = readModule.IsPMConfirm, ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us), ClinicalDataSetEnName = x.ClinicalDataSetEnName, ClinicalDataTrialSetId = x.Id, @@ -762,7 +782,7 @@ namespace IRaCIS.Application.Services IsCRCUpload = x.UploadRole == UploadRole.CRC, IsNeedMerge = true, ReadModuleId = readModule.Id, - TrialClinicalDataSetCriteriaList=x.TrialClinicalDataSetCriteriaList, + TrialClinicalDataSetCriteriaList = x.TrialClinicalDataSetCriteriaList, //FileCount = x.FileCount, //ReadingClinicalDataState = x.ReadingClinicalDataState, @@ -791,8 +811,8 @@ namespace IRaCIS.Application.Services }); - result.AddRange(clinicalresult); - } + result.AddRange(clinicalresult); + } @@ -813,7 +833,7 @@ namespace IRaCIS.Application.Services result = result.Where(x => x.UploadRole == UploadRole.PM).ToList(); break; case GetClinicalType.CRCConfirm: - result = result.Where(x => x.UploadRole == UploadRole.CRC&&x.IsCRCConfirm&&!x.IsPMConfirm).ToList(); + result = result.Where(x => x.UploadRole == UploadRole.CRC && x.IsCRCConfirm && !x.IsPMConfirm).ToList(); break; case GetClinicalType.HasSign: result = result.Where(x => x.IsSign).ToList(); @@ -849,15 +869,15 @@ namespace IRaCIS.Application.Services { var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId) .Where(x => x.ReadingId == inDto.ReadingId) - .WhereIf(inDto.ClinicalDataTrialSetId!=null, x=>x.ClinicalDataTrialSetId==inDto.TrialReadingCriterionId) - .Where(x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t=>t.TrialReadingCriterionId==inDto.TrialReadingCriterionId)) + .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalDataTrialSetId == inDto.TrialReadingCriterionId) + .Where(x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t => t.TrialReadingCriterionId == inDto.TrialReadingCriterionId)) .Select(x => new GetReadingClinicalDataListOutDto() { ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel, SubjectId = x.SubjectId, ReadingId = x.ReadingId, ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName.LanguageName(x.ClinicalDataTrialSet.ClinicalDataSetEnName, _userInfo.IsEn_Us), - ClinicalDataSetEnName =x.ClinicalDataTrialSet.ClinicalDataSetEnName, + ClinicalDataSetEnName = x.ClinicalDataTrialSet.ClinicalDataSetEnName, ClinicalDataTrialSetId = x.ClinicalDataTrialSetId, IsSign = x.IsSign, ClinicalUploadType = x.ClinicalDataTrialSet.ClinicalUploadType, @@ -884,7 +904,8 @@ namespace IRaCIS.Application.Services var readingIds = result.Select(x => x.ReadingId).ToList(); var clinical = await _clinicalFormRepository.Where(x => readingIds.Contains(x.ReadingId ?? default(Guid))).ToListAsync(); - result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => { + result.Where(x => x.ClinicalUploadType == ClinicalUploadType.Structuring).ForEach(x => + { x.ClinicalFromList = clinical.Where(y => y.ReadingId == x.ReadingId && y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Select(y => new ClinicalFromData() { @@ -895,77 +916,78 @@ namespace IRaCIS.Application.Services }); // 这里处理CRC上传 阅片期的临床数据 - var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId&&x.IsCRCConfirm) + var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId && x.IsCRCConfirm) .FirstOrDefaultAsync(); if (readModule != null) { - var moduleCriterionFromList = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id) + var moduleCriterionFromList = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id) .WhereIf(inDto.ClinicalDataTrialSetId != null, x => x.ClinicalForm.ClinicalDataTrialSetId == inDto.TrialReadingCriterionId) - .Select(x => new { - ClinicalFormId = x.ClinicalFormId, - CheckDate = x.ClinicalForm.CheckDate, - ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId + .Select(x => new + { + ClinicalFormId = x.ClinicalFormId, + CheckDate = x.ClinicalForm.CheckDate, + ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId - }).ToListAsync(); + }).ToListAsync(); - - var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC&&x.ClinicalUploadType== ClinicalUploadType.Structuring) - .WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading,x=>x.ClinicalDataLevel== ClinicalLevel.ImageRead) + + var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.Structuring) + .WhereIf(readModule.ReadingSetType == ReadingSetType.ImageReading, x => x.ClinicalDataLevel == ClinicalLevel.ImageRead) .WhereIf(readModule.ReadingSetType == ReadingSetType.TumorReading, x => x.ClinicalDataLevel == ClinicalLevel.OncologyRead) .Where(x => x.TrialClinicalDataSetCriteriaList.Any(y => y.TrialReadingCriterionId == readModule.TrialReadingCriterionId)) .Select(x => new GetReadingClinicalDataListOutDto() - { + { - ClinicalDataLevel = x.ClinicalDataLevel, - SubjectId = inDto.SubjectId, - ReadingId = default(Guid), - IsCRCApplicationRevoke= readModule.IsCRCApplicationRevoke, + ClinicalDataLevel = x.ClinicalDataLevel, + SubjectId = inDto.SubjectId, + ReadingId = default(Guid), + IsCRCApplicationRevoke = readModule.IsCRCApplicationRevoke, IsCRCConfirm = readModule.IsCRCConfirm, - IsPMConfirm=readModule.IsPMConfirm, + IsPMConfirm = readModule.IsPMConfirm, ClinicalDataSetName = x.ClinicalDataSetName.LanguageName(x.ClinicalDataSetEnName, _userInfo.IsEn_Us), - ClinicalDataSetEnName = x.ClinicalDataSetEnName, - ClinicalDataTrialSetId = x.Id, - IsSign = readModule.IsPMConfirm, - ClinicalUploadType = x.ClinicalUploadType, - Id = default(Guid), - UploadRole = x.UploadRole, - IsCRCUpload = x.UploadRole == UploadRole.CRC, - IsNeedMerge = true, - ReadModuleId = readModule.Id, - //FileCount = x.FileCount, + ClinicalDataSetEnName = x.ClinicalDataSetEnName, + ClinicalDataTrialSetId = x.Id, + IsSign = readModule.IsPMConfirm, + ClinicalUploadType = x.ClinicalUploadType, + Id = default(Guid), + UploadRole = x.UploadRole, + IsCRCUpload = x.UploadRole == UploadRole.CRC, + IsNeedMerge = true, + ReadModuleId = readModule.Id, + //FileCount = x.FileCount, - //ReadingClinicalDataState = x.ReadingClinicalDataState, + //ReadingClinicalDataState = x.ReadingClinicalDataState, - //FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto() - //{ - // Id = y.Id, - // FileName = y.FileName, - // Path = y.Path, - // CreateTime = y.CreateTime, - //}).ToList() + //FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto() + //{ + // Id = y.Id, + // FileName = y.FileName, + // Path = y.Path, + // CreateTime = y.CreateTime, + //}).ToList() - }).ToListAsync(); + }).ToListAsync(); - clinicalresult.ForEach(x => - { - x.FileCount = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Count(); - x.ClinicalFromList = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).OrderBy(y => y.CheckDate).Select(x => new ClinicalFromData - { - CheckDate = x.CheckDate, - ClinicalFormId = x.ClinicalFormId + clinicalresult.ForEach(x => + { + x.FileCount = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).Count(); + x.ClinicalFromList = moduleCriterionFromList.Where(y => y.ClinicalDataTrialSetId == x.ClinicalDataTrialSetId).OrderBy(y => y.CheckDate).Select(x => new ClinicalFromData + { + CheckDate = x.CheckDate, + ClinicalFormId = x.ClinicalFormId - }).ToList(); + }).ToList(); - x.IsSign = readModule.IsPMConfirm ?true : false; + x.IsSign = readModule.IsPMConfirm ? true : false; x.ReadingClinicalDataState = readModule.IsPMConfirm ? ReadingClinicalDataStatus.HaveSigned : ReadingClinicalDataStatus.HaveChecked; - }); + }); - result.AddRange(clinicalresult); - } + result.AddRange(clinicalresult); + } if (inDto.GetClinicalType != null) @@ -976,7 +998,7 @@ namespace IRaCIS.Application.Services result = result.Where(x => x.UploadRole == UploadRole.PM).ToList(); break; case GetClinicalType.CRCConfirm: - result = result.Where(x => x.UploadRole == UploadRole.CRC&&x.IsCRCConfirm&&!x.IsPMConfirm).ToList(); + result = result.Where(x => x.UploadRole == UploadRole.CRC && x.IsCRCConfirm && !x.IsPMConfirm).ToList(); break; case GetClinicalType.HasSign: result = result.Where(x => x.IsSign).ToList(); @@ -984,7 +1006,7 @@ namespace IRaCIS.Application.Services } } - + return result; } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs index 4eb9bbad3..64dac6310 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingQuestionViewModel.cs @@ -1045,7 +1045,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public List RelevanceValueList { get; set; } public List CalculateQuestionList { get; set; } - public AssessmentResultType AssessmentResultEnum { get; set; } + } public class ReadingQuestionSystemView @@ -1986,7 +1986,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public List ParentTriggerValueList { get; set; } public List RelevanceValueList { get; set; } - public AssessmentResultType AssessmentResultEnum { get; set; } + } diff --git a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs index 736cb6f36..4a9cdf6d1 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingCriterionQuestion/ReadingQuestionTrial.cs @@ -268,7 +268,7 @@ namespace IRaCIS.Core.Domain.Models - public AssessmentResultType AssessmentResultEnum { get; set; } + // [JsonIgnore] [ForeignKey("GroupId")]