Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8
commit
cc8151caf8
|
@ -2106,6 +2106,15 @@
|
||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</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)">
|
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetEvidenceFocalFDG(IRaCIS.Core.Application.Service.Reading.Dto.ReadingCalculateDto)">
|
||||||
<summary>
|
<summary>
|
||||||
骨髓中是否存在局灶性 FDG亲和病灶的证据
|
骨髓中是否存在局灶性 FDG亲和病灶的证据
|
||||||
|
@ -2148,6 +2157,15 @@
|
||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</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)">
|
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.GetBaseLineSpleenLength(IRaCIS.Core.Application.Service.Reading.Dto.ReadingCalculateDto)">
|
||||||
<summary>
|
<summary>
|
||||||
获取基线脾脏长度
|
获取基线脾脏长度
|
||||||
|
@ -2190,6 +2208,17 @@
|
||||||
<param name="inDto"></param>
|
<param name="inDto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</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)">
|
<member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.LuganoCalculateService.ReserveDecimal(System.Decimal,System.Int32)">
|
||||||
<summary>
|
<summary>
|
||||||
保留小数
|
保留小数
|
||||||
|
|
|
@ -203,7 +203,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.WhereIf(inQuery.IsGetNextMedicalReviewTask,
|
.WhereIf(inQuery.IsGetNextMedicalReviewTask,
|
||||||
x=>x.AuditState!= MedicalReviewAuditState.HaveSigned &
|
x=>x.AuditState!= MedicalReviewAuditState.HaveSigned &
|
||||||
|
|
||||||
( x.ReadingMedicalReviewDialogList.Count()==0||
|
( x.ReadingMedicalReviewDialogList.Count()!=0&&
|
||||||
|
|
||||||
x.ReadingMedicalReviewDialogList.Count()>0&&
|
x.ReadingMedicalReviewDialogList.Count()>0&&
|
||||||
x.ReadingMedicalReviewDialogList.OrderByDescending(x=>x.CreateTime).FirstOrDefault().UserTypeEnumInt==(int)UserTypeEnum.IndependentReviewer))
|
x.ReadingMedicalReviewDialogList.OrderByDescending(x=>x.CreateTime).FirstOrDefault().UserTypeEnumInt==(int)UserTypeEnum.IndependentReviewer))
|
||||||
|
@ -221,7 +221,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid)
|
.WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid)
|
||||||
.WhereIf(inQuery.IsGetBeRead,x=>!x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned)
|
.WhereIf(inQuery.IsGetBeRead,x=>!x.IsInvalid&&x.AuditState!= MedicalReviewAuditState.HaveSigned)
|
||||||
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
|
.WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId)
|
||||||
.OrderBy(x=>x.AuditState).ThenBy(x=>x.VisitTask.SubjectId).ThenBy(x=>x.VisitTask.ArmEnum).ThenBy(x=>x.VisitTask.VisitTaskNum)
|
.OrderBy(x=>x.VisitTask.SubjectId).ThenBy(x => x.AuditState).ThenBy(x=>x.VisitTask.ArmEnum).ThenBy(x=>x.VisitTask.VisitTaskNum)
|
||||||
.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider);
|
.ProjectTo<TaskMedicalReviewView>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ using NPOI.SS.Formula.Functions;
|
||||||
using DocumentFormat.OpenXml.Drawing.Charts;
|
using DocumentFormat.OpenXml.Drawing.Charts;
|
||||||
using IRaCIS.Core.Application.Contracts;
|
using IRaCIS.Core.Application.Contracts;
|
||||||
using IRaCIS.Core.Application.Service.ReadingCalculate.Interface;
|
using IRaCIS.Core.Application.Service.ReadingCalculate.Interface;
|
||||||
|
using DocumentFormat.OpenXml.Office2016.Drawing.ChartDrawing;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
{
|
{
|
||||||
|
@ -1357,7 +1358,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
|
|
||||||
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers).OrderBy(x => x.RowIndex).ToList();
|
var addList = _mapper.Map<List<ReadingTableAnswerRowInfo>>(tableRowAnswers).OrderBy(x => x.RowIndex).ToList();
|
||||||
|
|
||||||
//await _readingTaskQuestionMarkRepository.AddRangeAsync(questionMarkList);
|
await _readingTaskQuestionMarkRepository.AddRangeAsync(questionMarkList);
|
||||||
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
|
await _readingTableAnswerRowInfoRepository.AddRangeAsync(addList);
|
||||||
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);
|
await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers);
|
||||||
addList.ForEach(x =>
|
addList.ForEach(x =>
|
||||||
|
@ -2525,15 +2526,28 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
//FDGPETOverallAssessment result = FDGPETOverallAssessment.NA;
|
//FDGPETOverallAssessment result = FDGPETOverallAssessment.NA;
|
||||||
|
|
||||||
// PET5PS
|
// 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
|
// 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
|
// 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>() {
|
List<CalculationDto> data = new List<CalculationDto>() {
|
||||||
|
|
||||||
//NE NE NE NE
|
//NE NE NE NE
|
||||||
|
@ -2595,9 +2609,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
|
|
||||||
|
|
||||||
var resultdata = data.Where(x =>
|
var resultdata = data.Where(x =>
|
||||||
(x.NotEq.Contains(1) ? !x.Column1.Contains(PET5PS) : x.Column1.Contains(PET5PS) || x.Column1.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(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(3) ? !x.Column3.Contains(evidenceFocalFDG) : x.Column3.Contains(evidenceFocalFDG) || x.Column3.Count() == 0))
|
||||||
.Select(x => x.Column4.FirstOrDefault())
|
.Select(x => x.Column4.FirstOrDefault())
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
return resultdata ?? string.Empty;
|
return resultdata ?? string.Empty;
|
||||||
|
@ -2738,15 +2752,28 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
//}
|
//}
|
||||||
|
|
||||||
// CTandMRI
|
// 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
|
// 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);
|
var baseLineTaskId = await GetBaseLineTaskId(inDto);
|
||||||
// lastFDGPET
|
// lastFDGPET
|
||||||
var lastFDGPETData = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.LastFDGPET).Select(x => x.Answer).FirstOrDefault();
|
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>() {
|
List<CalculationDto> data = new List<CalculationDto>() {
|
||||||
|
|
||||||
//1、ND NE NE/NA ND
|
//1、ND NE NE/NA ND
|
||||||
|
@ -2856,8 +2883,8 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
};
|
};
|
||||||
|
|
||||||
var resultdata = data.Where(x =>
|
var resultdata = data.Where(x =>
|
||||||
(x.NotEq.Contains(1) ? !x.Column1.Contains(CTandMRIData) : x.Column1.Contains(CTandMRIData) || x.Column1.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(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))
|
(x.NotEq.Contains(3) ? !x.Column3.Contains(lastFDGPETData) : x.Column3.Contains(lastFDGPETData) || x.Column3.Count() == 0))
|
||||||
.Select(x => x.Column4.FirstOrDefault())
|
.Select(x => x.Column4.FirstOrDefault())
|
||||||
.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();
|
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>() {
|
List<CalculationDto> data = new List<CalculationDto>() {
|
||||||
|
|
||||||
//ND ND 否/疑似 正常 正常 ND
|
//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(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(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(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(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))
|
(x.NotEq.Contains(5) ? !x.Column5.Contains(spleenEvaluation) : x.Column5.Contains(spleenEvaluation) || x.Column5.Count() == 0))
|
||||||
;
|
;
|
||||||
Console.WriteLine(index);
|
|
||||||
var result = data.Where(x =>
|
var result = data.Where(x =>
|
||||||
(x.NotEq.Contains(1) ? !x.Column1.Contains(targetEvaluation) : x.Column1.Contains(targetEvaluation) || x.Column1.Count() == 0) &&
|
(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(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))
|
(x.NotEq.Contains(5) ? !x.Column5.Contains(spleenEvaluation) : x.Column5.Contains(spleenEvaluation) || x.Column5.Count() == 0))
|
||||||
.Select(x => x.Column6.FirstOrDefault())
|
.Select(x => x.Column6.FirstOrDefault())
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
return result??string.Empty;
|
return result ?? string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
Loading…
Reference in New Issue