修改临床数据配置
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using IRaCIS.Core.Application.Service.Reading.Dto;
|
||||
using MassTransit;
|
||||
using IRaCIS.Core.Domain.Models;
|
||||
|
||||
namespace IRaCIS.Application.Services
|
||||
{
|
||||
@@ -130,22 +131,22 @@ namespace IRaCIS.Application.Services
|
||||
return ResponseOutput.NotOk("存在同类型的临床数据,操作失败");
|
||||
}
|
||||
|
||||
indto.CriterionEnumListStr = $"|{String.Join('|', indto.CriterionEnumList)}|";
|
||||
//indto.CriterionEnumListStr = $"|{String.Join('|', indto.CriterionEnumList)}|";
|
||||
|
||||
var entity = await _clinicalDataTrialSetRepository.InsertOrUpdateAsync(indto, true);
|
||||
|
||||
//entity.TrialClinicalDataCriterionList = indto.TrialCriterionIdList.Select(t => new TrialClinicalDataCriterion()
|
||||
//{
|
||||
// TrialClinicalDataSetId = entity.Id,
|
||||
// TrialReadingCriterionId = t
|
||||
//}).ToList();
|
||||
entity.TrialClinicalDataSetCriteriaList = indto.TrialCriterionIdList.Select(t => new TrialClinicalDataSetCriterion()
|
||||
{
|
||||
TrialClinicalDataSetId = entity.Id,
|
||||
TrialReadingCriterionId = t
|
||||
}).ToList();
|
||||
|
||||
//if (indto.Id != null)
|
||||
//{
|
||||
// await _trialClinicalDataCriterionRepository.BatchDeleteNoTrackingAsync(t => t.TrialClinicalDataSetId == entity.Id);
|
||||
if (indto.Id != null)
|
||||
{
|
||||
await _repository.BatchDeleteAsync<TrialClinicalDataSetCriterion>(t => t.TrialClinicalDataSetId == entity.Id);
|
||||
|
||||
// await _trialClinicalDataCriterionRepository.AddRangeAsync(entity.TrialClinicalDataCriterionList);
|
||||
//}
|
||||
await _repository.AddRangeAsync<TrialClinicalDataSetCriterion>(entity.TrialClinicalDataSetCriteriaList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -248,10 +249,10 @@ namespace IRaCIS.Application.Services
|
||||
|
||||
#region MyRegion
|
||||
|
||||
|
||||
//不存在的时候,就将系统数据同步到项目临床数据配置
|
||||
if (!await _clinicalDataTrialSetRepository.AnyAsync(x => x.TrialId == trialId && x.SystemClinicalDataSetId != null))
|
||||
{
|
||||
var systemClinicalDataList = await _clinicalDataSystemSetRepository.AsQueryable()/*.Include(t => t.SystemClinicalDataCriterionList)*/.ToListAsync();
|
||||
var systemClinicalDataList = await _clinicalDataSystemSetRepository.AsQueryable().ToListAsync();
|
||||
var systemIds = systemClinicalDataList.Select(x => x.Id).ToList();
|
||||
|
||||
var trialSystemClinicalDataSetIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialId && x.SystemClinicalDataSetId != null).Select(x => x.SystemClinicalDataSetId.Value).ToListAsync();
|
||||
@@ -261,7 +262,7 @@ namespace IRaCIS.Application.Services
|
||||
var systemDataList = systemClinicalDataList.Where(x => needAddids.Contains(x.Id)).ToList();
|
||||
|
||||
var readingCriterionList = _repository.Where<ReadingQuestionCriterionTrial>(t => t.TrialId == trialId).Where(t => t.ReadingQuestionCriterionSystemId != null)
|
||||
.Select(t => new { t.ReadingQuestionCriterionSystemId, TrialReadingCriterionId = t.Id }).ToList();
|
||||
.Select(t => new { t.ReadingQuestionCriterionSystemId, TrialReadingCriterionId = t.Id ,t.CriterionType}).ToList();
|
||||
|
||||
|
||||
List<ClinicalDataTrialSet> dataSets = systemDataList.Select(x => new ClinicalDataTrialSet()
|
||||
@@ -276,10 +277,11 @@ namespace IRaCIS.Application.Services
|
||||
Path = x.Path,
|
||||
TrialId = trialId,
|
||||
|
||||
CriterionEnumListStr=x.CriterionEnumListStr
|
||||
//项目不采用 标准枚举字符串的方式
|
||||
//CriterionEnumListStr=x.CriterionEnumListStr
|
||||
|
||||
//TrialClinicalDataCriterionList = readingCriterionList.Where(t => x.SystemClinicalDataCriterionList.Select(c => (Guid?)c.SystemReadingCriterionId).ToList().Contains(t.ReadingQuestionCriterionSystemId)).Select(c =>
|
||||
//new TrialClinicalDataCriterion() { TrialReadingCriterionId = c.TrialReadingCriterionId }).ToList()
|
||||
TrialClinicalDataSetCriteriaList = readingCriterionList.Where(t => x.CriterionEnumList.Contains( (int )t.CriterionType)).Select(c =>
|
||||
new TrialClinicalDataSetCriterion() { TrialReadingCriterionId = c.TrialReadingCriterionId }).ToList()
|
||||
}).ToList();
|
||||
|
||||
|
||||
|
||||
@@ -669,14 +669,14 @@ namespace IRaCIS.Application.Services
|
||||
public async Task<List<GetReadingClinicalDataListOutDto>> GetReadingClinicalList(GetReadingClinicalDataListIndto inDto)
|
||||
{
|
||||
|
||||
var criterionType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => x.CriterionType).FirstNotNullAsync();
|
||||
//var criterionType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => x.CriterionType).FirstNotNullAsync();
|
||||
|
||||
|
||||
var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId)
|
||||
.Where(x => x.ReadingId == inDto.ReadingId || (x.SubjectId == inDto.SubjectId && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject))
|
||||
//.WhereIf(inDto.UploadRole == UploadRole.CRC, x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
|
||||
|
||||
.Where(x => x.ClinicalDataTrialSet.CriterionEnumListStr.Contains($"|{((int)criterionType).ToString()}|"))
|
||||
.Where(x => x.ClinicalDataTrialSet.TrialClinicalDataSetCriteriaList.Any(t=>t.TrialReadingCriterionId==inDto.TrialReadingCriterionId))
|
||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||
{
|
||||
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
||||
|
||||
@@ -61,11 +61,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||
public string Path { get; set; }
|
||||
|
||||
|
||||
//public List<Guid> TrialCriterionIdList { get; set; }
|
||||
public List<Guid> TrialCriterionIdList { get; set; }
|
||||
|
||||
public string CriterionEnumListStr { get; set; } = String.Empty;
|
||||
//public string CriterionEnumListStr { get; set; } = String.Empty;
|
||||
|
||||
public List<int> CriterionEnumList { get; set; }
|
||||
//public List<int> CriterionEnumList { get; set; }
|
||||
}
|
||||
|
||||
public class ClinicalDataSystemSetAddOrEdit
|
||||
@@ -129,8 +129,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||
|
||||
public class ClinicalDataTrialSetView: ClinicalDataTrialSetAddOrEdit
|
||||
{
|
||||
//public List<string> TrialCriterionNameList { get; set; }
|
||||
|
||||
public List<string> TrialCriterionNameList { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
|
||||
@@ -57,8 +57,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
CreateMap<ClinicalDataSystemSet, ClinicalDataSystemSetAddOrEdit>().ReverseMap();
|
||||
|
||||
CreateMap<ClinicalDataTrialSet, ClinicalDataTrialSetView>()
|
||||
//.ForMember(t => t.TrialCriterionNameList, u => u.MapFrom(c => c.TrialClinicalDataCriterionList.Select(t => t.TrialReadingCriterion.CriterionName)))
|
||||
//.ForMember(t => t.TrialCriterionIdList, u => u.MapFrom(c => c.TrialClinicalDataCriterionList.Select(t => t.TrialReadingCriterion.Id)))
|
||||
.ForMember(t => t.TrialCriterionNameList, u => u.MapFrom(c => c.TrialClinicalDataSetCriteriaList.Select(t => t.TrialReadingCriterion.CriterionName)))
|
||||
.ForMember(t => t.TrialCriterionIdList, u => u.MapFrom(c => c.TrialClinicalDataSetCriteriaList.Select(t => t.TrialReadingCriterion.Id)))
|
||||
.ForMember(d => d.IsUsed, u => u.MapFrom(s => s.ReadingClinicalDataList.Count()>0));
|
||||
|
||||
CreateMap<ClinicalDataSystemSet, ClinicalDataSystemSetView>();
|
||||
|
||||
Reference in New Issue
Block a user