From 2dec249cc4f026a8240c4df015d2d5b8e63ffe9f Mon Sep 17 00:00:00 2001
From: he <10978375@qq.com>
Date: Thu, 9 Jun 2022 17:33:46 +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
---
.../IRaCIS.Core.Application.xml | 105 ++++++++++++--
.../Service/Reading/ClinicalDataSetService.cs | 4 +-
.../Reading/Dto/ReadingClinicalDataDto.cs | 90 +++++++++++-
.../Reading/ReadingClinicalDataService.cs | 130 ++++++------------
.../Service/Reading/_MapConfig.cs | 8 ++
.../TrialSiteUser/TrialConfigService.cs | 2 +
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 6 +
.../Reading/ReadingClinicalData.cs | 6 +-
.../Common/ReadingCommon.cs | 16 +++
9 files changed, 264 insertions(+), 103 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 348c8c0f5..07aa41df8 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -965,6 +965,66 @@
临床数据类型Id
+
+
+ 获取访视列表
+
+
+
+
+ 名称
+
+
+
+
+ 临床级别
+
+
+
+
+ 上传方式
+
+
+
+
+ 临床级别名称
+
+
+
+
+ 上传方式名称
+
+
+
+
+ 文件数量
+
+
+
+
+ 名称
+
+
+
+
+ 临床级别
+
+
+
+
+ 上传方式
+
+
+
+
+ 临床级别名称
+
+
+
+
+ 上传方式名称
+
+
项目ID
@@ -3344,60 +3404,60 @@
-
+
临床数据配置
-
+
新增或者修改(项目)
-
+
新增或者修改(系统)
-
+
获取系统临床数据(系统)
-
+
获取项目的临床数据
-
+
设置勾选
-
+
将系统配置添加到项目配置
-
+
删除(项目)
-
+
删除(系统)
@@ -3430,18 +3490,39 @@
-
+
- 临床数据配置
+ 阅片临床数据配置
-
+
新增或者修改
+
+
+ 删除
+
+
+
+
+
+
+ 获取下拉菜单
+
+
+
+
+
+
+ 获取阅片临床数据列表
+
+
+
+
阅片期配置
diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalDataSetService.cs
index af2e4a25a..a5929bed1 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 ReadingClinicalDataService : BaseService
+ public class ClinicalDataSetService : BaseService
{
public IRepository _subjectVisitRepository;
@@ -25,7 +25,7 @@ namespace IRaCIS.Application.Services
private readonly IRepository _clinicalDataSystemSetRepository;
private readonly IRepository _previousPDFRepository;
- public ReadingClinicalDataService(IRepository subjectVisitRepository,
+ public ClinicalDataSetService(IRepository subjectVisitRepository,
IRepository ClinicalDataTrialSetRepository,
IRepository ClinicalDataSystemSetRepository,
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
index abf3b9286..8de233a73 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingClinicalDataDto.cs
@@ -1,4 +1,5 @@
-using System;
+using IRaCIS.Core.Domain.Share.Reading;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -33,8 +34,93 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public bool IsVisit { get; set; }
}
+
+ ///
+ /// 获取访视列表
+ ///
+ public class GetReadingClinicalDataListIndto :PageInput
+ {
+ public Guid ObjectId { get; set; }
+ }
+
+
+ public class GetReadingClinicalDataListOutDto
+ {
+
+ public Guid Id { get; set; }
+
+
+ ///
+ /// 名称
+ ///
+ public string ClinicalDataSetName { get; set; }
+
+ ///
+ /// 临床级别
+ ///
+ public ClinicalLevel ClinicalDataLevel { get; set; }
+
+
+ ///
+ /// 上传方式
+ ///
+ public ClinicalUploadType ClinicalUploadType { get; set; }
+
+ ///
+ /// 临床级别名称
+ ///
+ public string ClinicalDataLevelName { get; set; }
+
+ ///
+ /// 上传方式名称
+ ///
+ public string ClinicalUploadTypeName { get; set; }
+
+ ///
+ /// 文件数量
+ ///
+ public int FileCount { get; set; } = 0;
+ }
+
+
+
public class GetTrialClinicalDataSelectIndto
{
- public int MyProperty { get; set; }
+ public Guid TrialId { get; set; }
}
+
+ public class GetTrialClinicalDataSelectOutDto
+ {
+
+ public Guid Id { get; set; }
+
+ ///
+ /// 名称
+ ///
+ public string ClinicalDataSetName { get; set; }
+
+ ///
+ /// 临床级别
+ ///
+ public ClinicalLevel ClinicalDataLevel { get; set; }
+
+
+ ///
+ /// 上传方式
+ ///
+ public ClinicalUploadType ClinicalUploadType { get; set; }
+
+ ///
+ /// 临床级别名称
+ ///
+ public string ClinicalDataLevelName { get; set; }
+
+ ///
+ /// 上传方式名称
+ ///
+ public string ClinicalUploadTypeName { get; set; }
+
+
+ }
+
}
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
index c0254a444..8d07e5e4b 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingClinicalDataService.cs
@@ -9,6 +9,9 @@ using IRaCIS.Core.Application.Auth;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Share.Reading;
using MassTransit;
+using System.ComponentModel.DataAnnotations;
+using System.Reflection;
+using IRaCIS.Core.Infra.EFCore.Common;
namespace IRaCIS.Application.Services
{
@@ -16,14 +19,17 @@ namespace IRaCIS.Application.Services
/// 阅片临床数据配置
///
[ApiExplorerSettings(GroupName = "Reading")]
- public class ClinicalDataSetService : BaseService
+ public class ReadingClinicalDataService : BaseService
{
private readonly IRepository _readingClinicalDataRepository;
+ private readonly IRepository _clinicalDataTrialSetRepository;
- public ClinicalDataSetService(IRepository readingClinicalDataRepository
+ public ReadingClinicalDataService(IRepository readingClinicalDataRepository,
+ IRepository clinicalDataTrialSetRepository
)
{
this._readingClinicalDataRepository = readingClinicalDataRepository;
+ this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
}
@@ -55,97 +61,51 @@ namespace IRaCIS.Application.Services
}
- //public async Task<> GetTrialClinicalDataSelect()
+ ///
+ /// 获取下拉菜单
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetTrialClinicalDataSelect(GetTrialClinicalDataSelectIndto inDto)
+ {
+ List clinicalList = await _clinicalDataTrialSetRepository.Select(x => new GetTrialClinicalDataSelectOutDto()
+ {
+ ClinicalDataLevel = x.ClinicalDataLevel,
+ ClinicalDataSetName = x.ClinicalDataSetName,
+ ClinicalUploadType = x.ClinicalUploadType,
+ ClinicalDataLevelName = x.ClinicalDataLevel.GetDisplayName(),
+ ClinicalUploadTypeName = x.ClinicalUploadType.GetDisplayName(),
+
+ Id = x.Id
+ }).ToListAsync() ;
- //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();
- //}
+ return clinicalList;
- /////
- ///// 获取项目的临床数据
- /////
- /////
- /////
- //[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();
+ ///
+ /// 获取阅片临床数据列表
+ ///
+ ///
+ ///
+ [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,
+ inDto.Asc);
- //}
+ result.CurrentPageData.ForEach(x => {
+ x.ClinicalDataLevelName = x.ClinicalDataLevel.GetDisplayName();
+ x.ClinicalUploadTypeName = x.ClinicalUploadType.GetDisplayName();
+ });
+
+ return result;
+ }
- /////
- ///// 将系统配置添加到项目配置
- /////
- /////
- /////
-
- //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/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
index fdc45c5f2..a59f0ea3b 100644
--- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs
@@ -20,10 +20,18 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.SiteCodes, u => u.MapFrom(s => s.ReadingPeriodSites.Select(x => x.TrialSite.TrialSiteCode)))
.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));
+
+
//.ForMember(d => d.SiteNames, u => u.MapFrom(s => s.ReadingPeriodSites.SelectMany(x => x.Site.SiteName).ToList()));
+ CreateMap().ReverseMap();
CreateMap().ReverseMap();
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
index 955927d5b..713344843 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
@@ -167,6 +167,7 @@ namespace IRaCIS.Core.Application
{
await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
{
+ IsCheck= true,
IsConfirm = true
});
}
@@ -175,6 +176,7 @@ namespace IRaCIS.Core.Application
{
await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
{
+ IsCheck = false,
IsConfirm = false
});
}
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index 7244a023c..81e10e9da 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -143,11 +144,13 @@ namespace IRaCIS.Core.Domain.Share.Reading
///
/// 表格
///
+ [Display(Name = "表格")]
Table = 0,
///
/// PDF
///
+ [Display(Name = "PDF")]
PDF = 1,
}
@@ -181,16 +184,19 @@ namespace IRaCIS.Core.Domain.Share.Reading
///
/// 受试者
///
+ [DisplayAttribute(Name ="受试者")]
Subject = 0,
///
/// 访视
///
+ [DisplayAttribute(Name = "访视")]
SubjectVisit = 1,
///
/// 阅片
///
+ [DisplayAttribute(Name = "阅片")]
Read = 2,
}
}
diff --git a/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs b/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs
index ecc4cccc3..414b45d64 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingClinicalData.cs
@@ -30,7 +30,7 @@ namespace IRaCIS.Core.Domain.Models
public Guid ClinicalDataTrialSetId { get; set; }
///
- /// 临床数据类型Id
+ /// 是否为访视
///
public bool IsVisit { get; set; }
@@ -44,8 +44,10 @@ namespace IRaCIS.Core.Domain.Models
///
public Guid CreateUserId { get; set; }
+ [ForeignKey("ClinicalDataTrialSetId")]
+
+ public ClinicalDataTrialSet ClinicalDataTrialSet { get; set; }
-
}
diff --git a/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs b/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs
index 10644a97f..b1c5c369e 100644
--- a/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs
+++ b/IRaCIS.Core.Infra.EFCore/Common/ReadingCommon.cs
@@ -3,7 +3,9 @@ using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Domain.Share.Reading;
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
using System.Linq;
+using System.Reflection;
using System.Text;
using System.Threading.Tasks;
@@ -37,5 +39,19 @@ namespace IRaCIS.Core.Infra.EFCore.Common
return ReadModuleEnum.ReadComplete;
}
}
+
+
+ ///
+ /// 获取DisplayName
+ ///
+ ///
+ ///
+ public static string GetDisplayName(this Enum enumName)
+ {
+ var type = enumName.GetType();//先获取这个枚举的类型
+ var field = type.GetField(enumName.ToString());//通过这个类型获取到值
+ var obj = (DisplayAttribute)field.GetCustomAttribute(typeof(DisplayAttribute));//得到特性
+ return obj.Name ?? "";
+ }
}
}