diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index e2c3e06f7..3a4bc14ae 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -690,9 +690,15 @@ namespace IRaCIS.Application.Services .FirstOrDefaultAsync(); if (readModule != null) { - var clinicalDataTrialSetIds = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id).Select(x => x.ClinicalForm.ClinicalDataTrialSetId).ToListAsync(); + var moduleCriterionFromList = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id).Select(x => new{ + ClinicalFormId= x.ClinicalFormId, + CheckDate= x.ClinicalForm.CheckDate, + ClinicalDataTrialSetId= x.ClinicalForm.ClinicalDataTrialSetId + + + }).ToListAsync(); - var setIds = clinicalDataTrialSetIds.Distinct().ToList(); + var setIds = moduleCriterionFromList.Select(x=>x.ClinicalDataTrialSetId).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() @@ -727,8 +733,15 @@ namespace IRaCIS.Application.Services clinicalresult.ForEach(x => { - x.FileCount = setIds.Where(y => y == x.ClinicalDataTrialSetId).Count(); - x.ReadingClinicalDataState = readModule.IsPMConfirm ? ReadingClinicalDataStatus.HaveSigned : ReadingClinicalDataStatus.HaveChecked; + 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(); + + x.ReadingClinicalDataState = readModule.IsPMConfirm ? ReadingClinicalDataStatus.HaveSigned : ReadingClinicalDataStatus.HaveChecked; }); @@ -812,51 +825,68 @@ 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 readModule = await _readModuleRepository.Where(x => x.Id == inDto.ReadingId&&x.IsCRCConfirm) - 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() { + .FirstOrDefaultAsync(); + if (readModule != null) + { + var moduleCriterionFromList = await _readModuleCriterionFromRepository.Where(x => x.ReadModuleId == readModule.Id).Select(x => new { + ClinicalFormId = x.ClinicalFormId, + CheckDate = x.ClinicalForm.CheckDate, + ClinicalDataTrialSetId = x.ClinicalForm.ClinicalDataTrialSetId - 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, + }).ToListAsync(); - //FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto() - //{ - // Id = y.Id, - // FileName = y.FileName, - // Path = y.Path, - // CreateTime = y.CreateTime, - //}).ToList() + var setIds = moduleCriterionFromList.Select(x => x.ClinicalDataTrialSetId).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() + { - }).ToListAsync(); + 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, - clinicalresult.ForEach(x => { - x.FileCount = setIds.Where(y => y == x.ClinicalDataTrialSetId).Count(); - x.ReadingClinicalDataState = readModule.IsPMConfirm ? ReadingClinicalDataStatus.HaveSigned : ReadingClinicalDataStatus.HaveChecked; + //ReadingClinicalDataState = x.ReadingClinicalDataState, - }); + //FileList = x.ReadingClinicalDataPDFList.Select(y => new GetFileDto() + //{ + // Id = y.Id, + // FileName = y.FileName, + // Path = y.Path, + // CreateTime = y.CreateTime, + //}).ToList() - result.AddRange(clinicalresult); - } + }).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 + + }).ToList(); + + x.ReadingClinicalDataState = readModule.IsPMConfirm ? ReadingClinicalDataStatus.HaveSigned : ReadingClinicalDataStatus.HaveChecked; + + }); + + result.AddRange(clinicalresult); + } diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs index a26a7c106..9cf83bbc3 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs @@ -10,8 +10,8 @@ using System.Threading.Tasks; namespace IRaCIS.Core.Application.Service.Reading.Dto { - public class AddOrUpdateReadingClinicalDataDto - { + public class AddOrUpdateReadingClinicalDataDto + { public Guid? Id { get; set; } @@ -127,9 +127,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public List PreviousOtherList { get; set; } - public List PreviousSurgeryList{ get; set; } + public List PreviousSurgeryList { get; set; } + - } @@ -137,7 +137,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class GetCRCClinicalDataInDto { [NotDefault] - public Guid SubjectVisitId { get; set; } + public Guid SubjectVisitId { get; set; } [NotDefault] public Guid TrialId { get; set; } @@ -163,7 +163,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 文件名称 /// - public string FileName { get; set; } + public string FileName { get; set; } /// /// 路径 @@ -195,9 +195,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// /// 获取访视列表 /// - public class GetReadingClinicalDataListIndto + public class GetReadingClinicalDataListIndto { - [NotDefault] + [NotDefault] public Guid SubjectId { get; set; } [NotDefault] public Guid ReadingId { get; set; } @@ -220,7 +220,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public bool IsBaseLine { get; set; } } - public class GetReadingClinicalDataPDFListIndto:PageInput + public class GetReadingClinicalDataPDFListIndto : PageInput { public Guid ReadingClinicalDataId { get; set; } } @@ -283,7 +283,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public class PMClinicalDataConfirmCommand - { + { public Guid Id { get; set; } /// @@ -365,13 +365,13 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public bool IsNeedMerge { get; set; } = false; - public Guid ReadModuleId { get; set; } + public Guid ReadModuleId { get; set; } - /// - /// 是否签名 - /// - public bool IsSign { get; set; } + /// + /// 是否签名 + /// + public bool IsSign { get; set; } /// @@ -399,6 +399,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto // } //} + public List ClinicalFromList { get; set; } + public List FileList { get; set; } = new List(); @@ -408,6 +410,19 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } + public class ClinicalFromData + { + /// + /// 表单Id + /// + public Guid ClinicalFormId { get; set; } + + /// + /// 检查日期 + /// + public DateTime? CheckDate { get; set; } + } + public class GetFileDto {