Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing Details

Test_IRC_Net8
he 2025-12-02 11:27:15 +08:00
commit 55882aa0ba
4 changed files with 436 additions and 396 deletions

View File

@ -390,9 +390,17 @@ public class IVUS_OCTExportService(IRepository<ReadingQuestionCriterionTrial> _r
{ {
var ivus = _mapper.Map<IvusExportDto>(task); var ivus = _mapper.Map<IvusExportDto>(task);
//靶段
ivus.TARGETV = task.QuestionAnswerList.Where(t => t.QuestionName == "靶段").FirstOrDefault()?.QuestionValue ?? string.Empty;
//靶段
ivus.TARGETV = task.QuestionAnswerList.Where(t => t.QuestionType == QuestionType.TargetSegment).FirstOrDefault()?.QuestionValue ?? string.Empty;
var marks = task.QuestionAnswerList.Where(t => t.QuestionType == QuestionType.TargetSegmentRemarks).FirstOrDefault()?.QuestionValue ?? string.Empty;
if (marks.IsNotNullOrEmpty())
{
ivus.TARGETV = ivus.TARGETV + "_" + marks;
}
//斑块编号 //斑块编号
ivus.PLAQUE = lesion.LessionAnswerList.Where(t => t.QuestionMark == QuestionMark.PlaqueNumber).FirstOrDefault()?.QuestionValue ?? string.Empty; ivus.PLAQUE = lesion.LessionAnswerList.Where(t => t.QuestionMark == QuestionMark.PlaqueNumber).FirstOrDefault()?.QuestionValue ?? string.Empty;
@ -407,10 +415,10 @@ public class IVUS_OCTExportService(IRepository<ReadingQuestionCriterionTrial> _r
//回撤中的图像帧数 //回撤中的图像帧数
ivus.PFC = task.QuestionAnswerList.Where(t => t.QuestionName == "回撤中的图像帧数").FirstOrDefault()?.QuestionValue ?? string.Empty; ivus.PFC = task.QuestionAnswerList.Where(t => t.QuestionType == QuestionType.PullbackFrameCount).FirstOrDefault()?.QuestionValue ?? string.Empty;
//分析图像帧数 //分析图像帧数
ivus.FC = task.QuestionAnswerList.Where(t => t.QuestionName == "分析图像帧数").FirstOrDefault()?.QuestionValue ?? string.Empty; ivus.FC = task.QuestionAnswerList.Where(t => t.QuestionType == QuestionType.AnalysisFrameCount).FirstOrDefault()?.QuestionValue ?? string.Empty;
var findStatLession = task.LesionList.FirstOrDefault(t => t.LessionType == LesionType.PatchDataStatistics && t.LessionAnswerList.Any(t => t.QuestionMark == QuestionMark.PlaqueNumber && t.QuestionValue == ivus.PLAQUE)); var findStatLession = task.LesionList.FirstOrDefault(t => t.LessionType == LesionType.PatchDataStatistics && t.LessionAnswerList.Any(t => t.QuestionMark == QuestionMark.PlaqueNumber && t.QuestionValue == ivus.PLAQUE));
var findPAVLession = task.LesionList.FirstOrDefault(t => t.LessionType == LesionType.PAV && t.LessionAnswerList.Any(t => t.QuestionMark == QuestionMark.PlaqueNumber && t.QuestionValue == ivus.PLAQUE)); var findPAVLession = task.LesionList.FirstOrDefault(t => t.LessionType == LesionType.PAV && t.LessionAnswerList.Any(t => t.QuestionMark == QuestionMark.PlaqueNumber && t.QuestionValue == ivus.PLAQUE));
@ -632,7 +640,16 @@ public class IVUS_OCTExportService(IRepository<ReadingQuestionCriterionTrial> _r
//靶段 //靶段
oct.TARGETV = task.QuestionAnswerList.Where(t => t.QuestionName == "靶段").FirstOrDefault()?.QuestionValue ?? string.Empty; //靶段
oct.TARGETV = task.QuestionAnswerList.Where(t => t.QuestionType == QuestionType.TargetSegment).FirstOrDefault()?.QuestionValue ?? string.Empty;
var marks = task.QuestionAnswerList.Where(t => t.QuestionType == QuestionType.TargetSegmentRemarks).FirstOrDefault()?.QuestionValue ?? string.Empty;
if (marks.IsNotNullOrEmpty())
{
oct.TARGETV = oct.TARGETV + "_" + marks;
}
//斑块编号 //斑块编号
oct.PLAQUE = pNo; oct.PLAQUE = pNo;

View File

@ -660,7 +660,7 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
} }
else else
{ {
if (questionAnswer.ValueType == ValueOfType.Percentage) if (questionAnswer.ValueType == ValueOfType.Percentage && double.TryParse(questionAnswer.QuestionValue, out _))
{ {
tr.OriginalMeasurements = questionAnswer.QuestionValue + "%"; tr.OriginalMeasurements = questionAnswer.QuestionValue + "%";
@ -699,7 +699,7 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
} }
else if (criterion.CriterionType == CriterionType.Lugano2014) else if (criterion.CriterionType == CriterionType.Lugano2014)
{ {
trValueTypeIndex = Get_Lugano_RS_VisitFixed_Index(task, questionAnswer); rsValueTypeIndex = Get_Lugano_RS_VisitFixed_Index(task, questionAnswer);
rsValueList = Lugano_RSFixed.RSValueList; rsValueList = Lugano_RSFixed.RSValueList;
} }
@ -721,7 +721,9 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
rs.RespondEfficacyAssessment = questionAnswer.QuestionValue; rs.RespondEfficacyAssessment = questionAnswer.QuestionValue;
} }
if (questionAnswer.QuestionType == QuestionType.Tumor) if ((questionAnswer.QuestionType == QuestionType.Tumor && criterion.CriterionType == CriterionType.RECIST1Point1)||
(questionAnswer.QuestionType == QuestionType.ImgOncology && criterion.CriterionType == CriterionType.Lugano2014))
{ {
rs.AssessmentReason = task.VisitNote; rs.AssessmentReason = task.VisitNote;
@ -1277,7 +1279,7 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
case QuestionType.NoTargetLesion: case QuestionType.NoTargetLesion:
rsValueTypeIndex = 1; rsValueTypeIndex = 1;
break; break;
case QuestionType.NewLesions: case QuestionType.NewLesionEvaluation:
rsValueTypeIndex = 2; rsValueTypeIndex = 2;
break; break;
@ -1308,7 +1310,7 @@ public class Tumor_CDISC_ExportService(IRepository<ReadingQuestionCriterionTrial
break; break;
case QuestionType.Tumor: case QuestionType.Tumor:
rsValueTypeIndex = 3; rsValueTypeIndex = 9;
break; break;
} }

View File

@ -2884,6 +2884,26 @@ public enum SUVChangeVSBaseline
/// </summary> /// </summary>
Plaque3MinFCT = 1008, Plaque3MinFCT = 1008,
/// <summary>
/// 靶段
/// </summary>
TargetSegment = 1009,
/// <summary>
/// 回撤中的图像帧数
/// </summary>
PullbackFrameCount = 1010,
/// <summary>
/// 分析图像帧数
/// </summary>
AnalysisFrameCount = 1011,
/// <summary>
/// 靶段 备注
/// </summary>
TargetSegmentRemarks = 1012,
/// <summary> /// <summary>
/// 脂肪分数总平均值 /// 脂肪分数总平均值
/// </summary> /// </summary>

View File

@ -76,11 +76,12 @@ namespace IRaCIS.Core.Infrastructure.Extention
foreach (PropertyInfo property in properties) foreach (PropertyInfo property in properties)
{ {
if (typeof(IEnumerable).IsAssignableFrom(property.PropertyType) //质控导出需要集合
&& property.PropertyType != typeof(string)) // if (typeof(IEnumerable).IsAssignableFrom(property.PropertyType)
{ //&& property.PropertyType != typeof(string))
continue; // {
} // continue;
// }
string propertyName = property.Name; string propertyName = property.Name;
object propertyValue = property.GetValue(obj); object propertyValue = property.GetValue(obj);