diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs index 6206a52c1..1481e4766 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs @@ -716,6 +716,10 @@ namespace IRaCIS.Core.Application.Service.RC criterion.ImageDownloadEnum = ReadingImageDownload.Subejct; criterion.ImageUploadEnum = ReadingImageUpload.IRReadingSubejctEnable; break; + case CriterionType.Forrest: + + criterion.ReadingTool = ReadingTool.NoDicom; + break; } } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index bf5aaddd8..2077a4def 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -342,6 +342,16 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task SubmitCustomTag(ReadingCustomTagDto inDto) { + + if (inDto.Id == null&&inDto.MarkId!=null) + { + var oldMark = await _readingTaskQuestionMarkRepository.Where(x => x.MarkId == inDto.MarkId && x.QuestionId == null).FirstOrDefaultAsync(); + if( oldMark != null) + { + inDto.Id = oldMark.Id; + } + } + var entity = await _readingTaskQuestionMarkRepository.InsertOrUpdateAsync(inDto, true); return ResponseOutput.Ok(entity.Id.ToString()); } diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs index 3d0972130..1b961586a 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs @@ -3300,14 +3300,35 @@ namespace IRaCIS.Core.Infra.EFCore.Common } - var mark = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionMark)).Select(x => x.Entity as ReadingTaskQuestionMark).FirstOrDefault(); + var markList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionMark)).Select(x => x.Entity as ReadingTaskQuestionMark).ToList(); + var questionids = taskQuestionAnswerList.Select(x => x.ReadingQuestionTrialId as Guid?).ToList(); + var mark= markList.Where(x=> questionids.Contains(x.QuestionId)).FirstOrDefault(); var markName = string.Empty; if (mark != null) { markName = mark.OrderMarkName; } + string picturePath = mark != null ? mark.PicturePath : string.Empty; + + if (_userInfo.AuditIdentification== "DeleteMark") + { + markName = string.Empty; + picturePath = string.Empty; + } + + // 这里本来就批量展示问题的 现在又需要单个展示 + var thisQuestinonAnswer = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)).Select(x => x.Entity as ReadingTaskQuestionAnswer).FirstOrDefault(); + + string questionName = string.Empty; + string questionAnswer = string.Empty; + if (thisQuestinonAnswer != null) + { + questionName = await _dbContext.ReadingQuestionTrial.Where(x => x.Id == thisQuestinonAnswer.ReadingQuestionTrialId).Select(x => _userInfo.IsEn_Us ? x.QuestionEnName : x.QuestionName).FirstOrDefaultAsync(); + questionAnswer = thisQuestinonAnswer.Answer; + } + await InsertInspection(cloneEntity, type, x => new InspectionConvertDTO() { VisitTaskId = x.VisitTaskId, @@ -3324,7 +3345,9 @@ namespace IRaCIS.Core.Infra.EFCore.Common { MarkName = markName, - PicturePath = mark != null ? mark.PicturePath : string.Empty, + PicturePath = picturePath, + QuestinonAnswer = questionAnswer, + QuestionName = questionName, QuestionAnswerList = taskQuestionAnswerList.Join(quesionList, t => t.ReadingQuestionTrialId, u => u.QuestionId, @@ -3363,6 +3386,18 @@ namespace IRaCIS.Core.Infra.EFCore.Common var generalId = IdentifierHelper.CreateGuid(entity.VisitTaskId.ToString(), entity.QuestionId.ToString(), entity.RowId.ToString(), entity.TableQuestionId.ToString(), "ReadingTableQuestionAnswer"); var rowMark = await _dbContext.ReadingTableAnswerRowInfo.Where(x => x.Id == entity.RowId).Select(x => x.RowMark).FirstOrDefaultAsync(); + + var markList = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionMark)).Select(x => x.Entity as ReadingTaskQuestionMark).ToList(); + + + var mark = markList.Where(x => x.RowId== entity.RowId&&x.TableQuestionId==entity.TableQuestionId).FirstOrDefault(); + var markName = string.Empty; + if (mark != null) + { + markName = mark.OrderMarkName; + } + + await InsertInspection(entity, type, x => new InspectionConvertDTO() { VisitTaskId = entity.VisitTaskId, @@ -3372,6 +3407,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common }, new { + MarkName = markName, + PicturePath = mark != null ? mark.PicturePath : string.Empty, QuestionName = questionName, RowMark = rowMark, TableQuestionName = tableQuestionName,