IRC_NewDev
he 2023-10-17 13:48:28 +08:00
parent 08f592a9cb
commit d859def7d6
1 changed files with 56 additions and 53 deletions

View File

@ -1716,66 +1716,69 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
/// <returns></returns> /// <returns></returns>
public async Task<string> GetSplenicEvaluation(ReadingCalculateDto inDto) public async Task<string> GetSplenicEvaluation(ReadingCalculateDto inDto)
{ {
if (inDto.IsBaseLine)
{
return SpleenAssessment.Stabilization.GetEnumInt();
}
var result = SpleenAssessment.Stabilization; return inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstIsNullReturnEmpty();
//if (inDto.IsBaseLine)
//{
// return SpleenAssessment.Stabilization.GetEnumInt();
//}
//var result = SpleenAssessment.Stabilization;
var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0(); //var presentSpd = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Answer).FirstOrDefault().IsNullOrEmptyReturn0();
var baseLineSpleenLength = await GetBaseLineSpleenLength(inDto); //var baseLineSpleenLength = await GetBaseLineSpleenLength(inDto);
var baseLineTaskId = await GetBaseLineTaskId(inDto); //var baseLineTaskId = await GetBaseLineTaskId(inDto);
var baseLineState= await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstOrDefaultAsync(); //var baseLineState= await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == baseLineTaskId && x.ReadingQuestionTrial.QuestionType == QuestionType.SplenicStatus).Select(x => x.Answer).FirstOrDefaultAsync();
var differenceValue = presentSpd - baseLineSpleenLength; //var differenceValue = presentSpd - baseLineSpleenLength;
decimal percentage = 0; //decimal percentage = 0;
if (baseLineSpleenLength != 0) //if (baseLineSpleenLength != 0)
{ //{
percentage = differenceValue*100 / baseLineSpleenLength; // percentage = differenceValue*100 / baseLineSpleenLength;
} //}
// 1、基线 垂直径> 130 mm //// 1、基线 垂直径> 130 mm
//2、与基线相比脾垂直径变化值≥10 mm ////2、与基线相比脾垂直径变化值≥10 mm
//与基线相比脾肿大增加的百分比 > 50 ////与基线相比脾肿大增加的百分比 > 50
if (baseLineSpleenLength > 130 && differenceValue >= 10 && percentage > 50) //if (baseLineSpleenLength > 130 && differenceValue >= 10 && percentage > 50)
{ //{
result = SpleenAssessment.Increase; // result = SpleenAssessment.Increase;
} //}
//1、基线垂直径≤130mm ////1、基线垂直径≤130mm
//2、与基线相比脾垂直径变化值≥20 mm ////2、与基线相比脾垂直径变化值≥20 mm
//当前垂直径 > 130 mm ////当前垂直径 > 130 mm
else if (baseLineSpleenLength <= 130 && differenceValue >= 20 && presentSpd > 130) //else if (baseLineSpleenLength <= 130 && differenceValue >= 20 && presentSpd > 130)
{ //{
result = SpleenAssessment.Increase; // result = SpleenAssessment.Increase;
} //}
//1、基线 垂直径> 130 mm ////1、基线 垂直径> 130 mm
//2、当前访视的前面访视中 存在垂直径≤130mm ////2、当前访视的前面访视中 存在垂直径≤130mm
//3、与最低点相比脾脏垂直径的增加值≥20 mm ////3、与最低点相比脾脏垂直径的增加值≥20 mm
//4、当前垂直径 > 130 mm ////4、当前垂直径 > 130 mm
else if (baseLineSpleenLength > 130 && presentSpd <= 130 && differenceValue >= 20 && presentSpd > 130) //else if (baseLineSpleenLength > 130 && presentSpd <= 130 && differenceValue >= 20 && presentSpd > 130)
{ //{
result = SpleenAssessment.Increase; // result = SpleenAssessment.Increase;
} //}
// 基线垂直径≤130mm //// 基线垂直径≤130mm
else if (baseLineSpleenLength <= 130) //else if (baseLineSpleenLength <= 130)
{ //{
result = SpleenAssessment.Normal; // result = SpleenAssessment.Normal;
} //}
//1、基线期 状态为“肿大” ////1、基线期 状态为“肿大”
//与基线相比脾肿大增加的百分比 > 50 ////与基线相比脾肿大增加的百分比 > 50
else if (baseLineState.EqEnum(SpleenState.Swelling) && percentage > 50) //else if (baseLineState.EqEnum(SpleenState.Swelling) && percentage > 50)
{ //{
result = SpleenAssessment.Remission; // result = SpleenAssessment.Remission;
} //}
else //else
{ //{
result = SpleenAssessment.Remission; // result = SpleenAssessment.Remission;
} //}
return result.GetEnumInt(); //return result.GetEnumInt();
} }
#endregion #endregion