diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index c16a14530..348c8c0f5 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -445,6 +445,26 @@
+
+
+ 名称
+
+
+
+
+ 临床级别
+
+
+
+
+ 上传方式
+
+
+
+
+ 是否启用
+
+
项目ID
@@ -455,6 +475,11 @@
是否勾选
+
+
+ 枚举
+
+
名称
@@ -475,6 +500,31 @@
是否启用
+
+
+ 名称
+
+
+
+
+ 临床级别
+
+
+
+
+ 上传方式
+
+
+
+
+ 创建时间
+
+
+
+
+ 创建人
+
+
项目ID
@@ -500,6 +550,11 @@
是否使用
+
+
+ 枚举
+
+
名称
@@ -890,6 +945,26 @@
排序字段
+
+
+ 项目ID
+
+
+
+
+ 对象ID
+
+
+
+
+ 临床数据类型Id
+
+
+
+
+ 临床数据类型Id
+
+
项目ID
@@ -3269,60 +3344,60 @@
-
+
临床数据配置
-
+
新增或者修改(项目)
-
+
新增或者修改(系统)
-
+
获取系统临床数据(系统)
-
+
获取项目的临床数据
-
+
设置勾选
-
+
将系统配置添加到项目配置
-
+
删除(项目)
-
+
删除(系统)
@@ -3355,6 +3430,18 @@
+
+
+ 临床数据配置
+
+
+
+
+ 新增或者修改
+
+
+
+
阅片期配置
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs
index 648a71234..af2e4a25a 100644
--- a/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs
@@ -16,7 +16,7 @@ namespace IRaCIS.Application.Services
/// 临床数据配置
///
[ApiExplorerSettings(GroupName = "Reading")]
- public class ClinicalDataSetService : BaseService
+ public class ReadingClinicalDataService : BaseService
{
public IRepository _subjectVisitRepository;
@@ -25,7 +25,7 @@ namespace IRaCIS.Application.Services
private readonly IRepository _clinicalDataSystemSetRepository;
private readonly IRepository _previousPDFRepository;
- public ClinicalDataSetService(IRepository subjectVisitRepository,
+ public ReadingClinicalDataService(IRepository subjectVisitRepository,
IRepository ClinicalDataTrialSetRepository,
IRepository ClinicalDataSystemSetRepository,
@@ -79,6 +79,7 @@ namespace IRaCIS.Application.Services
.ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
}
+
///
/// 获取项目的临床数据
///
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs
index 7e403e2ad..a25ef623f 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs
@@ -89,9 +89,6 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid Id { get; set; }
-
-
-
///
/// 名称
///
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
new file mode 100644
index 000000000..4a248f2ea
--- /dev/null
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IRaCIS.Core.Application.Service.Reading.Dto
+{
+
+ public class AddOrUpdateReadingClinicalDataDto
+ {
+
+ public Guid? Id { get; set; }
+
+ ///
+ /// 项目ID
+ ///
+ public Guid TrialId { get; set; }
+
+ ///
+ /// 对象ID
+ ///
+ public Guid objectId { get; set; }
+
+ ///
+ /// 临床数据类型Id
+ ///
+ public Guid ClinicalDataTrialSetId { get; set; }
+
+ ///
+ /// 临床数据类型Id
+ ///
+ public bool IsVisit { get; set; }
+ }
+
+ public class GetTrialClinicalData
+ {
+ }
+}
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
new file mode 100644
index 000000000..7d9864c1d
--- /dev/null
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
@@ -0,0 +1,134 @@
+using IRaCIS.Application.Interfaces;
+using IRaCIS.Core.Infra.EFCore;
+using IRaCIS.Core.Domain.Share;
+using IRaCIS.Core.Application.Filter;
+using Microsoft.AspNetCore.Mvc;
+using IRaCIS.Core.Application.Service.WorkLoad.DTO;
+using Microsoft.AspNetCore.Authorization;
+using IRaCIS.Core.Application.Auth;
+using IRaCIS.Core.Application.Service.Reading.Dto;
+using IRaCIS.Core.Domain.Share.Reading;
+using MassTransit;
+
+namespace IRaCIS.Application.Services
+{
+ ///
+ /// 临床数据配置
+ ///
+ [ApiExplorerSettings(GroupName = "Reading")]
+ public class ClinicalDataSetService : BaseService
+ {
+ private readonly IRepository _readingClinicalDataRepository;
+
+ public ClinicalDataSetService(IRepository readingClinicalDataRepository
+ )
+ {
+ this._readingClinicalDataRepository = readingClinicalDataRepository;
+ }
+
+
+ ///
+ /// 新增或者修改
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task AddOrUpdateReadingClinicalData(AddOrUpdateReadingClinicalDataDto indto)
+ {
+ var entity = await _readingClinicalDataRepository.InsertOrUpdateAsync(indto,true);
+ return ResponseOutput.Ok(entity.Id.ToString());
+ }
+
+
+ //public async Task> GetTrialClinicalData()
+
+ /////
+ ///// 获取系统临床数据(系统)
+ /////
+ /////
+ //[HttpPost]
+ //public async Task> GetSystemClinicalDataSystemSetList(GetTrialClinicalDataSystemIndto inDto)
+ //{
+ // return await _clinicalDataSystemSetRepository.AsQueryable()
+ // .WhereIf(inDto.ClinicalDataLevel != null, x => x.ClinicalDataLevel == inDto.ClinicalDataLevel)
+ // .WhereIf(inDto.ClinicalUploadType != null, x => x.ClinicalUploadType == inDto.ClinicalUploadType)
+ // .WhereIf(inDto.ClinicalDataSetName != String.Empty, x => x.ClinicalDataSetName.Contains(inDto.ClinicalDataSetName))
+
+ // .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+ //}
+
+
+ /////
+ ///// 获取项目的临床数据
+ /////
+ /////
+ /////
+ //[HttpPost]
+ //public async Task> GetTrialClinicalDataTrialSetList(GetTrialClinicalDataTrialIndto inDto)
+ //{
+ // await this.AddTrialClinicalDataTrialSet(inDto.TrialId);
+ // return await _clinicalDataTrialSetRepository.AsQueryable()
+
+ // .Where(x => x.TrialId == inDto.TrialId)
+ // .WhereIf(inDto.ClinicalDataLevel!=null,x=>x.ClinicalDataLevel== inDto.ClinicalDataLevel)
+ // .WhereIf(inDto.ClinicalUploadType != null, x => x.ClinicalUploadType == inDto.ClinicalUploadType)
+ // .WhereIf(inDto.ClinicalDataSetName != String.Empty, x => x.ClinicalDataSetName.Contains(inDto.ClinicalDataSetName))
+ // .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+
+ //}
+
+
+
+
+ /////
+ ///// 将系统配置添加到项目配置
+ /////
+ /////
+ /////
+
+ //private async Task AddTrialClinicalDataTrialSet(Guid trialId)
+ //{
+ // var systemIds = await _clinicalDataSystemSetRepository.Select(x => x.Id).ToListAsync();
+ // var trialSystemIds =await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialId && x.SystemClinicalDataSetId != null).Select(x => x.SystemClinicalDataSetId.Value).ToListAsync();
+ // var needAddids = systemIds.Except(trialSystemIds).ToList();
+ // var systemDataList =await _clinicalDataSystemSetRepository.Where(x => needAddids.Contains(x.Id)).ToListAsync();
+ // List dataSets = systemDataList.Select(x => new ClinicalDataTrialSet()
+ // {
+ // Id= NewId.NextGuid(),
+ // SystemClinicalDataSetId=x.Id,
+ // ClinicalDataSetName=x.ClinicalDataSetName,
+ // ClinicalDataLevel=x.ClinicalDataLevel,
+ // ClinicalUploadType=x.ClinicalUploadType,
+ // TrialId= trialId,
+
+ // }).ToList();
+ // await _clinicalDataTrialSetRepository.AddRangeAsync(dataSets);
+ // var result= await _clinicalDataTrialSetRepository.SaveChangesAsync();
+ // return ResponseOutput.Ok(result);
+ //}
+
+ /////
+ ///// 删除(项目)
+ /////
+ /////
+ /////
+ //[HttpDelete("{id:guid}")]
+ //public async Task DeleteClinicalTrialSetData(Guid id)
+ //{
+ // await _clinicalDataTrialSetRepository.DeleteFromQueryAsync(x=>x.Id== id,true);
+ // return ResponseOutput.Result(true);
+ //}
+
+ /////
+ ///// 删除(系统)
+ /////
+ /////
+ /////
+ //[HttpDelete("{id:guid}")]
+ //public async Task DeleteClinicalSystemSetData(Guid id)
+ //{
+ // await _clinicalDataSystemSetRepository.DeleteFromQueryAsync(x => x.Id == id, true);
+ // return ResponseOutput.Result(true);
+ //}
+ }
+}
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
index 06c2782a4..fbe94a2f2 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs
@@ -76,6 +76,8 @@ namespace IRaCIS.Core.Application.Contracts
public List CriterionIds { get; set; } = new List();
+ public List ClinicalDataTrialSetIds { get; set; } = new List();
+
public Guid TrialId { get; set; }
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
index caeab0956..379ee44f4 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
@@ -311,17 +311,28 @@ namespace IRaCIS.Core.Application
_mapper.Map(trialConfig, trialInfo);
trialInfo.UpdateTime = DateTime.Now;
-
- await _clinicalDataTrialSetRepository.BatchUpdateNoTrackingAsync(x => x.TrialId == trialConfig.TrialId, x => new ClinicalDataTrialSet
- {
- IsConfirm = false
- });
- await _clinicalDataTrialSetRepository.BatchUpdateNoTrackingAsync(x => x.TrialId == trialConfig.TrialId && x.IsCheck, x => new ClinicalDataTrialSet
- {
- IsConfirm = true
- });
+
+ var noconfirmids = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId && !trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
+ foreach (var item in trialConfig.ClinicalDataTrialSetIds)
+ {
+ await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
+ {
+ IsConfirm = true
+ });
+ }
+
+ foreach (var item in noconfirmids)
+ {
+ await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
+ {
+ IsConfirm = false
+ });
+ }
+
+
+
return ResponseOutput.Ok(await _repository.SaveChangesAsync());
}
diff --git a/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs b/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs
index ca10210f7..ecc4cccc3 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs
@@ -19,6 +19,21 @@ namespace IRaCIS.Core.Domain.Models
///
public Guid TrialId { get; set; }
+ ///
+ /// 对象ID
+ ///
+ public Guid ObjectId { get; set; }
+
+ ///
+ /// 临床数据类型Id
+ ///
+ public Guid ClinicalDataTrialSetId { get; set; }
+
+ ///
+ /// 临床数据类型Id
+ ///
+ public bool IsVisit { get; set; }
+
///
/// 创建时间
///
diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
index 95cb745cf..7f8dd68ac 100644
--- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
+++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs
@@ -180,6 +180,8 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet ReadingPeriodPlan { get; set; }
+ public virtual DbSet ReadingClinicalData { get; set; }
+
public virtual DbSet ReadModule { get; set; }
public virtual DbSet ReadModuleView { get; set; }