diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 0ff2820ca..3637f7341 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1091,7 +1091,12 @@
- 名称
+ 项目配置临床类型Name
+
+
+
+
+ 下拉ID
@@ -1119,6 +1124,11 @@
上传方式名称
+
+
+ 是否为CRC上传
+
+
文件数量
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
index c0b19639c..679ccc7ba 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
@@ -1,6 +1,7 @@
using IRaCIS.Core.Domain.Share.Reading;
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -66,7 +67,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public class GetReadingClinicalDataListIndto :PageInput
{
- public Guid ReadingId { get; set; }
+ [Required]
+ public Guid SubjectId { get; set; }
+
+ [Required]
+ public Guid ReadingId { get; set; }
}
public class GetReadingClinicalDataPDFListIndto:PageInput
@@ -171,7 +176,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
- /// 名称
+ /// 项目配置临床类型Name
///
public string ClinicalDataSetName { get; set; }
@@ -202,6 +207,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public string ClinicalUploadTypeName { get; set; }
+ ///
+ /// 是否为CRC上传
+ ///
+ public bool IsCRCUpload { get; set; }
+
///
/// 文件数量
///
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
index 7093e6a30..16a78d990 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
@@ -24,15 +24,21 @@ namespace IRaCIS.Application.Services
{
private readonly IRepository _readingClinicalDataRepository;
private readonly IRepository _clinicalDataTrialSetRepository;
+ private readonly IRepository _readingClinicalDataViewRepository;
+ private readonly IRepository _previousPDFRepository;
private readonly IRepository _readingClinicalDataPDFRepository;
public ReadingClinicalDataService(IRepository readingClinicalDataRepository,
IRepository clinicalDataTrialSetRepository,
+ IRepository readingClinicalDataViewRepository,
+ IRepository previousPDFRepository,
IRepository readingClinicalDataPDFRepository
)
{
this._readingClinicalDataRepository = readingClinicalDataRepository;
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
+ this._readingClinicalDataViewRepository = readingClinicalDataViewRepository;
+ this._previousPDFRepository = previousPDFRepository;
this._readingClinicalDataPDFRepository = readingClinicalDataPDFRepository;
}
@@ -124,7 +130,7 @@ namespace IRaCIS.Application.Services
public async Task> GetTrialClinicalDataSelect(GetTrialClinicalDataSelectIndto inDto)
{
- List clinicalList = await _clinicalDataTrialSetRepository.Where(x=>x.TrialId==inDto.TrialId&&x.IsConfirm)
+ List clinicalList = await _clinicalDataTrialSetRepository.Where(x=>x.TrialId==inDto.TrialId&&x.IsConfirm&&x.ClinicalDataSetName!= "既往局部治疗史")
//.WhereIf(inDto.ReadingClinicalDataId==null, x=> _readingClinicalDataPDFRepository.Where(y=>y.ObjectId==inDto.ObjectId&&))
@@ -151,7 +157,8 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task> GetReadingClinicalDataList(GetReadingClinicalDataListIndto inDto)
{
- var result = await _readingClinicalDataRepository.Where(x=>x.ReadingId==inDto.ReadingId).ProjectTo(_mapper.ConfigurationProvider).ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(GetReadingClinicalDataListOutDto.ClinicalDataSetName) : inDto.SortField,
+ var result = await _readingClinicalDataViewRepository.Where(x=>x.SubjectId==inDto.SubjectId)
+ .Where(x=>x.ReadingId==inDto.ReadingId||x.ReadingId==null).ProjectTo(_mapper.ConfigurationProvider).ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(GetReadingClinicalDataListOutDto.ClinicalDataSetName) : inDto.SortField,
inDto.Asc);
@@ -159,17 +166,38 @@ namespace IRaCIS.Application.Services
{
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()
+
+ if (item.IsCRCUpload)
{
- Id = y.Id,
- FileName = y.FileName,
- Path = y.Path
- }).ToListAsync()) : (await _readingClinicalDataPDFRepository.Where(y => y.SubjectId == item.SubjectId).Select(y => new GetFileDto()
+ item.FileList = await _previousPDFRepository.Where(x => x.SubjectId == inDto.SubjectId).Select(y => new GetFileDto()
+ {
+ Id = y.Id,
+ FileName = y.FileName,
+ Path = y.Path
+ }).ToListAsync();
+ }
+ else
{
- Id = y.Id,
- FileName = y.FileName,
- Path = y.Path
- }).ToListAsync());
+ if (item.ClinicalDataLevel != ClinicalLevel.Subject)
+ {
+ item.FileList = await _readingClinicalDataPDFRepository.Where(y => y.ReadingClinicalDataId == item.Id).Select(y => new GetFileDto()
+ {
+ Id = y.Id,
+ FileName = y.FileName,
+ Path = y.Path
+ }).ToListAsync();
+ }
+ else
+ {
+ item.FileList = await _readingClinicalDataPDFRepository.Where(y => y.SubjectId == item.SubjectId).Select(y => new GetFileDto()
+ {
+ Id = y.Id,
+ FileName = y.FileName,
+ Path = y.Path
+ }).ToListAsync();
+ }
+ }
+
}
@@ -195,19 +223,6 @@ namespace IRaCIS.Application.Services
return result;
}
- /////
- ///// 新增或者修改PDF
- /////
- /////
- /////
- //[HttpPost]
- //public async Task AddOrUpdateReadingClinicalDataPDF(AddOrUpdateReadingClinicalDataPDFDto indto)
- //{
- // var entity = await _readingClinicalDataPDFRepository.InsertOrUpdateAsync(indto, true);
- // return ResponseOutput.Ok(entity.Id.ToString());
- //}
-
-
///
/// 删除PDF单个文件
///
diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
index 58fcda16a..72509e2a4 100644
--- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
@@ -21,10 +21,12 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.PlanCount, u => u.MapFrom(s => s.ReadingPeriodPlanList.Count));
- 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));
+
+ CreateMap();
+ // 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()));
diff --git a/IRaCIS.Core.Domain/Reading/View/ReadingClinicalDataView.cs b/IRaCIS.Core.Domain/Reading/View/ReadingClinicalDataView.cs
new file mode 100644
index 000000000..5145e8821
--- /dev/null
+++ b/IRaCIS.Core.Domain/Reading/View/ReadingClinicalDataView.cs
@@ -0,0 +1,56 @@
+using IRaCIS.Core.Domain.Share;
+using IRaCIS.Core.Domain.Share.Reading;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IRaCIS.Core.Domain.Models
+{
+ public class ReadingClinicalDataView : Entity
+ {
+
+ ///
+ /// 项目ID
+ ///
+ public Guid TrialId { get; set; }
+
+ ///
+ /// 受试者ID
+ ///
+ public Guid SubjectId { get; set; }
+
+
+ ///
+ /// 阅片
+ ///
+ public Guid? ReadingId { get; set; }
+
+
+ ///
+ /// 项目配置临床类型ID
+ ///
+ public Guid ClinicalDataTrialSetId { get; set; }
+
+ ///
+ /// 项目配置临床类型Name
+ ///
+ public string ClinicalDataSetName { get; set; }
+
+
+ ///
+ ///
+ ///
+ public ClinicalLevel ClinicalDataLevel { get; set; }
+
+ ///
+ /// 是否为CRC上传
+ ///
+ public bool IsCRCUpload { get; set; }
+
+
+
+
+ }
+}
diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
index b5119609a..53ccfcecc 100644
--- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
+++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
@@ -182,6 +182,8 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet ReadingClinicalData { get; set; }
+ public virtual DbSet ReadingClinicalDataView { get; set; }
+
public virtual DbSet ReadingClinicalDataPDF { get; set; }
public virtual DbSet ReadModule { get; set; }