diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
index 9b8c70082..5aca377c1 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
@@ -63,6 +63,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class GetCRCClinicalDataOutDto
{
+
+ public Guid Id { get; set; }
+
///
/// 名称
///
@@ -95,7 +98,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public string Path { get; set; }
- public List ReadingClinicalDataList { get; set; }
+ //public List ReadingClinicalDataList { get; set; }
+
+ public List PDFFileList { get; set; } = new List();
public ClinicalDataTable ClinicalTableData { get; set; }
}
@@ -347,6 +352,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public string FileName { get; set; }
+
+ ///
+ /// 上传时间
+ ///
+ public DateTime CreateTime { get; set; }
}
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
index eff07d4e0..cc2765a03 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
@@ -70,7 +70,6 @@ namespace IRaCIS.Application.Services
{
return ResponseOutput.NotOk("存在同类型的临床数据");
}
-
var clinicalDataTrialSet = (await _clinicalDataTrialSetRepository.Where(x => x.Id == indto.ClinicalDataTrialSetId).FirstOrDefaultAsync()).IfNullThrowException();
if (indto.Id == null)
{
@@ -86,8 +85,6 @@ namespace IRaCIS.Application.Services
ClinicalDataLevel= clinicalDataTrialSet.ClinicalDataLevel,
ReadingId=indto.ReadingId
}).ToList();
-
-
await _readingClinicalDataRepository.AddAsync(entity, true);
var success = await _readingClinicalDataRepository.SaveChangesAsync();
return ResponseOutput.Ok(entity.Id);
@@ -100,7 +97,6 @@ namespace IRaCIS.Application.Services
await _readingClinicalDataRepository.SaveChangesAsync();
var addFileList = indto.AddFileList.Select(x => new ReadingClinicalDataPDF()
{
-
TrialId = entity.TrialId,
SubjectId = indto.SubjectId,
FileName = x.FileName,
@@ -112,7 +108,6 @@ namespace IRaCIS.Application.Services
ReadingClinicalDataId= entity.Id,
}).ToList();
await _readingClinicalDataPDFRepository.AddRangeAsync(addFileList);
-
var success = await _readingClinicalDataRepository.SaveChangesAsync();
return ResponseOutput.Ok(entity.Id);
@@ -128,16 +123,19 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task> GetCRCClinicalData(GetCRCClinicalDataInDto inDto)
{
+ await this.AddCRCClinicalData(inDto);
- List cRCClinicalDataList = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.UploadRole == UploadRole.CRC&&x.ClinicalDataLevel != ClinicalLevel.Read)
+ List 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()
{
- ClinicalDataSetName = x.ClinicalDataSetName,
- ClinicalUploadType=x.ClinicalUploadType,
- ClinicalDataTrialSetId = x.Id,
- FileName=x.FileName,
- UploadRole=x.UploadRole,
- Path=x.Path,
+ Id=x.Id,
+ ClinicalDataSetName = x.ClinicalDataTrialSet.ClinicalDataSetName,
+ ClinicalUploadType=x.ClinicalDataTrialSet.ClinicalUploadType,
+ ClinicalDataTrialSetId = x.ClinicalDataTrialSet.Id,
+ FileName=x.ClinicalDataTrialSet.FileName,
+ UploadRole=x.ClinicalDataTrialSet.UploadRole,
+ Path=x.ClinicalDataTrialSet.Path,
}).ToListAsync() ;
PageOutput clinicalData = await this.GetReadingClinicalDataList(new GetReadingClinicalDataListIndto()
@@ -155,7 +153,7 @@ namespace IRaCIS.Application.Services
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()
{
PreviousHistoryList = previousHistoryList.Where(x => x.ClinicalDataTrialSetId == item.ClinicalDataTrialSetId).ToList(),
@@ -164,12 +162,31 @@ namespace IRaCIS.Application.Services
};
}
-
-
-
-
return cRCClinicalDataList;
+ }
+ ///
+ /// 添加CRC数据类型
+ ///
+ ///
+ 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 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,
FileName = y.FileName,
- Path = y.Path
+ Path = y.Path,
+ CreateTime=y.CreateTime,
}).ToList()
});
diff --git a/IRaCIS.Core.Domain/Reading/ReadModule.cs b/IRaCIS.Core.Domain/Reading/ReadModule.cs
index 94894ecc3..8f79e012a 100644
--- a/IRaCIS.Core.Domain/Reading/ReadModule.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadModule.cs
@@ -55,15 +55,15 @@ namespace IRaCIS.Core.Domain.Models
///
public Guid? ReadingPeriodSetId { get; set; }
- ///
- /// 上一次访视(截止访视)
- ///
- public Guid? LastVisitIdSetId { get; set; }
+ /////
+ ///// 上一次访视(截止访视)
+ /////
+ //public Guid? LastVisitIdSetId { get; set; }
- ///
- /// 裁判对应原阅片模块的Id
- ///
- public Guid? ReadModuleId { get; set; }
+ // ///
+ ///// 裁判对应原阅片模块的Id
+ /////
+ //public Guid? ReadModuleId { get; set; }
///
/// 项目ID
@@ -109,11 +109,11 @@ namespace IRaCIS.Core.Domain.Models
public ReadingSetType ReadingSetType { get; set; }
- ///
- /// 访视
- ///
- [ForeignKey("LastVisitIdSetId")]
- public SubjectVisit LastSubjectVisit { get; set; }
+ /////
+ ///// 访视
+ /////
+ //[ForeignKey("LastVisitIdSetId")]
+ //public SubjectVisit LastSubjectVisit { get; set; }
public ReadingStatusEnum ReadingStatus { get; set; }
}