修改
continuous-integration/drone/push Build is passing Details

Test_HIR_Net8
he 2025-09-25 16:55:37 +08:00
parent 9b3e4194a9
commit 5b08640a02
9 changed files with 117 additions and 86 deletions

View File

@ -1,4 +1,5 @@
using DocumentFormat.OpenXml.Wordprocessing;
using IRaCIS.Core.Infra.EFCore.Common;
using MassTransit.Caching.Internals;
using System;
using System.Collections;
@ -522,7 +523,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
get
{
return VisitTargetInfoList.Sum(x => x.VisitLength);
return VisitTargetInfoList.Sum(x => x.VisitLength.IsNullOrEmptyReturn0());
}
}
@ -618,7 +619,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
/// <summary>
/// 长度
/// </summary>
public decimal? VisitLength { get; set; }
public string VisitLength { get; set; }
}

View File

@ -151,10 +151,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
OverallResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.Tumor),
DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName,
SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id),
NewVisitTargetInfoList = getLesionInfo(LesionType.NewTargetLesion, x.Id),
NewNoVisitTargetInfoList = getLesionInfo(LesionType.NewNonTargetLesion, x.Id),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id,1),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id,1),
NewVisitTargetInfoList = getLesionInfo(LesionType.NewTargetLesion, x.Id,1),
NewNoVisitTargetInfoList = getLesionInfo(LesionType.NewNonTargetLesion, x.Id,1),
}).OrderBy(x => x.VisitNum).ToList();
@ -203,7 +203,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
return targetInfo;
}
decimal getStateInfo(Guid visitTaskid, decimal item, LesionType lesionType)
// 靶病灶和新靶病灶取长度 其他病灶取状态
string getStateInfo(Guid visitTaskid, decimal item, LesionType lesionType)
{
// 非淋巴结取长径 淋巴结取长短径
var state = _generalCalculateService.GetTaskTableAnswer(tableAnswerList, dictionList, unitDictionary, visitTaskid, lesionType, QuestionMark.State, item);
@ -214,19 +215,25 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var result = string.Empty;
if (!majorAxis.IsNullOrEmpty())
switch (lesionType)
{
result = majorAxis;
case LesionType.TargetLesion:
case LesionType.NewTargetLesion:
if (!majorAxis.IsNullOrEmpty())
{
result = majorAxis;
}
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
break;
default:
result = state;
break;
}
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
return result.IsNullOrEmptyReturn0();
return result;
}
#endregion

View File

@ -1,4 +1,5 @@
using DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.MsForms;
using DocumentFormat.OpenXml.Drawing.Charts;
using DocumentFormat.OpenXml.Office.SpreadSheetML.Y2023.MsForms;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Helper;
@ -101,13 +102,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
OverallResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.Tumor),
DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName,
SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id, 1),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id, 1),
}).OrderBy(x => x.VisitNum).ToList();
#region 两个函数
List<VisitLesionInfo> getLesionInfo(LesionType lesionType, Guid Visittaskid)
List<VisitLesionInfo> getLesionInfo(LesionType lesionType, Guid Visittaskid, int? minNum = null)
{
var targetFocus = rowinfoList.Where(x => x.VisitTaskId == Visittaskid && x.ReadingQuestionTrial.LesionType == lesionType).OrderBy(x => x.RowIndex).ToList();
@ -142,24 +143,25 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
num++;
}
//if (lesionType == LesionType.TargetLesion)
//{
// for (int i = num; i <= 5; i++)
// {
// VisitLesionInfo target = new VisitLesionInfo
// {
// Number = i,
// };
// targetInfo.Add(target);
// }
if (minNum != null)
{
for (int i = num; i <= minNum.Value; i++)
{
VisitLesionInfo target = new VisitLesionInfo
{
Number = i,
};
targetInfo.Add(target);
//}
}
}
return targetInfo;
}
decimal getStateInfo(Guid visitTaskid, decimal item, LesionType lesionType)
// 靶病灶和新靶病灶取长度 其他病灶取状态
string getStateInfo(Guid visitTaskid, decimal item, LesionType lesionType)
{
// 非淋巴结取长径 淋巴结取长短径
var state = _generalCalculateService.GetTaskTableAnswer(tableAnswerList, dictionList, unitDictionary, visitTaskid, lesionType, QuestionMark.State, item);
@ -170,19 +172,25 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var result = string.Empty;
if (!majorAxis.IsNullOrEmpty())
switch (lesionType)
{
result = majorAxis;
case LesionType.TargetLesion:
case LesionType.NewTargetLesion:
if (!majorAxis.IsNullOrEmpty())
{
result = majorAxis;
}
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
break;
default:
result = state;
break;
}
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
return result.IsNullOrEmptyReturn0();
return result;
}
#endregion

