//--------------------------------------------------------------------
//     此代码由T4模板自动生成  byzhouhang 20210918
//	   生成时间 2022-08-22 09:36:37 
//     对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using System;
using IRaCIS.Core.Domain.Share;
using System.Collections.Generic;
namespace IRaCIS.Core.Application.Service.Reading.Dto
{
    public class CalculateTaskInDto
    {
        public Guid VisitTaskId { get; set; }
          
        public bool IsChangeOtherTask { get; set; }
    }
    public class TargetLesionCalculateDto
    {
        /// 
        /// 最低SOD
        /// 
        public decimal LowSod { get; set; }
        /// 
        /// 是否存在靶病灶
        /// 
        public bool ExistsTargetLesion { get; set; }
        /// 
        /// 非淋巴结靶病灶长径之和  decimal
        /// 
        public decimal SumOfDiameter { get; set; }
        /// 
        /// SOD变化百分比
        /// 
        public decimal SODPercent { get; set; }
        /// 
        /// 所有淋巴结靶病灶的短径小于10mm
        /// 
        public bool DiameterLessThan10 { get; set; }
        /// 
        /// SOD 百分比与基线期SOD相比减小≥30%
        /// 
        public bool SODPercentBigger30 { get; set; }
        /// 
        /// SOD 百分比 与基线期SOD相比减小<30%
        /// 
        public bool SODPercentLess30 { get; set; }
        /// 
        /// SOD 百分比 整体访视期间最低点SOD相比增加
        /// 
        public bool LowPercentLess20 { get; set; }
        /// 
        /// SOD 百分比  比整体访视期间最低点SOD增加≥20%
        /// 
        public bool LowPercentBigger20 { get; set; }
        /// 
        /// SOD 变化值 比整体访视期间最低点SOD绝对增加值<5 mm
        /// 
        public bool LowChangeLess5 { get; set; }
        /// 
        /// 比整体访视期间最低点SOD绝对增加值≥5 mm
        /// 
        public bool LowChangeBigger5 { get; set; }
        /// 
        /// 被评估为NE的单个靶病灶   是否存在状态为不可评估的靶病灶
        /// 
        public bool ExixtsNETargetLesion { get; set; }
        /// 
        /// 上次访视点整体肿瘤评估
        /// 
        public string LastTargetLesionEvaluate { get; set; }
        /// 
        /// 当前访视点非淋巴结病灶长径>0
        /// 
        public bool CurrentMajoreBigger0 { get; set; }
        /// 
        /// 至少一个淋巴结靶病灶短径≥10 mm
        /// 
        public bool CurrenShortBigger10 { get; set; }
        /// 
        /// 淋巴结非靶病灶状态全部为消失
        /// 
        public bool NonTargetStateIsLoss { get; set; }
        /// 
        /// 该淋巴结靶病灶短径绝对增加值≥5 mm
        /// 
        public bool IsAddFive { get; set; }
    }
    /// 
    /// 阅片计算Dto
    /// 
    public class ReadingCalculateDto
    {
        public Guid SubjectId { get; set; }
        public string TaskBlindName { get; set; } = string.Empty;
        public bool IsAnalysisCreate { get; set; }
        public bool? IsSelfAnalysis { get; set; }
        public bool IsBaseLine { get; set; }
        /// 
        /// TrialReadingCriterionId
        /// 
        public Guid  TrialReadingCriterionId { get; set; }
        public string VisitName { get; set; }
        public string BlindName { get; set; }
        public decimal VisitTaskNum { get; set; }
        public Guid VisitTaskId { get; set; }
        public Guid BaseLineTaskId { get; set; }
        public Guid CriterionId { get; set; }
        public Guid TrialId { get; set; }
        public Guid? DoctorUserId { get; set; }
        public Guid SubjectVisitId { get; set; }
        public Arm ArmEnum { get; set; } 
        /// 
        /// 是否修改其他任务
        /// 
        public bool IsChangeOtherTask { get; set; } = false;
        /// 
        /// 是否只改其他任务
        /// 
        public bool IsOnlyChangeAllTask { get; set; } = false;
        /// 
        /// 修约小数点
        /// 
        public int DigitPlaces { get; set; } = 2;
        public List QuestionInfo { get; set; } = new List();
    }
    public class QuestionInfo
    {
        public Guid QuestionId { get; set; }
        /// 
        /// 答案
        /// 
        public string Answer { get; set; }
        /// 
        /// 问题名称
        /// 
        public string QuesionName { get; set; }
        public ValueOfType? ValueType { get; set; }
        /// 
        /// 病灶类型
        /// 
        public LesionType? LesionType { get; set; }
        public QuestionType? QuestionType { get; set; }
        public List TableRowInfoList = new List();
    }
    public class TableRowInfo
    {
        public decimal RowIndex { get; set; }
        public decimal FristAddTaskNum { get; set; }
        public string MeasureData { get; set; }
        public List TableQuestionList { get; set; } = new List();
    }
    public class TableQuestionInfo
    {
        public Guid RowId { get; set; }
        public Guid AnswerId { get; set; }
        /// 
        /// 答案
        /// 
        public string Answer { get; set; }
        /// 
        /// 问题Id
        /// 
        public Guid TableQuestionId { get; set; }
        public Guid QuestionId { get; set; }
        public decimal RowIndex { get; set; }
        /// 
        /// 问题标识
        /// 
        public QuestionMark? QuestionMark { get; set; }
        public QuestionType? QuestionType { get; set; }
    }
    public class VisitTaskAnswerInfo
    {
        public Guid VisitTaskId { get; set; }
        public Guid QuestionId { get; set; }
        public string VisitName { get; set; }
        public string BlindName { get; set; }
        public decimal SOD { get; set; }
        public decimal VisitTaskNum { get; set; }
        public decimal NewLesionsCount { get; set; }
    }
    public class ChangeAllTaskDto
    {
        public ReadingCalculateDto calculateDto { get; set; }
        public bool IsAnalysisCreate { get; set; }
        public Guid QuestionId { get; set; }
    }
    public class ReadingCalculateData
    {
        public QuestionType QuestionType { get; set; }
        public Func> GetDecimalFun { get; set; }
        public Func> GetIntFun { get; set; }
        public Func> GetDecimalNullFun { get; set; }
        public Func> GetStringFun { get; set; }
        public Func ChangeAllTaskFun { get; set; }
    }
}