计算修改
parent
c00e8eb809
commit
f85bbc41c4
|
@ -2106,6 +2106,15 @@
|
|||
<param name="inDto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.CalculationFDGPETOverallAssessment(System.String,System.String,System.String)">
|
||||
<summary>
|
||||
计算FDG-PET总体评估结果【测试】
|
||||
</summary>
|
||||
<param name="pET5PS">PET5PS评分</param>
|
||||
<param name="uptakeChange"> 与基线相比摄取值变化</param>
|
||||
<param name="evidenceFocalFDG">骨髓中是否存在局灶性 FDG亲和病灶的证据</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetEvidenceFocalFDG(IRaCIS.Core.Application.Service.Reading.Dto.ReadingCalculateDto)">
|
||||
<summary>
|
||||
骨髓中是否存在局灶性 FDG亲和病灶的证据
|
||||
|
@ -2148,6 +2157,15 @@
|
|||
<param name="inDto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.CalculationGetImgOncology(System.String,System.String,System.String)">
|
||||
<summary>
|
||||
计算整体肿瘤评估 【测试】
|
||||
</summary>
|
||||
<param name="cTandMRIData"> CT/MRI总体评估</param>
|
||||
<param name="fDGPETData"> FDG-PET总体评估</param>
|
||||
<param name="lastFDGPETData">上一次 FDG-PET总体评估</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetBaseLineSpleenLength(IRaCIS.Core.Application.Service.Reading.Dto.ReadingCalculateDto)">
|
||||
<summary>
|
||||
获取基线脾脏长度
|
||||
|
@ -2190,6 +2208,17 @@
|
|||
<param name="inDto"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.CalculationCTMRIEvaluation(System.String,System.String,System.String,System.String,System.String)">
|
||||
<summary>
|
||||
计算CTMRI 总体评估 【测试】
|
||||
</summary>
|
||||
<param name="targetEvaluation">靶病灶评估</param>
|
||||
<param name="noTargetEvaluation">非靶病灶评估</param>
|
||||
<param name="existsNewTarget">存在新病灶</param>
|
||||
<param name="liverEvaluation">肝脏评估</param>
|
||||
<param name="spleenEvaluation">脾脏评估</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.ReserveDecimal(System.Decimal,System.Int32)">
|
||||
<summary>
|
||||
保留小数
|
||||
|
|
|
@ -16,6 +16,7 @@ using NPOI.SS.Formula.Functions;
|
|||
using DocumentFormat.OpenXml.Drawing.Charts;
|
||||
using IRaCIS.Core.Application.Contracts;
|
||||
using IRaCIS.Core.Application.Service.ReadingCalculate.Interface;
|
||||
using DocumentFormat.OpenXml.Office2016.Drawing.ChartDrawing;
|
||||
|
||||
namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||
{
|
||||
|
@ -2525,15 +2526,28 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
//FDGPETOverallAssessment result = FDGPETOverallAssessment.NA;
|
||||
|
||||
// PET5PS
|
||||
var PET5PS = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.PET5PS).Select(x => x.Answer).FirstOrDefault();
|
||||
var pET5PS = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.PET5PS).Select(x => x.Answer).FirstOrDefault();
|
||||
|
||||
// UptakeChange
|
||||
var UptakeChange = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.UptakeChange).Select(x => x.Answer).FirstOrDefault();
|
||||
var uptakeChange = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.UptakeChange).Select(x => x.Answer).FirstOrDefault();
|
||||
|
||||
// EvidenceFocalFDG
|
||||
var EvidenceFocalFDG = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.EvidenceFocalFDG).Select(x => x.Answer).FirstOrDefault();
|
||||
var evidenceFocalFDG = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.EvidenceFocalFDG).Select(x => x.Answer).FirstOrDefault();
|
||||
|
||||
|
||||
return CalculationFDGPETOverallAssessment(pET5PS, uptakeChange, evidenceFocalFDG);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 计算FDG-PET总体评估结果【测试】
|
||||
/// </summary>
|
||||
/// <param name="pET5PS">PET5PS评分</param>
|
||||
/// <param name="uptakeChange"> 与基线相比摄取值变化</param>
|
||||
/// <param name="evidenceFocalFDG">骨髓中是否存在局灶性 FDG亲和病灶的证据</param>
|
||||
/// <returns></returns>
|
||||
public string CalculationFDGPETOverallAssessment(string? pET5PS, string uptakeChange,string? evidenceFocalFDG)
|
||||
{
|
||||
List<CalculationDto> data = new List<CalculationDto>() {
|
||||
|
||||
//NE NE NE NE
|
||||
|
@ -2595,9 +2609,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
|
||||
var resultdata = data.Where(x =>
|
||||
(x.NotEq.Contains(1) ? !x.Column1.Contains(PET5PS) : x.Column1.Contains(PET5PS) || x.Column1.Count() == 0) &&
|
||||
(x.NotEq.Contains(2) ? !x.Column2.Contains(UptakeChange) : x.Column2.Contains(UptakeChange) || x.Column2.Count() == 0) &&
|
||||
(x.NotEq.Contains(3) ? !x.Column3.Contains(EvidenceFocalFDG) : x.Column3.Contains(EvidenceFocalFDG) || x.Column3.Count() == 0))
|
||||
(x.NotEq.Contains(1) ? !x.Column1.Contains(pET5PS) : x.Column1.Contains(pET5PS) || x.Column1.Count() == 0) &&
|
||||
(x.NotEq.Contains(2) ? !x.Column2.Contains(uptakeChange) : x.Column2.Contains(uptakeChange) || x.Column2.Count() == 0) &&
|
||||
(x.NotEq.Contains(3) ? !x.Column3.Contains(evidenceFocalFDG) : x.Column3.Contains(evidenceFocalFDG) || x.Column3.Count() == 0))
|
||||
.Select(x => x.Column4.FirstOrDefault())
|
||||
.FirstOrDefault();
|
||||
return resultdata ?? string.Empty;
|
||||
|
@ -2738,15 +2752,28 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
//}
|
||||
|
||||
// CTandMRI
|
||||
var CTandMRIData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.CTandMRI).Select(x => x.Answer).FirstOrDefault();
|
||||
var cTandMRIData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.CTandMRI).Select(x => x.Answer).FirstOrDefault();
|
||||
|
||||
// FDGPET
|
||||
var FDGPETData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.FDGPET).Select(x => x.Answer).FirstOrDefault();
|
||||
var fDGPETData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.FDGPET).Select(x => x.Answer).FirstOrDefault();
|
||||
|
||||
var baseLineTaskId = await GetBaseLineTaskId(inDto);
|
||||
// lastFDGPET
|
||||
var lastFDGPETData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LastFDGPET).Select(x => x.Answer).FirstOrDefault();
|
||||
|
||||
return CalculationGetImgOncology(cTandMRIData, fDGPETData, lastFDGPETData);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 计算整体肿瘤评估 【测试】
|
||||
/// </summary>
|
||||
/// <param name="cTandMRIData"> CT/MRI总体评估</param>
|
||||
/// <param name="fDGPETData"> FDG-PET总体评估</param>
|
||||
/// <param name="lastFDGPETData">上一次 FDG-PET总体评估</param>
|
||||
/// <returns></returns>
|
||||
public string CalculationGetImgOncology(string? cTandMRIData,string? fDGPETData,string? lastFDGPETData)
|
||||
{
|
||||
List<CalculationDto> data = new List<CalculationDto>() {
|
||||
|
||||
//1、ND NE NE/NA ND
|
||||
|
@ -2856,8 +2883,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
};
|
||||
|
||||
var resultdata = data.Where(x =>
|
||||
(x.NotEq.Contains(1) ? !x.Column1.Contains(CTandMRIData) : x.Column1.Contains(CTandMRIData) || x.Column1.Count() == 0) &&
|
||||
(x.NotEq.Contains(2) ? !x.Column2.Contains(FDGPETData) : x.Column2.Contains(FDGPETData) || x.Column2.Count() == 0) &&
|
||||
(x.NotEq.Contains(1) ? !x.Column1.Contains(cTandMRIData) : x.Column1.Contains(cTandMRIData) || x.Column1.Count() == 0) &&
|
||||
(x.NotEq.Contains(2) ? !x.Column2.Contains(fDGPETData) : x.Column2.Contains(fDGPETData) || x.Column2.Count() == 0) &&
|
||||
(x.NotEq.Contains(3) ? !x.Column3.Contains(lastFDGPETData) : x.Column3.Contains(lastFDGPETData) || x.Column3.Count() == 0))
|
||||
.Select(x => x.Column4.FirstOrDefault())
|
||||
.FirstOrDefault();
|
||||
|
@ -3141,6 +3168,21 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
// 脾脏评估
|
||||
var spleenEvaluation = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.SplenicEvaluation).Select(x => x.Answer).FirstOrDefault();
|
||||
|
||||
return CalculationCTMRIEvaluation(targetEvaluation, noTargetEvaluation, existsNewTarget, liverEvaluation, spleenEvaluation);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 计算CTMRI 总体评估 【测试】
|
||||
/// </summary>
|
||||
/// <param name="targetEvaluation">靶病灶评估</param>
|
||||
/// <param name="noTargetEvaluation">非靶病灶评估</param>
|
||||
/// <param name="existsNewTarget">存在新病灶</param>
|
||||
/// <param name="liverEvaluation">肝脏评估</param>
|
||||
/// <param name="spleenEvaluation">脾脏评估</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public string CalculationCTMRIEvaluation(string? targetEvaluation,string? noTargetEvaluation,string? existsNewTarget,string? liverEvaluation,string? spleenEvaluation)
|
||||
{
|
||||
List<CalculationDto> data = new List<CalculationDto>() {
|
||||
|
||||
//ND ND 否/疑似 正常 正常 ND
|
||||
|
@ -3315,14 +3357,13 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
},
|
||||
};
|
||||
|
||||
var index= data.FindIndex(x =>
|
||||
var index = data.FindIndex(x =>
|
||||
(x.NotEq.Contains(1) ? !x.Column1.Contains(targetEvaluation) : x.Column1.Contains(targetEvaluation) || x.Column1.Count() == 0) &&
|
||||
(x.NotEq.Contains(2) ? !x.Column2.Contains(noTargetEvaluation) : x.Column2.Contains(noTargetEvaluation) || x.Column2.Count() == 0) &&
|
||||
(x.NotEq.Contains(3) ? !x.Column3.Contains(existsNewTarget) : x.Column3.Contains(existsNewTarget) || x.Column3.Count() == 0) &&
|
||||
(x.NotEq.Contains(4) ? !x.Column4.Contains(liverEvaluation) : x.Column4.Contains(liverEvaluation) || x.Column4.Count() == 0) &&
|
||||
(x.NotEq.Contains(5) ? !x.Column5.Contains(spleenEvaluation) : x.Column5.Contains(spleenEvaluation) || x.Column5.Count() == 0))
|
||||
;
|
||||
Console.WriteLine(index);
|
||||
var result = data.Where(x =>
|
||||
(x.NotEq.Contains(1) ? !x.Column1.Contains(targetEvaluation) : x.Column1.Contains(targetEvaluation) || x.Column1.Count() == 0) &&
|
||||
(x.NotEq.Contains(2) ? !x.Column2.Contains(noTargetEvaluation) : x.Column2.Contains(noTargetEvaluation) || x.Column2.Count() == 0) &&
|
||||
|
@ -3331,7 +3372,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
(x.NotEq.Contains(5) ? !x.Column5.Contains(spleenEvaluation) : x.Column5.Contains(spleenEvaluation) || x.Column5.Count() == 0))
|
||||
.Select(x => x.Column6.FirstOrDefault())
|
||||
.FirstOrDefault();
|
||||
return result??string.Empty;
|
||||
return result ?? string.Empty;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
Loading…
Reference in New Issue