diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 29aeaeacd..c38ec417a 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -3356,7 +3356,7 @@ namespace IRaCIS.Core.Application.Service // 如果是PCGW标准 则把中间答案赋值给正式答案 if (taskInfo.TrialReadingCriterion.CriterionType == CriterionType.PCWG3) { - var answerList = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTask.SubjectId == taskInfo.SubjectId && x.VisitTask.ArmEnum == taskInfo.ArmEnum && x.PCWGInterimAnswer != string.Empty).ToListAsync(); + var answerList = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTask.TaskState==TaskState.Effect&& x.VisitTask.SubjectId == taskInfo.SubjectId && x.VisitTask.ArmEnum == taskInfo.ArmEnum && x.PCWGInterimAnswer != string.Empty).ToListAsync(); foreach (var item in answerList) { diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs index 22258e3e2..ad895e916 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs @@ -2841,6 +2841,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common QuestionName = t.QuestionName, t.QuestionEnName, QuestionId = t.Id, + t.QuestionType, t.DictionaryCode, t.Unit, t.CustomUnit, @@ -2917,19 +2918,39 @@ namespace IRaCIS.Core.Infra.EFCore.Common t => t.ReadingQuestionTrialId, u => u.QuestionId, (t, u) => - new + new QuestionAnswerDto() { TaskName = taskList.FirstOrDefault(k => k.Id == t.VisitTaskId)?.TaskName, VisitTaskNum = taskList.FirstOrDefault(k => k.Id == t.VisitTaskId)?.VisitTaskNum, Answer = Translationunit(u.AnswerType, u.Unit, u.CustomUnit, unitDataList, t.Answer), PCWGInterimAnswer = Translationunit(u.AnswerType, u.Unit, u.CustomUnit, unitDataList, t.PCWGInterimAnswer), - u.DictionaryCode, - u.QuestionName, - u.QuestionEnName, - t.VisitTaskId, - u.ShowOrder, + DictionaryCode= u.DictionaryCode, + ReadingQuestionTrialId= t.ReadingQuestionTrialId, + QuestionName= u.QuestionName, + QuestionEnName= u.QuestionEnName, + VisitTaskId= t.VisitTaskId, + ShowOrder= u.ShowOrder, }).OrderBy(t => t.VisitTaskNum).ThenBy(t => t.ShowOrder).ToList(); + + if (questionAnswerList.Any(x => x.PCWGInterimAnswer != string.Empty)) + { + var daysBetween = quesionList.Where(x => x.QuestionType == QuestionType.DaysBetween).FirstOrDefault(); + + var baseLineTask = taskList.FirstOrDefault(x => x.VisitTaskNum == 0); + if (daysBetween != null && baseLineTask != null) + { + foreach (var item in questionAnswerList) + { + if (item.VisitTaskId == baseLineTask.Id && item.ReadingQuestionTrialId == daysBetween.QuestionId && item.PCWGInterimAnswer == "-1") + { + item.PCWGInterimAnswer = "NA"; + } + } + } + } + + foreach (var item in taskList.OrderBy(x => x.VisitTaskNum)) { var obj = new @@ -2940,6 +2961,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common objList.Add(obj); } + await InsertInspection(cloneEntity, type, x => new InspectionConvertDTO() diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingDto.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingDto.cs index 152027999..4d49b6fe8 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/AuditingDto.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingDto.cs @@ -48,7 +48,19 @@ namespace IRaCIS.Core.Infra.EFCore.Common public string UnitName { get; set; } } - + public class QuestionAnswerDto + { + public string TaskName { get; set; } + public decimal? VisitTaskNum { get; set; } + public string Answer { get; set; } + public string PCWGInterimAnswer { get; set; } + public string DictionaryCode { get; set; } + public Guid ReadingQuestionTrialId { get; set; } + public string QuestionName { get; set; } + public string QuestionEnName { get; set; } + public Guid VisitTaskId { get; set; } + public int ShowOrder { get; set; } + } public class VisitTaskAuditingDto { public string UserRealName { get; set; }