OCT IVUS 修改1
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
02a1ffe8b7
commit
991f1554ec
|
|
@ -8768,6 +8768,11 @@
|
|||
IVUS测量值导入
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.IVUSMeasuredValue.FrameNumber">
|
||||
<summary>
|
||||
帧数
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.IVUSMeasuredValue.Emm">
|
||||
<summary>
|
||||
外弹力膜面积Emm
|
||||
|
|
@ -8783,6 +8788,11 @@
|
|||
外弹力膜面积- 管腔面积
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.OCTFCTUploadData.FrameNumber">
|
||||
<summary>
|
||||
帧数
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.OCTFCTUploadData.FirstData">
|
||||
<summary>
|
||||
第一次
|
||||
|
|
|
|||
|
|
@ -213,20 +213,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
///// </summary>
|
||||
//public int PlaqueNum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 帧数
|
||||
/// </summary>
|
||||
public decimal? FrameNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 外弹力膜面积Emm
|
||||
/// </summary>
|
||||
public decimal Emm { get; set; }
|
||||
public decimal? Emm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管腔面积Lumen
|
||||
/// </summary>
|
||||
public decimal Lumen { get; set; }
|
||||
public decimal? Lumen { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 外弹力膜面积- 管腔面积
|
||||
/// </summary>
|
||||
public decimal EmmSubtractionLumen
|
||||
public decimal? EmmSubtractionLumen
|
||||
{
|
||||
get
|
||||
{
|
||||
|
|
@ -244,20 +249,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
|
||||
public class OCTFCTUploadData
|
||||
{
|
||||
/// <summary>
|
||||
/// 帧数
|
||||
/// </summary>
|
||||
public decimal? FrameNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 第一次
|
||||
/// </summary>
|
||||
public decimal FirstData { get; set; }
|
||||
public decimal? FirstData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 第二次
|
||||
/// </summary>
|
||||
public decimal SecondData { get; set; }
|
||||
public decimal? SecondData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 第三次
|
||||
/// </summary>
|
||||
public decimal ThirdData { get; set; }
|
||||
public decimal? ThirdData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 巨噬细胞浸润测量
|
||||
|
|
@ -291,7 +301,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public decimal? LipidAngle { get; set; }
|
||||
|
||||
|
||||
public decimal Avg { get {
|
||||
public decimal? Avg { get {
|
||||
|
||||
return ( FirstData + SecondData + ThirdData) / 3;
|
||||
} }
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ using IRaCIS.Core.Domain.Share;
|
|||
using IRaCIS.Core.Infra.EFCore.Common;
|
||||
using IRaCIS.Core.Infrastructure;
|
||||
using MassTransit;
|
||||
using MathNet.Numerics;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
|
@ -473,6 +474,33 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
return decimal.Parse(decimal.Round(decimal.Parse(value ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString()));
|
||||
};
|
||||
|
||||
|
||||
decimal? getdecimalEmptyData(string value)
|
||||
{
|
||||
if (value == string.Empty)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return decimal.Parse(decimal.Round(decimal.Parse(value ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString()));
|
||||
}
|
||||
|
||||
string getStringValue(decimal? value)
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
if (digitPlaces == -1)
|
||||
{
|
||||
return value.Value.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
return decimal.Round(value.Value, digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
List<IVUSMeasuredValue> measuredValueList = new List<IVUSMeasuredValue>();
|
||||
var errorRow = new List<int> { };
|
||||
|
||||
|
|
@ -484,8 +512,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
iVUSMeasuredValue = new IVUSMeasuredValue()
|
||||
{
|
||||
//PlaqueNum = int.Parse(dataTable.Rows[i]["A"].ToString()),
|
||||
Emm = getdecimalData(dataTable.Rows[i]["A"].ToString()),
|
||||
Lumen = getdecimalData(dataTable.Rows[i]["B"].ToString()),
|
||||
FrameNumber = getdecimalEmptyData(dataTable.Rows[i]["A"].ToString()),
|
||||
Emm = getdecimalEmptyData(dataTable.Rows[i]["B"].ToString()),
|
||||
Lumen = getdecimalEmptyData(dataTable.Rows[i]["C"].ToString()),
|
||||
};
|
||||
}
|
||||
catch (Exception)
|
||||
|
|
@ -553,22 +582,24 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
// TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.PlaqueNumber).Select(x => x.Id).FirstOrDefault(),
|
||||
//});
|
||||
|
||||
var emm = item.Emm.ToString();
|
||||
var lumen=item.Lumen.ToString();
|
||||
var emmSubtractionLumen = item.EmmSubtractionLumen.ToString();
|
||||
|
||||
if (taskinfo.TrialReadingCriterion.DigitPlaces != -1)
|
||||
{
|
||||
|
||||
emm = decimal.Round(decimal.Parse(emm ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
lumen = decimal.Round(decimal.Parse(lumen ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
emmSubtractionLumen = decimal.Round(decimal.Parse(emmSubtractionLumen ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
}
|
||||
|
||||
// EMM
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = emm,
|
||||
Answer = getStringValue(item.FrameNumber),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
RowId = newRowId,
|
||||
RowIndex = maxnum,
|
||||
TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.FrameNumber).Select(x => x.Id).FirstOrDefault(),
|
||||
});
|
||||
|
||||
// EMM
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = getStringValue(item.Emm),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
@ -579,7 +610,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = lumen,
|
||||
Answer = getStringValue(item.Lumen),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
@ -590,7 +621,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = emmSubtractionLumen,
|
||||
Answer = getStringValue(item.EmmSubtractionLumen),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
|
|||
|
|
@ -354,15 +354,16 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
measuredValueList.Add(new OCTFCTUploadData()
|
||||
{
|
||||
//PlaqueNum = int.Parse(dataTable.Rows[i]["A"].ToString()),
|
||||
FirstData = getdecimalData(dataTable.Rows[i]["A"].ToString()),
|
||||
SecondData = getdecimalData(dataTable.Rows[i]["B"].ToString()),
|
||||
ThirdData = getdecimalData(dataTable.Rows[i]["C"].ToString()),
|
||||
MacrophageInfiltrationMeasurement = getNone(dataTable.Rows[i]["D"].ToString()),
|
||||
MacrophageInfiltrationAngle = getdecimalEmptyData(dataTable.Rows[i]["E"].ToString() ?? string.Empty),
|
||||
MicrochannelMeasurement = getNone(dataTable.Rows[i]["F"].ToString()),
|
||||
CholesterolCrystalMeasurement = getNone(dataTable.Rows[i]["G"].ToString()),
|
||||
LumenAreaMeasurement = getdecimalData(dataTable.Rows[i]["H"].ToString()),
|
||||
LipidAngle = getdecimalEmptyData(dataTable.Rows[i]["I"].ToString() ?? string.Empty),
|
||||
FrameNumber = getdecimalEmptyData(dataTable.Rows[i]["A"].ToString()),
|
||||
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),
|
||||
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),
|
||||
});
|
||||
}
|
||||
catch (Exception)
|
||||
|
|
@ -463,19 +464,24 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
// TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.PlaqueNumber).Select(x => x.Id).FirstOrDefault(),
|
||||
//});
|
||||
|
||||
var avg = item.Avg.ToString();
|
||||
|
||||
|
||||
if (taskinfo.TrialReadingCriterion.DigitPlaces != -1)
|
||||
// 帧数
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
avg = decimal.Round(decimal.Parse(avg ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
Answer = item.FrameNumber.DecimalNullToString(digitPlaces),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
RowId = newRowId,
|
||||
RowIndex = maxnum,
|
||||
TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.FrameNumber).Select(x => x.Id).FirstOrDefault(),
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 第一次
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = item.FirstData.ToString(),
|
||||
Answer = item.FirstData.DecimalNullToString(digitPlaces),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
@ -486,7 +492,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = item.SecondData.ToString(),
|
||||
Answer = item.SecondData.DecimalNullToString(digitPlaces),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
@ -497,7 +503,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = item.ThirdData.ToString(),
|
||||
Answer = item.ThirdData.DecimalNullToString(digitPlaces),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
@ -508,7 +514,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = avg,
|
||||
Answer = item.Avg.DecimalNullToString(digitPlaces),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
|
|||
|
|
@ -2468,6 +2468,11 @@ namespace IRaCIS.Core.Domain.Share
|
|||
/// </summary>
|
||||
PlaqueToOstiumDistance = 1031,
|
||||
|
||||
/// <summary>
|
||||
/// 帧数
|
||||
/// </summary>
|
||||
FrameNumber =1032,
|
||||
|
||||
/// <summary>
|
||||
/// 第一次测量
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -131,6 +131,23 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
}
|
||||
}
|
||||
|
||||
public static string DecimalNullToString (this decimal? value,int ? digitPlaces)
|
||||
{
|
||||
digitPlaces = digitPlaces ?? 0;
|
||||
if (value==null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
if (digitPlaces == -1)
|
||||
{
|
||||
return value.Value.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
return decimal.Round(value.Value, digitPlaces.Value, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public static Dictionary<ReadingCategory, decimal> TaskNumDic = new Dictionary<ReadingCategory, decimal>()
|
||||
{
|
||||
{ReadingCategory.Visit, 0 },
|
||||
|
|
|
|||
Loading…
Reference in New Issue