邮件发布
This commit is contained in:
@@ -243,12 +243,19 @@ namespace IRaCIS.Application.Services
|
||||
var syncClinicalDataTime = await _trialRepository.Where(x => x.Id == trialId).Select(x => x.SyncClinicalDataTime).FirstOrDefaultAsync();
|
||||
if (syncClinicalDataTime == null)
|
||||
{
|
||||
var systemClinicalDataList = await _clinicalDataSystemSetRepository.AsQueryable().ToListAsync();
|
||||
var systemClinicalDataList = await _clinicalDataSystemSetRepository.AsQueryable().Include(t=>t.SystemClinicalDataCriterionList).ToListAsync();
|
||||
var systemIds = systemClinicalDataList.Select(x => x.Id).ToList();
|
||||
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 trialSystemClinicalDataSetIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialId && x.SystemClinicalDataSetId != null).Select(x => x.SystemClinicalDataSetId.Value).ToListAsync();
|
||||
|
||||
var needAddids = systemIds.Except(trialSystemClinicalDataSetIds).ToList();
|
||||
|
||||
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();
|
||||
|
||||
|
||||
List<ClinicalDataTrialSet> dataSets = systemDataList.Select(x => new ClinicalDataTrialSet()
|
||||
{
|
||||
Id = NewId.NextGuid(),
|
||||
@@ -261,11 +268,22 @@ namespace IRaCIS.Application.Services
|
||||
Path = x.Path,
|
||||
TrialId = trialId,
|
||||
|
||||
|
||||
TrialClinicalDataCriterionList = readingCriterionList.Where(t => x.SystemClinicalDataCriterionList.Select(c => (Guid?)c.SystemReadingCriterionId).ToList().Contains(t.ReadingQuestionCriterionSystemId)).Select(c =>
|
||||
new TrialClinicalDataCriterion() { TrialReadingCriterionId = c.TrialReadingCriterionId }).ToList()
|
||||
}).ToList();
|
||||
|
||||
|
||||
dataSets.ForEach(x=>x.TrialClinicalDataCriterionList = systemClinicalDataList.Where(t=>t.Id==x.SystemClinicalDataSetId).Select(t => new TrialClinicalDataCriterion() { TrialReadingCriterionId =x.Id}).ToList());
|
||||
|
||||
#region 临床数据标准
|
||||
|
||||
|
||||
// dataSets.ForEach(x =>
|
||||
//x.TrialClinicalDataCriterionList = systemClinicalDataList.Where(t => t.Id == x.SystemClinicalDataSetId)
|
||||
// .Select(t => new TrialClinicalDataCriterion() { TrialReadingCriterionId = x.cl }).ToList()
|
||||
// );
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
await _clinicalDataTrialSetRepository.AddRangeAsync(dataSets);
|
||||
|
||||
|
||||
@@ -286,11 +286,13 @@ namespace IRaCIS.Application.Services
|
||||
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
|
||||
var criterionId = taskInfo.TrialReadingCriterionId;
|
||||
|
||||
//排除表格问题
|
||||
var questions = await _readingQuestionTrialRepository.Where(x => x.IsShowInDicom && x.ReadingQuestionCriterionTrialId == criterionId && x.Type != ReadingQestionType.Table)
|
||||
.ProjectTo<DicomReadingQuestionAnswer>(_mapper.ConfigurationProvider).OrderBy(x => x.ShowOrder).ToListAsync();
|
||||
|
||||
var answers = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToListAsync();
|
||||
|
||||
//排除表格问题 同时排除组问题
|
||||
var groups = questions.Where(x => x.Type != ReadingQestionType.Group).Select(x => x.GroupName).ToList();
|
||||
|
||||
var result = questions.Where(x => x.Type == ReadingQestionType.Group && groups.Contains(x.GroupName)).ToList();
|
||||
|
||||
Reference in New Issue
Block a user