代码修改
parent
b006fff6ed
commit
bad5f32ffc
|
@ -6,6 +6,8 @@
|
|||
using System;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection.Metadata.Ecma335;
|
||||
|
||||
namespace IRaCIS.Core.Application.Service.Reading.Dto
|
||||
{
|
||||
|
||||
|
@ -153,6 +155,27 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public List<decimal> ShortBigger10Indexs { get; set; }
|
||||
}
|
||||
|
||||
public class CalculationDto
|
||||
{
|
||||
public List<string> Column1 { get; set; } = new List<string>();
|
||||
|
||||
public List<string> Column2 { get; set; } = new List<string>();
|
||||
|
||||
public List<string> Column3 { get; set; } = new List<string>();
|
||||
public List<string> Column4 { get; set; } = new List<string>();
|
||||
|
||||
public List<string> Column5 { get; set; } = new List<string>();
|
||||
|
||||
public List<string> Column6 { get; set; } = new List<string>();
|
||||
|
||||
public List<string> Column7 { get; set; } = new List<string>();
|
||||
|
||||
/// <summary>
|
||||
/// 不等于
|
||||
/// </summary>
|
||||
public List<int> NotEq { get; set; } = new List<int>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 阅片计算Dto
|
||||
/// </summary>
|
||||
|
|
|
@ -358,6 +358,8 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
.Select(x => new CriterionOtherQuestionOutDto()
|
||||
{
|
||||
DictionaryCode=x.DictionaryCode,
|
||||
|
||||
QuestionId = x.Id,
|
||||
QuestionName = x.QuestionName,
|
||||
TypeValue = x.TypeValue,
|
||||
|
@ -678,6 +680,7 @@ namespace IRaCIS.Application.Services
|
|||
.Select(x => new CriterionOtherQuestionOutDto()
|
||||
{
|
||||
QuestionId = x.Id,
|
||||
DictionaryCode = x.DictionaryCode,
|
||||
QuestionName = x.QuestionName.LanguageName(x.QuestionEnName, _userInfo.IsEn_Us),
|
||||
TypeValue = x.TypeValue,
|
||||
}).ToListAsync();
|
||||
|
|
|
@ -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
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -735,6 +735,147 @@ namespace IRaCIS.Core.Domain.Share
|
|||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CT/MRI总体评估
|
||||
/// </summary>
|
||||
public enum CTMRIOverallAssessment
|
||||
{
|
||||
/// <summary>
|
||||
/// NA
|
||||
/// </summary>
|
||||
NA = -1,
|
||||
|
||||
/// <summary>
|
||||
/// CR
|
||||
/// </summary>
|
||||
CR = 1,
|
||||
|
||||
/// <summary>
|
||||
/// PR
|
||||
/// </summary>
|
||||
PR = 2,
|
||||
|
||||
/// <summary>
|
||||
/// SD
|
||||
/// </summary>
|
||||
SD = 3,
|
||||
|
||||
/// <summary>
|
||||
/// PD
|
||||
/// </summary>
|
||||
PD = 4,
|
||||
|
||||
/// <summary>
|
||||
/// NE
|
||||
/// </summary>
|
||||
NE = 5,
|
||||
|
||||
/// <summary>
|
||||
/// ND
|
||||
/// </summary>
|
||||
ND = 6,
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 脾脏评估
|
||||
/// </summary>
|
||||
public enum SpleenAssessment
|
||||
{
|
||||
/// <summary>
|
||||
/// NA
|
||||
/// </summary>
|
||||
NA = -1,
|
||||
|
||||
/// <summary>
|
||||
/// 正常
|
||||
/// </summary>
|
||||
Normal = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 缓解
|
||||
/// </summary>
|
||||
Remission = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 稳定
|
||||
/// </summary>
|
||||
Stabilization = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 显著增大
|
||||
/// </summary>
|
||||
Increase = 4,
|
||||
|
||||
/// <summary>
|
||||
/// 无法评估
|
||||
/// </summary>
|
||||
NotEvaluable = 5,
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 肝脏评估
|
||||
/// </summary>
|
||||
public enum LiverAssessment
|
||||
{
|
||||
/// <summary>
|
||||
/// NA
|
||||
/// </summary>
|
||||
NA = -1,
|
||||
|
||||
/// <summary>
|
||||
/// 正常
|
||||
/// </summary>
|
||||
Normal = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 稳定
|
||||
/// </summary>
|
||||
Stabilization = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 显著增大
|
||||
/// </summary>
|
||||
Increase = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 无法评估
|
||||
/// </summary>
|
||||
NotEvaluable = 4,
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 脾脏状态
|
||||
/// </summary>
|
||||
public enum SpleenState
|
||||
{
|
||||
/// <summary>
|
||||
/// 正常
|
||||
/// </summary>
|
||||
Normal = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 肿大
|
||||
/// </summary>
|
||||
Swelling = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 部分缓解稳定
|
||||
/// </summary>
|
||||
PartialRemission = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 显著增大
|
||||
/// </summary>
|
||||
Increase = 4,
|
||||
|
||||
/// <summary>
|
||||
/// 无法评估
|
||||
/// </summary>
|
||||
NotEvaluable = 5,
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 触发iRECIST后新病灶评估
|
||||
/// </summary>
|
||||
|
@ -1214,7 +1355,7 @@ namespace IRaCIS.Core.Domain.Share
|
|||
/// <summary>
|
||||
/// 不显示
|
||||
/// </summary>
|
||||
NotShow =3
|
||||
NotShow =3,
|
||||
}
|
||||
|
||||
|
||||
|
@ -1838,6 +1979,9 @@ namespace IRaCIS.Core.Domain.Share
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 新靶病灶评估
|
||||
/// </summary>
|
||||
|
|
Loading…
Reference in New Issue