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