Merge branch 'master' of http://192.168.1.2:8033/IRaCIS_Core_Api
commit
2d53a9e82c
|
@ -1,4 +1,5 @@
|
||||||
using DocumentFormat.OpenXml.Office2010.ExcelAc;
|
using DocumentFormat.OpenXml.Office2010.ExcelAc;
|
||||||
|
using DocumentFormat.OpenXml.Presentation;
|
||||||
using DocumentFormat.OpenXml.Spreadsheet;
|
using DocumentFormat.OpenXml.Spreadsheet;
|
||||||
using IRaCIS.Application.Contracts;
|
using IRaCIS.Application.Contracts;
|
||||||
using IRaCIS.Application.Interfaces;
|
using IRaCIS.Application.Interfaces;
|
||||||
|
@ -950,9 +951,37 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
{
|
{
|
||||||
item.FileName = result.Where(t => t.Code == item.Code).FirstOrDefault()?.FileName;
|
item.FileName = result.Where(t => t.Code == item.Code).FirstOrDefault()?.FileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<T> DealJudgeMark<T>(ArbitrationRule arbitrationRule, IEnumerable<T> list) where T : OverallTumorEvaluationExport
|
||||||
|
{
|
||||||
|
//处理裁判标记
|
||||||
|
|
||||||
|
{
|
||||||
|
var resultList = list.Where(t => t.ReadingCategory != ReadingCategory.Judge).ToList();
|
||||||
|
|
||||||
|
if (arbitrationRule == ArbitrationRule.Visit)
|
||||||
|
{
|
||||||
|
|
||||||
|
foreach (var item in resultList)
|
||||||
|
{
|
||||||
|
item.IsGenerateJudge = list.FirstOrDefault(t => t.ReadingCategory == ReadingCategory.Judge && t.SubjectCode == item.SubjectCode
|
||||||
|
&& (t.VisitTaskNum - ReadingCommon.TaskNumDic[ReadingCategory.Judge]) == item.VisitTaskNum)?.JudgeArmEnum == item.ArmEnum ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (arbitrationRule == ArbitrationRule.Reading)
|
||||||
|
{
|
||||||
|
foreach (var item in resultList)
|
||||||
|
{
|
||||||
|
item.IsGenerateJudge = list.Where(t => t.ReadingCategory == ReadingCategory.Judge && t.SubjectCode == item.SubjectCode
|
||||||
|
).OrderByDescending(t => t.VisitTaskNum).FirstOrDefault()?.JudgeArmEnum == item.ArmEnum ? true : false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultList;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -976,7 +1005,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
|
|
||||||
|
|
||||||
//每次查询必须是单标准的
|
//每次查询必须是单标准的
|
||||||
var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName }).FirstNotNullAsync();
|
var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstNotNullAsync();
|
||||||
|
|
||||||
if (criterion.CriterionType != CriterionType.RECIST1Point1 && criterion.CriterionType != CriterionType.PCWG3)
|
if (criterion.CriterionType != CriterionType.RECIST1Point1 && criterion.CriterionType != CriterionType.PCWG3)
|
||||||
{
|
{
|
||||||
|
@ -1011,6 +1040,9 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
var exportInfo = (await _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
var exportInfo = (await _trialRepository.Where(t => t.Id == queryVisitTask.TrialId).IgnoreQueryFilters().ProjectTo<ExcelExportInfo>(_mapper.ConfigurationProvider).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
exportInfo.CriterionName = criterion.CriterionName;
|
exportInfo.CriterionName = criterion.CriterionName;
|
||||||
|
|
||||||
|
//处理裁判标记
|
||||||
|
list = DealJudgeMark(criterion.ArbitrationRule, list);
|
||||||
|
|
||||||
exportInfo.List = list;
|
exportInfo.List = list;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1034,7 +1066,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
{
|
{
|
||||||
|
|
||||||
//每次查询必须是单标准的
|
//每次查询必须是单标准的
|
||||||
var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName} ).FirstOrDefaultAsync();
|
var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstOrDefaultAsync();
|
||||||
|
|
||||||
var query = _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
var query = _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
|
||||||
|
@ -1064,8 +1096,12 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
{
|
{
|
||||||
var list = await query.ProjectTo<RECIST1Point1EvaluationOfTumorEfficacyExport>(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType }).ToListAsync();
|
var list = await query.ProjectTo<RECIST1Point1EvaluationOfTumorEfficacyExport>(_mapper.ConfigurationProvider, new { criterionType = criterion.CriterionType }).ToListAsync();
|
||||||
|
|
||||||
|
//处理裁判标记
|
||||||
|
list = DealJudgeMark(criterion.ArbitrationRule, list);
|
||||||
|
|
||||||
exportInfo.List = list;
|
exportInfo.List = list;
|
||||||
|
|
||||||
|
|
||||||
return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1EvaluationOfTumorEfficacy_Export, exportInfo, $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1EvaluationOfTumorEfficacyExport), criterion.CriterionType);
|
return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1EvaluationOfTumorEfficacy_Export, exportInfo, $"{exportInfo.ResearchProgramNo}_{exportInfo.CriterionName}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1EvaluationOfTumorEfficacyExport), criterion.CriterionType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1095,7 +1131,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
{
|
{
|
||||||
|
|
||||||
//每次查询必须是单标准的
|
//每次查询必须是单标准的
|
||||||
var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName }).FirstOrDefaultAsync();
|
var criterion = await _repository.Where<ReadingQuestionCriterionTrial>(t => t.Id == queryVisitTask.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName,t.ArbitrationRule }).FirstOrDefaultAsync();
|
||||||
|
|
||||||
var query = _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
var query = _repository.Where<VisitTask>(t => t.TrialId == queryVisitTask.TrialId && t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||||
|
|
||||||
|
@ -1150,6 +1186,8 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
});
|
});
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
//处理裁判标记
|
||||||
|
list = DealJudgeMark(criterion.ArbitrationRule, list);
|
||||||
exportInfo.List = exportList;
|
exportInfo.List = exportList;
|
||||||
|
|
||||||
return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1DetailedOfEvaluatedLesionExport), criterion.CriterionType);
|
return await ExcelExportHelper.DataExportAsync(StaticData.Export.RECIST1Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(RECIST1Point1DetailedOfEvaluatedLesionExport), criterion.CriterionType);
|
||||||
|
@ -1180,6 +1218,8 @@ namespace IRaCIS.Core.Application.Service.Common
|
||||||
});
|
});
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
//处理裁判标记
|
||||||
|
list = DealJudgeMark(criterion.ArbitrationRule, list);
|
||||||
exportInfo.List = exportList;
|
exportInfo.List = exportList;
|
||||||
|
|
||||||
return await ExcelExportHelper.DataExportAsync(StaticData.Export.PCWG3Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(PCWG3DetailedOfEvaluatedLesionExport), criterion.CriterionType);
|
return await ExcelExportHelper.DataExportAsync(StaticData.Export.PCWG3Point1DetailedOfEvaluatedLesion_Export, exportInfo, $"{exportInfo.ResearchProgramNo}", _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(PCWG3DetailedOfEvaluatedLesionExport), criterion.CriterionType);
|
||||||
|
|
|
@ -31,9 +31,10 @@ namespace IRaCIS.Core.Application.Service
|
||||||
public List<CriterionAdditionalAssessment> SystemDefeaultAdditionalAssessmentList { get; set; } = new List<CriterionAdditionalAssessment>();
|
public List<CriterionAdditionalAssessment> SystemDefeaultAdditionalAssessmentList { get; set; } = new List<CriterionAdditionalAssessment>();
|
||||||
public AdditionalAssessment()
|
public AdditionalAssessment()
|
||||||
{
|
{
|
||||||
|
|
||||||
var gropId = NewId.NextGuid();
|
|
||||||
//Resist1.1 脑转移 默认评估问题
|
//Resist1.1 脑转移 默认评估问题
|
||||||
|
{
|
||||||
|
var gropId = NewId.NextGuid();
|
||||||
|
|
||||||
SystemDefeaultAdditionalAssessmentList.Add(new CriterionAdditionalAssessment()
|
SystemDefeaultAdditionalAssessmentList.Add(new CriterionAdditionalAssessment()
|
||||||
{
|
{
|
||||||
CriterionType = CriterionType.RECIST1Point1,
|
CriterionType = CriterionType.RECIST1Point1,
|
||||||
|
@ -84,6 +85,65 @@ namespace IRaCIS.Core.Application.Service
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Resist1.1 TNM分期
|
||||||
|
{
|
||||||
|
|
||||||
|
var gropId = NewId.NextGuid();
|
||||||
|
|
||||||
|
SystemDefeaultAdditionalAssessmentList.Add(new CriterionAdditionalAssessment()
|
||||||
|
{
|
||||||
|
CriterionType = CriterionType.RECIST1Point1,
|
||||||
|
AdditionalAssessmentType = AdditionalAssessmentType.TNMStage,
|
||||||
|
AdditionalQuestionList = new List<ReadingQuestionTrial>(){
|
||||||
|
|
||||||
|
new ReadingQuestionTrial()
|
||||||
|
{
|
||||||
|
LimitEdit=LimitEdit.OnlyBaseLine,
|
||||||
|
Id=gropId,
|
||||||
|
IsJudgeQuestion=false,
|
||||||
|
IsShowInDicom=false,
|
||||||
|
GlobalReadingShowType=GlobalReadingShowType.NotShow,
|
||||||
|
|
||||||
|
QuestionName="TNM分期评估",
|
||||||
|
QuestionEnName="TNM Stage Assessment",
|
||||||
|
GroupName="TNM分期评估",
|
||||||
|
GroupEnName="TNM Stage Assessment",
|
||||||
|
Type="group",
|
||||||
|
QuestionGenre=TableQuestionType.Customize,
|
||||||
|
DataSource=DataSources.ManualEntry,
|
||||||
|
ShowQuestion=ShowQuestion.Show,
|
||||||
|
|
||||||
|
|
||||||
|
IsAdditional=true
|
||||||
|
} ,
|
||||||
|
|
||||||
|
new ReadingQuestionTrial()
|
||||||
|
{
|
||||||
|
GroupId=gropId,
|
||||||
|
LimitEdit=LimitEdit.OnlyBaseLine,
|
||||||
|
DictionaryCode="YesOrNoOrNa",
|
||||||
|
IsJudgeQuestion=false,
|
||||||
|
IsShowInDicom=false,
|
||||||
|
GlobalReadingShowType=GlobalReadingShowType.NotShow,
|
||||||
|
QuestionEnName="Brain metastases present",
|
||||||
|
QuestionName="存在脑转移",
|
||||||
|
Type="radio",
|
||||||
|
QuestionGenre=TableQuestionType.Dictionary,
|
||||||
|
DataSource=DataSources.ManualEntry,
|
||||||
|
ShowQuestion=ShowQuestion.Show,
|
||||||
|
|
||||||
|
|
||||||
|
IsAdditional=true
|
||||||
|
} ,
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<CriterionAdditionalAssessment> GetSystemDefeaultAdditionalAssessmentList(CriterionType criterionType, AdditionalAssessmentType? additionalAssessmentType = null)
|
public List<CriterionAdditionalAssessment> GetSystemDefeaultAdditionalAssessmentList(CriterionType criterionType, AdditionalAssessmentType? additionalAssessmentType = null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -836,6 +836,7 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
public Arm ArmEnum { get; set; }
|
public Arm ArmEnum { get; set; }
|
||||||
public string UserName { get; set; }
|
public string UserName { get; set; }
|
||||||
|
|
||||||
|
public ReadingCategory ReadingCategory { get; set; }
|
||||||
|
|
||||||
[DictionaryTranslateAttribute("ExistDisease", CriterionType.RECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "true")]
|
[DictionaryTranslateAttribute("ExistDisease", CriterionType.RECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "true")]
|
||||||
[DictionaryTranslateAttribute("OverallAssessment", CriterionType.RECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "false")]
|
[DictionaryTranslateAttribute("OverallAssessment", CriterionType.RECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "false")]
|
||||||
|
@ -844,11 +845,22 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
//整体肿瘤评估结果 需要翻译
|
//整体肿瘤评估结果 需要翻译
|
||||||
public string OverallTumorEvaluationResult { get; set; }
|
public string OverallTumorEvaluationResult { get; set; }
|
||||||
|
|
||||||
public Guid? JudgeResultTaskId { get; set; }
|
|
||||||
|
|
||||||
|
#region old 废弃
|
||||||
|
|
||||||
|
//public Guid? JudgeResultTaskId { get; set; }
|
||||||
|
|
||||||
|
//[DictionaryTranslateAttribute("YesOrNo")]
|
||||||
|
//public bool IsGenerateJudge => JudgeResultTaskId != null;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
public Arm? JudgeArmEnum { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
//根据裁判的任务结果 设置访视任务的这个字段 该字段表示 裁判认同该任务的结果
|
||||||
[DictionaryTranslateAttribute("YesOrNo")]
|
[DictionaryTranslateAttribute("YesOrNo")]
|
||||||
public bool IsGenerateJudge => JudgeResultTaskId != null;
|
public bool IsGenerateJudge { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,6 +172,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
// .ForMember(o => o.TrialReadingCriterionName, t => t.MapFrom(u => u.TrialReadingCriterion.CriterionName))
|
// .ForMember(o => o.TrialReadingCriterionName, t => t.MapFrom(u => u.TrialReadingCriterion.CriterionName))
|
||||||
.ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine))
|
.ForMember(o => o.IsBaseline, t => t.MapFrom(u => u.SourceSubjectVisit.IsBaseLine))
|
||||||
|
|
||||||
|
.ForMember(o => o.JudgeArmEnum, t => t.MapFrom(u => u.JudgeResultTask.ArmEnum))
|
||||||
|
|
||||||
.ForMember(o => o.OverallTumorEvaluationResult, t => t.MapFrom(u =>
|
.ForMember(o => o.OverallTumorEvaluationResult, t => t.MapFrom(u =>
|
||||||
criterionType == CriterionType.RECIST1Point1 ?( u.SourceSubjectVisit.IsBaseLine==true ? u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.ExistDisease).FirstOrDefault().Answer:
|
criterionType == CriterionType.RECIST1Point1 ?( u.SourceSubjectVisit.IsBaseLine==true ? u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.ExistDisease).FirstOrDefault().Answer:
|
||||||
u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).FirstOrDefault().Answer)
|
u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).FirstOrDefault().Answer)
|
||||||
|
|
|
@ -33,8 +33,13 @@ namespace IRaCIS.Core.Domain.Share.Reading
|
||||||
|
|
||||||
//TNM分期
|
//TNM分期
|
||||||
|
|
||||||
TNM = 2
|
TNMStage = 2,
|
||||||
|
|
||||||
|
//骨转移
|
||||||
|
BoneMetastasis = 3,
|
||||||
|
|
||||||
|
//手术期
|
||||||
|
SurgicalPeriod = 4,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue