修改一版
parent
76e65b0613
commit
62f28cbe6c
|
@ -8420,6 +8420,12 @@
|
||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.AddDefaultValueToTask(System.Guid)">
|
||||||
|
<summary>
|
||||||
|
添加默认值到任务里面
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetReadingTool(IRaCIS.Core.Application.Service.Reading.Dto.GetReadingToolInDto)">
|
<member name="M:IRaCIS.Application.Services.ReadingImageTaskService.GetReadingTool(IRaCIS.Core.Application.Service.Reading.Dto.GetReadingToolInDto)">
|
||||||
<summary>
|
<summary>
|
||||||
根据任务ID获取ReadingTool
|
根据任务ID获取ReadingTool
|
||||||
|
|
|
@ -113,6 +113,40 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 添加默认值到任务里面
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[NonDynamicMethod]
|
||||||
|
public async Task AddDefaultValueToTask(Guid visitTaskId)
|
||||||
|
{
|
||||||
|
var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
|
||||||
|
|
||||||
|
var questions = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == visitTaskInfo.TrialReadingCriterionId).ToListAsync();
|
||||||
|
questions = questions.Where(x => !x.DefaultValue.IsNullOrEmpty()).ToList();
|
||||||
|
|
||||||
|
var taskAnswerIds = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == visitTaskId).Select(x => x.ReadingQuestionTrialId).ToListAsync();
|
||||||
|
questions = questions.Where(x => !taskAnswerIds.Contains(x.Id)).ToList();
|
||||||
|
|
||||||
|
List<ReadingTaskQuestionAnswer> questionAnswers = questions.Select(x => new ReadingTaskQuestionAnswer()
|
||||||
|
{
|
||||||
|
|
||||||
|
Answer=x.DefaultValue,
|
||||||
|
Id= NewId.NextGuid(),
|
||||||
|
ReadingQuestionCriterionTrialId= visitTaskInfo.TrialReadingCriterionId,
|
||||||
|
ReadingQuestionTrialId= x.Id,
|
||||||
|
SubjectId= visitTaskInfo.SubjectId,
|
||||||
|
TrialId= visitTaskInfo.TrialId,
|
||||||
|
VisitTaskId=visitTaskId,
|
||||||
|
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
await _readingTaskQuestionAnswerRepository.AddRangeAsync(questionAnswers);
|
||||||
|
await _readingTaskQuestionAnswerRepository.SaveChangesAsync();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#region 阅片页面 关联信息查询 以及基本验证
|
#region 阅片页面 关联信息查询 以及基本验证
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -299,6 +333,7 @@ namespace IRaCIS.Application.Services
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<(List<DicomReadingQuestionAnswer>, object)> GetDicomReadingQuestionAnswer(GetDicomReadingQuestionAnswerInDto inDto)
|
public async Task<(List<DicomReadingQuestionAnswer>, object)> GetDicomReadingQuestionAnswer(GetDicomReadingQuestionAnswerInDto inDto)
|
||||||
{
|
{
|
||||||
|
await AddDefaultValueToTask(inDto.VisitTaskId);
|
||||||
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
|
var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
|
||||||
var criterionId = taskInfo.TrialReadingCriterionId;
|
var criterionId = taskInfo.TrialReadingCriterionId;
|
||||||
|
|
||||||
|
@ -328,7 +363,7 @@ namespace IRaCIS.Application.Services
|
||||||
private void GetDicomReadingAnswer(DicomReadingQuestionAnswer item, List<DicomReadingQuestionAnswer> questions, List<ReadingTaskQuestionAnswer> answers)
|
private void GetDicomReadingAnswer(DicomReadingQuestionAnswer item, List<DicomReadingQuestionAnswer> questions, List<ReadingTaskQuestionAnswer> answers)
|
||||||
{
|
{
|
||||||
var answer = answers.Where(x => x.ReadingQuestionTrialId == item.Id).Select(x => x.Answer).FirstIsNullReturnEmpty();
|
var answer = answers.Where(x => x.ReadingQuestionTrialId == item.Id).Select(x => x.Answer).FirstIsNullReturnEmpty();
|
||||||
item.Answer = answer.IsNullOrEmpty()?item.DefaultValue: answer;
|
|
||||||
item.Childrens = questions.Where(x => x.ParentId == item.Id || ((item.Type == ReadingQestionType.Group && x.Type != ReadingQestionType.Group && x.ParentId == null && x.GroupName == item.GroupName))).ToList();
|
item.Childrens = questions.Where(x => x.ParentId == item.Id || ((item.Type == ReadingQestionType.Group && x.Type != ReadingQestionType.Group && x.ParentId == null && x.GroupName == item.GroupName))).ToList();
|
||||||
if (item.Childrens != null && item.Childrens.Count > 0)
|
if (item.Childrens != null && item.Childrens.Count > 0)
|
||||||
{
|
{
|
||||||
|
@ -348,6 +383,21 @@ namespace IRaCIS.Application.Services
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task<GetReadingReportEvaluationOutDto> GetReadingReportEvaluation(GetReadingReportEvaluationInDto indto)
|
public async Task<GetReadingReportEvaluationOutDto> GetReadingReportEvaluation(GetReadingReportEvaluationInDto indto)
|
||||||
{
|
{
|
||||||
|
var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync();
|
||||||
|
if (visitTaskInfo.ReadingTaskState == ReadingTaskState.WaitReading)
|
||||||
|
{
|
||||||
|
await this._readingCalculateService.CalculateTask(new CalculateTaskInDto()
|
||||||
|
{
|
||||||
|
IsChangeOtherTask = false,
|
||||||
|
VisitTaskId = indto.VisitTaskId,
|
||||||
|
});
|
||||||
|
await _visitTaskRepository.UpdatePartialFromQueryAsync(indto.VisitTaskId, x => new VisitTask()
|
||||||
|
{
|
||||||
|
ReadingTaskState=ReadingTaskState.Reading
|
||||||
|
});
|
||||||
|
await _visitTaskRepository.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
|
||||||
return await _readingCalculateService.GetReadingReportEvaluation(indto);
|
return await _readingCalculateService.GetReadingReportEvaluation(indto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -383,6 +433,7 @@ namespace IRaCIS.Application.Services
|
||||||
public async Task<(GetReadingQuestionAndAnswerOutDto, object)> GetReadingQuestionAndAnswer(GetReadingQuestionAndAnswerInDto inDto)
|
public async Task<(GetReadingQuestionAndAnswerOutDto, object)> GetReadingQuestionAndAnswer(GetReadingQuestionAndAnswerInDto inDto)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
await AddDefaultValueToTask(inDto.VisitTaskId);
|
||||||
var result = new GetReadingQuestionAndAnswerOutDto();
|
var result = new GetReadingQuestionAndAnswerOutDto();
|
||||||
|
|
||||||
var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
|
var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
|
||||||
|
@ -413,7 +464,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
qusetionList.ForEach(x =>
|
qusetionList.ForEach(x =>
|
||||||
{
|
{
|
||||||
x.Answer = answers.Where(y => y.ReadingQuestionTrialId == x.Id).Select(x => x.Answer).FirstOrDefault() ?? x.DefaultValue;
|
x.Answer = answers.Where(y => y.ReadingQuestionTrialId == x.Id).Select(x => x.Answer).FirstOrDefault() ?? string.Empty;
|
||||||
});
|
});
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -1234,7 +1234,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
|
|
||||||
// 比整体访视期间SOD最低点SOD绝对增加值≥5 mm
|
// 比整体访视期间SOD最低点SOD绝对增加值≥5 mm
|
||||||
LowChangeBigger5 = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LowestIncrease).Sum(x => x.Answer.IsNullOrEmptyReturn0()) >= 5
|
LowChangeBigger5 = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LowestIncrease).Sum(x => x.Answer.IsNullOrEmptyReturn0()) >= 5
|
||||||
&& inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LowestIncrease).Sum(x => x.Answer.IsNullOrEmptyReturn0()) <=- 5
|
|| inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LowestIncrease).Sum(x => x.Answer.IsNullOrEmptyReturn0()) <=- 5
|
||||||
,
|
,
|
||||||
|
|
||||||
// 被评估为NE的单个靶病灶 是否存在状态为不可评估的靶病灶
|
// 被评估为NE的单个靶病灶 是否存在状态为不可评估的靶病灶
|
||||||
|
|
Loading…
Reference in New Issue