View File

@ -116,13 +116,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
OverallResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.Tumor),
DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName,
SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion,x.Id),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion,x.Id,1),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id,1),
}).OrderBy(x=>x.VisitNum).ToList();
#region 两个函数
List<VisitLesionInfo> getLesionInfo(LesionType lesionType,Guid Visittaskid)
List<VisitLesionInfo> getLesionInfo(LesionType lesionType,Guid Visittaskid, int? minNum = null)
{
var targetFocus = rowinfoList.Where(x => x.VisitTaskId == Visittaskid && x.ReadingQuestionTrial.LesionType == lesionType).OrderBy(x => x.RowIndex).ToList();
@ -149,47 +149,55 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
num++;
}
//if (lesionType == LesionType.TargetLesion)
//{
// for (int i = num; i <= 5; i++)
// {
// VisitLesionInfo target = new VisitLesionInfo
// {
// Number = i,
// };
// targetInfo.Add(target);
if (minNum != null)
{
for (int i = num; i <= minNum.Value; i++)
{
VisitLesionInfo target = new VisitLesionInfo
{
Number = i,
};
targetInfo.Add(target);
// }
}
//}
}
return targetInfo;
}
decimal getStateInfo(Guid visitTaskid, decimal item, LesionType lesionType)
// 靶病灶和新靶病灶取长度 其他病灶取状态
string getStateInfo(Guid visitTaskid, decimal item, LesionType lesionType)
{
// 非淋巴结取长径 淋巴结取长短径
var state = _generalCalculateService.GetTaskTableAnswer(tableAnswerList, dictionList, unitDictionary, visitTaskid, lesionType, QuestionMark.State, item);
var majorAxis = _generalCalculateService.GetTaskTableAnswer(tableAnswerList, dictionList, unitDictionary, visitTaskid, lesionType, QuestionMark.MajorAxis, item,false);
var majorAxis = _generalCalculateService.GetTaskTableAnswer(tableAnswerList, dictionList, unitDictionary, visitTaskid, lesionType, QuestionMark.MajorAxis, item, false);
var isLymph = _generalCalculateService.GetTaskTableAnswer(tableAnswerList, dictionList, unitDictionary, visitTaskid, lesionType, QuestionMark.IsLymph, item);
var shortAxis = _generalCalculateService.GetTaskTableAnswer(tableAnswerList, dictionList, unitDictionary, visitTaskid, lesionType, QuestionMark.ShortAxis, item, false);
var result = string.Empty;
if (!majorAxis.IsNullOrEmpty())
switch (lesionType)
{
result = majorAxis;
case LesionType.TargetLesion:
case LesionType.NewTargetLesion:
if (!majorAxis.IsNullOrEmpty())
{
result = majorAxis;
}
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
break;
case LesionType.NonTargetLesions:
case LesionType.NewNonTargetLesion:
result = state;
break;
}
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
return result.IsNullOrEmptyReturn0();
return result;
}
#endregion

View File

@ -112,8 +112,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
OverallResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.Tumor),
DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName,
SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id,1),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id,1),
}).OrderBy(x => x.VisitNum).ToList();
@ -162,7 +162,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
return targetInfo;
}
decimal getStateInfo(Guid visitTaskid, decimal item, LesionType lesionType)
// 靶病灶和新靶病灶取长度 其他病灶取状态
string getStateInfo(Guid visitTaskid, decimal item, LesionType lesionType)
{
// 非淋巴结取长径 淋巴结取长短径
var state = _generalCalculateService.GetTaskTableAnswer(tableAnswerList, dictionList, unitDictionary, visitTaskid, lesionType, QuestionMark.State, item);
@ -173,19 +174,25 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var result = string.Empty;
if (!majorAxis.IsNullOrEmpty())
switch (lesionType)
{
result = majorAxis;
case LesionType.TargetLesion:
case LesionType.NewTargetLesion:
if (!majorAxis.IsNullOrEmpty())
{
result = majorAxis;
}
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
break;
default:
result = state;
break;
}
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
return result.IsNullOrEmptyReturn0();
return result;
}
#endregion