Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is running Details

IRC_NewDev
hang 2024-09-09 11:48:16 +08:00
commit 757ccc3eb6
3 changed files with 46 additions and 23 deletions

View File

@ -456,7 +456,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
List<ReadingCalculateData> calculateList = new List<ReadingCalculateData>() List<ReadingCalculateData> calculateList = new List<ReadingCalculateData>()
{ {
// EEM求和 // EEM求和
new ReadingCalculateData (){QuestionType=QuestionType.EEMSun,GetDecimalNullFun=GetEEM}, new ReadingCalculateData (){QuestionType=QuestionType.EEMSum,GetDecimalNullFun=GetEEM},
// (EEM-Lumen)求和 // (EEM-Lumen)求和
new ReadingCalculateData (){QuestionType=QuestionType.EEMLumenSum,GetDecimalNullFun=GetEEMLumenSum}, new ReadingCalculateData (){QuestionType=QuestionType.EEMLumenSum,GetDecimalNullFun=GetEEMLumenSum},
@ -586,7 +586,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
public async Task<decimal?> GetEEM(ReadingCalculateDto inDto) public async Task<decimal?> GetEEM(ReadingCalculateDto inDto)
{ {
return inDto.QuestionInfo.Where(x => x.LesionType == LesionType.MatchValues).SelectMany(x => x.TableRowInfoList).SelectMany(x => x.TableQuestionList) return inDto.QuestionInfo.Where(x => x.LesionType == LesionType.MatchValues).SelectMany(x => x.TableRowInfoList).SelectMany(x => x.TableQuestionList)
.Where(x => x.QuestionMark == QuestionMark.ElasticAreaDiffValue).Select(x => x.Answer.IsNullOrEmptyReturn0()).Sum(); .Where(x => x.QuestionMark == QuestionMark.ElasticArea).Select(x => x.Answer.IsNullOrEmptyReturn0()).Sum();
} }
@ -597,14 +597,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
/// <returns></returns> /// <returns></returns>
public async Task<decimal?> GetEEMLumenSum(ReadingCalculateDto inDto) public async Task<decimal?> GetEEMLumenSum(ReadingCalculateDto inDto)
{ {
var eMM= await GetEEM(inDto); return inDto.QuestionInfo.Where(x => x.LesionType == LesionType.MatchValues).SelectMany(x => x.TableRowInfoList).SelectMany(x => x.TableQuestionList)
var lumenAreaSum = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.MatchValues).SelectMany(x => x.TableRowInfoList).SelectMany(x => x.TableQuestionList) .Where(x => x.QuestionMark == QuestionMark.ElasticAreaDiffValue).Select(x => x.Answer.IsNullOrEmptyReturn0()).Sum();
.Where(x => x.QuestionMark == QuestionMark.LumenArea).Select(x => x.Answer.IsNullOrEmptyReturn0()).Sum();
if (eMM == 0 || lumenAreaSum == 0)
{
return null;
}
return eMM / lumenAreaSum;
} }
@ -630,18 +624,23 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
/// <summary> /// <summary>
/// 冠状动脉粥样硬化体积百分比PAV /// 冠状动脉粥样硬化体积百分比PAV
/// </summary> /// </summary>
/// <remarks>
/// EEM-Lumen求和/EEM求和✖100单位%
/// </remarks>
/// <param name="inDto"></param> /// <param name="inDto"></param>
/// <returns></returns> /// <returns></returns>
public async Task<decimal?> GetPAV(ReadingCalculateDto inDto) public async Task<decimal?> GetPAV(ReadingCalculateDto inDto)
{ {
var result =await GetEEMLumenSum(inDto); var eEMLumenSum = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.EEMLumenSum).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
if (result == null) var eEMSum = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.EEMSum).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
if (eEMSum == 0)
{ {
return null; return null;
} }
else else
{ {
return result.Value * 200; return eEMLumenSum/ eEMSum * 100+100;
} }
} }
@ -653,6 +652,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
public async Task<decimal?> GetNTAV(ReadingCalculateDto inDto) public async Task<decimal?> GetNTAV(ReadingCalculateDto inDto)
{ {
var result = await GetNTAVEEMLumenSumOrRetraceImageCount(inDto); var result = await GetNTAVEEMLumenSumOrRetraceImageCount(inDto);
var medianFrame= inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.MedianFrame).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0(); var medianFrame= inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.MedianFrame).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
if (result == null|| medianFrame==0) if (result == null|| medianFrame==0)
{ {

View File

@ -634,15 +634,38 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
} }
///// <summary> /// <summary>
///// 计算NTAV的EEM /// 匹配动脉段最小FCT
///// </summary> /// </summary>
///// <param name="inDto"></param> /// <param name="inDto"></param>
///// <returns></returns> /// <returns></returns>
//public async Task<decimal> GetEEM(ReadingCalculateDto inDto) public async Task<decimal?> GetAllMinFCT(ReadingCalculateDto inDto)
//{ {
// var tableQuestion = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.TargetLesion).SelectMany(x => x.TableRowInfoList).ToList();
//} var allMinFCT = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.FCT).SelectMany(x => x.TableRowInfoList).SelectMany(x => x.TableQuestionList)
.Where(x => x.QuestionMark == QuestionMark.MinFCT).Select(x => x.Answer.IsNullOrEmptyReturn0()).Min();
if (allMinFCT == 0)
{
return null;
}
return allMinFCT;
}
/// <summary>
/// 所有FCT最小值中的平均值
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task<decimal?> GetAvgMinFCT(ReadingCalculateDto inDto)
{
var allMinFCT = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.FCT).SelectMany(x => x.TableRowInfoList).SelectMany(x => x.TableQuestionList)
.Where(x => x.QuestionMark == QuestionMark.MinFCT).Select(x => x.Answer.IsNullOrEmptyReturn0()).Average();
if (allMinFCT == 0)
{
return null;
}
return allMinFCT;
}
#region 将上一次的访视病灶添加到这一次 #region 将上一次的访视病灶添加到这一次

View File

@ -2458,7 +2458,7 @@ public enum SUVChangeVSBaseline
/// <summary> /// <summary>
/// EEM求和 /// EEM求和
/// </summary> /// </summary>
EEMSun = 1005, EEMSum = 1005,
/// <summary> /// <summary>
/// (EEM-Lumen)求和 /// (EEM-Lumen)求和