IRC_NewDev
he 2024-03-26 15:53:28 +08:00
parent 6d93054d3d
commit 7a8346621d
2 changed files with 25 additions and 15 deletions

View File

@ -8332,6 +8332,11 @@
排序 排序
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionCriterionTrialView.CriterionType">
<summary>
标准类型
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionCriterionTrialView.IsSystemData"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.ReadingQuestionCriterionTrialView.IsSystemData">
<summary> <summary>
是否是系统数据 是否是系统数据

View File

@ -5,6 +5,9 @@ using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure; using IRaCIS.Core.Infrastructure;
using System.Linq;
using System.Linq.Expressions;
using System;
namespace IRaCIS.Application.Services namespace IRaCIS.Application.Services
{ {
@ -274,20 +277,24 @@ namespace IRaCIS.Application.Services
public async Task<List<ClinicalDataTrialSetView>> GetTrialClinicalDataTrialSetList(GetTrialClinicalDataTrialIndto inDto) public async Task<List<ClinicalDataTrialSetView>> GetTrialClinicalDataTrialSetList(GetTrialClinicalDataTrialIndto inDto)
{ {
await this.AddTrialClinicalDataTrialSet(inDto.TrialId); await this.AddTrialClinicalDataTrialSet(inDto.TrialId);
List<int> criterionTypes = new List<int>(); List<string> criterionTypes = new List<string>();
var query = _clinicalDataTrialSetRepository.AsQueryable() Expression<Func<ClinicalDataTrialSet, bool>> predicate = null;
.Where(x => x.TrialId == inDto.TrialId);
if (inDto.CriterionIds != null) if (inDto.CriterionIds != null)
{ {
criterionTypes =( await _iReadingQuestionCriterionTrialRepository.Where(x => inDto.CriterionIds.Contains(x.Id)).Select(x => x.CriterionType).ToListAsync()) criterionTypes =( await _iReadingQuestionCriterionTrialRepository.Where(x => inDto.CriterionIds.Contains(x.Id)).Select(x => x.CriterionType).ToListAsync())
.Select(x=>(int)x).ToList(); .Select(x=>((int)x).ToString()).ToList();
predicate = x => x.IsConfirm || x.SystemClinicalDataSetId == null;
foreach (var item in criterionTypes)
{
Expression<Func<ClinicalDataTrialSet, bool>> typeExpression = x => x.CriterionEnumListStr.Contains(item);
predicate = predicate.Or(typeExpression);
}
} }
var trialClinicalDataList = await _clinicalDataTrialSetRepository.AsQueryable() var trialClinicalDataList = await _clinicalDataTrialSetRepository.AsQueryable()
.Where(x => x.TrialId == inDto.TrialId) .Where(x => x.TrialId == inDto.TrialId)
.WhereIf(inDto.CriterionIds != null,x=>x.IsConfirm||x.SystemClinicalDataSetId==null|| criterionTypes.Any(d => x.CriterionEnumList.Contains(d))) .WhereIf(inDto.CriterionIds != null, predicate)
.WhereIf(inDto.ClinicalDataLevel != null, x => x.ClinicalDataLevel == inDto.ClinicalDataLevel) .WhereIf(inDto.ClinicalDataLevel != null, x => x.ClinicalDataLevel == inDto.ClinicalDataLevel)
.WhereIf(inDto.ClinicalUploadType != null, x => x.ClinicalUploadType == inDto.ClinicalUploadType) .WhereIf(inDto.ClinicalUploadType != null, x => x.ClinicalUploadType == inDto.ClinicalUploadType)
.WhereIf(inDto.ClinicalDataSetName != String.Empty, x => x.ClinicalDataSetName.Contains(inDto.ClinicalDataSetName)) .WhereIf(inDto.ClinicalDataSetName != String.Empty, x => x.ClinicalDataSetName.Contains(inDto.ClinicalDataSetName))
@ -296,14 +303,12 @@ namespace IRaCIS.Application.Services
} }
/// <summary>
/// 删除(项目)
/// <summary> /// </summary>
/// 删除(项目) /// <param name="id"></param>
/// </summary> /// <returns></returns>
/// <param name="id"></param> [HttpDelete("{id:guid}")]
/// <returns></returns>
[HttpDelete("{id:guid}")]
public async Task<IResponseOutput> DeleteClinicalTrialSetData(Guid id) public async Task<IResponseOutput> DeleteClinicalTrialSetData(Guid id)
{ {
await _clinicalDataTrialSetRepository.DeleteFromQueryAsync(x => x.Id == id, true); await _clinicalDataTrialSetRepository.DeleteFromQueryAsync(x => x.Id == id, true);