diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
index 3856305be..c29e64420 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs
@@ -323,12 +323,24 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid QuestionId { get; set; }
- public Guid MainRowId { get; set; }
-
+
+ ///
+ /// 融合的病灶
+ ///
public Guid MergeRowId { get; set; }
+ ///
+ /// 融向的病灶
+ ///
+ public List MeltingInToLesionList { get; set; }
- }
+ ///
+ /// 融合后病灶状态
+ ///
+ public string LesionState { get; set; }
+
+
+ }
public class SplitLesionInDto
{
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
index f4cea5994..c4f9fb605 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs
@@ -1467,52 +1467,21 @@ namespace IRaCIS.Application.Services
{
await VerifyTaskIsSign(inDto.VisitTaskId);
await this.VerifyIsBaseLineTask(inDto.VisitTaskId);
-
- var rowsInfo = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && (x.Id == inDto.MainRowId || x.Id == inDto.MergeRowId)).ToListAsync();
-
- if (rowsInfo.Count != 2)
+ var mergeRow =await _readingTableAnswerRowInfoRepository.Where(x => x.Id == inDto.MergeRowId).FirstNotNullAsync();
+ if (inDto.LesionState != string.Empty)
{
- throw new BusinessValidationFailedException(_localizer["ReadingImage_NotaTask"]);
- }
-
-
- var minaid = rowsInfo.Where(x => x.Id == inDto.MainRowId).Select(x => x.Id).FirstOrDefault();
- var mergeid = rowsInfo.Where(x => x.Id == inDto.MergeRowId).Select(x => x.Id).FirstOrDefault();
-
- List needRemoveMark = new List()
+ await _readingTableQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.RowId == mergeRow.Id && x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State, x => new ReadingTableQuestionAnswer()
+ {
+ Answer = inDto.LesionState,
+ });
+ }
+
+ await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(inDto.MergeRowId, x => new ReadingTableAnswerRowInfo()
{
- QuestionMark.MajorAxis,
- QuestionMark.ShortAxis,
- };
-
- var mainAnswer = await _readingTableQuestionAnswerRepository.Where(x => x.RowId == minaid).Include(x => x.ReadingTableQuestionTrial).ToListAsync();
-
- foreach (var item in mainAnswer)
- {
- await _readingTableQuestionAnswerRepository.BatchUpdateNoTrackingAsync(x => x.RowId == mergeid && x.TableQuestionId == item.TableQuestionId, x => new ReadingTableQuestionAnswer()
- {
- Answer = needRemoveMark.Contains(item.ReadingTableQuestionTrial.QuestionMark) ? string.Empty : item.Answer,
- });
- }
-
-
-
- await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(mergeid, x => new ReadingTableAnswerRowInfo()
- {
- MergeRowId = minaid,
+ MeltingInToLesion=JsonConvert.SerializeObject(inDto.MeltingInToLesionList),
SplitOrMergeType = SplitOrMergeType.Merge,
});
-
-
- await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(mergeid, x => new ReadingTableAnswerRowInfo()
- {
- MergeRowId = minaid,
- SplitOrMergeType = SplitOrMergeType.Merge,
- });
-
await _readingTableAnswerRowInfoRepository.SaveChangesAsync();
-
-
}
///
@@ -1545,6 +1514,7 @@ namespace IRaCIS.Application.Services
var result = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == rowinfo.VisitTaskId && x.QuestionId == rowinfo.QuestionId && x.Id != rowinfo.Id)
// 筛选状态
.Where(x => x.LesionAnswerList.Any(y => y.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && !needFilterState.Contains(y.Answer)))
+ .Where(x=>x.SplitOrMergeType!=SplitOrMergeType.Split&&x.SplitOrMergeType!=SplitOrMergeType.SplitMain)
.Select(x => new GetCanMergeLesionOutDto()
{
RowId = x.Id,
diff --git a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs
index 4670ad302..cca4d2d9c 100644
--- a/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs
+++ b/IRaCIS.Core.Domain/Reading/ReadingFormAnswer/ReadingTableAnswerRowInfo.cs
@@ -207,6 +207,24 @@ namespace IRaCIS.Core.Domain.Models
///
public string MarkTool { get; set; } = string.Empty;
+ ///
+ /// 融向的病灶
+ ///
+ public string MeltingInToLesion { get; set; } = "[]";
+
+ public List MeltingInToLesionList { get {
+
+ try
+ {
+ return JsonConvert.DeserializeObject>(this.MeltingInToLesion);
+ }
+ catch (Exception)
+ {
+
+ return new List();
+ }
+ } }
+
[JsonIgnore]
[ForeignKey("VisitTaskId")]