修改一版

Uat_Study
he 2022-06-27 14:14:34 +08:00
parent 69436a2780
commit 37320c5be5
3 changed files with 60 additions and 32 deletions

View File

@ -63,6 +63,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class GetCRCClinicalDataOutDto public class GetCRCClinicalDataOutDto
{ {
public Guid Id { get; set; }
/// <summary> /// <summary>
/// 名称 /// 名称
/// </summary> /// </summary>
@ -95,7 +98,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
/// </summary> /// </summary>
public string Path { get; set; } public string Path { get; set; }
public List<GetReadingClinicalDataListOutDto> ReadingClinicalDataList { get; set; } //public List<GetReadingClinicalDataListOutDto> ReadingClinicalDataList { get; set; }
public List<GetFileDto> PDFFileList { get; set; } = new List<GetFileDto>();
public ClinicalDataTable ClinicalTableData { get; set; } public ClinicalDataTable ClinicalTableData { get; set; }
} }
@ -347,6 +352,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
/// </summary> /// </summary>
public string FileName { get; set; } public string FileName { get; set; }
/// <summary>
/// 上传时间
/// </summary>
public DateTime CreateTime { get; set; }
} }

View File

@ -70,7 +70,6 @@ namespace IRaCIS.Application.Services
{ {
return ResponseOutput.NotOk("存在同类型的临床数据"); return ResponseOutput.NotOk("存在同类型的临床数据");
} }
var clinicalDataTrialSet = (await _clinicalDataTrialSetRepository.Where(x => x.Id == indto.ClinicalDataTrialSetId).FirstOrDefaultAsync()).IfNullThrowException(); var clinicalDataTrialSet = (await _clinicalDataTrialSetRepository.Where(x => x.Id == indto.ClinicalDataTrialSetId).FirstOrDefaultAsync()).IfNullThrowException();
if (indto.Id == null) if (indto.Id == null)
{ {
@ -86,8 +85,6 @@ namespace IRaCIS.Application.Services
ClinicalDataLevel= clinicalDataTrialSet.ClinicalDataLevel, ClinicalDataLevel= clinicalDataTrialSet.ClinicalDataLevel,
ReadingId=indto.ReadingId ReadingId=indto.ReadingId
}).ToList(); }).ToList();
await _readingClinicalDataRepository.AddAsync(entity, true); await _readingClinicalDataRepository.AddAsync(entity, true);
var success = await _readingClinicalDataRepository.SaveChangesAsync(); var success = await _readingClinicalDataRepository.SaveChangesAsync();
return ResponseOutput.Ok(entity.Id); return ResponseOutput.Ok(entity.Id);
@ -100,7 +97,6 @@ namespace IRaCIS.Application.Services
await _readingClinicalDataRepository.SaveChangesAsync(); await _readingClinicalDataRepository.SaveChangesAsync();
var addFileList = indto.AddFileList.Select(x => new ReadingClinicalDataPDF() var addFileList = indto.AddFileList.Select(x => new ReadingClinicalDataPDF()
{ {
TrialId = entity.TrialId, TrialId = entity.TrialId,
SubjectId = indto.SubjectId, SubjectId = indto.SubjectId,
FileName = x.FileName, FileName = x.FileName,
@ -112,7 +108,6 @@ namespace IRaCIS.Application.Services
ReadingClinicalDataId= entity.Id, ReadingClinicalDataId= entity.Id,
}).ToList(); }).ToList();
await _readingClinicalDataPDFRepository.AddRangeAsync(addFileList); await _readingClinicalDataPDFRepository.AddRangeAsync(addFileList);
var success = await _readingClinicalDataRepository.SaveChangesAsync(); var success = await _readingClinicalDataRepository.SaveChangesAsync();
return ResponseOutput.Ok(entity.Id); return ResponseOutput.Ok(entity.Id);
@ -128,16 +123,19 @@ namespace IRaCIS.Application.Services
[HttpPost] [HttpPost]
public async Task<List<GetCRCClinicalDataOutDto>> GetCRCClinicalData(GetCRCClinicalDataInDto inDto) public async Task<List<GetCRCClinicalDataOutDto>> GetCRCClinicalData(GetCRCClinicalDataInDto inDto)
{ {
await this.AddCRCClinicalData(inDto);
List<GetCRCClinicalDataOutDto> cRCClinicalDataList = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.UploadRole == UploadRole.CRC&&x.ClinicalDataLevel != ClinicalLevel.Read) List<GetCRCClinicalDataOutDto> cRCClinicalDataList = await _readingClinicalDataRepository.Where(x =>x.ReadingId==inDto.SubjectVisitId)
.Where(x=> x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC && x.ClinicalDataTrialSet.ClinicalDataLevel != ClinicalLevel.Read && x.ClinicalDataTrialSet.IsConfirm)
.Select(x => new GetCRCClinicalDataOutDto() .Select(x => new GetCRCClinicalDataOutDto()
{ {
ClinicalDataSetName = x.ClinicalDataSetName, Id=x.Id,
ClinicalUploadType=x.ClinicalUploadType, ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName,
ClinicalDataTrialSetId = x.Id, ClinicalUploadType=x.ClinicalDataTrialSet.ClinicalUploadType,
FileName=x.FileName, ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
UploadRole=x.UploadRole, FileName=x.ClinicalDataTrialSet.FileName,
Path=x.Path, UploadRole=x.ClinicalDataTrialSet.UploadRole,
Path=x.ClinicalDataTrialSet.Path,
}).ToListAsync() ; }).ToListAsync() ;
PageOutput<GetReadingClinicalDataListOutDto> clinicalData = await this.GetReadingClinicalDataList(new GetReadingClinicalDataListIndto() PageOutput<GetReadingClinicalDataListOutDto> clinicalData = await this.GetReadingClinicalDataList(new GetReadingClinicalDataListIndto()
@ -155,7 +153,7 @@ namespace IRaCIS.Application.Services
foreach (var item in cRCClinicalDataList) foreach (var item in cRCClinicalDataList)
{ {
item.ReadingClinicalDataList = clinicalData.CurrentPageData.Where(y => y.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(); item.PDFFileList = clinicalData.CurrentPageData.Where(y => y.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).SelectMany(x=>x.FileList).ToList();
item.ClinicalTableData = new ClinicalDataTable() item.ClinicalTableData = new ClinicalDataTable()
{ {
PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(), PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
@ -164,12 +162,31 @@ namespace IRaCIS.Application.Services
}; };
} }
return cRCClinicalDataList; return cRCClinicalDataList;
}
/// <summary>
/// 添加CRC数据类型
/// </summary>
/// <returns></returns>
private async Task AddCRCClinicalData(GetCRCClinicalDataInDto inDto)
{
var cRCClinicalDataIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.UploadRole == UploadRole.CRC && x.ClinicalDataLevel != ClinicalLevel.Read && x.IsConfirm).Select(x => x.Id).ToListAsync();
var needAddIds = cRCClinicalDataIds.Where(x => _readingClinicalDataRepository.Where(y => y.ReadingId == inDto.SubjectVisitId && x == y.ClinicalDataTrialSetId).Count() == 0).ToList();
List<ReadingClinicalData> readingClinicals = needAddIds.Select(x => new ReadingClinicalData()
{
ClinicalDataTrialSetId = x,
IsVisit = true,
SubjectId = inDto.SubjectId,
ReadingId = inDto.SubjectVisitId,
TrialId = inDto.TrialId
}).ToList();
await _readingClinicalDataRepository.AddRangeAsync(readingClinicals);
await _readingClinicalDataRepository.SaveChangesAsync();
} }
@ -301,7 +318,8 @@ namespace IRaCIS.Application.Services
{ {
Id = y.Id, Id = y.Id,
FileName = y.FileName, FileName = y.FileName,
Path = y.Path Path = y.Path,
CreateTime=y.CreateTime,
}).ToList() }).ToList()
}); });

