This commit is contained in:
he
2023-02-20 13:53:17 +08:00
parent 6192c2e144
commit a81bb9e3b9
10 changed files with 59 additions and 14 deletions
@@ -538,6 +538,15 @@ namespace IRaCIS.Application.Services
}
Dictionary<ClinicalLevel, int> keys = new Dictionary<ClinicalLevel, int>() {
{ClinicalLevel.Subject,0 },
{ClinicalLevel.ImageRead,1 },
{ClinicalLevel.OncologyRead,2 },
{ClinicalLevel.SubjectVisit,3 },
};
result.OrderBy(x => keys[x.ClinicalDataLevel]).ToList();
return (result, new
{
SubjectCode = await _subjectRepository.Where(x => x.Id == inDto.SubjectId).Select(x => x.Code).FirstOrDefaultAsync(),
@@ -156,7 +156,14 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string Answer { get; set; }
public bool IsGlobalChange { get; set; } = false;
/// <summary>
/// 全局阅片修改的答案
/// </summary>
public string GlobalChangeAnswer { get; set; } = string.Empty;
}
@@ -1408,6 +1415,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public string TaskBlindName { get; set; }
public decimal VisitTaskNum { get; set; }
public Arm? JudgeResultArm { get; set; }
}
public class GetJudgeReadingPastResultListInDto
@@ -51,9 +51,12 @@ namespace IRaCIS.Application.Services
foreach (var answer in item.AnswerList)
{
await _readingGlobalTaskInfoRepository.BatchDeleteNoTrackingAsync(x => x.GlobalTaskId == inDto.GlobalTaskId && x.TaskId == item.VisitTaskId && x.GlobalAnswerType == answer.GlobalAnswerType && x.QuestionId == answer.QuestionId);
await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == item.VisitTaskId && x.ReadingQuestionTrialId == answer.QuestionId, x => new ReadingTaskQuestionAnswer()
await _readingTaskQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.VisitTaskId == item.VisitTaskId && x.ReadingQuestionTrialId == answer.QuestionId
&& x.Answer != answer.Answer && x.Answer != string.Empty
, x => new ReadingTaskQuestionAnswer()
{
GlobalChangeAnswer = answer.Answer
GlobalChangeAnswer = answer.Answer,
IsGlobalChange=true,
});
}
}
@@ -233,7 +236,7 @@ namespace IRaCIS.Application.Services
var globalReadingQuestion = await _readingGlobalTaskInfoRepository.Where(x => x.GlobalTaskId == inDto.VisitTaskId).ToListAsync();
var criterionType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == taskInfo.TrialReadingCriterionId).Select(x => x.CriterionType).FirstOrDefaultAsync();
// 如果不是PCWG3 Before的Answer取自于 上一次全局阅片的结果, 如果没有上一次全局阅片的结果 取访视的答案
// Before的Answer取自于 上一次全局阅片的结果, 如果没有上一次全局阅片的结果 取访视的答案
var lastGlobalTask = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Global &&
x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId &&
@@ -354,8 +357,6 @@ namespace IRaCIS.Application.Services
if (criterionType == CriterionType.PCWG3)
{
// PCWG3 访视点肿瘤评估 采用上一次全局阅片的答案 如果没有 就采用访视的答案
// 找到上一个全局阅片
@@ -425,8 +425,14 @@ namespace IRaCIS.Application.Services
taskQuery = _visitTaskRepository.Where(x => taskInfo.PastResultTaskIdList.Contains(x.Id));
}
var readingPastResultList = await taskQuery
.ProjectTo<GetReadingPastResultListOutDto>(_mapper.ConfigurationProvider).OrderBy(x => x.VisitTaskNum).ToListAsync();
var readingPastResultList = await taskQuery.Select(x => new GetReadingPastResultListOutDto() {
VisitTaskId = x.Id,
TaskBlindName = x.TaskBlindName,
TaskName = x.TaskName,
VisitTaskNum = x.VisitTaskNum,
JudgeResultArm = x.JudgeResultTask == null?null:x.JudgeResultTask.ArmEnum,
}).OrderBy(x => x.VisitTaskNum).ToListAsync();
return readingPastResultList;
}
@@ -204,8 +204,9 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.QuestionName, u => u.MapFrom(s => isEn_Us ? s.QuestionEnName : s.QuestionName))
.ForMember(x=>x.Id, y=>y.MapFrom(z=>z.Id));
CreateMap<VisitTask, GetReadingPastResultListOutDto>()
.ForMember(x => x.VisitTaskId, y => y.MapFrom(z => z.Id));
//CreateMap<VisitTask, GetReadingPastResultListOutDto>()
// .ForMember(x => x.VisitTaskId, y => y.MapFrom(z => z.Id))
// .ForMember(x => x.JudgeResultArm, y => y.MapFrom(z => (z.JudgeResultTask==null?null:z.JudgeResultTask.ArmEnum)));
#endregion
#region