From 5d15ae6fe34c4c922c98b1dddc6271e87d45eafa Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Thu, 18 Dec 2025 14:43:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A8=BD=E6=9F=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingNoDicomTaskService.cs | 43 +++++++++++++------ .../Common/AuditingData.cs | 33 +++++++++++++- 2 files changed, 61 insertions(+), 15 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs index 8c038ec6b..bafe2311c 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingNoDicomTaskService.cs @@ -1,10 +1,15 @@ using Amazon.Runtime.Internal.Auth; +using DocumentFormat.OpenXml.Drawing.Spreadsheet; +using DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.MsForms; +using DocumentFormat.OpenXml.Office2010.Excel; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.ViewModel; +using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infra.EFCore.Common; +using IRaCIS.Core.Infra.EFCore.Migrations; using MassTransit; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; @@ -99,22 +104,34 @@ namespace IRaCIS.Core.Application.Service await _readingNoneDicomMarkRepository.AddAsync(mark); } - await _readingNoneDicomMarkBindingRepository.BatchDeleteNoTrackingAsync(x => - x.VisitTaskId == inDto.VisitTaskId && + + var binding = await _readingNoneDicomMarkBindingRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.QuestionId == inDto.QuestionId && x.RowId == inDto.RowId && - x.TableQuestionId == inDto.TableQuestionId); - - await _readingNoneDicomMarkBindingRepository.AddAsync(new ReadingNoneDicomMarkBinding() + x.TableQuestionId == inDto.TableQuestionId).FirstOrDefaultAsync(); + if (binding == null) { - Id = NewId.NextGuid(), - VisitTaskId = inDto.VisitTaskId, - QuestionId = inDto.QuestionId, - RowId = inDto.RowId, - TableQuestionId = inDto.TableQuestionId, - NoneDicomMarkId = mark.Id, - MarkId = mark.MarkId - }); + await _readingNoneDicomMarkBindingRepository.AddAsync(new ReadingNoneDicomMarkBinding() + { + Id = NewId.NextGuid(), + VisitTaskId = inDto.VisitTaskId, + QuestionId = inDto.QuestionId, + RowId = inDto.RowId, + TableQuestionId = inDto.TableQuestionId, + NoneDicomMarkId = mark.Id, + MarkId = mark.MarkId + }); + } + else + { + await _readingNoneDicomMarkBindingRepository.UpdatePartialFromQueryAsync(binding.Id,x=> new ReadingNoneDicomMarkBinding() + { + NoneDicomMarkId = mark.Id, + MarkId = mark.MarkId + }); + } + + diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs index 8025900a9..e1975b1dd 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs @@ -3643,7 +3643,33 @@ namespace IRaCIS.Core.Infra.EFCore.Common var type = GetEntityAuditOpt(item); var entity = item.Entity as ReadingNoneDicomMarkBinding; + var selfDefineIdentification = string.Empty; + switch (type) + { + case "Add": + selfDefineIdentification = "SaveTaskQuestion/-10/ReadingTaskQuestionAnswer/Add/AddMark"; + break; + case "Update": + selfDefineIdentification = "SaveTaskQuestion/-10/ReadingTaskQuestionAnswer/Add/UpdateMark"; + break; + case "Deleted": + selfDefineIdentification = "SaveTaskQuestion/-10/ReadingTaskQuestionAnswer/Add/DeleteMark"; + break; + } + var answer = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)).FirstOrDefault(); + + var mark= entitys.Where(x => x.Entity.GetType() == typeof(ReadingNoneDicomMark)).Select(x=>x.Entity as ReadingNoneDicomMark).FirstOrDefault(); + if (mark == null) + { + mark = await _dbContext.ReadingNoneDicomMark.Where(x => x.Id == entity.NoneDicomMarkId).FirstOrDefaultAsync(); + + } + var QuestionName = string.Empty; + if (answer != null) + { + QuestionName= _dbContext.ReadingQuestionTrial.Where(x => x.Id == (answer.Entity as ReadingTaskQuestionAnswer).ReadingQuestionTrialId).Select(x => _userInfo.IsEn_Us ? x.QuestionEnName : x.QuestionName).FirstOrDefault(); + } //var selfDefineIdentification = "ReadingImageTask/submitCustomTag/ReadingTaskQuestionMark/"; //if (type == "Deleted") //{ @@ -3652,11 +3678,14 @@ namespace IRaCIS.Core.Infra.EFCore.Common await InsertInspection(entity, type, x => new InspectionConvertDTO() { - //SelfDefineIdentification = selfDefineIdentification + type + SelfDefineIdentification = selfDefineIdentification, }, new { - + MarkName= mark==null|| type== "Deleted" ? string.Empty: mark.OrderMarkName, + PicturePath= mark == null ? string.Empty : mark.PicturePath, + QuestionName = QuestionName, + QuestinonAnswer= answer==null?string.Empty:(answer.Entity as ReadingTaskQuestionAnswer).Answer }); }