Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@ using IRaCIS.Core.Application.Helper;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using MiniExcelLibs.Attributes;
|
||||
using Newtonsoft.Json;
|
||||
using Org.BouncyCastle.Asn1.X509;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
@@ -1028,6 +1029,48 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class CommonQuesionInfo
|
||||
{
|
||||
public string QuestionName { get; set; }
|
||||
|
||||
public string QuestionValue { get; set; }
|
||||
|
||||
public string TranslateDicName { get; set; }
|
||||
}
|
||||
public class CommonEvaluationExport : OverallTumorEvaluationExport
|
||||
{
|
||||
public List<CommonQuesionInfo> JudgeQuestionAnswerList { get; set; }
|
||||
}
|
||||
|
||||
public class CommonEvaluationDetailExport : OverallTumorEvaluationExport
|
||||
{
|
||||
public List<CommonQuesionInfo> QuestionAnswerList { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class DoctorJudgeRatio
|
||||
{
|
||||
public Guid? DoctorUserId { get; set; }
|
||||
|
||||
public string UserName { get; set; }
|
||||
|
||||
public string FullName { get; set; }
|
||||
|
||||
public int TotalJudgeCount { get; set; }
|
||||
|
||||
public int JudgeAgreeCount { get; set; }
|
||||
|
||||
|
||||
public string JudgeRatioStr => TotalJudgeCount == 0 ? $"NA" : $"{Math.Round((decimal)JudgeAgreeCount * 100 / TotalJudgeCount, 2)}%";
|
||||
|
||||
|
||||
public string ExceptionMark => TotalJudgeCount == 0 ? $"Y" : (JudgeAgreeCount * 3 / TotalJudgeCount < 1) ? "Y" : "N";
|
||||
|
||||
}
|
||||
|
||||
public class OverallTumorEvaluationExport
|
||||
{
|
||||
public String TrialSiteCode { get; set; } = String.Empty;
|
||||
@@ -1053,30 +1096,37 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
|
||||
public ReadingCategory ReadingCategory { get; set; }
|
||||
|
||||
[DictionaryTranslateAttribute("ExistDisease", CriterionType.Lugano2014, nameof(OverallTumorEvaluationExport.IsBaseline), "true")]
|
||||
[DictionaryTranslateAttribute("ImagingOverallAssessment_Lugano", CriterionType.Lugano2014, nameof(OverallTumorEvaluationExport.IsBaseline), "false")]
|
||||
[DictionaryTranslateAttribute("ExistDisease", CriterionType.Lugano2014WithoutPET, nameof(OverallTumorEvaluationExport.IsBaseline), "true")]
|
||||
[DictionaryTranslateAttribute("ImagingOverallAssessment_Lugano", CriterionType.Lugano2014WithoutPET, nameof(OverallTumorEvaluationExport.IsBaseline), "false")]
|
||||
|
||||
[DictionaryTranslateAttribute("ExistDisease", CriterionType.IRECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "true")]
|
||||
[DictionaryTranslateAttribute("OverallAssessment", CriterionType.IRECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "false")]
|
||||
[DictionaryTranslateAttribute("ExistDisease", CriterionType.RECIST1Pointt1_MB, nameof(OverallTumorEvaluationExport.IsBaseline), "true")]
|
||||
[DictionaryTranslateAttribute("OverallAssessment", CriterionType.RECIST1Pointt1_MB, nameof(OverallTumorEvaluationExport.IsBaseline), "false")]
|
||||
[DictionaryTranslateAttribute("ExistDisease", CriterionType.RECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "true")]
|
||||
[DictionaryTranslateAttribute("OverallAssessment", CriterionType.RECIST1Point1, nameof(OverallTumorEvaluationExport.IsBaseline), "false")]
|
||||
|
||||
[DictionaryTranslateAttribute("VisitTumorEvaluation", CriterionType.PCWG3)]
|
||||
//整体肿瘤评估结果 需要翻译
|
||||
public string OverallTumorEvaluationResult { get; set; }
|
||||
|
||||
|
||||
|
||||
|
||||
//裁判结果选择的访视或者全局任务Id
|
||||
public Arm? JudgeArmEnum { get; set; }
|
||||
|
||||
//public Guid? JudgeResultTaskId { get; set; }
|
||||
|
||||
|
||||
//裁判选择标记
|
||||
//根据裁判的任务结果 设置访视任务的这个字段 该字段表示 裁判认同该任务的结果
|
||||
[DictionaryTranslateAttribute("YesOrNo")]
|
||||
public bool? IsGenerateJudge { get; set; }
|
||||
public bool? IsJudgeSelect { get; set; }
|
||||
|
||||
|
||||
//[JsonIgnore]
|
||||
//在当前访视触发裁判,或者在截止日期小于等于当前访视的阅片期触发裁判
|
||||
public bool IsTrigerJudge { get; set; }
|
||||
|
||||
//public List<GlobalAnswerInfo> GlobalTaskAnswerList { get; set; }
|
||||
//(如果是访视点裁判,则仅在所选阅片人对应访视 显示;如果是阅片期裁判,则在所选阅片人 阅片期内的所有访视 显示此原因)
|
||||
public string JudgeNote { get; set; } = string.Empty;
|
||||
|
||||
public string VisitNote { get; set; }
|
||||
}
|
||||
|
||||
public class GlobalAnswerInfo
|
||||
@@ -1091,22 +1141,89 @@ namespace IRaCIS.Core.Application.Contracts
|
||||
|
||||
public class RECIST1Point1EvaluationOfTumorEfficacyExport : OverallTumorEvaluationExport
|
||||
{
|
||||
[DictionaryTranslateAttribute("TargetAssessment", CriterionType.RECIST1Pointt1_MB)]
|
||||
[DictionaryTranslateAttribute("TargetAssessment", CriterionType.RECIST1Point1)]
|
||||
// 靶病灶评估
|
||||
public string TargetlesionEvaluationResult { get; set; }
|
||||
|
||||
|
||||
[DictionaryTranslateAttribute("NoTargetAssessment", CriterionType.RECIST1Pointt1_MB)]
|
||||
[DictionaryTranslateAttribute("NoTargetAssessment", CriterionType.RECIST1Point1)]
|
||||
// 非靶病灶评估
|
||||
public string NoneTargetlesionEvaluationResult { get; set; }
|
||||
|
||||
// 是否存在新病灶
|
||||
[DictionaryTranslateAttribute("NewLesionAssessment", CriterionType.RECIST1Pointt1_MB)]
|
||||
[DictionaryTranslateAttribute("NewLesionAssessment", CriterionType.RECIST1Point1)]
|
||||
public string IsExistNewlesionEvaluationResult { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class Lugano2014EvaluationOfTumorEfficacyExport : OverallTumorEvaluationExport
|
||||
{
|
||||
[DictionaryTranslateAttribute("TargetAssessment", CriterionType.Lugano2014)]
|
||||
public string TargetlesionEvaluationResult { get; set; }
|
||||
|
||||
|
||||
[DictionaryTranslateAttribute("NoTargetAssessment", CriterionType.Lugano2014)]
|
||||
public string NoneTargetlesionEvaluationResult { get; set; }
|
||||
|
||||
[DictionaryTranslateAttribute("NewLesionAssessment", CriterionType.Lugano2014)]
|
||||
public string IsExistNewlesionEvaluationResult { get; set; }
|
||||
|
||||
//肝脏评估
|
||||
[DictionaryTranslateAttribute("LiverState", CriterionType.Lugano2014)]
|
||||
public string LiverResponse { get; set; }
|
||||
|
||||
//脾脏评估
|
||||
[DictionaryTranslateAttribute("SpleenAssessment", CriterionType.Lugano2014)]
|
||||
public string SpleenResponse { get; set; }
|
||||
//CT/MRI总体评估
|
||||
[DictionaryTranslateAttribute("CT-MRIOverallAssessment", CriterionType.Lugano2014)]
|
||||
|
||||
public string CT_MRI_OverallResponse { get; set; }
|
||||
|
||||
//FDG-PET总体评估
|
||||
[DictionaryTranslateAttribute("FDG-PETOverallAssessment", CriterionType.Lugano2014)]
|
||||
public string FDG_PET_OverallResponse { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class IRECIST1Point1EvaluationOfTumorEfficacyExport : OverallTumorEvaluationExport
|
||||
{
|
||||
[DictionaryTranslateAttribute("TargetAssessment", CriterionType.IRECIST1Point1)]
|
||||
// 靶病灶评估
|
||||
public string TargetlesionEvaluationResult { get; set; }
|
||||
|
||||
|
||||
[DictionaryTranslateAttribute("NoTargetAssessment", CriterionType.IRECIST1Point1)]
|
||||
// 非靶病灶评估
|
||||
public string NoneTargetlesionEvaluationResult { get; set; }
|
||||
|
||||
// 是否存在新病灶
|
||||
[DictionaryTranslateAttribute("NewLesionAssessment", CriterionType.IRECIST1Point1)]
|
||||
public string IsExistNewlesionEvaluationResult { get; set; }
|
||||
|
||||
|
||||
[DictionaryTranslateAttribute("NewLesionAssessment", CriterionType.IRECIST1Point1)]
|
||||
public string NewTargetResponse { get; set; }
|
||||
[DictionaryTranslateAttribute("NewLesionAssessment", CriterionType.IRECIST1Point1)]
|
||||
public string NewNoneTargetResponse { get; set; }
|
||||
[DictionaryTranslateAttribute("NewLesionAssessment", CriterionType.IRECIST1Point1)]
|
||||
public string OtherPreviousNewlesionsResponse { get; set; }
|
||||
|
||||
//存在触发iRECIST后新病灶
|
||||
[DictionaryTranslateAttribute("NewLesionAssessment", CriterionType.IRECIST1Point1)]
|
||||
public string IsExistNewlesionsAfterTriggeringIRECIST { get; set; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public class PCWG3LessionInfo
|
||||
{
|
||||
//病灶编号
|
||||
|
||||
@@ -18,6 +18,8 @@ namespace IRaCIS.Core.Application.Service
|
||||
|
||||
var isEn_Us = false;
|
||||
|
||||
CreateMap<Trial, ReadingPeriodJudgeExportInfo>();
|
||||
CreateMap<Trial, VisitJudgeExportInfo>();
|
||||
CreateMap<Trial, ExcelExportInfo>();
|
||||
CreateMap<SubjectVisit, CRCVisitExportDTO>()
|
||||
.ForMember(d => d.TrialSiteCode, u => u.MapFrom(s => s.TrialSite.TrialSiteCode))
|
||||
@@ -193,38 +195,107 @@ namespace IRaCIS.Core.Application.Service
|
||||
CreateMap<VisitTask, GroupAnalysisExport>().IncludeBase<VisitTask, AnalysisExortCommon>();
|
||||
CreateMap<VisitTask, SelftAnalysisExport>().IncludeBase<VisitTask, AnalysisExortCommon>();
|
||||
|
||||
|
||||
|
||||
Guid trialReadingCriterionId = Guid.Empty;
|
||||
ArbitrationRule? arbitrationRule = null;
|
||||
CriterionType? criterionType = null;
|
||||
CreateMap<VisitTask, OverallTumorEvaluationExport>()
|
||||
// .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.JudgeArmEnum, t => t.MapFrom(u => u.JudgeResultTask.ArmEnum))
|
||||
|
||||
.ForMember(o => o.JudgeArmEnum, t => t.MapFrom(u => u.JudgeResultTask.ArmEnum))
|
||||
.ForMember(o => o.IsTrigerJudge, t => t.MapFrom(u => arbitrationRule == ArbitrationRule.Visit ? u.JudgeResultTaskId != null :
|
||||
(arbitrationRule == ArbitrationRule.Reading ?
|
||||
u.Subject.SubjectVisitTaskList.Any(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingCategory == ReadingCategory.Judge && t.TrialReadingCriterionId == trialReadingCriterionId && u.VisitTaskNum < t.VisitTaskNum) :
|
||||
false)))
|
||||
|
||||
.ForMember(o => o.JudgeNote, t => t.MapFrom(u => u.JudgeResultRemark))
|
||||
|
||||
.ForMember(o => o.VisitNote, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.AdjustReason).FirstOrDefault()!.Answer))
|
||||
|
||||
.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.PCWG3 ? u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.SiteVisitForTumorEvaluation).FirstOrDefault()!.Answer :
|
||||
(u.SourceSubjectVisit.IsBaseLine == true ?
|
||||
u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.ExistDisease).FirstOrDefault()!.Answer :
|
||||
u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).Select(t => t.IsGlobalChange ? t.GlobalChangeAnswer : t.Answer).FirstOrDefault())
|
||||
: criterionType == CriterionType.PCWG3 ? u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.SiteVisitForTumorEvaluation).FirstOrDefault()!.Answer : String.Empty
|
||||
))
|
||||
|
||||
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
||||
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
||||
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
||||
//.ForMember(o => o.GlobalTaskAnswerList, t => t.MapFrom(u => u.GlobalVisitResultList.Where(t=>t.GlobalAnswerType== GlobalAnswerType.Question).Select(c=>new GlobalAnswerInfo() { GlobalTaskVisitNum=c.VisitTask.VisitTaskNum,VisitTaskId=c.TaskId ,Answer=c.Answer})))
|
||||
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName));
|
||||
|
||||
|
||||
CreateMap<VisitTask, CommonEvaluationExport>()
|
||||
.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.IsTrigerJudge, t => t.MapFrom(u => arbitrationRule == ArbitrationRule.Visit ? u.JudgeResultTaskId != null :
|
||||
(arbitrationRule == ArbitrationRule.Reading ?
|
||||
u.Subject.SubjectVisitTaskList.Any(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingCategory == ReadingCategory.Judge && t.TrialReadingCriterionId == trialReadingCriterionId && u.VisitTaskNum < t.VisitTaskNum) :
|
||||
false)))
|
||||
.ForMember(o => o.JudgeNote, t => t.MapFrom(u => u.JudgeResultRemark))
|
||||
.ForMember(o => o.VisitNote, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.AdjustReason).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
||||
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
||||
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
||||
.ForMember(o => o.JudgeQuestionAnswerList, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.IsJudgeQuestion).OrderBy(k => k.ReadingQuestionTrial.ShowOrder)
|
||||
.Select(c => new CommonQuesionInfo()
|
||||
{
|
||||
QuestionName = isEn_Us ? c.ReadingQuestionTrial.QuestionEnName : c.ReadingQuestionTrial.QuestionName,
|
||||
QuestionValue = c.Answer,
|
||||
TranslateDicName = c.ReadingQuestionTrial.DictionaryCode
|
||||
})));
|
||||
|
||||
CreateMap<VisitTask, CommonEvaluationDetailExport>()
|
||||
.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.IsTrigerJudge, t => t.MapFrom(u => arbitrationRule == ArbitrationRule.Visit ? u.JudgeResultTaskId != null :
|
||||
(arbitrationRule == ArbitrationRule.Reading ?
|
||||
u.Subject.SubjectVisitTaskList.Any(t => t.TaskState == TaskState.Effect && t.IsAnalysisCreate == false && t.ReadingCategory == ReadingCategory.Judge && t.TrialReadingCriterionId == trialReadingCriterionId && u.VisitTaskNum < t.VisitTaskNum) :
|
||||
false)))
|
||||
.ForMember(o => o.JudgeNote, t => t.MapFrom(u => u.JudgeResultRemark))
|
||||
.ForMember(o => o.VisitNote, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.AdjustReason).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
||||
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
||||
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
||||
.ForMember(o => o.QuestionAnswerList, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.IsJudgeQuestion).OrderBy(k => k.ReadingQuestionTrial.ShowOrder)
|
||||
.Select(c => new CommonQuesionInfo()
|
||||
{
|
||||
QuestionName = isEn_Us ? c.ReadingQuestionTrial.QuestionEnName : c.ReadingQuestionTrial.QuestionName,
|
||||
QuestionValue = c.Answer,
|
||||
TranslateDicName = c.ReadingQuestionTrial.DictionaryCode
|
||||
})));
|
||||
|
||||
|
||||
;
|
||||
|
||||
CreateMap<VisitTask, RECIST1Point1EvaluationOfTumorEfficacyExport>().IncludeBase<VisitTask, OverallTumorEvaluationExport>()
|
||||
.ForMember(o => o.TargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.TargetLesion).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.NoneTargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NoTargetLesion).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.IsExistNewlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NewLesions).FirstOrDefault()!.Answer))
|
||||
|
||||
//.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
||||
//.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
||||
//.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName))
|
||||
;
|
||||
CreateMap<VisitTask, IRECIST1Point1EvaluationOfTumorEfficacyExport>().IncludeBase<VisitTask, OverallTumorEvaluationExport>()
|
||||
.ForMember(o => o.TargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.TargetLesion).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.NoneTargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NoTargetLesion).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.IsExistNewlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NewLesions).FirstOrDefault()!.Answer))
|
||||
|
||||
.ForMember(o => o.NewTargetResponse, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NewTargetLesion).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.NewNoneTargetResponse, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NewNoTargetLesion).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.OtherPreviousNewlesionsResponse, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.OtherNewTargetLesion).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.IsExistNewlesionsAfterTriggeringIRECIST, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.IRECISTNewTargetLesion).FirstOrDefault()!.Answer))
|
||||
|
||||
;
|
||||
|
||||
CreateMap<VisitTask, Lugano2014EvaluationOfTumorEfficacyExport>().IncludeBase<VisitTask, OverallTumorEvaluationExport>()
|
||||
.ForMember(o => o.TargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.TargetLesion).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.NoneTargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NoTargetLesion).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.IsExistNewlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NewLesions).FirstOrDefault()!.Answer))
|
||||
|
||||
.ForMember(o => o.LiverResponse, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.LiverAssessment).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.SpleenResponse, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.SplenicEvaluation).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.CT_MRI_OverallResponse, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.CTandMRI).FirstOrDefault()!.Answer))
|
||||
.ForMember(o => o.FDG_PET_OverallResponse, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.FDGPET).FirstOrDefault()!.Answer))
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
CreateMap<VisitTask, RECIST1Point1DetailedOfEvaluatedLesionExport>().IncludeBase<VisitTask, RECIST1Point1EvaluationOfTumorEfficacyExport>()
|
||||
|
||||
@@ -159,6 +159,34 @@ namespace IRaCIS.Application.Contracts
|
||||
public bool IsEnglish { get; set; }
|
||||
}
|
||||
|
||||
public class VisitJudgeExportInfo: ExcelExportInfo
|
||||
{
|
||||
public int VisitCount { get; set; }
|
||||
|
||||
public int JudgeVisitCount { get; set; }
|
||||
|
||||
public string JudgeRatioStr => VisitCount == 0 ? $"NA" : $"{Math.Round((decimal)JudgeVisitCount * 100 / VisitCount, 2)}%";
|
||||
}
|
||||
|
||||
public class ReadingPeriodJudgeExportInfo : ExcelExportInfo
|
||||
{
|
||||
public int SubjectCount { get; set; }
|
||||
|
||||
public int judgeSubjectCount { get; set; }
|
||||
|
||||
public string SubjectJudgeRatioStr => SubjectCount == 0 ? $"NA" : $"{Math.Round((decimal)judgeSubjectCount * 100 / SubjectCount, 2)}%";
|
||||
|
||||
|
||||
public int ReadingPeriodCount { get; set; }
|
||||
|
||||
public int judgeReadingPeriodCount { get; set; }
|
||||
|
||||
public string ReadingPeriodJudgeRatioStr => ReadingPeriodCount == 0 ? $"NA" : $"{Math.Round((decimal)judgeReadingPeriodCount * 100 / ReadingPeriodCount, 2)}%";
|
||||
|
||||
public List<DoctorJudgeRatio> DoctorPeriodStatList { get; set; }
|
||||
|
||||
public List<DoctorJudgeRatio> DoctorSubjectStatList { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class ExcelExportInfo : TrialSelectDTO
|
||||
|
||||
Reference in New Issue
Block a user