View File

@ -55,15 +55,15 @@ namespace IRaCIS.Core.Domain.Models
/// </summary> /// </summary>
public Guid? ReadingPeriodSetId { get; set; } public Guid? ReadingPeriodSetId { get; set; }
/// <summary> ///// <summary>
/// 上一次访视(截止访视) ///// 上一次访视(截止访视)
/// </summary> ///// </summary>
public Guid? LastVisitIdSetId { get; set; } //public Guid? LastVisitIdSetId { get; set; }
/// <summary> // /// <summary>
/// 裁判对应原阅片模块的Id ///// 裁判对应原阅片模块的Id
/// </summary> ///// </summary>
public Guid? ReadModuleId { get; set; } //public Guid? ReadModuleId { get; set; }
/// <summary> /// <summary>
/// 项目ID /// 项目ID
@ -109,11 +109,11 @@ namespace IRaCIS.Core.Domain.Models
public ReadingSetType ReadingSetType { get; set; } public ReadingSetType ReadingSetType { get; set; }
/// <summary> ///// <summary>
/// 访视 ///// 访视
/// </summary> ///// </summary>
[ForeignKey("LastVisitIdSetId")] //[ForeignKey("LastVisitIdSetId")]
public SubjectVisit LastSubjectVisit { get; set; } //public SubjectVisit LastSubjectVisit { get; set; }
public ReadingStatusEnum ReadingStatus { get; set; } public ReadingStatusEnum ReadingStatus { get; set; }
} }