From db1c6bbe7203b998f9a73a29c0276b3862eb6b11 Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Fri, 10 Jun 2022 10:00:15 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/UploadDownLoadController.cs | 12 +--
IRaCIS.Core.API/IRaCIS.Core.API.xml | 4 +-
.../Helper/FileStoreHelper.cs | 6 +-
.../IRaCIS.Core.Application.xml | 59 +++++++++-----
.../Service/Reading/ClinicalDataSetService.cs | 29 -------
.../Reading/Dto/ReadingClinicalDataDto.cs | 48 +++++++++--
.../Reading/ReadingClinicalDataService.cs | 81 ++++++++++++++-----
.../TrialSiteUser/TrialConfigService.cs | 4 +-
.../Service/TrialSiteUser/_MapConfig.cs | 2 +-
.../Reading/ClinicalDataTrialSet.cs | 6 --
.../Reading/ReadingClinicalData.cs | 4 +-
.../Reading/ReadingClinicalDataPDF.cs | 2 +-
12 files changed, 160 insertions(+), 97 deletions(-)
diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
index b7117b77d..07f4bd52e 100644
--- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
+++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
@@ -399,20 +399,20 @@ namespace IRaCIS.Core.API.Controllers
///
/// 上传阅片临床数据
///
- ///
+ ///
///
- [HttpPost("ClinicalData/UploadClinicalData/{trialId:guid}/{readingClinicalDataId:guid}")]
+ [HttpPost("ClinicalData/UploadClinicalData/{trialId:guid}/{subjectId:guid}/{readingId:guid}")]
[DisableRequestSizeLimit]
- public async Task UploadReadClinicalData(Guid readingClinicalDataId)
+ public async Task UploadReadClinicalData(Guid trialId, Guid subjectId, Guid readingId)
{
var filerelativePath = string.Empty;
// 写法一致 使用 _repository
- var clinicalData = (await _repository.Where(x => x.Id == readingClinicalDataId).FirstOrDefaultAsync()).IfNullThrowException();
- var siteid =await _repository.Where(x => x.Id == clinicalData.SubjectId).Select(x => x.SiteId).FirstOrDefaultAsync();
+
+ var siteid =await _repository.Where(x => x.Id == subjectId).Select(x => x.SiteId).FirstOrDefaultAsync();
await FileUploadAsync(async (fileName) =>
{
- var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetReadClinicalDataPath(_hostEnvironment, fileName, clinicalData.TrialId, siteid, clinicalData.SubjectId, clinicalData.ObjectId, clinicalData.Id);
+ var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetReadClinicalDataPath(_hostEnvironment, fileName, trialId, siteid, subjectId, readingId);
//插入临床pdf 路径
filerelativePath = relativePath;
return serverFilePath;
diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml
index 957fbd70f..781039f32 100644
--- a/IRaCIS.Core.API/IRaCIS.Core.API.xml
+++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml
@@ -171,11 +171,11 @@
-
+
上传阅片临床数据
-
+
diff --git a/IRaCIS.Core.Application/Helper/FileStoreHelper.cs b/IRaCIS.Core.Application/Helper/FileStoreHelper.cs
index 0c9a5ecc2..dead03be7 100644
--- a/IRaCIS.Core.Application/Helper/FileStoreHelper.cs
+++ b/IRaCIS.Core.Application/Helper/FileStoreHelper.cs
@@ -211,18 +211,18 @@ public static class FileStoreHelper
}
- public static (string PhysicalPath, string RelativePath, string FileRealName) GetReadClinicalDataPath(IWebHostEnvironment _hostEnvironment, string fileName, Guid trialId, Guid siteId, Guid subjectId, Guid objectId,Guid readingClinicalDataId)
+ public static (string PhysicalPath, string RelativePath, string FileRealName) GetReadClinicalDataPath(IWebHostEnvironment _hostEnvironment, string fileName, Guid trialId, Guid siteId, Guid subjectId, Guid readingId)
{
var rootPath = FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment);
- string uploadFolderPath = Path.Combine(rootPath, StaticData.Folder.TrialDataFolder, trialId.ToString(), siteId.ToString(), subjectId.ToString(), "Reading", objectId.ToString(), readingClinicalDataId.ToString(), StaticData.Folder.TreatmenthistoryFolder);
+ string uploadFolderPath = Path.Combine(rootPath, StaticData.Folder.TrialDataFolder, trialId.ToString(), siteId.ToString(), subjectId.ToString(), "Reading", readingId.ToString(), StaticData.Folder.TreatmenthistoryFolder);
if (!Directory.Exists(uploadFolderPath)) Directory.CreateDirectory(uploadFolderPath);
var (trustedFileNameForFileStorage, fileRealName) = FileStoreHelper.GetStoreFileName(fileName);
- var relativePath = $"/{StaticData.Folder.IRaCISDataFolder}/{StaticData.Folder.TrialDataFolder}/{trialId}/{siteId}/{subjectId}/Reading/{objectId}/{readingClinicalDataId}/{StaticData.Folder.TreatmenthistoryFolder}/{trustedFileNameForFileStorage}";
+ var relativePath = $"/{StaticData.Folder.IRaCISDataFolder}/{StaticData.Folder.TrialDataFolder}/{trialId}/{siteId}/{subjectId}/Reading/{readingId}/{StaticData.Folder.TreatmenthistoryFolder}/{trustedFileNameForFileStorage}";
var serverFilePath = Path.Combine(uploadFolderPath, trustedFileNameForFileStorage);
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index e360da6e5..7d7fe83b1 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -955,9 +955,9 @@
受试者ID
-
+
- 对象ID
+ 阅片ID
@@ -970,6 +970,21 @@
临床数据类型Id
+
+
+ 文件列表
+
+
+
+
+ 文件名称
+
+
+
+
+ 路径
+
+
获取访视列表
@@ -980,7 +995,7 @@
项目ID
-
+
对象ID
@@ -1015,7 +1030,7 @@
项目ID
-
+
对象ID
@@ -1080,6 +1095,26 @@
文件数量
+
+
+ 项目ID
+
+
+
+
+ 阅片期临床数据ID
+
+
+
+
+ 对象ID
+
+
+
+
+ 是否是访视
+
+
名称
@@ -3516,13 +3551,6 @@
-
-
- 设置勾选
-
-
-
-
将系统配置添加到项目配置
@@ -3610,16 +3638,9 @@
-
-
- 新增或者修改PDF
-
-
-
-
- 删除PDF
+ 删除PDF单个文件
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs
index a5929bed1..f9271e34d 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs
@@ -100,35 +100,6 @@ namespace IRaCIS.Application.Services
}
- ///
- /// 设置勾选
- ///
- ///
- ///
- public async Task SetClinicalDataCheckd(SetClinicalDataCheckdIndto setClinicalData)
- {
- // 为了后面稽查这样写
- var nocheckids =await _clinicalDataTrialSetRepository.Where(x => x.TrialId == setClinicalData.TrialId && !setClinicalData.ClinicalDataTrialIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
- foreach (var item in setClinicalData.ClinicalDataTrialIds)
- {
- await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
- {
- IsCheck = true
- });
- }
-
- foreach (var item in nocheckids)
- {
- await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
- {
- IsCheck = false
- });
- }
-
- await _clinicalDataTrialSetRepository.SaveChangesAsync();
-
- return ResponseOutput.Ok(true);
- }
///
/// 将系统配置添加到项目配置
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
index 61baeb344..5a968de13 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
@@ -24,9 +24,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid SubjectId { get; set; }
///
- /// 对象ID
+ /// 阅片ID
///
- public Guid objectId { get; set; }
+ public Guid ReadingId { get; set; }
///
/// 临床数据类型Id
@@ -37,15 +37,32 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
/// 临床数据类型Id
///
public bool IsVisit { get; set; }
+
+ ///
+ /// 文件列表
+ ///
+ public List FileList { get; set; }
}
+ public class FileDto
+ {
+ ///
+ /// 文件名称
+ ///
+ public string FileName { get; set; }
+
+ ///
+ /// 路径
+ ///
+ public string Path { get; set; }
+ }
///
/// 获取访视列表
///
public class GetReadingClinicalDataListIndto :PageInput
{
- public Guid ObjectId { get; set; }
+ public Guid ReadingId { get; set; }
}
public class GetReadingClinicalDataPDFListIndto:PageInput
@@ -65,7 +82,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
/// 对象ID
///
- public Guid ObjectId { get; set; }
+ public Guid ReadingId { get; set; }
///
/// 受试者ID
@@ -108,7 +125,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
/// 对象ID
///
- public Guid ObjectId { get; set; }
+ public Guid ReadingId { get; set; }
///
/// 受试者ID
@@ -185,8 +202,27 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class GetTrialClinicalDataSelectIndto
{
+ ///
+ /// 项目ID
+ ///
public Guid TrialId { get; set; }
- }
+
+ ///
+ /// 阅片期临床数据ID
+ ///
+ public Guid? ReadingClinicalDataId { get; set; }
+
+ ///
+ /// 对象ID
+ ///
+ public Guid ReadingId { get; set; }
+
+ ///
+ /// 是否是访视
+ ///
+ public bool IsVisit { get; set; }
+
+ }
public class GetTrialClinicalDataSelectOutDto
{
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
index df8f2d1e6..ff30528a8 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
@@ -44,13 +44,50 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task AddOrUpdateReadingClinicalData(AddOrUpdateReadingClinicalDataDto indto)
{
- var entity = await _readingClinicalDataRepository.InsertOrUpdateAsync(indto,true);
- return ResponseOutput.Ok(entity.Id.ToString());
+
+
+
+ if (indto.Id == null)
+ {
+ var entity = _mapper.Map(indto);
+ entity.ReadingClinicalDataPDFList = indto.FileList.Select(x => new ReadingClinicalDataPDF()
+ {
+
+ TrialId = entity.TrialId,
+ SubjectId= indto.SubjectId,
+ FileName=x.FileName,
+ Path=x.Path,
+ IsVisit= indto.IsVisit,
+ ReadingId=indto.ReadingId
+ }).ToList();
+
+
+ await _readingClinicalDataRepository.AddAsync(entity, true);
+ return ResponseOutput.Ok(entity.Id);
+ }
+ else
+ {
+ var entity = (await _readingClinicalDataRepository.Where(t => t.Id == indto.Id, true).Include(t => t.ReadingClinicalDataPDFList).FirstOrDefaultAsync()).IfNullThrowException();
+ _mapper.Map(indto, entity);
+
+ entity.ReadingClinicalDataPDFList = indto.FileList.Select(x => new ReadingClinicalDataPDF()
+ {
+
+ TrialId = entity.TrialId,
+ SubjectId = indto.SubjectId,
+ FileName = x.FileName,
+ Path = x.Path,
+ IsVisit = indto.IsVisit,
+ ReadingId = indto.ReadingId
+ }).ToList();
+
+ var success = await _readingClinicalDataRepository.SaveChangesAsync();
+ return ResponseOutput.Ok(entity.Id);
+
+ }
+
}
-
-
-
///
/// 删除
///
@@ -64,7 +101,6 @@ namespace IRaCIS.Application.Services
}
-
///
/// 获取下拉菜单
///
@@ -73,7 +109,12 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task> GetTrialClinicalDataSelect(GetTrialClinicalDataSelectIndto inDto)
{
- List clinicalList = await _clinicalDataTrialSetRepository.Select(x => new GetTrialClinicalDataSelectOutDto()
+
+ List clinicalList = await _clinicalDataTrialSetRepository
+
+ //.WhereIf(inDto.ReadingClinicalDataId==null, x=> _readingClinicalDataPDFRepository.Where(y=>y.ObjectId==inDto.ObjectId&&))
+
+ .Select(x => new GetTrialClinicalDataSelectOutDto()
{
ClinicalDataLevel = x.ClinicalDataLevel,
ClinicalDataSetName = x.ClinicalDataSetName,
@@ -96,7 +137,7 @@ namespace IRaCIS.Application.Services
[HttpPost]
public async Task> GetReadingClinicalDataList(GetReadingClinicalDataListIndto inDto)
{
- var result = await _readingClinicalDataRepository.Where(x => x.ObjectId == inDto.ObjectId).ProjectTo(_mapper.ConfigurationProvider).ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(GetReadingClinicalDataListOutDto.ClinicalDataSetName) : inDto.SortField,
+ var result = await _readingClinicalDataRepository.ProjectTo(_mapper.ConfigurationProvider).ToPagedListAsync(inDto.PageIndex, inDto.PageSize, inDto.SortField == null ? nameof(GetReadingClinicalDataListOutDto.ClinicalDataSetName) : inDto.SortField,
inDto.Asc);
result.CurrentPageData.ForEach(x => {
@@ -123,21 +164,21 @@ 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
+ /////
+ /////
+ /////
+ //[HttpPost]
+ //public async Task AddOrUpdateReadingClinicalDataPDF(AddOrUpdateReadingClinicalDataPDFDto indto)
+ //{
+ // var entity = await _readingClinicalDataPDFRepository.InsertOrUpdateAsync(indto, true);
+ // return ResponseOutput.Ok(entity.Id.ToString());
+ //}
///
- /// 删除PDF
+ /// 删除PDF单个文件
///
///
///
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
index 713344843..ca22576d1 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
@@ -167,7 +167,7 @@ namespace IRaCIS.Core.Application
{
await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
{
- IsCheck= true,
+
IsConfirm = true
});
}
@@ -176,7 +176,7 @@ namespace IRaCIS.Core.Application
{
await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
{
- IsCheck = false,
+
IsConfirm = false
});
}
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
index e7f7b73d8..e976cdb85 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/_MapConfig.cs
@@ -143,7 +143,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap();
CreateMap().ForMember(t => t.TrialId, u => u.MapFrom(c => c.Id))
- .ForMember(t => t.ClinicalDataSetNames, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsCheck&&v.IsConfirm).Select(r => r.ClinicalDataSetName)))
+ .ForMember(t => t.ClinicalDataSetNames, u => u.MapFrom(c => c.clinicalDataTrialSets.Where(v => v.IsConfirm).Select(r => r.ClinicalDataSetName)))
.ForMember(t => t.CriterionIds, u => u.MapFrom(c => c.TrialDicList.Where(v => v.KeyName == StaticData.Criterion).Select(r => r.DictionaryId)));
CreateMap();
CreateMap();
diff --git a/IRaCIS.Core.Domain/Reading/ClinicalDataTrialSet.cs b/IRaCIS.Core.Domain/Reading/ClinicalDataTrialSet.cs
index 90a958b8e..df1f18fc5 100644
--- a/IRaCIS.Core.Domain/Reading/ClinicalDataTrialSet.cs
+++ b/IRaCIS.Core.Domain/Reading/ClinicalDataTrialSet.cs
@@ -53,12 +53,6 @@ namespace IRaCIS.Core.Domain.Models
///
public Guid CreateUserId { get; set; }
- ///
- /// 是否勾选
- ///
- public bool IsCheck { get; set; }
-
-
///
/// 是否确认
///
diff --git a/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs b/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs
index 8195efed0..677939a50 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs
@@ -21,9 +21,9 @@ namespace IRaCIS.Core.Domain.Models
public Guid TrialId { get; set; }
///
- /// 对象ID
+ /// 阅片ID
///
- public Guid ObjectId { get; set; }
+ public Guid ReadingId { get; set; }
///
/// 受试者ID
diff --git a/IRaCIS.Core.Domain/Reading/ReadingClinicalDataPDF.cs b/IRaCIS.Core.Domain/Reading/ReadingClinicalDataPDF.cs
index 9f561b182..61fe84890 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingClinicalDataPDF.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingClinicalDataPDF.cs
@@ -22,7 +22,7 @@ namespace IRaCIS.Core.Domain.Models
///
/// 对象ID
///
- public Guid ObjectId { get; set; }
+ public Guid ReadingId { get; set; }
///
/// 受试者ID