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; } public string TypeValue { get; set; }
/// <summary>
/// 问题类型
/// </summary>
public TableQuestionType? QuestionGenre { get; set; }
/// <summary>
/// 字典code
/// </summary>
public string DictionaryCode { get; set; } = string.Empty;
/// <summary> /// <summary>
/// 裁判类别 /// 裁判类别
/// </summary> /// </summary>

View File

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

View File

@ -347,10 +347,6 @@ namespace IRaCIS.Core.Application.Contracts
/// </summary> /// </summary>
public int ImagePlatform { get; set; } = 1; public int ImagePlatform { get; set; } = 1;
/// <summary>
/// 全局阅片
/// </summary>
public bool IsGlobalReading { get; set; }
/// <summary> /// <summary>
/// 系统标准ID /// 系统标准ID
@ -419,7 +415,7 @@ namespace IRaCIS.Core.Application.Contracts
public bool? IsArbitrationReading { get; set; } public bool? IsArbitrationReading { get; set; }
public List<Guid> GlobalAssessTypeIds { get; set; }
///// <summary> ///// <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 class GetOncologySetInDto
{ {
public Guid TrialReadingCriterionId { get; set; } 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(); 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"); IsGlobalReading = inDto.IsGlobalReading
var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value&&x.ParentCode== "GlobalAssessType").
});
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() Select(x => new ReadingCriterionDictionary()
{ {
CriterionId = trialCriterion.Id, CriterionId = trialCriterion.Id,
@ -154,31 +201,30 @@ namespace IRaCIS.Core.Application
await _readingCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList); await _readingCriterionDictionaryRepository.AddRangeAsync(criterionDictionaryList);
await _readingCriterionDictionaryRepository.SaveChangesAsync(); await _readingCriterionDictionaryRepository.SaveChangesAsync();
} }
GetGlobalReadingOutDto result = new GetGlobalReadingOutDto()
{
GetTrialReadingInfoOutDto trialInfo= await _readingQuestionCriterionTrialRepository.Where(x=>x.Id==inDto.TrialReadingCriterionId).ProjectTo<GetTrialReadingInfoOutDto>(_mapper.ConfigurationProvider).FirstNotNullAsync(); IsGlobalReading = trialCriterion.IsGlobalReading,
IsSystemCriterion= trialCriterion.ReadingQuestionCriterionSystemId!=null,
trialInfo.GlobalAssessTypeIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == "GlobalAssessType").Select(x => x.DictionaryId).ToListAsync(); GlobalAssessTypeIds = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == inDto.TrialReadingCriterionId && x.ParentCode == ReadingCommon.GlobalAssess).Select(x => x.DictionaryId).ToListAsync(),
};
return trialInfo; return result;
} }
/// <summary>
/// <summary> /// 获取项目肿瘤学配置
/// 获取项目肿瘤学配置 /// </summary>
/// </summary> /// <param name="inDto"></param>
/// <param name="inDto"></param> /// <returns></returns>
/// <returns></returns>
[HttpPost] [HttpPost]
public async Task<GetOncologySetOutDto> GetOncologySet(GetOncologySetInDto inDto) 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"); 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 == "OncologyAssessType"). var criterionDictionaryList = await _readingCriterionDictionaryRepository.Where(x => x.CriterionId == trialCriterion.ReadingQuestionCriterionSystemId.Value && x.ParentCode == ReadingCommon.OncologyAssess).
Select(x => new ReadingCriterionDictionary() Select(x => new ReadingCriterionDictionary()
{ {
CriterionId = trialCriterion.Id, CriterionId = trialCriterion.Id,
@ -196,7 +242,7 @@ namespace IRaCIS.Core.Application
return new GetOncologySetOutDto return new GetOncologySetOutDto
{ {
EvaluationReason = trialCriterion.EvaluationReason.IsNullOrEmpty()? ReadingCommon.EvaluationReason : trialCriterion.EvaluationReason, 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, IsSystemCriterion= trialCriterion.ReadingQuestionCriterionSystemId!=null,
IsSign = trialCriterion.ReadingInfoSignTime != 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 await _readingCriterionDictionaryRepository.AddRangeAsync(inDto.OncologyAssessIds.Select(x => new ReadingCriterionDictionary
{ {
CriterionId = inDto.TrialReadingCriterionId, CriterionId = inDto.TrialReadingCriterionId,
DictionaryId = x, DictionaryId = x,
IsSystemCriterion = false, IsSystemCriterion = false,
ParentCode = "OncologyAssess" ParentCode = ReadingCommon.OncologyAssess
})); }));
var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync(); var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync();
@ -353,9 +399,6 @@ namespace IRaCIS.Core.Application
DigitPlaces = inDto.DigitPlaces, 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(); var result = await _readingQuestionCriterionTrialRepository.SaveChangesAsync();

View File

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