diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index 967d63a51..d0366ffb1 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -24,6 +24,7 @@ namespace IRaCIS.Application.Services private readonly IRepository _subjectVisitRepository; private readonly IRepository _previousHistoryRepository; + private readonly IRepository _readModuleCriterionFromRepository; private readonly IRepository _previousOtherRepository; private readonly IRepository _previousSurgeryRepository; private readonly IRepository _readingQuestionCriterionTrialRepository; @@ -37,7 +38,7 @@ namespace IRaCIS.Application.Services IRepository previousPDFRepository, IRepository subjectVisitRepository, IRepository previousHistoryRepository, - + IRepository readModuleCriterionFromRepository, IRepository previousOtherRepository, IRepository previousSurgeryRepository, IRepository readingQuestionCriterionTrialRepository, @@ -53,6 +54,7 @@ namespace IRaCIS.Application.Services this._previousPDFRepository = previousPDFRepository; this._subjectVisitRepository = subjectVisitRepository; this._previousHistoryRepository = previousHistoryRepository; + this._readModuleCriterionFromRepository = readModuleCriterionFromRepository; this._previousOtherRepository = previousOtherRepository; this._previousSurgeryRepository = previousSurgeryRepository; this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository; @@ -750,6 +752,56 @@ namespace IRaCIS.Application.Services }); var result = await resultQuery.ToListAsync(); + + // 这里处理CRC上传 阅片期的临床数据 + var readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId).FirstOrDefaultAsync(); + if (readModule != null && readModule.IsCRCConfirm) + { + var clinicalDataTrialSetIds =await _readModuleCriterionFromRepository.Where(x=>x.ReadModuleId== readModule.Id).Select(x=>x.ClinicalForm.ClinicalDataTrialSetId).ToListAsync(): + + var setIds = clinicalDataTrialSetIds.Distinct().ToList(); + var clinicalresult = await _clinicalDataTrialSetRepository.Where(x => x.UploadRole == UploadRole.CRC && (x.ClinicalDataLevel == ClinicalLevel.OncologyRead || x.ClinicalDataLevel == ClinicalLevel.ImageRead)) + .Where(x => setIds.Contains(x.Id)) + .Select(x => new GetReadingClinicalDataListOutDto() { + + ClinicalDataLevel = x.ClinicalDataLevel, + SubjectId = inDto.SubjectId, + ReadingId = default(Guid), + 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, + + //ReadingClinicalDataState = x.ReadingClinicalDataState, + + //FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto() + //{ + // Id = y.Id, + // FileName = y.FileName, + // Path = y.Path, + // CreateTime = y.CreateTime, + //}).ToList() + + }).ToListAsync(); + + clinicalresult.ForEach(x => { + x.FileCount = setIds.Where(y => y == x.ClinicalDataTrialSetId).Count(); + x.ReadingClinicalDataState = readModule.IsPMConfirm ? ReadingClinicalDataStatus.HaveSigned : ReadingClinicalDataStatus.HaveChecked; + + }); + + result.AddRange(clinicalresult); + } + + + //result = result.Where(x => !(x.UploadRole == UploadRole.CRC && x.ClinicalUploadType == ClinicalUploadType.PDF && x.FileList.Count() == 0)).ToList(); return result; } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs index 85a126ec2..a26a7c106 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs @@ -363,11 +363,15 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public bool IsCRCUpload { get; set; } + public bool IsNeedMerge { get; set; } = false; - /// - /// 是否签名 - /// - public bool IsSign { get; set; } + public Guid ReadModuleId { get; set; } + + + /// + /// 是否签名 + /// + public bool IsSign { get; set; } ///