|
|
|
@@ -138,10 +138,57 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync();
|
|
|
|
|
if ((!await _readingCriterionDictionaryRepository.AnyAsync(x=>x.CriterionId == trialCriterion.Id && x.ParentCode == "GlobalAssessType"))&& trialCriterion.ReadingQuestionCriterionSystemId!=null)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GetTrialReadingInfoOutDto trialInfo= await _readingQuestionCriterionTrialRepository.Where(x=>x.Id==inDto.TrialReadingCriterionId).ProjectTo<GetTrialReadingInfoOutDto>(_mapper.ConfigurationProvider).FirstNotNullAsync();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return trialInfo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 修改全局阅片配置信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="inDto"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public async Task<IResponseOutput> SetGlobalReadingInfo(SetGlobalReadingInfoInDto inDto)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
await _readingQuestionCriterionTrialRepository.UpdatePartialFromQueryAsync(inDto.TrialReadingCriterionId, x => new ReadingQuestionCriterionTrial()
|
|
|
|
|
{
|
|
|
|
|
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id&&x.ParentCode== "GlobalAssessType");
|
|
|
|
|
var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value&&x.ParentCode== "GlobalAssessType").
|
|
|
|
|
IsGlobalReading = inDto.IsGlobalReading
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.GlobalAssess);
|
|
|
|
|
await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.GlobalAssessTypeIds.Select(x => new ReadingCriterionDictionary
|
|
|
|
|
{
|
|
|
|
|
CriterionId = inDto.TrialReadingCriterionId,
|
|
|
|
|
DictionaryId = x,
|
|
|
|
|
IsSystemCriterion = false,
|
|
|
|
|
ParentCode = ReadingCommon.GlobalAssess
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
var result= await _readingCriterionDictionaryRepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
return ResponseOutput.Ok(result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取全局阅片信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="inDto"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public async Task<GetGlobalReadingOutDto> GetGlobalReadingInfo(GetOncologySetInDto inDto)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync();
|
|
|
|
|
|
|
|
|
|
if ((!await _readingCriterionDictionaryRepository.AnyAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == ReadingCommon.GlobalAssess)) && trialCriterion.ReadingQuestionCriterionSystemId != null)
|
|
|
|
|
{
|
|
|
|
|
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == ReadingCommon.GlobalAssess);
|
|
|
|
|
var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value && x.ParentCode == ReadingCommon.GlobalAssess).
|
|
|
|
|
Select(x => new ReadingCriterionDictionary()
|
|
|
|
|
{
|
|
|
|
|
CriterionId = trialCriterion.Id,
|
|
|
|
@@ -154,31 +201,30 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
await _readingCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList);
|
|
|
|
|
await _readingCriterionDictionaryRepository.SaveChangesAsync();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GetTrialReadingInfoOutDto trialInfo= await _readingQuestionCriterionTrialRepository.Where(x=>x.Id==inDto.TrialReadingCriterionId).ProjectTo<GetTrialReadingInfoOutDto>(_mapper.ConfigurationProvider).FirstNotNullAsync();
|
|
|
|
|
|
|
|
|
|
trialInfo.GlobalAssessTypeIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == "GlobalAssessType").Select(x => x.DictionaryId).ToListAsync();
|
|
|
|
|
|
|
|
|
|
return trialInfo;
|
|
|
|
|
GetGlobalReadingOutDto result = new GetGlobalReadingOutDto()
|
|
|
|
|
{
|
|
|
|
|
IsGlobalReading = trialCriterion.IsGlobalReading,
|
|
|
|
|
IsSystemCriterion= trialCriterion.ReadingQuestionCriterionSystemId!=null,
|
|
|
|
|
GlobalAssessTypeIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.GlobalAssess).Select(x => x.DictionaryId).ToListAsync(),
|
|
|
|
|
};
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取项目肿瘤学配置
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="inDto"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取项目肿瘤学配置
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="inDto"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[HttpPost]
|
|
|
|
|
public async Task<GetOncologySetOutDto> GetOncologySet(GetOncologySetInDto inDto)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstOrDefaultAsync();
|
|
|
|
|
var trialCriterion = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync();
|
|
|
|
|
|
|
|
|
|
if ((!await _readingCriterionDictionaryRepository.AnyAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == "OncologyAssessType")) && trialCriterion.ReadingQuestionCriterionSystemId != null)
|
|
|
|
|
if ((!await _readingCriterionDictionaryRepository.AnyAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == ReadingCommon.OncologyAssess)) && trialCriterion.ReadingQuestionCriterionSystemId != null)
|
|
|
|
|
{
|
|
|
|
|
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == "OncologyAssessType");
|
|
|
|
|
var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value && x.ParentCode == "OncologyAssessType").
|
|
|
|
|
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == trialCriterion.Id && x.ParentCode == ReadingCommon.OncologyAssess);
|
|
|
|
|
var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value && x.ParentCode == ReadingCommon.OncologyAssess).
|
|
|
|
|
Select(x => new ReadingCriterionDictionary()
|
|
|
|
|
{
|
|
|
|
|
CriterionId = trialCriterion.Id,
|
|
|
|
@@ -196,7 +242,7 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
return new GetOncologySetOutDto
|
|
|
|
|
{
|
|
|
|
|
EvaluationReason = trialCriterion.EvaluationReason.IsNullOrEmpty()? ReadingCommon.EvaluationReason : trialCriterion.EvaluationReason,
|
|
|
|
|
OncologyAssessIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == "OncologyAssessType").Select(x => x.DictionaryId).ToListAsync(),
|
|
|
|
|
OncologyAssessIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.OncologyAssess).Select(x => x.DictionaryId).ToListAsync(),
|
|
|
|
|
IsSystemCriterion= trialCriterion.ReadingQuestionCriterionSystemId!=null,
|
|
|
|
|
IsSign = trialCriterion.ReadingInfoSignTime != null,
|
|
|
|
|
};
|
|
|
|
@@ -220,14 +266,14 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == "OncologyAssess");
|
|
|
|
|
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.OncologyAssess);
|
|
|
|
|
|
|
|
|
|
await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.OncologyAssessIds.Select(x => new ReadingCriterionDictionary
|
|
|
|
|
{
|
|
|
|
|
CriterionId = inDto.TrialReadingCriterionId,
|
|
|
|
|
DictionaryId = x,
|
|
|
|
|
IsSystemCriterion = false,
|
|
|
|
|
ParentCode = "OncologyAssess"
|
|
|
|
|
ParentCode = ReadingCommon.OncologyAssess
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync();
|
|
|
|
@@ -353,9 +399,6 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
DigitPlaces = inDto.DigitPlaces,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await _readingCriterionDictionaryRepository.BatchDeleteNoTrackingAsync(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == "GlobalAssessType");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -400,13 +443,7 @@ namespace IRaCIS.Core.Application
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.GlobalAssessTypeIds.Select(x => new ReadingCriterionDictionary
|
|
|
|
|
{
|
|
|
|
|
CriterionId = inDto.TrialReadingCriterionId,
|
|
|
|
|
DictionaryId = x,
|
|
|
|
|
IsSystemCriterion = false,
|
|
|
|
|
ParentCode = "GlobalAssessType"
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|