修改一版
parent
d2e6094f8b
commit
6adb0ccd83
|
@ -1230,6 +1230,11 @@
|
|||
非淋巴结靶病灶长径之和 decimal
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TargetLesionCalculateDto.SODPercent">
|
||||
<summary>
|
||||
SOD变化百分比
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TargetLesionCalculateDto.DiameterLessThan10">
|
||||
<summary>
|
||||
所有淋巴结靶病灶的短径小于10mm
|
||||
|
|
|
@ -23,6 +23,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
/// </summary>
|
||||
public decimal SumOfDiameter { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// SOD变化百分比
|
||||
/// </summary>
|
||||
public decimal SODPercent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 所有淋巴结靶病灶的短径小于10mm
|
||||
/// </summary>
|
||||
|
|
|
@ -591,7 +591,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
{
|
||||
if (inDto.IsBaseLine)
|
||||
{
|
||||
return nameof(YesOrNoOrNa.NA);
|
||||
return YesOrNoOrNa.NA.GetEnumInt();
|
||||
}
|
||||
|
||||
var LastVisitTaskId = await this.GetLastVisitTaskId(inDto);
|
||||
|
@ -615,7 +615,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
}
|
||||
}
|
||||
|
||||
return isExists? nameof(YesOrNoOrNa.Yes) : nameof(YesOrNoOrNa.No);
|
||||
return isExists? YesOrNoOrNa.Yes.GetEnumInt() : YesOrNoOrNa.No.GetEnumInt();
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
@ -659,7 +659,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
var newLesions = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.NewLesions).Select(x => x.Answer).FirstOrDefault();
|
||||
var result = await _tumorAssessmentRepository.Where(x => x.TargetLesion.GetEnumInt() == targetLesion && x.NonTargetLesions.GetEnumInt() == noTargetLesion && x.NewLesion.GetEnumInt() == newLesions).Select(x => x.OverallEfficacy).ToListAsync();
|
||||
|
||||
return result.Count == 0 ? string.Empty : result[0].GetEnumInt();
|
||||
return result.Count == 0 ? OverallAssessment.NA.GetEnumInt() : result[0].GetEnumInt();
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
@ -860,6 +860,9 @@ namespace IRaCIS.Core.Application.Service
|
|||
//所有淋巴结靶病灶的短径小于10mm bool
|
||||
DiameterLessThan10 = true,
|
||||
|
||||
// SOD变化百分比
|
||||
SODPercent = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SODPercent).Sum(x => x.Answer.IsNullOrEmptyReturn0()),
|
||||
|
||||
// SOD 百分比与基线期SOD相比减小≥30% bool
|
||||
SODPercentBigger30 = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SODPercent).Sum(x => x.Answer.IsNullOrEmptyReturn0()) >= (decimal)0.3,
|
||||
|
||||
|
@ -959,7 +962,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
result = TargetAssessment.NE;
|
||||
}
|
||||
|
||||
else if (!resultData.ExixtsNETargetLesion)
|
||||
else if (!resultData.ExixtsNETargetLesion&& resultData.SumOfDiameter==0&& resultData.SODPercent == 0)
|
||||
{
|
||||
result = TargetAssessment.ND;
|
||||
}
|
||||
|
|
|
@ -2011,13 +2011,27 @@ namespace IRaCIS.Application.Services
|
|||
throw new BusinessValidationFailedException($"相同问题传入两次!");
|
||||
}
|
||||
|
||||
var questions = await _readingTableQuestionTrialRepository.Where(x => tableQuestionIds.Contains(x.Id) && x.MaxRowCount != null && x.MaxRowCount != 0).ToListAsync();
|
||||
var questionInfo = await _readingQuestionTrialRepository.Where(x => x.Id == inDto.QuestionId).FirstNotNullAsync();
|
||||
if (questionInfo.MaxQuestionCount!=null)
|
||||
{
|
||||
if (questionInfo.MaxQuestionCount <
|
||||
(
|
||||
(await _readingTableAnswerRowInfoRepository.Where(x => x.RowIndex != inDto.RowIndex && ((x.RowIndex % 1) == 0) && x.VisitTaskId == inDto.VisitTaskId
|
||||
&& x.QuestionId == inDto.QuestionId
|
||||
).CountAsync()) + 1))
|
||||
{
|
||||
throw new BusinessValidationFailedException($"当前提交问题最大问题数为{questionInfo.MaxQuestionCount}!");
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var item in questions)
|
||||
|
||||
var tableQuestions = await _readingTableQuestionTrialRepository.Where(x => tableQuestionIds.Contains(x.Id) && x.MaxRowCount != null && x.MaxRowCount != 0).ToListAsync();
|
||||
|
||||
foreach (var item in tableQuestions)
|
||||
{
|
||||
var answer = inDto.AnswerList.Where(x => x.TableQuestionId == item.Id).Select(x => x.Answer).FirstOrDefault();
|
||||
|
||||
var rowCount = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.TableQuestionId == item.Id && x.Answer == answer && x.RowIndex != inDto.RowIndex).CountAsync();
|
||||
var rowCount = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.TableQuestionId == item.Id&& ((x.RowIndex % 1) == 0) && x.Answer == answer && x.RowIndex != inDto.RowIndex).CountAsync();
|
||||
|
||||
if (rowCount > item.MaxRowCount.Value - 1)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue