代码修改
parent
473dafbb58
commit
5dab6ef30b
|
@ -263,6 +263,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public LesionType? LesionType { get; set; }
|
public LesionType? LesionType { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 序号标记
|
||||||
|
/// </summary>
|
||||||
|
public string OrderMark { get; set; } = string.Empty;
|
||||||
|
|
||||||
public QuestionType? QuestionType { get; set; }
|
public QuestionType? QuestionType { get; set; }
|
||||||
|
|
||||||
public List<TableRowInfo> TableRowInfoList = new List<TableRowInfo>();
|
public List<TableRowInfo> TableRowInfoList = new List<TableRowInfo>();
|
||||||
|
|
|
@ -122,6 +122,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
LesionType = x.LesionType,
|
LesionType = x.LesionType,
|
||||||
QuestionId = x.Id,
|
QuestionId = x.Id,
|
||||||
QuesionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us),
|
QuesionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us),
|
||||||
|
OrderMark=x.OrderMark,
|
||||||
QuestionType = x.QuestionType,
|
QuestionType = x.QuestionType,
|
||||||
ValueType = x.ValueType,
|
ValueType = x.ValueType,
|
||||||
}).ToListAsync();
|
}).ToListAsync();
|
||||||
|
|
|
@ -505,6 +505,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
|
|
||||||
// 影像学整体肿瘤评估
|
// 影像学整体肿瘤评估
|
||||||
new ReadingCalculateData (){QuestionType=QuestionType.ImgOncology,GetStringFun=GetImgOncology},
|
new ReadingCalculateData (){QuestionType=QuestionType.ImgOncology,GetStringFun=GetImgOncology},
|
||||||
|
|
||||||
|
|
||||||
|
//SUVmax
|
||||||
|
new ReadingCalculateData (){QuestionType=QuestionType.SUVmax,GetDecimalFun=GetSuvMax},
|
||||||
|
|
||||||
|
// SUVmax所在病灶
|
||||||
|
new ReadingCalculateData (){QuestionType=QuestionType.SUVmaxLesion,GetStringFun=GetSuvMaxFocus},
|
||||||
////靶病灶径线之和(SOD)
|
////靶病灶径线之和(SOD)
|
||||||
//new ReadingCalculateData (){QuestionType=QuestionType.SOD,GetDecimalNullFun=GetSODData},
|
//new ReadingCalculateData (){QuestionType=QuestionType.SOD,GetDecimalNullFun=GetSODData},
|
||||||
|
|
||||||
|
@ -549,38 +556,38 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
};
|
};
|
||||||
|
|
||||||
// 没有靶病灶只计算最后几个
|
// 没有靶病灶只计算最后几个
|
||||||
if (inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).Sum(x => x.TableRowInfoList.Count()) == 0)
|
//if (inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).Sum(x => x.TableRowInfoList.Count()) == 0)
|
||||||
{
|
//{
|
||||||
|
|
||||||
List<QuestionType> questionTypes = new List<QuestionType>()
|
// List<QuestionType> questionTypes = new List<QuestionType>()
|
||||||
{
|
// {
|
||||||
QuestionType.TargetLesion,
|
// QuestionType.TargetLesion,
|
||||||
QuestionType.NoTargetLesion,
|
// QuestionType.NoTargetLesion,
|
||||||
QuestionType.NewLesions,
|
// QuestionType.NewLesions,
|
||||||
QuestionType.Tumor,
|
// QuestionType.Tumor,
|
||||||
QuestionType.ExistDisease,
|
// QuestionType.ExistDisease,
|
||||||
};
|
// };
|
||||||
|
|
||||||
// 没有靶病灶就删除其他几个答案的值
|
// // 没有靶病灶就删除其他几个答案的值
|
||||||
var isNeedDeleteTypes = calculateList.Where(x => !questionTypes.Contains(x.QuestionType)).Select(x => x.QuestionType).ToList();
|
// var isNeedDeleteTypes = calculateList.Where(x => !questionTypes.Contains(x.QuestionType)).Select(x => x.QuestionType).ToList();
|
||||||
|
|
||||||
|
|
||||||
var isNeedDeleteIds = inDto.QuestionInfo.Where(x => x.QuestionType != null && isNeedDeleteTypes.Contains(x.QuestionType.Value)).Select(x => x.QuestionId).ToList();
|
// var isNeedDeleteIds = inDto.QuestionInfo.Where(x => x.QuestionType != null && isNeedDeleteTypes.Contains(x.QuestionType.Value)).Select(x => x.QuestionId).ToList();
|
||||||
|
|
||||||
await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && isNeedDeleteIds.Contains(x.ReadingQuestionTrialId), x => new ReadingTaskQuestionAnswer
|
// await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && isNeedDeleteIds.Contains(x.ReadingQuestionTrialId), x => new ReadingTaskQuestionAnswer
|
||||||
{
|
// {
|
||||||
Answer = string.Empty
|
// Answer = string.Empty
|
||||||
});
|
// });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
calculateList = calculateList.Where(x => questionTypes.Contains(x.QuestionType)).ToList();
|
// calculateList = calculateList.Where(x => questionTypes.Contains(x.QuestionType)).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (calculateType != null)
|
if (calculateType != null)
|
||||||
{
|
{
|
||||||
|
@ -1952,6 +1959,57 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region SuvMax所在病灶
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SuvMax所在病灶
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<string> GetSuvMaxFocus(ReadingCalculateDto inDto)
|
||||||
|
{
|
||||||
|
var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var tableQuestions = rowInfo.SelectMany(x => x.TableQuestionList).ToList();
|
||||||
|
|
||||||
|
var maxSuv = tableQuestions.Where(x => x.QuestionMark == QuestionMark.SUVmax).Select(x =>new {
|
||||||
|
x.RowIndex,
|
||||||
|
Answer= x.Answer.IsNullOrEmptyReturn0(),
|
||||||
|
|
||||||
|
|
||||||
|
}).OrderByDescending(x=>x.Answer).FirstOrDefault();
|
||||||
|
if (maxSuv == null)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var orderMark = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).FirstOrDefault().OrderMark;
|
||||||
|
return orderMark+ maxSuv.RowIndex.GetLesionMark();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SuvMax
|
||||||
|
/// <summary>
|
||||||
|
/// 最大sum
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inDto"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<decimal> GetSuvMax(ReadingCalculateDto inDto)
|
||||||
|
{
|
||||||
|
var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
|
||||||
|
var tableQuestions = rowInfo.SelectMany(x => x.TableQuestionList).ToList();
|
||||||
|
|
||||||
|
var maxSuv = tableQuestions.Where(x => x.QuestionMark == QuestionMark.SUVmax).Select(x => x.Answer.IsNullOrEmptyReturn0()).MaxOrDefault();
|
||||||
|
return maxSuv;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region 影像学整体肿瘤评估
|
#region 影像学整体肿瘤评估
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 影像学整体肿瘤评估
|
/// 影像学整体肿瘤评估
|
||||||
|
|
Loading…
Reference in New Issue