From e762da2bf5acde6958d65374f59b53f4c086bbcc Mon Sep 17 00:00:00 2001
From: he <109787524@qq.com>
Date: Mon, 27 Jul 2026 13:39:28 +0800
Subject: [PATCH] =?UTF-8?q?IUVS=E5=92=8COCT=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Reading/Dto/ReadingCalculateViewModel.cs | 15 +++++++
.../ReadingCalculate/IVUSCalculateService.cs | 41 ++++++++++++++++++-
.../ReadingCalculate/OCTCalculateService.cs | 41 +++++++++++++++----
IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs | 10 +++++
4 files changed, 98 insertions(+), 9 deletions(-)
diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs
index ae4150b5a..ff52940a3 100644
--- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs
@@ -238,6 +238,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
return this.Emm - this.Lumen;
}
}
+
+ ///
+ /// 斑块破裂
+ ///
+ public string PlaqueRupture { get; set; }
}
public class TemplateData
@@ -300,6 +305,16 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
///
public decimal? LipidAngle { get; set; }
+ ///
+ /// 斑块破裂
+ ///
+ public string PlaqueRupture { get; set; }
+
+ ///
+ /// 斑块愈合
+ ///
+ public string PlaqueHealing { get; set; }
+
public decimal? Avg
{
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs
index a8675ca71..4604158c4 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/IVUSCalculateService.cs
@@ -298,10 +298,10 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
//new ReadingCalculateData (){QuestionType=QuestionType.Plaque3PVA,GetDecimalNullFun=GetPlaque3PVA},
- // (EEM-Lumen)求和
+ // 获取EMM求和
new ReadingCalculateData (){QuestionType=QuestionType.EEMSum,GetDecimalNullFun=GetEmmSum},
- // 斑块2-PAV
+ // (EEM-Lumen)求和
new ReadingCalculateData (){QuestionType=QuestionType.EEMSubLumenSum,GetDecimalNullFun=GetEEMLumenSum},
// PAV(冠状动脉粥样硬化体积百分比)
@@ -494,6 +494,30 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
+ string getNone(string value)
+ {
+ if (value == string.Empty || value == null)
+ {
+ return "无";
+ }
+ else
+ {
+ return value;
+ }
+ }
+
+
+
+ Dictionary isPresent = new Dictionary()
+ {
+ { "有","1"},
+ { "无","0"},
+ { "Existence","1"},
+ { "Non-existence","0"},
+ { string.Empty,string.Empty},
+ };
+
+
List measuredValueList = new List();
var errorRow = new List { };
@@ -508,6 +532,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
FrameNumber = dataTable.Rows[i]["A"].ToString()??string.Empty,
Emm = getdecimalEmptyData(dataTable.Rows[i]["B"].ToString()),
Lumen = getdecimalEmptyData(dataTable.Rows[i]["C"].ToString()),
+ PlaqueRupture= getNone(dataTable.Rows[i]["D"].ToString()),
};
}
catch (Exception)
@@ -623,6 +648,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.ElasticAreaDiffValue).Select(x => x.Id).FirstOrDefault(),
});
+ // 斑块破裂
+ tableAnswers.Add(new ReadingTableQuestionAnswer()
+ {
+ Answer = isPresent[item.PlaqueRupture.ToString()],
+ QuestionId = questionInfo.Id,
+ TrialId = taskinfo.TrialId,
+ VisitTaskId = taskinfo.Id,
+ RowId = newRowId,
+ RowIndex = maxnum,
+ TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.PlaqueRupture).Select(x => x.Id).FirstOrDefault(),
+ });
+
// 添加其他问题答案
foreach (var otherQuestion in tableQuestionList.Where(x => !tableAnswers.Any(y => y.TableQuestionId == x.Id && y.RowId == newRowId)))
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs
index 05006fd3e..aeed5b0ae 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/OCTCalculateService.cs
@@ -355,15 +355,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
{
//PlaqueNum = int.Parse(dataTable.Rows[i]["A"].ToString()),
FrameNumber = dataTable.Rows[i]["A"].ToString() ?? string.Empty,
- FirstData = getdecimalEmptyData(dataTable.Rows[i]["B"].ToString()),
- SecondData = getdecimalEmptyData(dataTable.Rows[i]["C"].ToString()),
- ThirdData = getdecimalEmptyData(dataTable.Rows[i]["D"].ToString()),
- MacrophageInfiltrationMeasurement = getNone(dataTable.Rows[i]["E"].ToString()),
- MacrophageInfiltrationAngle = getdecimalEmptyData(dataTable.Rows[i]["F"].ToString() ?? string.Empty),
+ LumenAreaMeasurement = getdecimalEmptyData(dataTable.Rows[i]["B"].ToString()),
+ LipidAngle = getdecimalEmptyData(dataTable.Rows[i]["C"].ToString() ?? string.Empty),
+ FirstData = getdecimalEmptyData(dataTable.Rows[i]["D"].ToString()),
+ SecondData = getdecimalEmptyData(dataTable.Rows[i]["E"].ToString()),
+ ThirdData = getdecimalEmptyData(dataTable.Rows[i]["F"].ToString()),
MicrochannelMeasurement = getNone(dataTable.Rows[i]["G"].ToString()),
CholesterolCrystalMeasurement = getNone(dataTable.Rows[i]["H"].ToString()),
- LumenAreaMeasurement = getdecimalEmptyData(dataTable.Rows[i]["I"].ToString()),
- LipidAngle = getdecimalEmptyData(dataTable.Rows[i]["J"].ToString() ?? string.Empty),
+ MacrophageInfiltrationMeasurement = getNone(dataTable.Rows[i]["I"].ToString()),
+ MacrophageInfiltrationAngle = getdecimalEmptyData(dataTable.Rows[i]["J"].ToString() ?? string.Empty),
+ PlaqueRupture = getNone(dataTable.Rows[i]["K"].ToString()),
+ PlaqueHealing = getNone(dataTable.Rows[i]["L"].ToString()),
+
});
}
catch (Exception)
@@ -598,6 +601,30 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.LipidAngle).Select(x => x.Id).FirstOrDefault(),
});
+ // 斑块破裂
+ tableAnswers.Add(new ReadingTableQuestionAnswer()
+ {
+ Answer = isPresent[item.PlaqueRupture.ToString()],
+ QuestionId = questionInfo.Id,
+ TrialId = taskinfo.TrialId,
+ VisitTaskId = taskinfo.Id,
+ RowId = newRowId,
+ RowIndex = maxnum,
+ TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.PlaqueRupture).Select(x => x.Id).FirstOrDefault(),
+ });
+
+ // 斑块愈合
+ tableAnswers.Add(new ReadingTableQuestionAnswer()
+ {
+ Answer = isPresent[item.PlaqueHealing.ToString()],
+ QuestionId = questionInfo.Id,
+ TrialId = taskinfo.TrialId,
+ VisitTaskId = taskinfo.Id,
+ RowId = newRowId,
+ RowIndex = maxnum,
+ TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.PlaqueHealing).Select(x => x.Id).FirstOrDefault(),
+ });
+
}
catch (Exception)
{
diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
index 25312a064..2b7eea0f7 100644
--- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
+++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs
@@ -2518,6 +2518,16 @@ namespace IRaCIS.Core.Domain.Share
///
FrameNumber =1032,
+ ///
+ /// 斑块破裂
+ ///
+ PlaqueRupture = 1033,
+
+ ///
+ /// 斑块愈合
+ ///
+ PlaqueHealing = 1034,
+
///
/// 第一次测量
///