赋值分割

Uat_IRC_Net10
he 2026-07-08 14:42:20 +08:00
parent a0776e5462
commit 7e454467d1
2 changed files with 69 additions and 5 deletions

View File

@ -17537,17 +17537,17 @@
</member> </member>
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Question"> <member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Question">
<summary> <summary>
质疑 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</summary> </summary>
</member> </member>
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Consistency"> <member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Consistency">
<summary> <summary>
一致性核查 һ<EFBFBD><EFBFBD><EFBFBD>Ժ˲<EFBFBD>
</summary> </summary>
</member> </member>
<member name="T:IRaCIS.Core.Application.ViewModel.CopyFrontAuditConfigItemDto"> <member name="T:IRaCIS.Core.Application.ViewModel.CopyFrontAuditConfigItemDto">
<summary> <summary>
复制 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</summary> </summary>
</member> </member>
<member name="T:IRaCIS.Core.Application.ViewModel.SystemNoticeView"> <member name="T:IRaCIS.Core.Application.ViewModel.SystemNoticeView">

View File

@ -1,4 +1,5 @@
using DocumentFormat.OpenXml.Drawing.Spreadsheet; using Amazon.Runtime.Internal.Transform;
using DocumentFormat.OpenXml.Drawing.Spreadsheet;
using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Application.ViewModel;
@ -10,6 +11,7 @@ using MassTransit.Saga;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using MiniExcelLibs; using MiniExcelLibs;
using System.Collections.Immutable;
using System.Data; using System.Data;
using System.IO; using System.IO;
using System.Text; using System.Text;
@ -18,6 +20,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{ {
public class GeneralCalculateService(IRepository<ReadingTableQuestionAnswer> _readingTableQuestionAnswerRepository, public class GeneralCalculateService(IRepository<ReadingTableQuestionAnswer> _readingTableQuestionAnswerRepository,
IRepository<VisitTask> _visitTaskRepository, IRepository<VisitTask> _visitTaskRepository,
IRepository<Segmentation> _segmentationRepository,
IRepository<Segment> _segmentRepository,
IRepository<SegmentBinding> _segmentBindingRepository,
IRepository<ReadingTaskQuestionMark> _readingTaskQuestionMarkRepository, IRepository<ReadingTaskQuestionMark> _readingTaskQuestionMarkRepository,
IRepository<ReadingNoneDicomMark> _readingNoneDicomMarkRepository, IRepository<ReadingNoneDicomMark> _readingNoneDicomMarkRepository,
IRepository<ReadingNoneDicomMarkBinding> _readingNoneDicomMarkBindingRepository, IRepository<ReadingNoneDicomMarkBinding> _readingNoneDicomMarkBindingRepository,
@ -255,7 +261,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == historyTaskId).ToListAsync(); var questionMarkList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == historyTaskId).ToListAsync();
var noneDicomMarkList = await _readingNoneDicomMarkRepository.Where(x => x.VisitTaskId == historyTaskId).ToListAsync(); var noneDicomMarkList = await _readingNoneDicomMarkRepository.Where(x => x.VisitTaskId == historyTaskId).ToListAsync();
var noneDicomMarkBindingList = await _readingNoneDicomMarkBindingRepository.Where(x => x.VisitTaskId == historyTaskId).ToListAsync(); var noneDicomMarkBindingList = await _readingNoneDicomMarkBindingRepository.Where(x => x.VisitTaskId == historyTaskId).ToListAsync();
Dictionary<Guid, Guid> lesionRelationship = new Dictionary<Guid, Guid>() { };
foreach (var item in tableRowList) foreach (var item in tableRowList)
{ {
if (item.SplitOrMergeType == SplitOrMergeType.Merged) if (item.SplitOrMergeType == SplitOrMergeType.Merged)
@ -272,6 +278,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
if (historyRow != null) if (historyRow != null)
{ {
lesionRelationship.Add(historyRow.Id, item.Id);
item.StudyId = historyRow.StudyId; item.StudyId = historyRow.StudyId;
item.SeriesId = historyRow.SeriesId; item.SeriesId = historyRow.SeriesId;
item.InstanceId = historyRow.InstanceId; item.InstanceId = historyRow.InstanceId;
@ -380,6 +387,63 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
item.Id = NewId.NextGuid(); item.Id = NewId.NextGuid();
} }
#region 分割
Dictionary<Guid, Guid> segmentationRelationship = new Dictionary<Guid, Guid>() { };
var segmentationList = _segmentationRepository.Where(t => t.VisitTaskId == historyTaskId).ToList();
foreach (var item in segmentationList)
{
var newSegmentationId = NewId.NextSequentialGuid();
segmentationRelationship.Add(item.Id, newSegmentationId);
item.Id = newSegmentationId;
item.VisitTaskId = taskinfo.Id;
}
Dictionary<Guid, Guid> segmentRelationship = new Dictionary<Guid, Guid>() { };
var segmentList = _segmentRepository.Where(t => t.VisitTaskId == historyTaskId).ToList();
foreach (var item in segmentList)
{
var newSegmentationId = NewId.NextSequentialGuid();
segmentRelationship.Add(item.Id, newSegmentationId);
if (segmentationRelationship.ContainsKey(item.SegmentationId))
{
item.SegmentationId = segmentationRelationship[item.SegmentationId];
}
item.Id = newSegmentationId;
item.VisitTaskId = taskinfo.Id;
}
var segmentBindingList = _segmentBindingRepository.Where(x => x.VisitTaskId == historyTaskId).ToList();
foreach (var item in segmentBindingList)
{
if (segmentationRelationship.ContainsKey(item.SegmentationId))
{
item.SegmentationId = segmentationRelationship[item.SegmentationId];
}
if (segmentRelationship.ContainsKey(item.SegmentId))
{
item.SegmentId = segmentRelationship[item.SegmentId];
}
if (item.RowId != null && lesionRelationship.ContainsKey(item.RowId.Value))
{
item.RowId = lesionRelationship[item.RowId.Value];
}
item.Id = NewId.NextSequentialGuid();
item.VisitTaskId = taskinfo.Id;
}
_ = _segmentationRepository.AddRangeAsync(segmentationList).Result;
_ = _segmentRepository.AddRangeAsync(segmentList).Result;
_ = _segmentBindingRepository.AddRangeAsync(segmentBindingList).Result;
#endregion
await _readingNoneDicomMarkRepository.AddRangeAsync(noneDicomMarkList); await _readingNoneDicomMarkRepository.AddRangeAsync(noneDicomMarkList);