IRC_NewDev
parent
af0df80874
commit
3f7227ce32
|
@ -1364,6 +1364,13 @@
|
|||
<param name="inDto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.Interface.ILuganoCalculateService.SaveSplenicCalculate(System.Guid)">
|
||||
<summary>
|
||||
保存脾尖或者脾底进行计算
|
||||
</summary>
|
||||
<param name="visitTaskId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.IRECIST1Point1CalculateService.GetReadingCalculationData(IRaCIS.Core.Application.Service.Reading.Dto.GetReadingCalculationDataInDto)">
|
||||
<summary>
|
||||
获取阅片的计算数据
|
||||
|
@ -2060,6 +2067,13 @@
|
|||
<param name="inDto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.SaveSplenicCalculate(System.Guid)">
|
||||
<summary>
|
||||
保存脾尖或者脾底进行计算
|
||||
</summary>
|
||||
<param name="visitTaskId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetSplenicState(System.Guid,System.Decimal)">
|
||||
<summary>
|
||||
获取脾脏状态
|
||||
|
@ -13752,7 +13766,7 @@
|
|||
<param name="inDto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.SaveTaskQuestion(IRaCIS.Core.Application.Service.Reading.Dto.ChangeDicomReadingQuestionAnswerInDto)">
|
||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.SaveTaskQuestion(IRaCIS.Core.Application.Service.Reading.Dto.ChangeDicomReadingQuestionAnswerInDto,System.String)">
|
||||
<summary>
|
||||
保存任务问题 带动态稽查参数
|
||||
</summary>
|
||||
|
|
|
@ -20,6 +20,7 @@ using DocumentFormat.OpenXml.Drawing.Charts;
|
|||
using IRaCIS.Core.Application.Service.ReadingCalculate.Interface;
|
||||
using AutoMapper.QueryableExtensions;
|
||||
using IRaCIS.Application.Contracts;
|
||||
using IRaCIS.Core.Domain.Models;
|
||||
|
||||
namespace IRaCIS.Application.Services
|
||||
{
|
||||
|
@ -1741,18 +1742,26 @@ namespace IRaCIS.Application.Services
|
|||
return await ChangeDicomReadingQuestionAnswer(inDto);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 保存任务问题 带动态稽查参数
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
/// <summary>
|
||||
/// 保存任务问题 带动态稽查参数
|
||||
/// </summary>
|
||||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
[Route("/SaveTaskQuestion/{param}")]
|
||||
[HttpPost]
|
||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
||||
public async Task<IResponseOutput> SaveTaskQuestion(ChangeDicomReadingQuestionAnswerInDto inDto)
|
||||
{
|
||||
return await this.SaveImageQuality(inDto);
|
||||
}
|
||||
public async Task<IResponseOutput> SaveTaskQuestion(ChangeDicomReadingQuestionAnswerInDto inDto, string param)
|
||||
{
|
||||
var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).Include(x => x.TrialReadingCriterion).FirstNotNullAsync();
|
||||
var result = await this.SaveImageQuality(inDto);
|
||||
// 保存脾尖或者脾底进行计算
|
||||
if (taskinfo.TrialReadingCriterion.CriterionType == CriterionType.Lugano2014 && (param == "4" || param == "5"))
|
||||
{
|
||||
await _luganoCalculateService.SaveSplenicCalculate(inDto.VisitTaskId);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
///// <summary>
|
||||
///// 保存ECRF
|
||||
|
|
|
@ -22,5 +22,12 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate.Interface
|
|||
/// <param name="inDto"></param>
|
||||
/// <returns></returns>
|
||||
Task CalculateMergeTargetLesionStatus(CalculateTargetLesionStatusInDto inDto);
|
||||
|
||||
/// <summary>
|
||||
/// 保存脾尖或者脾底进行计算
|
||||
/// </summary>
|
||||
/// <param name="visitTaskId"></param>
|
||||
/// <returns></returns>
|
||||
Task SaveSplenicCalculate(Guid visitTaskId);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2144,15 +2144,96 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
}
|
||||
#endregion
|
||||
|
||||
#region 获取脾脏状态
|
||||
|
||||
/// <summary>
|
||||
/// 获取脾脏状态
|
||||
/// 保存脾尖或者脾底进行计算
|
||||
/// </summary>
|
||||
/// <param name="visitTaskId"></param>
|
||||
/// <param name="spleenLength"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task SaveSplenicCalculate(Guid visitTaskId)
|
||||
{
|
||||
var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
|
||||
|
||||
List<QuestionType?> questionTypes = new List<QuestionType?>
|
||||
{
|
||||
QuestionType.SplenicTopPosition,
|
||||
QuestionType.SplenicBottomPosition,
|
||||
QuestionType.SpleenLength,
|
||||
QuestionType.SplenicStatus,
|
||||
|
||||
};
|
||||
var questionlist = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskinfo.TrialReadingCriterionId &&
|
||||
questionTypes.Contains(x.QuestionType)).ToListAsync();
|
||||
|
||||
var splenicTopQuestionId = questionlist.Where(x => x.QuestionType == QuestionType.SplenicTopPosition).Select(x => x.Id).FirstOrDefault();
|
||||
var splenicBottomQuestionId = questionlist.Where(x => x.QuestionType == QuestionType.SplenicBottomPosition).Select(x => x.Id).FirstOrDefault();
|
||||
|
||||
decimal? spleenLength = null;
|
||||
string? splenicState = null;
|
||||
|
||||
// 脾尖答案
|
||||
var splenicTopAnswer = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == visitTaskId && x.ReadingQuestionTrialId == splenicTopQuestionId).FirstOrDefaultAsync();
|
||||
// 脾底答案
|
||||
var splenicBottomAnswer= await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == visitTaskId && x.ReadingQuestionTrialId == splenicBottomQuestionId).FirstOrDefaultAsync();
|
||||
|
||||
if (splenicTopAnswer != null && splenicBottomAnswer != null)
|
||||
{
|
||||
spleenLength = splenicTopAnswer.Answer.IsNullOrEmptyReturn0() - splenicBottomAnswer.Answer.IsNullOrEmptyReturn0();
|
||||
if(spleenLength<0)
|
||||
{
|
||||
spleenLength = 0 - spleenLength;
|
||||
}
|
||||
splenicState =await GetSplenicState(visitTaskId, spleenLength.Value);
|
||||
}
|
||||
|
||||
//脾脏垂直径Id
|
||||
var spleenVerticalDiameterQuestionId = questionlist.Where(x => x.QuestionType == QuestionType.SpleenLength).Select(x => x.Id).FirstOrDefault();
|
||||
// 脾脏状态Id
|
||||
var splenicStatusQuestionId = questionlist.Where(x => x.QuestionType == QuestionType.SplenicStatus).Select(x => x.Id).FirstOrDefault();
|
||||
|
||||
List<ReadingTaskQuestionAnswer> readingTaskQuestionAnswers = new List<ReadingTaskQuestionAnswer>();
|
||||
if (spleenLength != null)
|
||||
{
|
||||
readingTaskQuestionAnswers.Add(new ReadingTaskQuestionAnswer()
|
||||
{
|
||||
Answer = spleenLength.Value.ToString(),
|
||||
ReadingQuestionTrialId = spleenVerticalDiameterQuestionId,
|
||||
VisitTaskId = visitTaskId,
|
||||
SubjectId = taskinfo.SubjectId,
|
||||
TrialId = taskinfo.TrialId,
|
||||
ReadingQuestionCriterionTrialId = taskinfo.TrialReadingCriterionId,
|
||||
|
||||
});
|
||||
}
|
||||
if (splenicState != null)
|
||||
{
|
||||
readingTaskQuestionAnswers.Add(new ReadingTaskQuestionAnswer()
|
||||
{
|
||||
Answer = splenicState.ToString(),
|
||||
ReadingQuestionTrialId = splenicStatusQuestionId,
|
||||
VisitTaskId = visitTaskId,
|
||||
SubjectId = taskinfo.SubjectId,
|
||||
TrialId = taskinfo.TrialId,
|
||||
ReadingQuestionCriterionTrialId = taskinfo.TrialReadingCriterionId,
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
await _readingTaskQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == visitTaskId && (x.ReadingQuestionTrialId == spleenVerticalDiameterQuestionId || x.ReadingQuestionTrialId == splenicStatusQuestionId));
|
||||
await _readingTaskQuestionAnswerRepository.AddRangeAsync(readingTaskQuestionAnswers);
|
||||
await _readingTaskQuestionAnswerRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
}
|
||||
|
||||
#region 获取脾脏状态
|
||||
|
||||
/// <summary>
|
||||
/// 获取脾脏状态
|
||||
/// </summary>
|
||||
/// <param name="visitTaskId"></param>
|
||||
/// <param name="spleenLength"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<string> GetSplenicState(Guid visitTaskId,decimal spleenLength)
|
||||
{
|
||||
|
||||
|
|
|
@ -2285,10 +2285,10 @@ public enum SUVChangeVSBaseline
|
|||
/// </summary>
|
||||
LiverState = 47,
|
||||
|
||||
/// <summary>
|
||||
/// 脾脏长度
|
||||
/// </summary>
|
||||
SpleenLength = 48,
|
||||
/// <summary>
|
||||
/// 脾脏垂直径
|
||||
/// </summary>
|
||||
SpleenLength = 48,
|
||||
|
||||
/// <summary>
|
||||
/// 脾脏状态
|
||||
|
|
Loading…
Reference in New Issue