修改
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 DocumentFormat.OpenXml.Wordprocessing;
using IRaCIS.Core.Infra.EFCore.Common;
using MassTransit.Caching.Internals; using MassTransit.Caching.Internals;
using System; using System;
using System.Collections; using System.Collections;
@ -522,7 +523,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{ {
get 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>
/// 长度 /// 长度
/// </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), OverallResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.Tumor),
DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName, DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName,
SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"), SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id), VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id,1),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id), VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id,1),
NewVisitTargetInfoList = getLesionInfo(LesionType.NewTargetLesion, x.Id), NewVisitTargetInfoList = getLesionInfo(LesionType.NewTargetLesion, x.Id,1),
NewNoVisitTargetInfoList = getLesionInfo(LesionType.NewNonTargetLesion, x.Id), NewNoVisitTargetInfoList = getLesionInfo(LesionType.NewNonTargetLesion, x.Id,1),
}).OrderBy(x => x.VisitNum).ToList(); }).OrderBy(x => x.VisitNum).ToList();
@ -203,7 +203,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
return targetInfo; 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 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; 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;
} }
return result;
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
return result.IsNullOrEmptyReturn0();
} }
#endregion #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.Application.Contracts;
using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Helper; 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), OverallResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.Tumor),
DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName, DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName,
SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"), SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id), VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id, 1),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id), VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id, 1),
}).OrderBy(x => x.VisitNum).ToList(); }).OrderBy(x => x.VisitNum).ToList();
#region 两个函数 #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(); 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++; 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; 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 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; 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;
} }
return result;
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
return result.IsNullOrEmptyReturn0();
} }
#endregion #endregion

View File

@ -116,13 +116,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
OverallResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.Tumor), OverallResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.Tumor),
DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName, DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName,
SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"), SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion,x.Id), VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion,x.Id,1),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id), VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id,1),
}).OrderBy(x=>x.VisitNum).ToList(); }).OrderBy(x=>x.VisitNum).ToList();
#region 两个函数 #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(); 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++; num++;
} }
//if (lesionType == LesionType.TargetLesion) if (minNum != null)
//{ {
// for (int i = num; i <= 5; i++) for (int i = num; i <= minNum.Value; i++)
// { {
// VisitLesionInfo target = new VisitLesionInfo VisitLesionInfo target = new VisitLesionInfo
// { {
// Number = i, Number = i,
// }; };
// targetInfo.Add(target); targetInfo.Add(target);
// } }
//} }
return targetInfo; 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 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 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 shortAxis = _generalCalculateService.GetTaskTableAnswer(tableAnswerList, dictionList, unitDictionary, visitTaskid, lesionType, QuestionMark.ShortAxis, item, false);
var result = string.Empty; 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;
} }
return result;
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
return result.IsNullOrEmptyReturn0();
} }
#endregion #endregion

View File

@ -112,8 +112,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
OverallResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.Tumor), OverallResult = _generalCalculateService.GetTaskanswer(answerList, dictionList, unitDictionary, x.Id, QuestionType.Tumor),
DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName, DoctorName = x.DoctorUser.LastName + x.DoctorUser.FirstName,
SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"), SignTime = x.SignTime?.ToString("yyyy-MM-dd HH:mm:ss"),
VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id), VisitTargetInfoList = getLesionInfo(LesionType.TargetLesion, x.Id,1),
VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id), VisitNoTargetInfoList = getLesionInfo(LesionType.NonTargetLesions, x.Id,1),
}).OrderBy(x => x.VisitNum).ToList(); }).OrderBy(x => x.VisitNum).ToList();
@ -162,7 +162,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
return targetInfo; 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 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; 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;
} }
return result;
if (isLymph.EqEnum(YesOrNoOrNa.Yes) && !shortAxis.IsNullOrEmpty())
{
result = shortAxis;
}
return result.IsNullOrEmptyReturn0();
} }
#endregion #endregion