阅片导出初步提交

This commit is contained in:
2024-10-10 09:54:48 +08:00
parent 431d2e7a97
commit 1bb62fd134
9 changed files with 987 additions and 241 deletions
@@ -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
{
//病灶编号