diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index 8bb00046..04a9dd5c 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -26,6 +26,7 @@ namespace IRaCIS.Core.Application.Image.QA private readonly IRepository _dicomStudyRepository; private readonly IRepository _dicomSeriesrepository; private readonly IRepository _subjectRepository; + private readonly IRepository _readingClinicalDataRepository; private readonly IRepository _qCChallengeDialogrepository; private readonly IRepository _checkChallengeDialogrepository; private readonly IRepository _trialRepository; @@ -38,6 +39,7 @@ namespace IRaCIS.Core.Application.Image.QA IRepository dicomStudyRepository, IRepository dicomSeriesrepository, IRepository subjectRepository, + IRepository readingClinicalDataRepository, IRepository qCChallengeDialogrepository, IRepository checkChallengeDialogrepository ) @@ -47,6 +49,7 @@ namespace IRaCIS.Core.Application.Image.QA _dicomStudyRepository = dicomStudyRepository; this._dicomSeriesrepository = dicomSeriesrepository; this._subjectRepository = subjectRepository; + this._readingClinicalDataRepository = readingClinicalDataRepository; this._qCChallengeDialogrepository = qCChallengeDialogrepository; this._checkChallengeDialogrepository = checkChallengeDialogrepository; _trialRepository = trialRepository; @@ -1195,6 +1198,25 @@ namespace IRaCIS.Core.Application.Image.QA } + // CRC 上传的基线数据签名 + #region CRC 上传的基线数据签名 + var subjectVisit =await _subjectVisitRepository.Where(x => cRCRequestToQCCommand.SubjectVisitIds.Contains(x.Id) && x.IsBaseLine).Select(x => new + { + x.Id, + x.IsBaseLine + }).FirstOrDefaultAsync(); + if (subjectVisit != null) + { + await _readingClinicalDataRepository.BatchUpdateNoTrackingAsync(x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ReadingId == subjectVisit.Id, x => new ReadingClinicalData() + { + IsSign = true + }); + } + + + + #endregion + var success = await _repository.SaveChangesAsync(); diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs index 5aca377c..30714328 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs @@ -329,6 +329,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } public List FileList { get; set; } = new List(); + + + public ClinicalDataTable ClinicalTableData { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs index 5b1bb3fc..6e48bb09 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs @@ -328,7 +328,26 @@ namespace IRaCIS.Application.Services var result=await resultQuery.ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(GetReadingClinicalDataListOutDto.ClinicalDataSetName) : inDto.SortField, inDto.Asc); - return result; + + + var previousHistoryList = await _previousHistoryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var previousOtherList = await _previousOtherRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var previousSurgeryList = await _previousSurgeryRepository.Where(x => x.SubjectVisitId == inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + + + foreach (var item in result.CurrentPageData) + { + item.ClinicalTableData = new ClinicalDataTable() + { + PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), + PreviousOtherList = previousOtherList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), + PreviousSurgeryList = previousSurgeryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), + }; + + } + + return result; }