diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index f5bda2762..5bb4d1c93 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1095,6 +1095,21 @@
文件数量
+
+
+ Id
+
+
+
+
+ Path
+
+
+
+
+ FileName
+
+
项目ID
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
index fe4dbe377..5c7f82c08 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
@@ -180,6 +180,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public ClinicalLevel ClinicalDataLevel { get; set; }
+ public Guid SubjectId { get; set; }
///
/// 上传方式
@@ -199,10 +200,37 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
/// 文件数量
///
- public int FileCount { get; set; } = 0;
+ public int FileCount { get {
+
+ return this.FileList.Count();
+ } }
+
+ public List FileList { get; set; } = new List();
}
+ public class GetFileDto
+ {
+
+ ///
+ /// Id
+ ///
+
+ public Guid Id { get; set; }
+
+ ///
+ /// Path
+ ///
+
+ public string Path { get; set; }
+
+ ///
+ /// FileName
+ ///
+
+ public string FileName { get; set; }
+ }
+
public class GetTrialClinicalDataSelectIndto
{
@@ -221,6 +249,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public Guid ReadingId { get; set; }
+ public Guid SubjectId { get; set; }
+
///
/// 是否是访视
///
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
index f70a9929c..762ed177f 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
@@ -46,6 +46,7 @@ namespace IRaCIS.Application.Services
public async Task AddOrUpdateReadingClinicalData(AddOrUpdateReadingClinicalDataDto indto)
{
+ var clinicalDataTrialSet = (await _clinicalDataTrialSetRepository.Where(x => x.Id == indto.ClinicalDataTrialSetId).FirstOrDefaultAsync()).IfNullThrowException();
if (indto.Id == null)
{
var entity = _mapper.Map(indto);
@@ -56,7 +57,9 @@ namespace IRaCIS.Application.Services
SubjectId= indto.SubjectId,
FileName=x.FileName,
Path=x.Path,
+ ClinicalDataTrialSetId=indto.ClinicalDataTrialSetId,
IsVisit= indto.IsVisit,
+ ClinicalDataLevel= clinicalDataTrialSet.ClinicalDataLevel,
ReadingId=indto.ReadingId
}).ToList();
@@ -79,6 +82,7 @@ namespace IRaCIS.Application.Services
FileName = x.FileName,
Path = x.Path,
IsVisit = indto.IsVisit,
+ ClinicalDataLevel = clinicalDataTrialSet.ClinicalDataLevel,
ReadingId = indto.ReadingId
}).ToList();
await _readingClinicalDataPDFRepository.AddRangeAsync(addFileList);
@@ -139,13 +143,30 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task> GetReadingClinicalDataList(GetReadingClinicalDataListIndto inDto)
{
- var result = await _readingClinicalDataRepository.ProjectTo(_mapper.ConfigurationProvider).ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(GetReadingClinicalDataListOutDto.ClinicalDataSetName) : inDto.SortField,
+ var result = await _readingClinicalDataRepository.Where(x=>x.Id==inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(GetReadingClinicalDataListOutDto.ClinicalDataSetName) : inDto.SortField,
inDto.Asc);
- result.CurrentPageData.ForEach(x => {
- x.ClinicalDataLevelName = x.ClinicalDataLevel.GetDisplayName();
- x.ClinicalUploadTypeName = x.ClinicalUploadType.GetDisplayName();
- });
+
+ foreach (var item in result.CurrentPageData)
+ {
+ item.ClinicalDataLevelName = item.ClinicalDataLevel.GetDisplayName();
+ item.ClinicalUploadTypeName = item.ClinicalUploadType.GetDisplayName();
+ item.FileList = item.ClinicalDataLevel != ClinicalLevel.Subject ? (await _readingClinicalDataPDFRepository.Where(y => y.ReadingClinicalDataId == item.Id).Select(y => new GetFileDto()
+ {
+ Id = y.Id,
+ FileName = y.FileName,
+ Path = y.Path
+ }).ToListAsync()) : (await _readingClinicalDataPDFRepository.Where(y => y.SubjectId == item.SubjectId).Select(y => new GetFileDto()
+ {
+ Id = y.Id,
+ FileName = y.FileName,
+ Path = y.Path
+ }).ToListAsync());
+ }
+
+
+
+
return result;
}
diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
index cc3a94fb4..58fcda16a 100644
--- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
@@ -24,8 +24,8 @@ namespace IRaCIS.Core.Application.Service
CreateMap()
.ForMember(d => d.ClinicalDataLevel, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataLevel))
.ForMember(d => d.ClinicalDataLevelName, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalDataSetName))
- .ForMember(d => d.ClinicalUploadType, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalUploadType))
- .ForMember(d => d.FileCount, u => u.MapFrom(s => s.ReadingClinicalDataPDFList.Count()));
+ .ForMember(d => d.ClinicalUploadType, u => u.MapFrom(s => s.ClinicalDataTrialSet.ClinicalUploadType));
+ //.ForMember(d => d.FileCount, u => u.MapFrom(s => s.ReadingClinicalDataPDFList.Count()));
diff --git a/IRaCIS.Core.Domain/Reading/ReadingClinicalDataPDF.cs b/IRaCIS.Core.Domain/Reading/ReadingClinicalDataPDF.cs
index 61fe84890..adaad7703 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingClinicalDataPDF.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingClinicalDataPDF.cs
@@ -67,6 +67,10 @@ namespace IRaCIS.Core.Domain.Models
public Guid CreateUserId { get; set; }
+ ///
+ /// 项目模板Id
+ ///
+ public Guid ClinicalDataTrialSetId { get; set; }