修改计算
continuous-integration/drone/push Build is passing Details

Test_IRC_Net8
he 2025-10-15 10:12:46 +08:00
parent 6a99e3104a
commit 1959045ab2
3 changed files with 61 additions and 4 deletions

View File

@ -59,6 +59,7 @@ namespace IRaCIS.Core.Application.Service
IRepository<OrganTrialInfo> _organTrialInfoRepository,
IRepository<TrialDocument> _trialDocumentRepository,
ILuganoCalculateService _luganoCalculateService,
ILuganoWithoutPETCalculateService _LuganoWithoutPETCalculateService,
//IRepository<ReadingCustomTag> _readingCustomTagRepository,
IRepository<ReadingTaskQuestionMark> _readingTaskQuestionMarkRepository,
IRepository<ReadingTrialCriterionDictionary> _readingTrialCriterionDictionaryRepository,
@ -1794,7 +1795,7 @@ namespace IRaCIS.Core.Application.Service
switch (taskInfo.TrialReadingCriterion.CriterionType)
{
case CriterionType.Lugano2014:
case CriterionType.Lugano2014WithoutPET:
List<QuestionMark?> needSetNa = new List<QuestionMark?>()
{
QuestionMark.LowPPDAddPercent,
@ -1916,6 +1917,7 @@ namespace IRaCIS.Core.Application.Service
switch (taskinfo.TrialReadingCriterion.CriterionType)
{
case CriterionType.Lugano2014:
await _luganoCalculateService.CalculateMergeTargetLesionStatus(new CalculateTargetLesionStatusInDto()
{
QuestionId = inDto.QuestionId,
@ -1923,6 +1925,14 @@ namespace IRaCIS.Core.Application.Service
RowNumber = mergeRow.RowIndex,
});
break;
case CriterionType.Lugano2014WithoutPET:
await _LuganoWithoutPETCalculateService.CalculateMergeTargetLesionStatus(new CalculateTargetLesionStatusInDto()
{
QuestionId = inDto.QuestionId,
VisitTaskId = inDto.VisitTaskId,
RowNumber = mergeRow.RowIndex,
});
break;
}
}
@ -1949,6 +1959,7 @@ namespace IRaCIS.Core.Application.Service
{
case CriterionType.Lugano2014:
case CriterionType.Lugano2014WithoutPET:
// (无法评估 或者 状态为消失的非靶病灶) 并且不能是无法评估的病灶
query = query.Where(x =>
(x.MeasureData == string.Empty ||
@ -2252,9 +2263,9 @@ namespace IRaCIS.Core.Application.Service
break;
case CriterionType.Lugano2014:
case CriterionType.Lugano2014WithoutPET:
// 先找到需要删除的
foreach (var item in needDeleteMarkQuestionIds)
{
// 对于要删除的标记不能删除 要与问题解绑
@ -2586,6 +2597,7 @@ namespace IRaCIS.Core.Application.Service
switch (taskinfo.TrialReadingCriterion.CriterionType)
{
case CriterionType.Lugano2014:
if (deleteRowInfo.RowIndex % 1 != 0)
{
await _luganoCalculateService.CalculateTargetLesionStatus(new CalculateTargetLesionStatusInDto()
@ -2596,6 +2608,18 @@ namespace IRaCIS.Core.Application.Service
});
}
break;
case CriterionType.Lugano2014WithoutPET:
if (deleteRowInfo.RowIndex % 1 != 0)
{
await _LuganoWithoutPETCalculateService.CalculateTargetLesionStatus(new CalculateTargetLesionStatusInDto()
{
QuestionId = inDto.QuestionId,
VisitTaskId = inDto.VisitTaskId,
RowNumber = deleteRowInfo.RowIndex
});
}
break;
}
return ResponseOutput.Ok(true);
}
@ -2761,6 +2785,7 @@ namespace IRaCIS.Core.Application.Service
}
break;
case CriterionType.Lugano2014:
case CriterionType.Lugano2014WithoutPET:
var targetTablequestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == taskinfo.TrialReadingCriterionId && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion).ToListAsync();
@ -3059,6 +3084,17 @@ namespace IRaCIS.Core.Application.Service
});
}
break;
case CriterionType.Lugano2014WithoutPET:
if (inDto.RowIndex % 1 != 0)
{
await _LuganoWithoutPETCalculateService.CalculateTargetLesionStatus(new CalculateTargetLesionStatusInDto()
{
QuestionId = inDto.QuestionId,
VisitTaskId = inDto.VisitTaskId,
RowNumber = inDto.RowIndex
});
}
break;
}
return result;

View File

@ -0,0 +1,21 @@
using IRaCIS.Core.Application.ViewModel;
namespace IRaCIS.Core.Application.Service.ReadingCalculate.Interface
{
public interface ILuganoWithoutPETCalculateService
{
/// <summary>
/// 计算靶病灶状态
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
Task CalculateTargetLesionStatus(CalculateTargetLesionStatusInDto inDto);
/// <summary>
/// 计算靶病灶融合后状态
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
Task CalculateMergeTargetLesionStatus(CalculateTargetLesionStatusInDto inDto);
}
}

View File

@ -26,7 +26,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
IRepository<TumorAssessment_RECIST1Point1> _tumorAssessmentRepository,
ISubjectVisitService _subjectVisitService,
IGeneralCalculateService _generalCalculateService,
IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService, ILuganoCalculateService
IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService, ILuganoWithoutPETCalculateService
{
/// <summary>
/// 阅片导入