代码修改

This commit is contained in:
he
2023-09-05 17:44:29 +08:00
parent b006fff6ed
commit bad5f32ffc
4 changed files with 387 additions and 1 deletions
@@ -67,6 +67,11 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
/// </summary>
private decimal? sODData;
/// <summary>
/// 基线任务Id
/// </summary>
private Guid? BaseLineTaskId;
private string nAString = "NA";
#endregion
@@ -495,6 +500,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
//新病灶评估
new ReadingCalculateData (){QuestionType=QuestionType.NewLesions,GetStringFun=GetNewLesionEvaluate},
// //脾脏评估
//new ReadingCalculateData (){QuestionType=QuestionType.SplenicEvaluation,GetStringFun=GetNewLesionEvaluate},
// //整体肿瘤评估
// new ReadingCalculateData (){QuestionType=QuestionType.Tumor,GetStringFun=GetTumor},
@@ -1325,6 +1333,32 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
#endregion
#region 线ID
/// <summary>
/// 获取基线任务的Id
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
private async Task<Guid> GetBaseLineTaskId(ReadingCalculateDto inDto)
{
if (this.BaseLineTaskId == null)
{
this.BaseLineTaskId = await _visitTaskRepository.Where(x => x.SubjectId == inDto.SubjectId && x.ReadingCategory == ReadingCategory.Visit
&& x.TrialReadingCriterionId == inDto.TrialReadingCriterionId &&
x.SourceSubjectVisit.IsBaseLine && x.TaskState == TaskState.Effect &&
x.IsAnalysisCreate == inDto.IsAnalysisCreate
&& x.DoctorUserId == inDto.DoctorUserId
&& x.IsSelfAnalysis == inDto.IsSelfAnalysis && x.ArmEnum == inDto.ArmEnum)
.Select(x => x.Id).FirstOrDefaultAsync();
}
return this.BaseLineTaskId.Value;
}
#endregion
#region 线SOD
/// <summary>
/// 获取基线SOD
@@ -1676,8 +1710,190 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
}
#endregion
#region CTMRI
/// <summary>
/// CTMRI 总体评估
/// </summary>
/// <param name="inDto"></param>
/// <returns></returns>
public async Task<string> CTMRIEvaluation(ReadingCalculateDto inDto)
{
// 靶病灶评估
var targetEvaluation = string.Empty;
// 非靶病灶评估
var noTargetEvaluation = string.Empty;
// 存在新病灶
var existsNewTarget = string.Empty;
// 肝脏评估
var liverEvaluation = string.Empty;
// 脾脏评估
var spleenEvaluation = string.Empty;
var c = new List<TargetAssessment>() { TargetAssessment.CR };
List<CalculationDto> data = new List<CalculationDto>() {
//ND ND 否/疑似 正常 正常 ND
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
//PD 任一结果 任一结果 任一结果 任一结果 PD
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.PD }),
Column2=EnumToString(new List<NoTargetAssessment>() { }),
Column3=EnumToString(new List<NewLesionAssessment>() { }),
Column4=EnumToString(new List<LiverAssessment>() { }),
Column5=EnumToString(new List<SpleenAssessment>() { }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PD }),
},
//任一结果 PD 任一结果 任一结果 任一结果 PD
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PD }),
Column3=EnumToString(new List<NewLesionAssessment>() {}),
Column4=EnumToString(new List<LiverAssessment>() { }),
Column5=EnumToString(new List<SpleenAssessment>() { }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.PD }),
},
//PD 任一结果 是 任一结果 任一结果 PD
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.PD }),
Column2=EnumToString(new List<NoTargetAssessment>() { }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.Yes }),
Column4=EnumToString(new List<LiverAssessment>() { }),
Column5=EnumToString(new List<SpleenAssessment>() { }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
//任一结果 任一结果 任一结果 显著增大 任一结果 PD
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { }),
Column2=EnumToString(new List<NoTargetAssessment>() { }),
Column3=EnumToString(new List<NewLesionAssessment>() { }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Increase }),
Column5=EnumToString(new List<SpleenAssessment>() { }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
//任一结果 任一结果 任一结果 任一结果 显著增大 PD
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { }),
Column2=EnumToString(new List<NoTargetAssessment>() { }),
Column3=EnumToString(new List<NewLesionAssessment>() {}),
Column4=EnumToString(new List<LiverAssessment>() { }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Increase }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
//CR CR/ND 否 正常 正常 CR
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.CR, NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.CR }),
},
//ND CR 否 正常 正常 CR
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.ND }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.CR }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.CR }),
},
//NE 非PD 否/疑似/无法评估 显著增大 显著增大 NE
new CalculationDto(){
NotEq=new List<int>(){ 2},
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.NE }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.PD }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected,NewLesionAssessment. }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
new CalculationDto(){
Column1=EnumToString(new List<TargetAssessment>() { TargetAssessment.CR }),
Column2=EnumToString(new List<NoTargetAssessment>() { NoTargetAssessment.ND }),
Column3=EnumToString(new List<NewLesionAssessment>() { NewLesionAssessment.No,NewLesionAssessment.Suspected }),
Column4=EnumToString(new List<LiverAssessment>() { LiverAssessment.Normal }),
Column5=EnumToString(new List<SpleenAssessment>() { SpleenAssessment.Normal }),
Column6=EnumToString(new List<CTMRIOverallAssessment>() { CTMRIOverallAssessment.ND }),
},
};
return string.Empty;
}
#endregion
/// <summary>
/// 枚举数组转字符串数组 方法名简短
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="emus"></param>
/// <returns></returns>
private List<string> EnumToString<T>(List<T> emus) where T : Enum
{
return emus.Select(x => ((int)(object)x).ToString()).ToList();
}
#region
///// <summary>
///// 获取脾脏评估
///// </summary>
///// <param name="inDto"></param>
///// <returns></returns>
//public async Task<string> GetSplenicEvaluation(ReadingCalculateDto inDto)
//{
//}
#endregion
#endregion
}
}