This commit is contained in:
he
2022-06-09 17:33:46 +08:00
parent 93b06597fa
commit 2dec249cc4
9 changed files with 264 additions and 103 deletions
@@ -16,7 +16,7 @@ namespace IRaCIS.Application.Services
/// 临床数据配置
/// </summary>
[ApiExplorerSettings(GroupName = "Reading")]
public class ReadingClinicalDataService : BaseService
public class ClinicalDataSetService : BaseService
{
public IRepository<SubjectVisit> _subjectVisitRepository;
@@ -25,7 +25,7 @@ namespace IRaCIS.Application.Services
private readonly IRepository<ClinicalDataSystemSet> _clinicalDataSystemSetRepository;
private readonly IRepository<PreviousPDF> _previousPDFRepository;
public ReadingClinicalDataService(IRepository<SubjectVisit> subjectVisitRepository,
public ClinicalDataSetService(IRepository<SubjectVisit> subjectVisitRepository,
IRepository<ClinicalDataTrialSet> ClinicalDataTrialSetRepository,
IRepository<ClinicalDataSystemSet> ClinicalDataSystemSetRepository,
@@ -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; }
}
/// <summary>
/// 获取访视列表
/// </summary>
public class GetReadingClinicalDataListIndto :PageInput
{
public Guid ObjectId { get; set; }
}
public class GetReadingClinicalDataListOutDto
{
public Guid Id { get; set; }
/// <summary>
/// 名称
/// </summary>
public string ClinicalDataSetName { get; set; }
/// <summary>
/// 临床级别
/// </summary>
public ClinicalLevel ClinicalDataLevel { get; set; }
/// <summary>
/// 上传方式
/// </summary>
public ClinicalUploadType ClinicalUploadType { get; set; }
/// <summary>
/// 临床级别名称
/// </summary>
public string ClinicalDataLevelName { get; set; }
/// <summary>
/// 上传方式名称
/// </summary>
public string ClinicalUploadTypeName { get; set; }
/// <summary>
/// 文件数量
/// </summary>
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; }
/// <summary>
/// 名称
/// </summary>
public string ClinicalDataSetName { get; set; }
/// <summary>
/// 临床级别
/// </summary>
public ClinicalLevel ClinicalDataLevel { get; set; }
/// <summary>
/// 上传方式
/// </summary>
public ClinicalUploadType ClinicalUploadType { get; set; }
/// <summary>
/// 临床级别名称
/// </summary>
public string ClinicalDataLevelName { get; set; }
/// <summary>
/// 上传方式名称
/// </summary>
public string ClinicalUploadTypeName { get; set; }
}
}
@@ -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
/// 阅片临床数据配置
/// </summary>
[ApiExplorerSettings(GroupName = "Reading")]
public class ClinicalDataSetService : BaseService
public class ReadingClinicalDataService : BaseService
{
private readonly IRepository<ReadingClinicalData> _readingClinicalDataRepository;
private readonly IRepository<ClinicalDataTrialSet> _clinicalDataTrialSetRepository;
public ClinicalDataSetService(IRepository<ReadingClinicalData> readingClinicalDataRepository
public ReadingClinicalDataService(IRepository<ReadingClinicalData> readingClinicalDataRepository,
IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository
)
{
this._readingClinicalDataRepository = readingClinicalDataRepository;
this._clinicalDataTrialSetRepository = clinicalDataTrialSetRepository;
}
@@ -55,97 +61,51 @@ namespace IRaCIS.Application.Services
}
//public async Task<> GetTrialClinicalDataSelect()
/// <summary>
/// 获取下拉菜单
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
[HttpPost]
public async Task<List<GetTrialClinicalDataSelectOutDto>> GetTrialClinicalDataSelect(GetTrialClinicalDataSelectIndto inDto)
{
List<GetTrialClinicalDataSelectOutDto> 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<List<>> GetTrialClinicalData()
///// <summary>
///// 获取系统临床数据(系统)
///// </summary>
///// <returns></returns>
//[HttpPost]
//public async Task<List<ClinicalDataSystemSetView>> 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<ClinicalDataSystemSetView>(_mapper.ConfigurationProvider).ToListAsync();
//}
return clinicalList;
///// <summary>
///// 获取项目的临床数据
///// </summary>
///// <param name="inDto"></param>
///// <returns></returns>
//[HttpPost]
//public async Task<List<ClinicalDataTrialSetView>> 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<ClinicalDataTrialSetView>(_mapper.ConfigurationProvider).ToListAsync();
/// <summary>
/// 获取阅片临床数据列表
/// </summary>
/// <param name="indto"></param>
/// <returns></returns>
[HttpPost]
public async Task<PageOutput<GetReadingClinicalDataListOutDto>> GetReadingClinicalDataList(GetReadingClinicalDataListIndto inDto)
{
var result = await _readingClinicalDataRepository.Where(x => x.ObjectId == inDto.ObjectId).ProjectTo<GetReadingClinicalDataListOutDto>(_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;
}
///// <summary>
///// 将系统配置添加到项目配置
///// </summary>
///// <param name="trialId"></param>
///// <returns></returns>
//private async Task<IResponseOutput> 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<ClinicalDataTrialSet> 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);
//}
///// <summary>
///// 删除(项目)
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//[HttpDelete("{id:guid}")]
//public async Task<IResponseOutput> DeleteClinicalTrialSetData(Guid id)
//{
// await _clinicalDataTrialSetRepository.DeleteFromQueryAsync(x=>x.Id== id,true);
// return ResponseOutput.Result(true);
//}
///// <summary>
///// 删除(系统)
///// </summary>
///// <param name="id"></param>
///// <returns></returns>
//[HttpDelete("{id:guid}")]
//public async Task<IResponseOutput> DeleteClinicalSystemSetData(Guid id)
//{
// await _clinicalDataSystemSetRepository.DeleteFromQueryAsync(x => x.Id == id, true);
// return ResponseOutput.Result(true);
//}
}
}
@@ -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<ReadingClinicalData, GetReadingClinicalDataListOutDto>()
.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<ReadingClinicalData, AddOrUpdateReadingClinicalDataDto>().ReverseMap();
CreateMap<ClinicalDataTrialSet, ClinicalDataTrialSetAddOrEdit>().ReverseMap();