修改稽查

This commit is contained in:
2023-05-24 15:43:56 +08:00
parent 957c85d641
commit 6468a6505b
8 changed files with 904 additions and 446 deletions
@@ -39,8 +39,8 @@ namespace IRaCIS.Core.Application
private readonly IOrganInfoService _iOrganInfoService;
private readonly IRepository<TaskAllocationRule> _taskAllocationRuleRepository;
private readonly IRepository<ReadingSystemCriterionDictionary> _readingCriterionDictionaryRepository;
private readonly IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository;
private readonly IReadingQuestionService iReadingQuestionService;
private readonly IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository;
private readonly IReadingQuestionService iReadingQuestionService;
private readonly IRepository<TrialCriterionAdditionalAssessmentType> _trialCriterionAdditionalAssessmentTypeRepository;
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswer;
@@ -62,8 +62,8 @@ namespace IRaCIS.Core.Application
IRepository<ReadingCriterionPage> readingCriterionPageRepository,
IRepository<TaskAllocationRule> taskAllocationRuleRepository,
IRepository<ReadingSystemCriterionDictionary> readingCriterionDictionaryRepository,
IRepository<ReadingTrialCriterionDictionary> readingTrialCriterionDictionaryRepository,
IReadingQuestionService iReadingQuestionService,
IRepository<ReadingTrialCriterionDictionary> readingTrialCriterionDictionaryRepository,
IReadingQuestionService iReadingQuestionService,
IEasyCachingProvider provider,
IOrganInfoService iOrganInfoService,
IRepository<TrialCriterionAdditionalAssessmentType> trialCriterionAdditionalAssessmentTypeRepository,
@@ -79,8 +79,8 @@ namespace IRaCIS.Core.Application
_trialRepository = trialRepository;
_taskAllocationRuleRepository = taskAllocationRuleRepository;
this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository;
this._readingTrialCriterionDictionaryRepository = readingTrialCriterionDictionaryRepository;
this.iReadingQuestionService = iReadingQuestionService;
this._readingTrialCriterionDictionaryRepository = readingTrialCriterionDictionaryRepository;
this.iReadingQuestionService = iReadingQuestionService;
this._trialQCQuestionRepository = trialQCQuestionRepository;
this._readingQuestionCriterionTrialRepository = readingQuestionCriterionTrialRepository;
this._readingQuestionTrialRepository = readingQuestionTrialRepository;
@@ -269,15 +269,16 @@ namespace IRaCIS.Core.Application
var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value)
.Select(x=>new ReadingTrialCriterionDictionary() {
.Select(x => new ReadingTrialCriterionDictionary()
{
CriterionId = inDto.TrialReadingCriterionId,
CrterionDictionaryGroup=x.CrterionDictionaryGroup,
IsBaseLineUse=x.IsBaseLineUse,
IsFollowVisitUse=x.IsFollowVisitUse,
DictionaryId=x.DictionaryId,
ParentCode=x.ParentCode,
})
CriterionId = inDto.TrialReadingCriterionId,
CrterionDictionaryGroup = x.CrterionDictionaryGroup,
IsBaseLineUse = x.IsBaseLineUse,
IsFollowVisitUse = x.IsFollowVisitUse,
DictionaryId = x.DictionaryId,
ParentCode = x.ParentCode,
})
.ToListAsync();
criterionDictionaryList.ForEach(x =>
@@ -287,7 +288,7 @@ namespace IRaCIS.Core.Application
});
await _readingTrialCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList);
await _readingTrialCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList);
await _trialCriterionDictionaryCode.AddRangeAsync(criterionDictionaryCodeList);
#endregion
@@ -624,7 +625,7 @@ namespace IRaCIS.Core.Application
if (inDto.TrialCriterionAdditionalAssessmentTypeList.All(t => t.IsSelected != true))
{
//---选择了附加评估,必须勾选附加评估类型
//---选择了附加评估,必须勾选附加评估类型
throw new BusinessValidationFailedException(_localizer["TrialConfig_AddEvalReq"]);
}
@@ -641,7 +642,7 @@ namespace IRaCIS.Core.Application
AdditionalAssessment additional = new AdditionalAssessment();
var addTypeList = additional.GetSystemDefeaultAdditionalAssessmentList(updateItem.CriterionType, updateItem.AdditionalAssessmentType);
if(!await _readingQuestionTrialRepository.AsQueryable().IgnoreQueryFilters().AnyAsync(t => t.ReadingQuestionCriterionTrialId == updateItem.TrialReadingCriterionId && t.IsAdditional==true))
if (!await _readingQuestionTrialRepository.AsQueryable().IgnoreQueryFilters().AnyAsync(t => t.ReadingQuestionCriterionTrialId == updateItem.TrialReadingCriterionId && t.IsAdditional == true))
{
foreach (var addType in addTypeList)
{
@@ -653,9 +654,9 @@ namespace IRaCIS.Core.Application
await _readingQuestionTrialRepository.AddAsync(question);
}
}
}
}
}
await _trialCriterionAdditionalAssessmentTypeRepository.UpdatePartialFromQueryAsync(updateItem.Id, t => new TrialCriterionAdditionalAssessmentType() { IsSelected = updateItem.IsSelected });
}
}
@@ -953,6 +954,47 @@ namespace IRaCIS.Core.Application
_mapper.Map(trialConfig, trialInfo);
//不管是否修改,一定要记录稽查
trialInfo.UpdateTime=DateTime.Now;
//// 修改临床数据
var clinicalDataTrialSetList = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId, true).ToListAsync();
foreach (var item in clinicalDataTrialSetList)
{
if(trialConfig.ClinicalDataTrialSetIds.Contains(item.Id))
{
item.IsConfirm = true;
}
else
{
item.IsConfirm = false;
}
}
//// 修改阅片标准
var readingQuestionCriterionTrialList = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId, true).ToListAsync();
foreach (var item in readingQuestionCriterionTrialList)
{
if (trialConfig.TrialCriterionIds.Contains(item.Id))
{
item.IsConfirm = true;
}
else
{
item.IsConfirm = false;
}
}
#region
#endregion
//if (trialInfo.IsGlobalReading && (trialInfo.IsArbitrationReading ?? false))
//{
// trialInfo.ArbitrationRule = ArbitrationRule.Reading;
@@ -962,40 +1004,40 @@ namespace IRaCIS.Core.Application
//{
// trialInfo.ArbitrationRule = ArbitrationRule.Visit;
//}
trialInfo.UpdateTime = DateTime.Now;
//trialInfo.UpdateTime = DateTime.Now;
// 修改临床数据
var noconfirmids = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId && !trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
foreach (var item in trialConfig.ClinicalDataTrialSetIds)
{
await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
{
//// 修改临床数据
//var noconfirmids = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == trialConfig.TrialId && !trialConfig.ClinicalDataTrialSetIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
//foreach (var item in trialConfig.ClinicalDataTrialSetIds)
//{
// await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
// {
IsConfirm = true
});
}
// IsConfirm = true
// });
//}
foreach (var item in noconfirmids)
{
await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
{
//foreach (var item in noconfirmids)
//{
// await _clinicalDataTrialSetRepository.UpdatePartialFromQueryAsync(item, x => new ClinicalDataTrialSet()
// {
IsConfirm = false
});
}
// IsConfirm = false
// });
//}
// 修改阅片标准
var cancelConfirmCriterionIds = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId && x.IsConfirm && !trialConfig.TrialCriterionIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
//// 修改阅片标准
//var cancelConfirmCriterionIds = await _readingQuestionCriterionTrialRepository.Where(x => x.TrialId == trialConfig.TrialId && x.IsConfirm && !trialConfig.TrialCriterionIds.Contains(x.Id)).Select(x => x.Id).ToListAsync();
await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => cancelConfirmCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
{
IsConfirm = false
});
//await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => cancelConfirmCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
//{
// IsConfirm = false
//});
await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => trialConfig.TrialCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
{
IsConfirm = true
}); ;
//await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(x => trialConfig.TrialCriterionIds.Contains(x.Id), x => new ReadingQuestionCriterionTrial()
//{
// IsConfirm = true
//}); ;
@@ -1159,11 +1201,11 @@ namespace IRaCIS.Core.Application
public async Task<TrialConfigDTO> GetTrialConfigInfo(Guid trialId)
{
return await _trialRepository.Where(t => t.Id == trialId).ProjectTo<TrialConfigDTO>(_mapper.ConfigurationProvider, new
{
isEn_Us = _userInfo.IsEn_Us
{
isEn_Us = _userInfo.IsEn_Us
})
.FirstOrDefaultAsync().IfNullThrowException();
})
.FirstOrDefaultAsync().IfNullThrowException();
}