diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index e6e02aeb1..65270db0f 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -19,6 +19,7 @@ using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System.Linq; using System.Linq.Dynamic.Core; +using System.Threading.Tasks; using Subject = IRaCIS.Core.Domain.Models.Subject; namespace IRaCIS.Core.Application.Service.Allocation; @@ -46,6 +47,8 @@ public class VisitTaskService(IRepository _visitTaskRepository, IRepository _dicomSeriesRepository, IRepository _subjectCanceDoctorRepository, IRepository _readingTaskQuestionMarkRepository, + IRepository _readingNoneDicomMarkRepository, + IRepository _readingNoneDicomMarkBindingRepository, IRepository _readingTableAnswerRowInfoRepository, //IRepository _readingCustomTagRepository, IRepository _taskInfluenceRepository, @@ -2217,7 +2220,7 @@ public class VisitTaskService(IRepository _visitTaskRepository, } } - private void CopyForms(VisitTask newTask, VisitTask origenalTask) + private async Task CopyForms(VisitTask newTask, VisitTask origenalTask) { newTask.IsCopyLesionAnswer = true; //自定义 @@ -2308,9 +2311,37 @@ public class VisitTaskService(IRepository _visitTaskRepository, _ = _readingTableAnswerRowInfoRepository.AddRangeAsync(readingTableAnswerRowInfoList).Result; + var noneMarkList = await _readingNoneDicomMarkRepository.Where(x => x.VisitTaskId == origenalTask.Id).ToListAsync(); + + var noneMarkBindingList = await _readingNoneDicomMarkBindingRepository.Where(x => x.VisitTaskId == origenalTask.Id).ToListAsync(); + foreach (var item in noneMarkList) + { + var newid = NewId.NextSequentialGuid(); + item.MeasureData = item.MeasureData.Replace(origenalTask.Id.ToString(), newTask.Id.ToString()); + item.VisitTaskId = newTask.Id; + foreach (var item1 in noneMarkBindingList) + { + if (item1.NoneDicomMarkId == item.Id) + { + item1.NoneDicomMarkId = newid; + } + } + + item.Id = newid; + } + + + foreach (var item in noneMarkBindingList) + { + item.Id = NewId.NextSequentialGuid(); + item.VisitTaskId = newTask.Id; + } + + _ = _readingNoneDicomMarkRepository.AddRangeAsync(noneMarkList).Result; + _ = _readingNoneDicomMarkBindingRepository.AddRangeAsync(noneMarkBindingList).Result; } diff --git a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingNoneDicomMarkBinding.cs b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingNoneDicomMarkBinding.cs index 8ce8bd255..732382d0a 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingNoneDicomMarkBinding.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingNoneDicomMarkBinding.cs @@ -18,8 +18,14 @@ public class ReadingNoneDicomMarkBinding : BaseAddAuditEntity public Guid? TableQuestionId { get; set; } + /// + /// 这个是NoneDicom 的主键 + /// public Guid NoneDicomMarkId { get; set; } + /// + /// 这个是前端给的标记的Id + /// public Guid? MarkId { get; set; }