Uat_Study
he 2022-10-19 14:28:29 +08:00
parent 72935c89d8
commit 6bfbcd7d2c
5 changed files with 115 additions and 38 deletions

View File

@ -889,6 +889,16 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string TypeValue { get; set; }
/// <summary>
/// 问题类型
/// </summary>
public TableQuestionType? QuestionGenre { get; set; }
/// <summary>
/// 字典code
/// </summary>
public string DictionaryCode { get; set; } = string.Empty;
/// <summary>
/// 裁判类别
/// </summary>

View File

@ -41,6 +41,8 @@ namespace IRaCIS.Application.Services
QuestionName = x.QuestionName,
PageName = x.ReadingCriterionPage.PageName,
TypeValue = x.TypeValue,
QuestionGenre=x.QuestionGenre,
DictionaryCode=x.DictionaryCode,
JudgeType = x.JudgeType,
ReadingQuestionTrialId = x.Id
}).ToListAsync();

View File

@ -347,10 +347,6 @@ namespace IRaCIS.Core.Application.Contracts
/// </summary>
public int ImagePlatform { get; set; } = 1;
/// <summary>
/// 全局阅片
/// </summary>
public bool IsGlobalReading { get; set; }
/// <summary>
/// 系统标准ID
@ -419,7 +415,7 @@ namespace IRaCIS.Core.Application.Contracts
public bool? IsArbitrationReading { get; set; }
public List<Guid> GlobalAssessTypeIds { get; set; }
///// <summary>
@ -763,6 +759,33 @@ namespace IRaCIS.Core.Application.Contracts
}
public class GetGlobalReadingOutDto
{
public List<Guid> GlobalAssessTypeIds { get; set; }
/// <summary>
/// 全局阅片
/// </summary>
public bool IsGlobalReading { get; set; }
public bool IsSystemCriterion { get; set; }
}
public class SetGlobalReadingInfoInDto
{
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
public List<Guid> GlobalAssessTypeIds { get; set; }
/// <summary>
/// 全局阅片
/// </summary>
public bool IsGlobalReading { get; set; }
}
public class GetOncologySetInDto
{
public Guid TrialReadingCriterionId { get; set; }

View File

@ -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();

View File

@ -15,6 +15,11 @@ namespace IRaCIS.Core.Infra.EFCore.Common
public static class ReadingCommon
{
public const string GlobalAssess = "GlobalAssessType";
public const string OncologyAssess = "OncologyAssessType";
public static Dictionary<int, string> SplitLesionDic = new Dictionary<int, string>()
{
{1, "a" },