diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index c6c8c9ddb..c7b532d2f 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -325,19 +325,14 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// - /// 融合的病灶 + /// 融合的主病灶 /// - public Guid MergeRowId { get; set; } + public Guid MergeMainRowId { get; set; } /// - /// 融向的病灶 + /// 融合的病灶 /// - public List MeltingInToLesionList { get; set; } - - ///// - ///// 融合后病灶状态 - ///// - //public string LesionState { get; set; } + public List MergeRowIdList { get; set; } } diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 6e5d247f7..da36b8b6a 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -1364,7 +1364,7 @@ namespace IRaCIS.Application.Services answers.Add("RowIndex", x.ToString()); answers.Add("RowId", rowInfo==null?string.Empty: rowInfo.Id.ToString()); answers.Add("MarkTool", rowInfo.MarkTool); - answers.Add("MeltingInToLesionMarks", rowInfo.MeltingInToLesionMarks); + answers.Add("MergeLesionMark", rowInfo.MergeLesionMark); answers.Add("StudyId", rowInfo.StudyId.ToString()); answers.Add("OrganInfoId", rowInfo.OrganInfoId.ToString()); answers.Add("IsFristAdd", (rowInfo.FristAddTaskId== TaskId).ToString()); @@ -1468,11 +1468,9 @@ namespace IRaCIS.Application.Services { await VerifyTaskIsSign(inDto.VisitTaskId); await this.VerifyIsBaseLineTask(inDto.VisitTaskId); - var mergeRow = await _readingTableAnswerRowInfoRepository.Where(x => x.Id == inDto.MergeRowId).FirstNotNullAsync(); + var mergeRow = await _readingTableAnswerRowInfoRepository.Where(x => x.Id == inDto.MergeMainRowId).Include(x => x.ReadingQuestionTrial).FirstNotNullAsync(); - var meltingRows = await _readingTableAnswerRowInfoRepository.Where(x => inDto.MeltingInToLesionList.Contains(x.Id)).Include(x => x.ReadingQuestionTrial).ToListAsync(); - - List marks = meltingRows.OrderBy(x => x.RowIndex).Select(x => x.ReadingQuestionTrial.OrderMark + x.RowIndex.GetLesionMark()).ToList(); + var mark = mergeRow.ReadingQuestionTrial.OrderMark + mergeRow.RowIndex.GetLesionMark(); await _readingTableQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.RowId == mergeRow.Id && x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State, x => new ReadingTableQuestionAnswer() { @@ -1480,11 +1478,10 @@ namespace IRaCIS.Application.Services }); - await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(inDto.MergeRowId, x => new ReadingTableAnswerRowInfo() + await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x=> inDto.MergeRowIdList.Contains(x.Id), x => new ReadingTableAnswerRowInfo() { - MeltingInToLesion = JsonConvert.SerializeObject(inDto.MeltingInToLesionList), - MeltingInToLesionMarks = string.Join(',', marks), - + MergeRowId=inDto.MergeMainRowId, + MergeLesionMark = mark, SplitOrMergeType = SplitOrMergeType.Merge, }) ; await _readingTableAnswerRowInfoRepository.SaveChangesAsync(); diff --git a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs index d919544ef..65944f3c5 100644 --- a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs +++ b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs @@ -207,29 +207,10 @@ namespace IRaCIS.Core.Domain.Models /// public string MarkTool { get; set; } = string.Empty; - /// - /// 融向的病灶 - /// - public string MeltingInToLesion { get; set; } = "[]"; - /// /// 融向病灶的名称 /// - public string MeltingInToLesionMarks { get; set; } = string.Empty; - - public List MeltingInToLesionList { get { - - try - { - return JsonConvert.DeserializeObject>(this.MeltingInToLesion); - } - catch (Exception) - { - - return new List(); - } - } } - + public string MergeLesionMark { get; set; } = string.Empty; [JsonIgnore] [ForeignKey("VisitTaskId")]