diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 49115bdc5..e8b2824f3 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -445,76 +445,86 @@ - + 项目ID - + 名称 - + 临床级别 - + 上传方式 - - - 项目ID - - - - - 名称 - - - - - 临床级别 - - - - - 上传方式 - - - - - 系统的ClinicalDataSetId - - - - - 创建时间 - - - - - 创建人 - - - + 是否启用 - + 是否勾选 - + + + 项目ID + + + + + 系统的ClinicalDataSetId + + + 是否来自于系统数据 + + + 名称 + + + + + 临床级别 + + + + + 上传方式 + + + + + 创建时间 + + + + + 创建人 + + + + + 是否启用 + + + + + 是否勾选 + + 项目Id @@ -3224,38 +3234,52 @@ 临床数据配置 - + - 新增或者修改 + 新增或者修改(项目) - + - 分页获取 + 新增或者修改(系统) - + - + - 获取系统临床数据 + 获取系统临床数据(系统) - + + + 获取项目的临床数据 + + + + + 将系统配置添加到项目配置 - + - 删除 + 删除(项目) - + + + + + + 删除(系统) + + diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs index 062536121..052fc97be 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs @@ -21,71 +21,59 @@ namespace IRaCIS.Application.Services public IRepository _subjectVisitRepository; private readonly IRepository _clinicalDataRepository; - private readonly IRepository _clinicalDataSetRepository; + private readonly IRepository _clinicalDataTrialSetRepository; + private readonly IRepository _clinicalDataSystemSetRepository; private readonly IRepository _previousPDFRepository; public ClinicalDataSetService(IRepository subjectVisitRepository, IRepository clinicalDataRepository, - IRepository ClinicalDataSetRepository, + IRepository ClinicalDataTrialSetRepository, + IRepository ClinicalDataSystemSetRepository, IRepository previousPDFRepository ) { _subjectVisitRepository = subjectVisitRepository; _clinicalDataRepository = clinicalDataRepository; - _clinicalDataSetRepository = ClinicalDataSetRepository; + _clinicalDataTrialSetRepository = ClinicalDataTrialSetRepository; + _clinicalDataSystemSetRepository = ClinicalDataSystemSetRepository; this._previousPDFRepository = previousPDFRepository; } /// - /// 新增或者修改 + /// 新增或者修改(项目) /// /// /// [HttpPost] - public async Task AddOrUpdateClinicalDataSet(ClinicalDataSetAddOrEdit indto) + public async Task AddOrUpdateClinicalDataTrialSet(ClinicalDataTrialSetAddOrEdit indto) { - var entity = await _clinicalDataSetRepository.InsertOrUpdateAsync(indto,true); + var entity = await _clinicalDataTrialSetRepository.InsertOrUpdateAsync(indto,true); return ResponseOutput.Ok(entity.Id.ToString()); } - ///// - ///// 分页获取 - ///// - ///// - ///// - //[HttpPost] - //public async Task> GetClinicalDataSetList(ClinicalDataQuery query) - //{ - // var readquery = _clinicalDataSetRepository.AsQueryable() - // .Where( x => x.TrialId == query.TrialId) - // .WhereIf(query.ClinicalDataSetName!=string.Empty,x=>x.ClinicalDataSetName.Contains(query.ClinicalDataSetName)) - // .ProjectTo(_mapper.ConfigurationProvider); - // var pageList = await readquery.ToPagedListAsync(query.PageIndex, query.PageSize, query.SortField == null ? "CreateTime" : query.SortField, - // query.Asc); - - // return pageList; - //} - - ///// - ///// 设置项目 - ///// - ///// - //public async Task SetClinicalDataCheck() - //{ - // _clinicalDataSetRepository.UpdateAsync() - //} + /// + /// 新增或者修改(系统) + /// + /// + /// + [HttpPost] + public async Task AddOrUpdateClinicalDataSystemSet(ClinicalDataSystemSetAddOrEdit indto) + { + var entity = await _clinicalDataSystemSetRepository.InsertOrUpdateAsync(indto, true); + return ResponseOutput.Ok(entity.Id.ToString()); + } /// - /// 获取系统临床数据 + /// 获取系统临床数据(系统) /// /// [HttpGet] - public async Task> GetSystemClinicalDataSetList() + public async Task> GetSystemClinicalDataSystemSetList() { - return await _clinicalDataSetRepository.AsQueryable() - .Where(x => x.TrialId == null) - .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + return await _clinicalDataSystemSetRepository.AsQueryable() + + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); } /// @@ -93,32 +81,29 @@ namespace IRaCIS.Application.Services /// /// /// - [HttpGet] - public async Task> GetTrialClinicalDataSetList(AddTrialClinicalDataSetInDto inDto) + public async Task> GetTrialClinicalDataTrialSetList(AddTrialClinicalDataSetInDto inDto) { - await this.AddTrialClinicalDataSet(inDto); - - return await _clinicalDataSetRepository.AsQueryable() + await this.AddTrialClinicalDataTrialSet(inDto); + return await _clinicalDataTrialSetRepository.AsQueryable() .Where(x => x.TrialId == inDto.TrialId) - .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); } - /// /// 将系统配置添加到项目配置 /// /// /// - private async Task AddTrialClinicalDataSet(AddTrialClinicalDataSetInDto inDto) + private async Task AddTrialClinicalDataTrialSet(AddTrialClinicalDataSetInDto inDto) { - var systemIds = await _clinicalDataSetRepository.Where(x => x.TrialId == null).Select(x => x.Id).ToListAsync(); - var trialSystemIds =await _clinicalDataSetRepository.Where(x => x.TrialId == inDto.TrialId && x.SystemClinicalDataSetId != null).Select(x => x.SystemClinicalDataSetId.Value).ToListAsync(); + var systemIds = await _clinicalDataSystemSetRepository.Select(x => x.Id).ToListAsync(); + var trialSystemIds =await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.SystemClinicalDataSetId != null).Select(x => x.SystemClinicalDataSetId.Value).ToListAsync(); var needAddids = systemIds.Except(trialSystemIds).ToList(); - var systemDataList =await _clinicalDataSetRepository.Where(x => needAddids.Contains(x.Id)).ToListAsync(); - List dataSets = systemDataList.Select(x => new ClinicalDataSet() + var systemDataList =await _clinicalDataSystemSetRepository.Where(x => needAddids.Contains(x.Id)).ToListAsync(); + List dataSets = systemDataList.Select(x => new ClinicalDataTrialSet() { Id= NewId.NextGuid(), SystemClinicalDataSetId=x.Id, @@ -127,23 +112,32 @@ namespace IRaCIS.Application.Services ClinicalUploadType=x.ClinicalUploadType, TrialId=inDto.TrialId, }).ToList(); - await _clinicalDataSetRepository.AddRangeAsync(dataSets); - var result= await _clinicalDataSetRepository.SaveChangesAsync(); + await _clinicalDataTrialSetRepository.AddRangeAsync(dataSets); + var result= await _clinicalDataTrialSetRepository.SaveChangesAsync(); return ResponseOutput.Ok(result); } - - - /// - /// 删除 + /// 删除(项目) /// - /// + /// /// [HttpDelete("{id:guid}")] - public async Task DeleteClinicalSetData(Guid id) + public async Task DeleteClinicalTrialSetData(Guid id) { - await _clinicalDataSetRepository.DeleteFromQueryAsync(x=>x.Id== id,true); + 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/Reading/Dto/ClinicalDataServiceViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs index bed681d48..45487b0a3 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ClinicalDataServiceViewModel.cs @@ -13,15 +13,19 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } - - public class ClinicalDataSetAddOrEdit + public class ClinicalDataTrialSetAddOrEdit: ClinicalDataSystemSetAddOrEdit { - public Guid? Id { get; set; } - /// /// 项目ID /// public Guid? TrialId { get; set; } + } + + public class ClinicalDataSystemSetAddOrEdit + { + public Guid? Id { get; set; } + + /// @@ -56,15 +60,37 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } - public class ClinicalDataSetView + public class ClinicalDataTrialSetView : ClinicalDataSystemSetView { - public Guid Id { get; set; } - /// /// 项目ID /// public Guid? TrialId { get; set; } + /// + /// 系统的ClinicalDataSetId + /// + public Guid? SystemClinicalDataSetId { get; set; } + + /// + /// 是否来自于系统数据 + /// + public bool IsFromSystemData + { + get + { + return this.SystemClinicalDataSetId == null ? false : true; + } + } + } + + + public class ClinicalDataSystemSetView + { + public Guid Id { get; set; } + + + /// /// 名称 @@ -83,10 +109,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public ClinicalUploadType ClinicalUploadType { get; set; } - /// - /// 系统的ClinicalDataSetId - /// - public Guid? SystemClinicalDataSetId { get; set; } + /// /// 创建时间 @@ -108,14 +131,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public bool IsCheck { get; set; } - /// - /// 是否来自于系统数据 - /// - public bool IsFromSystemData { - get { - return this.SystemClinicalDataSetId == null ? false : true; - } - } + } public class ClinicalDataInDto @@ -150,25 +166,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } - public class SetClinicalDataCheckIndto - { - /// - /// 项目ID - /// - public Guid TrialId { get; set; } - - List<> - - /// - /// 勾选的ID - /// - public List CheckIds { get; set; } - - /// - /// 启用的ID - /// - public List EnableIds { get; set; } - } + public class AddTrialClinicalDataSetInDto { public Guid TrialId { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs index 3bb9d7538..4bfc87029 100644 --- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs @@ -25,11 +25,17 @@ namespace IRaCIS.Core.Application.Service CreateMap().ReverseMap(); - CreateMap().ReverseMap(); + CreateMap(); - CreateMap(); + + CreateMap().ReverseMap(); + + CreateMap().ReverseMap(); + + CreateMap(); + CreateMap(); CreateMap().ReverseMap(); diff --git a/IRaCIS.Core.Domain/Reading/ClinicalDataSystemSet.cs b/IRaCIS.Core.Domain/Reading/ClinicalDataSystemSet.cs new file mode 100644 index 000000000..500e03cc5 --- /dev/null +++ b/IRaCIS.Core.Domain/Reading/ClinicalDataSystemSet.cs @@ -0,0 +1,64 @@ + + +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using IRaCIS.Core.Domain.Share.Reading; + +namespace IRaCIS.Core.Domain.Models +{ + /// + /// 临床资料系统配置 + /// + [Table("ClinicalDataSystemSet")] + public class ClinicalDataSystemSet : Entity, IAuditAdd + { + + + + + /// + /// 名称 + /// + public string ClinicalDataSetName { get; set; } + + /// + /// 临床级别 + /// + public ClinicalLevel ClinicalDataLevel { get; set; } + + + /// + /// 上传方式 + /// + public ClinicalUploadType ClinicalUploadType { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } + + /// + /// 创建人 + /// + public Guid CreateUserId { get; set; } + + /// + /// 是否启用 + /// + public bool IsEnable { get; set; } + + /// + /// 是否勾选 + /// + public bool IsCheck { get; set; } + + } + + + + + + +} diff --git a/IRaCIS.Core.Domain/Reading/ClinicalDataSet.cs b/IRaCIS.Core.Domain/Reading/ClinicalDataTrialSet.cs similarity index 90% rename from IRaCIS.Core.Domain/Reading/ClinicalDataSet.cs rename to IRaCIS.Core.Domain/Reading/ClinicalDataTrialSet.cs index 5286a422f..430b29fce 100644 --- a/IRaCIS.Core.Domain/Reading/ClinicalDataSet.cs +++ b/IRaCIS.Core.Domain/Reading/ClinicalDataTrialSet.cs @@ -9,10 +9,10 @@ using IRaCIS.Core.Domain.Share.Reading; namespace IRaCIS.Core.Domain.Models { /// - /// 临床资料配置 + /// 临床资料项目配置 /// - [Table("ClinicalDataSet")] - public class ClinicalDataSet : Entity, IAuditAdd + [Table("ClinicalDataTrialSet")] + public class ClinicalDataTrialSet : Entity, IAuditAdd { /// diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 4489563e3..4ad567da3 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -183,7 +183,10 @@ namespace IRaCIS.Core.Infra.EFCore public virtual DbSet ReadModule { get; set; } public virtual DbSet ReadModuleView { get; set; } - public virtual DbSet ClinicalDataSet { get; set; } + public virtual DbSet ClinicalDataTrialSet { get; set; } + + public virtual DbSet ClinicalDataSystemSet { get; set; } + public virtual DbSet ClinicalData { get; set; }