using IRaCIS.Core.Domain.Share;
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace IRaCIS.Core.Application.Service.Reading.Dto
{
    #region 阅片问题
    public class ReadingReportDto
    {
        public Guid Id
        {
            get
            {
                return Guid.NewGuid();
            }
        }
        /// 
        /// 限制编辑
        /// 
        public LimitEdit LimitEdit { get; set; } = LimitEdit.None;
        /// 
		/// 最大答案长度
		/// 
		public int? MaxAnswerLength { get; set; }
        /// 
		/// 文件类型
		/// 
		public string FileType { get; set; } = string.Empty;
        public Guid QuestionId { get; set; }
        public Guid TableQuestionId { get; set; }
        public Guid? GroupId { get; set; }
        public int ShowOrder { get; set; }
        /// 
        /// 是否显示在Dicom阅片中
        /// 
        public bool IsShowInDicom { get; set; } = false;
        public decimal RowIndex { get; set; }
        /// 
		/// 问题类型
		/// 
		public TableQuestionType? QuestionGenre { get; set; }
        /// 
        /// 问题类型
        /// 
        public TableQuestionType? TableQuestionType { get; set; }
        /// 
        /// 字典code
        /// 
        public string DictionaryCode { get; set; }
        /// 
		/// 问题类型
		/// 
		public QuestionType? QuestionType { get; set; }
        /// 
        /// 数据来源
        /// 
        public DataSources DataSource { get; set; } = DataSources.ManualEntry;
        /// 
		/// 病灶类型
		/// 
		public LesionType? LesionType { get; set; }
        public string GroupName { get; set; }
        public string QuestionName { get; set; }
        public bool IsCanEditPosition { get; set; } = false;
        public string BlindName { get; set; }
        public Guid? RowId { get; set; }
        public string SplitOrMergeLesionName { get; set; }
        public SplitOrMergeType? SplitOrMergeType { get; set; }
        /// 
        /// 类型
        /// 
        public string Type { get; set; }
        /// 
        /// 问题标识
        /// 
        public QuestionMark? QuestionMark { get; set; }
        /// 
        /// 类型值
        /// 
        public string? TypeValue { get; set; }
        /// 
        /// 序号标记
        /// 
        public string? OrderMark { get; set; }
        /// 
        /// 数值类型
        /// 
        public ValueOfType? ValueType { get; set; }
        /// 
		/// 自定义单位
		/// 
		public string? CustomUnit { get; set; }
        /// 
        /// 单位
        /// 
        public ValueUnit? Unit { get; set; }
        public decimal FristAddTaskNum { get; set; }
        public ReportLayType ReportLayType { get; set; } = ReportLayType.Group;
        public string? ReportMark { get; set; }
        /// 
        /// 高亮问题的答案
        /// 
        public string HighlightAnswer { get; set; } = "[]";
        public List HighlightAnswerList { get; set; } = new List();
        /// 
        /// 问题英文分组
        /// 
        public string GroupEnName { get; set; } = string.Empty;
        public List Answer { get; set; } = new List();
        public List Childrens { get; set; } = new List();
    }
    public class TaskQuestionAnswer
    {
        public string TaskName { get; set; }
        public Guid VisitTaskId { get; set; }
        public string Answer { get; set; }
        public bool IsGlobalChange { get; set; } = false;
        /// 
		/// 全局阅片修改的答案
		/// 
		public string GlobalChangeAnswer { get; set; } = string.Empty;
        public List CrterionDictionaryGroup { get; set; }
    }
    public class GetReadingReportEvaluationOutDto
    {
        public object ReportCalculateResult { get; set; }
        public GetReportVerifyOutDto CalculateResult { get; set; }
        public ReadingTaskState ReadingTaskState { get; set; }
        public List VisitTaskList { get; set; }
        public List TaskQuestions { get; set; }
        public List LesionCountList { get; set; } = new List();
    }
    public class LesionDto
    {
        public LesionType? LesionType { get; set; }
        public int Count { get; set; }
    }
    public class VisitTaskGroupAnswerDto
    {
        public Guid VisitTaskId { get; set; }
        public List Questions { get; set; }
    }
    public class VisitTaskGroupInfo
    {
        public Guid QuestionId { get; set; }
        public string QuestionName { get; set; }
        public string GroupName { get; set; }
        public int ShowOrder { get; set; }
        public List QuestionList = new List();
    }
    public class VisitTaskQuestionInfo
    {
        public Guid QuestionId { get; set; }
        public string QuestionName { get; set; }
        public string GroupName { get; set; }
        public int ShowOrder { get; set; }
        public string Answer { get; set; } = string.Empty;
        public List TableRowQuestionList = new List();
    }
    public class VistTaskTableQuestionRowInfo
    {
        public decimal RowIndex { get; set; }
        /// 
        /// 序号标记
        /// 
        public string OrderMark { get; set; } = string.Empty;
        public List TableQuestionList = new List();
    }
    public class VistTaskTableQuestionInfo
    {
        public Guid QuestionId { get; set; }
        public Guid TableQuestionId { get; set; }
        public string QuestionName { get; set; }
        public int ShowOrder { get; set; }
        public string Answer { get; set; } = string.Empty;
    }
    public class VisitTaskInfo
    {
        public Guid VisitTaskId { get; set; }
        public string BlindName { get; set; }
        public bool IsHaveAdditionalQuestion { get; set; }
        public bool IsBaseLine { get; set; }
        public DateTime? LatestScanDate { get; set; }
        public TaskState TaskState { get; set; }
        public string TaskName { get; set; }
        public decimal VisitTaskNum { get; set; }
        public bool IsCurrentTask { get; set; }
        public Guid? BeforeConvertedTaskId { get; set; }
        public bool IsConvertedTask { get; set; }
        public List CrterionDictionaryGroup { get; set; }
    }
    public class GetCanMergeLesionOutDto
    {
        public Guid RowId { get; set; }
        public string? OrderMarkName { get; set; }
        public Guid? OrganInfoId { get; set; }
        public decimal RowIndex { get; set; }
        public string Part { get; set; }
    }
    public class GetCanMergeLesionInDto
    {
        public Guid RowId { get; set; }
    }
    public class TableQuestionAnswerInfo
    {
        public Guid Id { get; set; }
        /// 
        /// 问题标识
        /// 
        public QuestionMark? QuestionMark { get; set; }
        /// 
        /// 问题Id
        /// 
        public Guid QuestionId { get; set; }
        /// 
        /// 表格问题Id
        /// 
        public Guid TableQuestionId { get; set; }
        /// 
        /// 任务Id
        /// 
        public Guid VisitTaskId { get; set; }
        /// 
        /// 项目Id
        /// 
        public Guid TrialId { get; set; }
        /// 
        /// 行号
        /// 
        public decimal RowIndex { get; set; }
        /// 
        /// 答案
        /// 
        public string Answer { get; set; }
        /// 
        /// 创建时间
        /// 
        public DateTime CreateTime { get; set; }
        /// 
        /// 创建人
        /// 
        public Guid CreateUserId { get; set; }
        /// 
        /// RowId
        /// 
        public Guid RowId { get; set; }
        public Guid UpdateUserId { get; set; }
        public DateTime UpdateTime { get; set; }
        public bool IsDeleted { get; set; }
        public DateTime? DeletedTime { get; set; }
        public Guid? DeleteUserId { get; set; }
    }
    public class MergeLesionInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid QuestionId { get; set; }
        /// 
        /// 融合的主病灶
        /// 
        public Guid MergeMainRowId { get; set; }
        /// 
        /// 融合的病灶
        /// 
		public List MergeRowIdList { get; set; }
    }
    public class SplitLesionInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid QuestionId { get; set; }
        public Guid RowId { get; set; }
    }
    public class AdditionalQuestionAnswer
    {
        public Guid QuestionId { get; set; }
        public string Answer { get; set; }
    }
    public class SubmitTaskAdditionalQuestionInDto
    {
        public Guid VisitTaskId { get; set; }
        public List AnswerList { get; set; } = new List();
    }
    public class GetCustomTagInDto
    {
        /// 
        /// 任务Id
        /// 
        public Guid VisitTaskId { get; set; }
    }
    public class GetPreviousOtherPicturePathOutDto
    {
        public Guid VisitTaskId { get; set; }
        public string? PicturePath { get; set; }
        public string TaskBlindName { get; set; } = string.Empty;
    }
    public class DeleteTableQuestionMarkInDto
    {
        [NotDefault]
        public Guid RowId { get; set; }
    }
    /// 
    /// 保存表格问题标记
    /// 
    public class SaveTableQuestionMarkInDto
    {
        public string Answer { get; set; }
        public Guid VisitTaskId { get; set; }
        public Guid QuestionId { get; set; }
        public Guid? InstanceId { get; set; }
        public Guid? SeriesId { get; set; }
        public Guid? StudyId { get; set; }
        public string MarkTool { get; set; } = string.Empty;
        public string PicturePath { get; set; } = string.Empty;
        public int? NumberOfFrames { get; set; }
        public string MeasureData { get; set; } = string.Empty;
        public Guid? FirstAddTaskId { get; set; }
        public QuestionType? QuestionType { get; set; }
        public string OrderMarkName { get; set; } = string.Empty;
        public Guid? OtherInstanceId { get; set; }
        public Guid? OtherSeriesId { get; set; }
        public Guid? OtherStudyId { get; set; }
        public Guid? RowId { get; set; }
        [NotDefault]
        public Guid TableQuestionId { get; set; }
        [NotDefault]
        public decimal RowIndex { get; set; }
        public string OtherMarkTool { get; set; } = string.Empty;
        public string OtherPicturePath { get; set; } = string.Empty;
        public int? OtherNumberOfFrames { get; set; }
        public string OtherMeasureData { get; set; } = string.Empty;
    }
    public class TableQuestionMark: SaveTableQuestionMarkInDto
    {
        
        public new Guid? TableQuestionId { get; set; }
        
        public new decimal? RowIndex { get; set; }
    }
    public class GetPreviousOtherPicturePathInDto
    {
        public Guid? RowId { get; set; }
        public Guid? VisitTaskId { get; set; }
        /// 
        /// 问题类型
        /// 
        public QuestionType? QuestionType { get; set; }
    }
    public class GetReadingCalculationDataInDto
    {
        /// 
        /// 任务Id
        /// 
        public Guid VisitTaskId { get; set; }
    }
    public class ReadingCustomTagDto
    {
        public Guid? Id { get; set; }
        /// 
        /// 任务Id
        /// 
        public Guid VisitTaskId { get; set; }
        /// 
        /// StudyId
        /// 
        public Guid? StudyId { get; set; }
        /// 
        /// SeriesId
        /// 
        public Guid? SeriesId { get; set; }
        /// 
        /// InstanceId
        /// 
        public Guid? InstanceId { get; set; }
        /// 
        /// MeasureData
        /// 
        public string? MeasureData { get; set; }
        /// 
        /// CreateTime
        /// 
        public DateTime CreateTime { get; set; }
        /// 
        /// CreateUserId
        /// 
        public Guid CreateUserId { get; set; }
        public int? NumberOfFrames { get; set; }
    }
    public class GetManualListInDto
    {
        public Guid TrialId { get; set; }
    }
    public class GetManualListOutDto
    {
        public Guid Id { get; set; }
        /// 
        /// Name
        /// 
        public string Name { get; set; } = string.Empty;
        /// 
        /// Path
        /// 
        public string Path { get; set; } = string.Empty;
    }
    public class GetTaskAdditionalQuestionInDto
    {
        //public Guid TrialReadingCriterionId { get; set; }
        public Guid VisitTaskId { get; set; }
    }
    public class ChangeCalculationAnswerInDto
    {
        public Guid VisitTaskId { get; set; }
        public List QuestionAnswer { get; set; } = new List();
        public List TableQuestionAnswer { get; set; } = new List();
    }
    public class ChangeTableQuestion
    {
        public Guid? RowId { get; set; }
        public Guid QuestionId { get; set; }
        public Guid TableQuestionId { get; set; }
        public string Answer { get; set; }
    }
    public class ChangeQuestion
    {
        public Guid QuestionId { get; set; }
        public string Answer { get; set; }
    }
    public class ReadClinicalDataInDto
    {
        [NotDefault]
        public Guid VisitTaskId { get; set; }
    }
    public class GetReadingToolInDto
    {
        public Guid VisitTaskId { get; set; }
    }
    public class GetReadingToolOutDto
    {
        public ReadingTool? ReadingTool { get; set; }
        public Guid TrialReadingCriterionId { get; set; }
        public CriterionType CriterionType { get; set; }
    }
    public class ChangeDicomReadingQuestionAnswerInDto
    {
        public Guid VisitTaskId { get; set; }
        public ComputationTrigger ComputationTrigger { get; set; }
        public bool UpdateMark { get; set; } = false;
        public List Answers { get; set; }
        public List QuestionMarkInfoList { get; set; } = new List();
    }
    public class ChangeDicomReadingQuestionAnswerDto
    {
        public Guid Id { get; set; }
        public string Answer { get; set; } = string.Empty;
    }
    public class DicomReadingQuestionAnswer : ReadingQuestionTrial
    {
        public string Answer { get; set; }
        public string LastTaskAnswer { get; set; }
        public bool IsFirstChangeTask { get; set; } = false;
        public List CrterionDictionaryGroup { get; set; }
        public List Childrens = new List();
    }
    public class DeleteReadingRowAnswerInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid QuestionId { get; set; } = default(Guid);
        public Guid RowId { get; set; }
        public bool IsNeedSort { get; set; } = true;
    }
    public class GetDicomReadingQuestionAnswerInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid TrialId { get; set; }
        /// 
        /// 分组分类
        /// 
        public List? GroupClassifyList { get; set; }
        /// 
        /// 问题分类
        /// 
        public QuestionClassify? QuestionClassify { get; set; }
    }
    public class ReadingTableAnswerRowInfoBase
    {
        public Guid Id { get; set; }
        /// 
        /// CreateTime
        /// 
        public DateTime CreateTime { get; set; }
        /// 
        /// 第一层的Question
        /// 
        public Guid QuestionId { get; set; }
        /// 
		/// 器官Id
		/// 
		public Guid? OrganInfoId { get; set; }
        /// 
        /// VisitTaskId
        /// 
        public Guid VisitTaskId { get; set; }
        /// 
        /// 标记工具
        /// 
        public string? MarkTool { get; set; }
        /// 
        /// TrialId
        /// 
        public Guid TrialId { get; set; }
        /// 
		/// 首次添加任务ID
		/// 
		public Guid FristAddTaskId { get; set; }
        /// 
        /// 窗宽WW
        /// 
        public decimal? WW { get; set; }
        /// 
        /// 窗位WL
        /// 
        public decimal? WL { get; set; }
        /// 
        /// InstanceId
        /// 
        public Guid? InstanceId { get; set; }
        /// 
        /// SeriesId
        /// 
        public Guid? SeriesId { get; set; }
        /// 
        /// StudyId
        /// 
        public Guid? StudyId { get; set; }
        public bool IsCanEditPosition { get; set; } = false;
        /// 
        /// 是Dicom阅片
        /// 
        public bool IsDicomReading { get; set; } = true;
        /// 
        /// RowIndex
        /// 
        public decimal RowIndex { get; set; }
        /// 
        /// MeasureData
        /// 
        public string? MeasureData { get; set; }
        /// 
        /// 是否是当前任务添加
        /// 
        public bool IsCurrentTaskAdd { get; set; } = false;
        /// 
        /// SplitRowId
        /// 
        public Guid? SplitRowId { get; set; }
        /// 
        /// MergeRowId
        /// 
        public Guid? MergeRowId { get; set; }
        public string? BlindName { get; set; }
        public string? OrderMark { get; set; }
        /// 
        /// 截图地址
        /// 
        public string? PicturePath { get; set; }
        /// 
        /// 第一次添加的任务ID
        /// 
        public decimal FristAddTaskNum { get; set; } = 0;
        public SplitOrMergeType? SplitOrMergeType { get; set; }
        /// 
        /// CreateUserId
        /// 
        public Guid CreateUserId { get; set; }
        public int? NumberOfFrames { get; set; }
        public Guid UpdateUserId { get; set; }
        //string UpdateUserName { get; set; }
        public DateTime UpdateTime { get; set; }
        public bool IsDeleted { get; set; }
        public DateTime? DeletedTime { get; set; }
        public Guid? DeleteUserId { get; set; }
        /// 
		/// 来自于哪个标记
		/// 
		public string? FromMark { get; set; }
        public string? ReportMark { get; set; }
        public string? RowMark { get; set; }
    }
    public class CopyTableAnswerRowInfo : ReadingTableAnswerRowInfoBase
    {
        public Guid OriginalId { get; set; }
    }
    public class CopyTableAnswerDto
    {
        public decimal RowIndex { get; set; }
        /// 
        /// 问题标识
        /// 
        public QuestionMark? QuestionMark { get; set; }
        public bool IsCopy { get; set; }
        /// 
        /// 问题Id
        /// 
        public Guid QuestionId { get; set; }
        public Guid RowId { get; set; }
        /// 
        /// 表格问题Id
        /// 
        public Guid TableQuestionId { get; set; }
        /// 
        /// 项目Id
        /// 
        public Guid TrialId { get; set; }
        public string Answer { get; set; }
    }
    public class GetReadingReportEvaluationInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid TrialId { get; set; }
        public bool IsCalculate { get; set; } = true;
    }
    public class GetReadingQuestionAndAnswerOutDto : GetReadingTableQuestionOutDto
    {
        public List QuestionMarkInfoList { get; set; }
        public bool IsBaseLineTask { get; set; }
        public decimal TaskNum { get; set; }
        /// 
        /// 任务盲态名称 和访视盲态一样
        /// 
        public string BlindName { get; set; }
        public ReadingTaskState ReadingTaskState { get; set; }
    }
    public class GetCustomTableQuestionAnswerInDto
    {
        [NotDefault]
        public Guid VisitTaskId { get; set; }
        /// 
        /// 问题分类
        /// 
        public QuestionClassify? QuestionClassify { get; set; }
    }
    public class GetReadingTableQuestionOutDto
    {
        public List SinglePage { get; set; }
        public List MultiPage { get; set; }
        public List PublicPage { get; set; }
    }
    public class TrialReadQuestionData : ReadingQuestionTrial
    {
        public List CrterionDictionaryGroup { get; set; }
        public bool IsPage { get; set; } = false;
        public string Answer { get; set; }
        /// 
        /// 分页名称
        /// 
        public string PageName { get; set; }
        /// 
        /// 是否公共分页
        /// 
        public bool? IsPublicPage { get; set; } = false;
        public int? PageShowOrder { get; set; }
        public List Childrens { get; set; }
        public TrialReadTableQuestion TableQuestions { get; set; }
    }
    /// 
    /// 病灶Index
    /// 
    public class lesionsIndexDto
    {
        public Guid QuestionId { get; set; }
        public List Rowindexs { get; set; }
    }
    public class TableAnsweRowInfo : ReadingTableAnswerRowInfo
    {
        public string SplitName { get; set; }
        public string MergeName { get; set; }
        /// 
        /// 病灶类型
        /// 
        public LesionType? LesionType { get; set; }
    }
    public class GetReadingTableQuestionOrAnswerInDto
    {
        public Guid TrialReadingCriterionId { get; set; }
        public Guid? TaskId { get; set; }
        public List TableAnswers { get; set; } = new List();
        public List TableAnsweRowInfos { get; set; } = new List();
        public List OrganInfos { get; set; } = new List();
        /// 
        /// 问题分类
        /// 
        public QuestionClassify? QuestionClassify { get; set; }
        public bool IsGetallQuestion { get; set; } = false;
        /// 
        /// 是否获取预览
        /// 
        public bool IsGetPreview { get; set; } = false;
    }
    public class ReadingTableQuestionAnswerInfo : ReadingTableQuestionAnswer
    {
        public int ShowOrder { get; set; }
        /// 
        /// 问题标识
        /// 
        public QuestionMark? QuestionMark { get; set; }
    }
    public class TrialReadTableQuestion
    {
        public List Questions { get; set; }
        public List> Answers { get; set; }
    }
    public class TableQuestionTrial : ReadingTableQuestionTrial
    {
        public List RelationQuestions { get; set; } = new List();
    }
    public class GetTableAnswerRowInfoOutDto
    {
        public Guid Id { get; set; }
        public Guid? TableQuestionId { get; set; }
        /// 
        /// 序号标记
        /// 
        public string? OrderMark { get; set; }
        public string? OrderMarkName { get; set; }
        public string? FromMark { get; set; }
        /// 
		/// 病灶类型
		/// 
		public LesionType? LesionType { get; set; }
        /// 
        /// 截图地址
        /// 
        public string PicturePath { get; set; } = string.Empty;
        public int? NumberOfFrames { get; set; }
        public Guid RowId { get; set; }
        /// 
        /// QuestionId
        /// 
		public Guid QuestionId { get; set; }
        /// 
        /// VisitTaskId
        /// 
        public Guid VisitTaskId { get; set; }
        /// 
        /// TrialId
        /// 
        public Guid TrialId { get; set; }
        /// 
        /// InstanceId
        /// 
        public Guid? InstanceId { get; set; }
        /// 
        /// SeriesId
        /// 
        public Guid? SeriesId { get; set; }
        /// 
        /// StudyId
        /// 
        public Guid? StudyId { get; set; }
        public bool IsCanEditPosition { get; set; }
        /// 
        /// RowIndex
        /// 
        public string? RowIndex { get; set; }
        /// 
        /// RowIndex
        /// 
        public decimal RowIndexNum { get; set; }
        /// 
        /// 是Dicom阅片
        /// 
        public bool IsDicomReading { get; set; } = true;
        public string? BlindName { get; set; }
        /// 
        /// 首次添加任务ID
        /// 
        public Guid FristAddTaskId { get; set; }
        /// 
        /// 窗宽WW
        /// 
        public decimal? WW { get; set; }
        /// 
        /// 窗位WL
        /// 
        public decimal? WL { get; set; }
        /// 
        /// MeasureData
        /// 
        public string? MeasureData { get; set; }
        public string? OtherMeasureData { get; set; }
        public int ShowOrder { get; set; }
        public bool IsFirstChangeTask { get; set; } = false;
        /// 
        /// InstanceId
        /// 
        public Guid? OtherInstanceId { get; set; }
        /// 
        /// SeriesId
        /// 
        public Guid? OtherSeriesId { get; set; }
        /// 
        /// StudyId
        /// 
        public Guid? OtherStudyId { get; set; }
        public string? OtherMarkTool { get; set; }
        public string? OtherPicturePath { get; set; }
        public int? OtherNumberOfFrames { get; set; }
        public SplitOrMergeType? SplitOrMergeType { get; set; }
    }
    public class GetTableAnswerRowInfoInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid? QuestionId { get; set; }
    }
    public class QuestionMarkInfo
    {
        /// 
        /// 问题Id
        /// 
        public Guid QuestionId { get; set; }
        /// 
        /// InstanceId
        /// 
        public Guid? InstanceId { get; set; }
        /// 
        /// SeriesId
        /// 
        public Guid? SeriesId { get; set; }
        /// 
        /// StudyId
        /// 
        public Guid? StudyId { get; set; }
        /// 
        /// MarkTool
        /// 
        public string? MarkTool { get; set; }
        /// 
        /// PicturePath
        /// 
        public string? PicturePath { get; set; }
        /// 
        /// NumberOfFrames
        /// 
        public int? NumberOfFrames { get; set; }
        /// 
        /// MeasureData
        /// 
        public string? MeasureData { get; set; }
        public Guid? FirstAddTaskId { get; set; }
        public QuestionType? QuestionType { get; set; }
        public string? OrderMarkName { get; set; }
        /// 
        /// InstanceId
        /// 
        public Guid? OtherInstanceId { get; set; }
        /// 
        /// SeriesId
        /// 
        public Guid? OtherSeriesId { get; set; }
        /// 
        /// StudyId
        /// 
        public Guid? OtherStudyId { get; set; }
        public string? OtherMarkTool { get; set; }
        public string? OtherPicturePath { get; set; }
        public int? OtherNumberOfFrames { get; set; }
        public string? OtherMeasureData { get; set; }
    }
    public class GetReadingQuestionAndAnswerInDto
    {
        public Guid TrialId { get; set; }
        public Guid VisitTaskId { get; set; }
        /// 
        /// 问题分类
        /// 
        public QuestionClassify? QuestionClassify { get; set; }
    }
    #endregion
    public class GetHistoryGlobalInfoOutDto
    {
        public Guid VisitTaskId { get; set; }
        public string TaskName { get; set; }
        public ReadingTaskState ReadingTaskState { get; set; }
        public decimal VisitTaskNum { get; set; }
    }
    public class GetHistoryGlobalInfoInDto
    {
        public Guid VisitTaskId { get; set; }
    }
    public class SubmitOncologyReadingInfoInDto
    {
        public Guid OncologyTaskId { get; set; }
    }
    public class SubmitGlobalReadingInfoInDto
    {
        public Guid GlobalTaskId { get; set; }
    }
    public class SetOncologyQuestion
    {
        public Guid VisitTaskId { get; set; }
        /// 
        /// 评估结果
        /// 
        public string EvaluationResult { get; set; } = string.Empty;
        /// 
        /// 评估原因
        /// 
        public string EvaluationReason { get; set; } = string.Empty;
    }
    public class SetOncologyReadingInfoInDto
    {
        public Guid OncologyTaskId { get; set; }
        public Guid RelatedTaskId { get; set; }
        public List OncologyQuestionList { get; set; }
    }
    public class BatchSubmitGlobalReadingInfo
    {
        public Guid GlobalTaskId { get; set; }
        public Guid SubjectId { get; set; }
        public Guid TrialId { get; set; }
        public List VisitTaskAnswerList { get; set; }
    }
    public class SubmitGlobalReading
    {
        public Guid VisitTaskId { get; set; }
        public List AnswerList { get; set; }
    }
    public class GlobalAnswer
    {
        public Guid? QuestionId { get; set; }
        public GlobalAnswerType GlobalAnswerType { get; set; }
        public string Answer { get; set; }
    }
    public class SaveGlobalReadingInfoInDto
    {
        public Guid GlobalTaskId { get; set; }
        public Guid SubjectId { get; set; }
        public Guid TrialId { get; set; }
        public List QuestionList { get; set; }
    }
    public class SaveGlobalReadingQuestion
    {
        public Guid? QuestionId { get; set; }
        public Guid VisitTaskId { get; set; }
        public GlobalAnswerType GlobalAnswerType { get; set; }
        public string Answer { get; set; }
    }
    public class OncologyQuestion
    {
        public Guid QuestionId { get; set; }
        public string QuestionName { get; set; }
        public string Answer { get; set; }
        /// 
        /// 问题类型
        /// 
        public TableQuestionType? QuestionGenre { get; set; }
        /// 
        /// 字典code
        /// 
        public string DictionaryCode { get; set; }
    }
    public class OncologyVisitTaskInfo
    {
        public Guid VisitTaskId { get; set; }
        public string VisitName { get; set; }
        public bool IsBaseLine { get; set; }
        public decimal VisitNum { get; set; }
        public bool IsHaveChange { get; set; }
        public string VisitRemark { get; set; } = string.Empty;
        /// 
        /// 评估结果
        /// 
        public string EvaluationResult { get; set; } = string.Empty;
        /// 
        /// 评估原因
        /// 
        public string EvaluationReason { get; set; } = string.Empty;
        public List QuestionList { get; set; } = new List();
    }
    public class GetOncologyReadingInfoOutDto
    {
        public Guid OncologyTaskId { get; set; }
        ///// 
        ///// 评估结果
        ///// 
        //public string TrialEvaluationResult { get; set; } = string.Empty;
        /// 
        /// 评估原因
        /// 
        public string TrialEvaluationReason { get; set; } = string.Empty;
        /// 
        /// 是否显示详情
        /// 
        public bool IsShowDetail { get; set; }
        //任务阅片状态
        public ReadingTaskState ReadingTaskState { get; set; }
        public Guid GlobalOrVisitTaskId { get; set; }
        /// 
        /// 任务类型
        /// 
        public ReadingCategory ReadingCategory { get; set; }
        public Guid RelatedTaskId { get; set; }
        public Guid SubjectId { get; set; }
        public List AssessTypeList { get; set; }
        public List OncologyVisits { get; set; } = new List();
    }
    public class GetRelatedVisitTaskOutDto
    {
        public Guid VisitTaskId { get; set; }
        public string TaskName { get; set; }
        public bool IsBaseLineTask { get; set; }
        public string TaskBlindName { get; set; }
        public string SubjectCode { get; set; }
        public bool IsExistsClinicalData { get; set; }
        public ReadingTaskState ReadingTaskState { get; set; }
        public decimal VisitTaskNum { get; set; }
        public Guid? VisitId { get; set; }
        public bool IsCurrentTask { get; set; }
        /// 
        /// 是否是转变的任务(转为IRECIST)
        /// 
        public bool IsConvertedTask { get; set; } = false;
        /// 
        /// 是否是第一次转化的任务
        /// 
        public bool IsFirstChangeTask { get; set; } = false;
        /// 
        /// 融合的PTSeriesId
        /// 
        public Guid? PTSeriesId { get; set; }
        /// 
        /// 融合的CTSeriesId
        /// 
        public Guid? CTSeriesId { get; set; }
        /// 
        /// StudyId
        /// 
        public Guid? OtherStudyId { get; set; }
    }
    public class GetVisitReadingQuestionOutDto
    {
        public Guid QuestionId { get; set; }
        public Guid QuestionName { get; set; }
        //public 
    }
    public class GetVisitReadingQuestionInDto
    {
        public Guid TrialId { get; set; }
        public Guid VisitTaskId { get; set; }
    }
    public class GetRelatedVisitTaskInDto
    {
        [NotDefault]
        public Guid VisitTaskId { get; set; }
    }
    public class GetOncologyReadingInfoInDto
    {
        public Guid VisitTaskId { get; set; }
    }
    public class GetGlobalReadingInfoInDto
    {
        public Guid VisitTaskId { get; set; }
        /// 
        /// 当新答案为空的时候 是否是有原数据
        /// 
        public bool UsingOriginalData { get; set; } = false;
    }
    public class GetGlobalReadingInfoOutDto
    {
        public Guid GlobalTaskId { get; set; }
        public Guid? OtherGlobalTaskId { get; set; }
        public string SubjectCode { get; set; } = string.Empty;
        public string TaskBlindName { get; set; } = string.Empty;
        public Guid? JudgeTaskId { get; set; }
        public string? JudgeTaskName { get; set; }
        public ReadingTaskState ReadingTaskState { get; set; }
        public string GlobalUpdateType { get; set; }
        public List AssessTypeList { get; set; }
        public List TaskList { get; set; }
    }
    public class GlobalVisitInfo
    {
        public string VisitName { get; set; }
        public string BlindName { get; set; }
        public Guid VisitId { get; set; }
        public Guid VisitTaskId { get; set; }
        public decimal VisitNum { get; set; }
        public bool IsBaseLine { get; set; }
        public Arm ArmEnum { get; set; }
        /// 
        /// 是否是转变的任务(转为IRECIST)
        /// 
        public bool IsConvertedTask { get; set; } = false;
        public bool IsFirstChangeTask { get; set; } = false;
        public string AgreeOrNotAnswer
        {
            get
            {
                return this.AgreeOrNot.Select(x => x.Answer).FirstOrDefault() ?? string.Empty;
            }
        }
        public List CrterionDictionaryGroup { get; set; }
        public List BeforeQuestionList { get; set; }
        public List AgreeOrNot { get; set; }
        public List AfterQuestionList { get; set; }
        public List LesionCountList { get; set; } = new List();
    }
    public class GetGlobalQuestionType
    {
        public GlobalAnswerType GlobalAnswerType { get; set; }
        public string QuestionName { get; set; }
    }
    public class GlobalQuestionInfo
    {
        public Guid? QuestionId { get; set; }
        /// 
        /// 裁判百分比或绝对值的相差值
        /// 
        public decimal? JudgeDifferenceValue { get; set; }
        /// 
        /// 裁判百分比或绝对值的相差值匹配规则
        /// 
        public JudgeDifferenceType JudgeDifferenceType { get; set; }
        public bool IsHaveChange { get; set; } = false;
        public string VisitAnswer { get; set; } = string.Empty;
        public string QuestionName { get; set; }
        public string QuestionEnName { get; set; } = string.Empty;
        public string Answer { get; set; }
        public bool IsGlobalAnswer { get; set; } = false;
        /// 
		/// 问题类型
		/// 
		public QuestionType? QuestionType { get; set; }
        /// 
        /// 限制编辑
        /// 
        public LimitEdit LimitEdit { get; set; } = LimitEdit.None;
        /// 
		/// 最大答案长度
		/// 
		public int? MaxAnswerLength { get; set; }
        /// 
		/// 文件类型
		/// 
		public string FileType { get; set; } = string.Empty;
        public ValueUnit? Unit { get; set; }
        /// 
		/// 字典code
		/// 
		public string DictionaryCode { get; set; } = string.Empty;
        /// 
		/// 全局阅片显示类型
		/// 
		public GlobalReadingShowType GlobalReadingShowType { get; set; } = GlobalReadingShowType.NotShow;
        /// 
        /// 问题类型
        /// 
        public TableQuestionType? QuestionGenre { get; set; }
        /// 
        /// 答案分组
        /// 
        public string AnswerGroup { get; set; } = string.Empty;
        /// 
        /// 答案组合
        /// 
        public string AnswerCombination { get; set; } = string.Empty;
        /// 
        /// 裁判类型
        /// 
        public JudgeTypeEnum JudgeType { get; set; }
        public int ShowOrder { get; set; }
        /// 
        /// 类型值
        /// 
        public string TypeValue { get; set; }
        /// 
		/// 数值类型
		/// 
		public ValueOfType? ValueType { get; set; }
        /// 
        /// 类型
        /// 
        public string Type { get; set; }
        public GlobalAnswerType GlobalAnswerType { get; set; }
        /// 
        /// 是否是裁判问题
        /// 
        public bool IsJudgeQuestion { get; set; } = true;
        public List CrterionDictionaryGroup { get; set; }
    }
    public class GetReadingImgOutDto
    {
        public string Path { get; set; }
        public string FileName { get; set; }
    }
    public class SubjectTask
    {
        public Guid SubjectId { get; set; }
        public int UnReadTaskCount { get; set; }
        public int Index { get; set; }
    }
    public class ResetReadingTaskOutDto
    {
    }
    public class SetSkipReadingCacheInDto
    {
        public Guid VisitTaskId { get; set; }
    }
    public class ResetReadingTaskInDto
    {
        public Guid VisitTaskId { get; set; }
    }
    public class GetNextTaskInDto
    {
        public string SubjectCode { get; set; } = string.Empty;
        public Guid TrialId { get; set; }
        public Guid? SubjectId { get; set; }
        public Guid? TrialReadingCriterionId { get; set; }
        public Guid? VisitTaskId { get; set; }
    }
    public class GetReadingTaskDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid VisistId { get; set; }
        public Arm ArmEnum { get; set; }
        public bool IsExistsClinicalData { get; set; }
        public bool IsNeedReadClinicalData { get; set; }
        public bool IsReadClinicalData { get; set; }
        /// 
        /// 修约小数点
        /// 
        public int? DigitPlaces { get; set; } = 2;
        /// 
        /// 标准类型
        /// 
        public CriterionType CriterionType { get; set; }
        /// 
        ///  eCRF报告是否显示在图像页面
        /// 
        public bool IseCRFShowInDicomReading { get; set; } = false;
        public bool IsExistsNoDicomFile { get; set; } = false;
        public string TaskBlindName { get; set; }
        public Guid SubjectId { get; set; }
        public string SubjectCode { get; set; } = String.Empty;
        public bool ExistsManual { get; set; }
        public ReadingCategory ReadingCategory { get; set; }
        public decimal VisitNum { get; set; }
        public bool IsReadingShowSubjectInfo { get; set; } = false;
        public bool IsReadingShowPreviousResults { get; set; } = false;
        /// 
		/// 任务展示访视 读片任务显示是否顺序
		/// 
		public ReadingOrder IsReadingTaskViewInOrder { get; set; }
        public Guid TrialReadingCriterionId { get; set; }
        public bool IsFirstChangeTask { get; set; } = false;
        public ReadingTaskState ReadingTaskState { get; set; }
        /// 
        /// 是否是转变的任务(转为IRECIST)
        /// 
        public bool IsConvertedTask { get; set; } = false;
    }
    public class GetReadingImgInDto
    {
        public Guid? SubjectId { get; set; }
        [NotDefault]
        public Guid TrialId { get; set; }
        public Guid? VisistTaskId { get; set; }
    }
    public class GetConfirmCriterionInDto
    {
        [NotDefault]
        public Guid TrialId { get; set; }
        public Guid? VisitTaskId { get; set; }
    }
    /// 
    /// 返回对象
    /// 
    public class GetTrialConfirmCriterionListOutDto
    {
        public Guid ReadingQuestionCriterionTrialId { get; set; }
        /// 
        /// 标准
        /// 
        public string ReadingQuestionCriterionTrialName { get; set; }
    }
    public class SetTrialCriterionJudgeQuestionAnswerGroupInDto
    {
        [NotDefault]
        public Guid ReadingQuestionTrialId { get; set; }
        public List AnswerGroup { get; set; }
        /// 
        /// 裁判百分比或绝对值的相差值
        /// 
        public decimal? JudgeDifferenceValue { get; set; }
        /// 
        /// 裁判百分比或绝对值的相差值匹配规则
        /// 
        public JudgeDifferenceType JudgeDifferenceType { get; set; }
        public List AnswerCombination { get; set; }
        public JudgeTypeEnum JudgeType { get; set; }
    }
    public class GetTrialCriterionJudgeQuestionListOutDto
    {
        public Guid ReadingQuestionTrialId { get; set; }
        /// 
        /// 裁判百分比或绝对值的相差值
        /// 
        public decimal? JudgeDifferenceValue { get; set; }
        /// 
        /// 类型
        /// 
        public string Type { get; set; } = string.Empty;
        /// 
        /// 裁判百分比或绝对值的相差值匹配规则
        /// 
        public JudgeDifferenceType JudgeDifferenceType { get; set; }
        public string QuestionName { get; set; }
        public string PageName { get; set; }
        public string TypeValue { get; set; }
        /// 
        /// 问题类型
        /// 
        public TableQuestionType? QuestionGenre { get; set; }
        /// 
		/// 字典code
		/// 
		public string DictionaryCode { get; set; } = string.Empty;
        /// 
        /// 裁判类别
        /// 
        public JudgeTypeEnum JudgeType { get; set; }
        /// 
        /// 答案分组
        /// 
        public List AnswerGroup { get; set; }
        /// 
        /// 单位
        /// 
        public ValueUnit? Unit { get; set; }
        /// 
        /// 答案组合
        /// 
        public List AnswerCombination { get; set; }
    }
    public class GetTrialCriterionJudgeQuestionListInDto
    {
        [NotDefault]
        public Guid TrialId { get; set; }
        [NotDefault]
        public Guid TrialReadingCriterionId { get; set; }
    }
    public class VisitTaskArm
    {
        public Arm ArmEnum { get; set; }
        public Guid VisitTaskId { get; set; }
    }
    public class GetJudgeReadingInfoOutDto
    {
        public Guid? JudgeResultTaskId { get; set; }
        public List VisitInfoList { get; set; }
        public List VisitTaskArmList { get; set; }
        public ReadingTaskState ReadingTaskState { get; set; }
        /// 
        /// 裁判结果的备注
        /// 
        public string JudgeResultRemark { get; set; }
        public List JudgeResultImagePathList { get; set; } = new List();
        //public string JudgeResultImagePath { get; set; } = string.Empty;
    }
    public class GetReadingPastResultListOutDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid? ReadModuleVisitId { get; set; }
        public string TaskName { get; set; }
        public string VisitBlindName { get; set; }
        public string TaskBlindName { get; set; }
        public string VisitName { get; set; }
        public decimal VisitTaskNum { get; set; }
        public Arm? JudgeResultArm { get; set; }
    }
    public class GetJudgeReadingPastResultListInDto
    {
        [NotDefault]
        public Guid VisitTaskId { get; set; }
    }
    public class GetReadingPastResultListInDto
    {
        [NotDefault]
        public Guid VisitTaskId { get; set; }
    }
    public class SaveJudgeVisitTaskResult
    {
        public Guid VisitTaskId { get; set; }
        public Guid JudgeResultTaskId { get; set; }
        public string JudgeResultRemark { get; set; } = string.Empty;
        //public string JudgeResultImagePath { get; set; } = string.Empty;
        public List JudgeResultImagePathList { get; set; } = new List();
    }
    public class GetReadingSubjectInfoOutDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid SubjectId { get; set; }
        public string SubjectCode { get; set; } = string.Empty;
        public ReadingCategory ReadingCategory { get; set; }
        public string TaskBlindName { get; set; } = string.Empty;
        public bool IsReadingShowPreviousResults { get; set; } = false;
        public bool IsReadingShowSubjectInfo { get; set; } = false;
    }
    public class GetReadingSubjectInfoInDto
    {
        public Guid VisitTaskId { get; set; }
    }
    public class GetJudgeReadingInfo
    {
        public Guid VisitTaskId { get; set; }
    }
    public class JudgeReadingInfoDto
    {
        public string VisitName { get; set; }
        public Guid VisitId { get; set; }
        public List VisitTaskInfoList { get; set; }
    }
    public class JudgeReadingQuestion
    {
        public Arm ArmEnum { get; set; }
        public Guid GlobalVisitTaskId { get; set; }
        public Guid VisitTaskId { get; set; }
        public List JudgeQuestionList { get; set; }
    }
    public class GlobalVisitJudgeQuestion : JudgeQuestion
    {
        public Guid VisitTaskId { get; set; }
        /// 
		/// 排序
		/// 
		public int ShowOrder { get; set; }
    }
    public class JudgeQuestion
    {
        public Guid QuestionId { get; set; }
        public string QuestionName { get; set; }
        /// 
        /// 问题类型
        /// 
        public TableQuestionType? QuestionGenre { get; set; }
        /// 
        /// 字典code
        /// 
        public string DictionaryCode { get; set; } = string.Empty;
        public dynamic Answer { get; set; }
        public string Type { get; set; } = string.Empty;
        public ValueUnit? Unit { get; set; }
        public JudgeReadingQuestionType QuestionType { get; set; } = JudgeReadingQuestionType.Question;
    }
    public class GetSystemReadingQuestionInDto
    {
        [NotDefault]
        public Guid Id { get; set; }
    }
    public class VerifyVisitTaskDto
    {
        public QuestionType QuestionType { get; set; }
        public Func> Fun { get; set; }
    }
    public class GetReportVerifyOutDto
    {
        /// 
        /// 是否存在疾病
        /// 
        public string? IsExistDisease { get; set; }
        /// 
        /// 整体肿瘤评估
        /// 
        public string? TumorEvaluate { get; set; }
    }
    public class GetReportVerifyInDto
    {
        public Guid VisitTaskId { get; set; }
        public bool IsConvertTask { get; set; }
        public Guid? BeforeConvertedTaskId { get; set; }
    }
    public class VerifyVisitTaskQuestionsInDto
    {
        /// 
        /// 任务Id
        /// 
        public Guid VisitTaskId { get; set; }
    }
    public class TableQuestionData
    {
        public Guid TableQuestionId { get; set; }
        public int Count { get; set; }
    }
    public class SubmitTableQuestionOutDto
    {
        public Guid RowId { get; set; }
    }
    public class SubmitTableQuestionInDto
    {
        public Guid QuestionId { get; set; }
        public ComputationTrigger ComputationTrigger { get; set; } = ComputationTrigger.CTSave;
        public Guid? OrganInfoId { get; set; }
        public int? NumberOfFrames { get; set; }
        public string? FromMark { get; set; }
        public string? ReportMark { get; set; }
        /// 
        /// 标记工具
        /// 
        public string? MarkTool { get; set; }
        public decimal RowIndex { get; set; }
        /// 
        /// 截图地址
        /// 
        public string? PicturePath { get; set; }
        /// 
        /// 任务Id
        /// 
        public Guid VisitTaskId { get; set; }
        /// 
        /// 项目Id
        /// 
        public Guid TrialId { get; set; }
        public string? MeasureData { get; set; }
        public string? OtherMeasureData { get; set; }
        public Guid? SeriesId { get; set; }
        public Guid? InstanceId { get; set; }
        public Guid? StudyId { get; set; }
        public Guid? RowId { get; set; }
        public Guid? Id
        {
            get
            {
                return this.RowId;
            }
        }
        public bool? IsCanEditPosition { get; set; }
        public decimal FristAddTaskNum { get; set; } = 0;
        public decimal? WW { get; set; }
        public decimal? WL { get; set; }
        public string BlindName { get; set; } = string.Empty;
        public bool IsDicomReading { get; set; } = true;
        /// 
        /// InstanceId
        /// 
        public Guid? OtherInstanceId { get; set; }
        /// 
        /// SeriesId
        /// 
        public Guid? OtherSeriesId { get; set; }
        /// 
        /// StudyId
        /// 
        public Guid? OtherStudyId { get; set; }
        public string? OtherMarkTool { get; set; }
        public string? OtherPicturePath { get; set; }
        public int? OtherNumberOfFrames { get; set; }
        /// 
        /// 融合的PTSeriesId
        /// 
        public Guid? PTSeriesId { get; set; }
        /// 
        /// 融合的CTSeriesId
        /// 
        public Guid? CTSeriesId { get; set; }
        public List AnswerList { get; set; }
    }
    public class SubmitTableQuestionInfo
    {
        public Guid TableQuestionId { get; set; }
        public string Answer { get; set; } = string.Empty;
    }
    public class GetTrialReadingQuestionInDto
    {
        [NotDefault]
        public Guid ReadingQuestionCriterionTrialId { get; set; }
        public Guid? VisitTaskId { get; set; }
        public FormType? FormType { get; set; }
    }
    public class SubmitDicomVisitTaskInDto
    {
        public Guid VisitTaskId { get; set; }
    }
    /// 
    /// 
    /// 
    public class SubmitVisitTaskQuestionsInDto
    {
        [NotDefault]
        public Guid TrialId { get; set; }
        [NotDefault]
        public Guid VisitTaskId { get; set; }
        [NotDefault]
        public Guid ReadingQuestionCriterionTrialId { get; set; }
        public List AnswerList { get; set; } = new List();
    }
    public class SaveJudgeTaskDto
    {
        public List VisitTaskIds { get; set; }
    }
    public class QuestionAnswer
    {
        public Guid ReadingQuestionTrialId { get; set; }
        public string Answer { get; set; }
    }
    //public class GetTrialReadingQuestionDto
    //{
    //    public Guid Id { get; set; }
    //    public string GroupName { get; set; }
    //    List Questions { get; set; }
    //}
    public class GroupTaskAnswerDto
    {
        public Guid QuestionId { get; set; }
        /// 
        /// 裁判百分比或绝对值的相差值
        /// 
        public decimal? JudgeDifferenceValue { get; set; }
        /// 
        /// 裁判百分比或绝对值的相差值匹配规则
        /// 
        public JudgeDifferenceType JudgeDifferenceType { get; set; }
        public string AnswerGroup { get; set; }
        public string AnswerCombination { get; set; }
        public JudgeTypeEnum JudgeType { get; set; }
        public List TaskAnswerList { get; set; }
    }
    public class TaskGroupAnswer
    {
        public string Answer { get; set; }
    }
    public class AnswerGroup
    {
        public Guid GroupId { get; set; }
        public string GroupValue { get; set; }
    }
    public class AnswerCombinationDto
    {
        public List AnswerGroupA { get; set; }
        public List AnswerGroupB { get; set; }
    }
    public class TaskAnswerDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid QuestionId { get; set; }
        public decimal VisitTaskNum { get; set; }
        public string Answer { get; set; }
        public string AnswerGroup { get; set; }
        public string AnswerCombination { get; set; }
        public JudgeTypeEnum JudgeType { get; set; }
        /// 
        /// 裁判百分比或绝对值的相差值
        /// 
        public decimal? JudgeDifferenceValue { get; set; }
        /// 
        /// 裁判百分比或绝对值的相差值匹配规则
        /// 
        public JudgeDifferenceType JudgeDifferenceType { get; set; }
    }
    public class GetSystemReadingQuestionPageDto
    {
        public List SinglePage { get; set; }
        public List MultiPage { get; set; }
        public List PublicPage { get; set; }
    }
    public class GetTrialReadingQuestionPageDto
    {
        public List SinglePage { get; set; }
        public List MultiPage { get; set; }
        public List PublicPage { get; set; }
    }
    public class TableQuestionDataInfo
    {
        /// 
        /// 
        /// 
        public Guid Id { get; set; }
        /// 
        /// 问题ID
        /// 
		public Guid ReadingQuestionId { get; set; }
        /// 
        /// 字典code
        /// 
        public string DictionaryCode { get; set; } = string.Empty;
        /// 
		/// 问题类型
		/// 
		public TableQuestionType? QuestionGenre { get; set; }
        /// 
        /// Type
        /// 
        public string Type { get; set; }
        public ValueUnit? Unit { get; set; }
        /// 
        /// ParentId
        /// 
        public Guid? ParentId { get; set; }
        /// 
        ///父问题触发值
        /// 
        public string ParentTriggerValue { get; set; }
        /// 
        /// 问题名称
        /// 
        public string QuestionName { get; set; }
        /// 
        /// IsRequired
        /// 
        public IsRequired IsRequired { get; set; }
        /// 
        /// 排序号
        /// 
        public int ShowOrder { get; set; }
        /// 
        /// 值
        /// 
        public string TypeValue { get; set; }
        /// 
        /// 是否启用
        /// 
        public bool IsEnable { get; set; }
        /// 
        /// 创建时间
        /// 
        public DateTime CreateTime { get; set; }
        /// 
        /// 创建用户
        /// 
        public Guid CreateUserId { get; set; }
        /// 
        /// 备注
        /// 
        public string Remark { get; set; }
        /// 
        /// 显示父问题
        /// 
        public Guid? RelevanceId { get; set; }
        /// 
        /// 显示父问题的值
        /// 
        public string RelevanceValue { get; set; }
        /// 
        /// 是否显示
        /// 
        public ShowQuestion ShowQuestion { get; set; }
        /// 
        /// 最大问题数
        /// 
        public int? MaxRowCount { get; set; }
        /// 
        /// 数据表名称
        /// 
        public string DataTableName { get; set; }
        /// 
        /// 数据列
        /// 
        public string DataTableColumn { get; set; }
        /// 
        /// 关联父问题
        /// 
        public Guid? DependParentId { get; set; }
        /// 
        /// 是否关联
        /// 
        public IsDepend IsDepend { get; set; }
        /// 
        /// 表格问题类型
        /// 
        public TableQuestionType? TableQuestionType { get; set; }
        /// 
        /// 问题标识
        /// 
        public QuestionMark? QuestionMark { get; set; }
        [Comment("复制病灶的时候 是否复制这个问题")]
        public bool IsCopy { get; set; } = false;
        [Comment("分类问题表格Id")]
        public Guid? ClassifyTableQuestionId { get; set; }
        [Comment("分类算法")]
        public string ClassifyAlgorithms { get; set; } = string.Empty;
    }
    public class GetSystemReadingQuestionOutDto
    {
        public Guid Id { get; set; }
        /// 
        /// 分组ID
        /// 
        public Guid? GroupId { get; set; }
        /// 
        /// 系统标准Id
        /// 
        public Guid ReadingQuestionCriterionSystemId { get; set; }
        public ValueUnit? Unit { get; set; }
        /// 
		/// 问题类型
		/// 
		public TableQuestionType? QuestionGenre { get; set; }
        /// 
        /// 字典code
        /// 
        public string DictionaryCode { get; set; }
        /// 
        /// 默认值
        /// 
        public string DefaultValue { get; set; } = string.Empty;
        /// 
        /// 类型
        /// 
        public string Type { get; set; }
        /// 
        /// 父问题触发
        /// 
        public string ParentTriggerValue { get; set; }
        /// 
        /// 问题名称
        /// 
        public string QuestionName { get; set; }
        /// 
        /// 是否是必须
        /// 
        public IsRequired IsRequired { get; set; }
        /// 
        /// 排序
        /// 
        public int ShowOrder { get; set; }
        /// 
        /// 父问题ID
        /// 
        public Guid? ParentId { get; set; }
        /// 
        /// 数据列
        /// 
        public string DataTableColumn { get; set; } = string.Empty;
        /// 
        /// 类型值
        /// 
        public string TypeValue { get; set; }
        /// 
        /// 是否启用
        /// 
        public bool IsEnable { get; set; }
        /// 
        /// 创建时间
        /// 
        public DateTime CreateTime { get; set; }
        /// 
        /// 是否是裁判问题
        /// 
        public bool IsJudgeQuestion { get; set; }
        /// 
        /// 备注
        /// 
        public string Remark { get; set; }
        /// 
        /// 关联ID
        /// 
        public Guid? RelevanceId { get; set; }
        /// 
        /// 关联Value
        /// 
        public string RelevanceValue { get; set; } = string.Empty;
        /// 
        /// 分组
        /// 
        public string GroupName { get; set; }
        /// 
        /// 图片数量
        /// 
        public int ImageCount { get; set; } = 1;
        /// 
        /// 是否显示
        /// 
        public ShowQuestion ShowQuestion { get; set; }
        /// 
        /// 最大问题数
        /// 
        public int? MaxQuestionCount { get; set; }
        /// 
        /// 病灶类型
        /// 
        public LesionType? LesionType { get; set; }
        /// 
        /// 问题类型
        /// 
        public QuestionType? QuestionType { get; set; }
        /// 
        /// 是否显示在Dicom阅片中
        /// 
        public bool IsShowInDicom { get; set; }
        /// 
        /// 序号标记
        /// 
        public string OrderMark { get; set; } = string.Empty;
        /// 
        /// 关联父问题
        /// 
        public Guid? DependParentId { get; set; }
        /// 
        /// 是否关联
        /// 
        public IsDepend? IsDepend { get; set; }
        /// 
        /// 表格问题类型
        /// 
        public TableQuestionType? TableQuestionType { get; set; }
        /// 
        /// 问题标识
        /// 
        public QuestionMark? QuestionMark { get; set; }
        public List RelationQuestions { get; set; }
        //public List TableQuestions { get; set; }
        public List Childrens { get; set; }
        [NotMapped]
        public List RelevanceValueList
        {
            get
            {
                try
                {
                    return this.RelevanceValue.Split(',').ToList();
                }
                catch (Exception)
                {
                    return new List();
                }
            }
        }
        [NotMapped]
        public List ParentTriggerValueList
        {
            get
            {
                try
                {
                    return this.ParentTriggerValue.Split(',').ToList();
                }
                catch (Exception)
                {
                    return new List();
                }
            }
        }
        [Comment("导出标识")]
        public ExportIdentification? ExportIdentification { get; set; }
        [Comment("导出结果")]
        public string ExportResultStr { get; set; } = "[]";
        [Comment("分类算法")]
        public string ClassifyAlgorithms { get; set; } = string.Empty;
        [Comment("分类问题Id")]
        public Guid? ClassifyQuestionId { get; set; }
        [NotMapped]
        public List ExportResult
        {
            get
            {
                try
                {
                    var result = JsonConvert.DeserializeObject>(this.ExportResultStr);
                    return result == null ? new List() : result;
                }
                catch (Exception)
                {
                    return new List();
                }
            }
        }
        [Comment("复制病灶的时候 是否复制这个问题")]
        public bool IsCopy { get; set; } = false;
        [Comment("分类问题表格Id")]
        public Guid? ClassifyTableQuestionId { get; set; }
    }
    public class GetTrialReadingQuestionOutDto
    {
        /// 
        /// 字典code
        /// 
        public string DictionaryCode { get; set; }
        /// 
		/// 问题类型
		/// 
		public TableQuestionType? QuestionGenre { get; set; }
        /// 
        /// 项目标准Id
        /// 
        public Guid ReadingQuestionCriterionTrialId { get; set; }
        /// 
        /// 项目Id
        /// 
        public Guid TrialId { get; set; }
        /// 
        /// 类型
        /// 
        public string Type { get; set; }
        /// 
        /// 父问题触发
        /// 
        public string ParentTriggerValue { get; set; }
        public string GroupName { get; set; }
        /// 
        /// 问题名称
        /// 
        public string QuestionName { get; set; }
        /// 
        /// 是否是必须
        /// 
        public IsRequired IsRequired { get; set; }
        /// 
        /// 排序
        /// 
        public int ShowOrder { get; set; }
        public int? PageShowOrder { get; set; }
        /// 
        /// 父问题ID
        /// 
        public Guid? ParentId { get; set; }
        /// 
        /// 类型值
        /// 
        public string TypeValue { get; set; }
        /// 
        /// 答案
        /// 
        public string Answer { get; set; }
        /// 
        /// 分页名称
        /// 
		public string? PageName { get; set; }
        public bool? IsPublicPage { get; set; }
        public bool IsPage { get; set; } = false;
        public string DefaultValue { get; set; } = string.Empty;
        /// 
		/// 标准分页Id
		/// 
		public Guid? ReadingCriterionPageId { get; set; }
        /// 
        /// 关联ID
        /// 
        public Guid? RelevanceId { get; set; }
        /// 
        /// 关联Value
        /// 
        public string RelevanceValue { get; set; } = string.Empty;
        /// 
		/// 图片数量
		/// 
		public int ImageCount { get; set; }
        /// 
        /// 是否显示
        /// 
        public ShowQuestion ShowQuestion { get; set; }
        /// 
        /// 最大问题数
        /// 
        public int? MaxQuestionCount { get; set; }
        /// 
        /// 病灶类型
        /// 
        public LesionType? LesionType { get; set; }
        /// 
        /// 问题类型
        /// 
        public QuestionType? QuestionType { get; set; }
        /// 
        /// 是否显示在Dicom阅片中
        /// 
        public bool IsShowInDicom { get; set; } = false;
        //public List TableQuestions { get; set; }
        public List RelationQuestions { get; set; }
        public List Childrens { get; set; }
        public Guid Id { get; set; }
        public Guid? GroupId { get; set; }
        /// 
        /// 数据列
        /// 
        public string DataTableColumn { get; set; } = string.Empty;
        /// 
        /// 是否启用
        /// 
        public bool IsEnable { get; set; }
        /// 
        /// 创建时间
        /// 
        public DateTime CreateTime { get; set; }
        /// 
        /// 是否是裁判问题
        /// 
        public bool IsJudgeQuestion { get; set; }
        /// 
        /// 备注
        /// 
        public string Remark { get; set; }
        /// 
        /// 序号标记
        /// 
        public string OrderMark { get; set; } = string.Empty;
        /// 
        /// 关联父问题
        /// 
        public Guid? DependParentId { get; set; }
        /// 
        /// 是否关联
        /// 
        public IsDepend? IsDepend { get; set; }
        /// 
        /// 表格问题类型
        /// 
        public TableQuestionType? TableQuestionType { get; set; }
        /// 
        /// 问题标识
        /// 
        public QuestionMark? QuestionMark { get; set; }
        /// 
        /// 数值类型
        /// 
        public ValueOfType? ValueType { get; set; }
        /// 
        /// 单位
        /// 
        public ValueUnit? Unit { get; set; }
        [Comment("复制病灶的时候 是否复制这个问题")]
        public bool IsCopy { get; set; } = false;
        [Comment("分类问题表格Id")]
        public Guid? ClassifyTableQuestionId { get; set; }
        [Comment("分类算法")]
        public string ClassifyAlgorithms { get; set; } = string.Empty;
    }
    ///// 
    ///// 表格问题
    ///// 
    //public class GetTrialReadingTableQuestion
    //{
    //    public List<> class TrialReadingTableQuestion
    //}
    //public class TrialReadingTableQuestion
    //{
    //}
}