代码提交

IRC_NewDev
he 2024-01-29 14:33:41 +08:00
parent 1f4bb0128a
commit 9fff53f137
2 changed files with 57 additions and 25 deletions

View File

@ -12,7 +12,17 @@ namespace IRaCIS.Core.Application.ViewModel
public Guid VisitTaskId { get; set; }
}
public class ReadingTaskQuestionAnswerDto : ReadingTaskQuestionAnswer
public class CalculateTargetLesionStatusInDto
{
public Guid VisitTaskId { get; set;}
public Guid QuestionId { get; set; }
public decimal RowNumber { get; set; }
}
public class ReadingTaskQuestionAnswerDto : ReadingTaskQuestionAnswer
{
public QuestionType QuestionType { get; set; }
}

View File

@ -404,7 +404,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
if (lowPddTaskid != default(Guid))
{
var lowPPDAnswerList = await _readingTableQuestionAnswerRepository.Where(x =>x.VisitTaskId== lowPddTaskid
var lowPPDAnswerList = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == lowPddTaskid
&& x.QuestionId == inDto.QuestionId
&& x.RowIndex == inDto.RowIndex).Include(x => x.ReadingTableQuestionTrial)
.Select(x => new
@ -447,7 +447,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var calculateDto = await _generalCalculateService.GetReadingCalculateDto(inDto.VisitTaskId);
return new GetReportVerifyOutDto()
{
TumorEvaluate = calculateDto.QuestionInfo.Where(x=>x.QuestionType==QuestionType.ImgOncology).Select(x=>x.Answer).FirstOrDefault(),
TumorEvaluate = calculateDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.ImgOncology).Select(x => x.Answer).FirstOrDefault(),
IsExistDisease = await this.GetReportIsExistDisease(inDto.VisitTaskId),
};
@ -676,7 +676,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
if (valueOfTypes.Contains(item.ValueType))
{
item.Answer = decimal.Round(decimal.Parse(item.Answer ?? "0"), inDto.DigitPlaces).ToString("F"+ inDto.DigitPlaces.ToString());
item.Answer = decimal.Round(decimal.Parse(item.Answer ?? "0"), inDto.DigitPlaces).ToString("F" + inDto.DigitPlaces.ToString());
}
}
catch (Exception)
@ -829,18 +829,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
if (await _readingTaskQuestionAnswerRepository.AnyAsync(x => x.ReadingQuestionTrial.QuestionType == QuestionType.ExistPET && x.VisitTaskId == inDto.VisitTaskId && x.Answer == ReadingYesOrNo.Yes.GetEnumInt()))
{
List<QuestionType?> required=new List<QuestionType?>() {
QuestionType.LiverSUVmax,
QuestionType.MediastinumSUVmax,
QuestionType.SUVmax,
QuestionType.SUVmaxLesion,
QuestionType.PET5PS,
};
List<QuestionType?> required = new List<QuestionType?>() {
QuestionType.LiverSUVmax,
QuestionType.MediastinumSUVmax,
QuestionType.SUVmax,
QuestionType.SUVmaxLesion,
QuestionType.PET5PS,
};
if (taskinfo.VisitTaskNum != 0m)
{
required.Add(QuestionType.UptakeChange);
required.Add(QuestionType.EvidenceFocalFDG);
}
required.Add(QuestionType.UptakeChange);
required.Add(QuestionType.EvidenceFocalFDG);
}
if ((await _readingTaskQuestionAnswerRepository.CountAsync(x => required.Contains(x.ReadingQuestionTrial.QuestionType) && x.VisitTaskId == inDto.VisitTaskId && x.Answer != string.Empty)) != required.Count())
{
@ -848,12 +848,12 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
errorMassage += _localizer["ReadingCalculate_LuganoPetVerification"];
}
else
else
{
errorMassage += _localizer["ReadingCalculate_LuganoBaseLinePetVerification"];
}
}
errorMassage += _localizer["ReadingCalculate_LuganoBaseLinePetVerification"];
}
}
}
@ -866,16 +866,38 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
#region 将上一次的访视病灶添加到这一次
/// <summary>
/// 将上一次的访视病灶添加到这一次
/// 计算靶病灶状态
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task<AddTaskLesionAnswerFromLastTaskOutDto> AddTaskLesionAnswerFromLastTask(AddTaskLesionAnswerFromLastTaskInDto inDto)
public async Task CalculateTargetLesionStatus(CalculateTargetLesionStatusInDto inDto)
{
if (inDto.RowNumber % 1 != 0)
{
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
// 找到靶病灶问题
var targetQuestion = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskInfo.TrialReadingCriterionId && x.LesionType == LesionType.TargetLesion).FirstOrDefaultAsync();
if(targetQuestion!=null)
{
// 找到状态问题
}
}
}
#region 将上一次的访视病灶添加到这一次
/// <summary>
/// 将上一次的访视病灶添加到这一次
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task<AddTaskLesionAnswerFromLastTaskOutDto> AddTaskLesionAnswerFromLastTask(AddTaskLesionAnswerFromLastTaskInDto inDto)
{
var visitTaskId = inDto.VisitTaskId;