using IRaCIS.Core.Domain.Share;
using MassTransit;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.Reading.Dto
{
    #region 阅片问题
    public class ReadingReportDto
    {
        public Guid Id
        {
            get
            {
                return Guid.NewGuid();
            }
        }
        public Guid QuestionId { get; set; }
        public Guid TableQuestionId { 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; } = string.Empty;
        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; } = string.Empty;
        /// 
		/// 数值类型
		/// 
		public ValueOfType? ValueType { get; set; }
        /// 
		/// 自定义单位
		/// 
		public string CustomUnit { get; set; } = string.Empty;
        /// 
        /// 单位
        /// 
        public ValueUnit? Unit { get; set; }
        public decimal FristAddTaskNum { get; set; }
        public ReportLayType ReportLayType { get; set; } = ReportLayType.Group;
      
        /// 
        /// 问题英文分组
        /// 
        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 class GetReadingReportEvaluationOutDto
    {
        public  object ReportCalculateResult{ get; set; }
        
        public object CalculateResult { get; set; }
        public ReadingTaskState ReadingTaskState { get; set; }
        public List VisitTaskList { get; set; }
        public List TaskQuestions { 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 IsBaseLine { get; set; }
        public string TaskName { get; set; }
        public decimal VisitTaskNum { get; set; }
        public bool IsCurrentTask { get; set; }
    }
    public class MergeLesionInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid QuestionId { get; set; }
        public Guid MainRowId { get; set; }
        public Guid MergeRowId { get; set; }
    }
    public class SplitLesionInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid QuestionId { get; set; }
        public Guid RowId { 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 List Answers { get; set; }
    }
    public class ChangeDicomReadingQuestionAnswerDto
    {
        public Guid Id { get; set; }
        public string Answer { get; set; }
    }
    public class DicomReadingQuestionAnswer : ReadingQuestionTrial
    {
        public string Answer { get; set; }
        public List Childrens = new List();
    }
    public class DeleteReadingRowAnswerInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid QuestionId { get; set; }
        public Guid RowId { get; set; }
    }
    public class GetDicomReadingQuestionAnswerInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid TrialId { get; set; }
    }
    public class ReadingTableAnswerRowInfoBase
    {
        public Guid Id { get; set; }
        /// 
        /// 第一层的Question
        /// 
        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; } = false;
        /// 
        /// 是Dicom阅片
        /// 
        public bool IsDicomReading { get; set; } = true;
        /// 
        /// RowIndex
        /// 
        public decimal RowIndex { get; set; }
        /// 
        /// MeasureData
        /// 
        public string MeasureData { get; set; } = string.Empty;
        /// 
        /// CreateTime
        /// 
        public DateTime CreateTime { 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; } = string.Empty;
        public string OrderMark { get; set; } = string.Empty;
        /// 
        /// 截图地址
        /// 
        public string PicturePath { get; set; } = string.Empty;
        /// 
        /// 第一次添加的任务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 RowMark { get; set; } = string.Empty;
    }
    public class CopyTableAnswerRowInfo : ReadingTableAnswerRowInfoBase
    {
        public Guid OriginalId { get; set; }
    }
    public class CopyTableAnswerDto
    {
        public decimal RowIndex { get; set; }
        /// 
        /// 问题标识
        /// 
        public QuestionMark? QuestionMark { 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 class GetReadingQuestionAndAnswerOutDto: GetReadingTableQuestionOutDto
    {
        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 class GetReadingTableQuestionOutDto
    {
        public List SinglePage { get; set; }
        public List MultiPage { get; set; }
        public List PublicPage { get; set; }
    }
    public class TrialReadQuestionData : ReadingQuestionTrial
    {
        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; }
    }
    public class TableAnsweRowInfo : ReadingTableAnswerRowInfo
    {
        public string SplitName { get; set; }
        public string MergeName { 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 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 string OrderMark { get; set; } = string.Empty;
      
        public string OrderMarkName { get; set; } = string.Empty;
        /// 
        /// 截图地址
        /// 
        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; } = string.Empty;
        /// 
        /// MeasureData
        /// 
        public string MeasureData { get; set; }
        public int ShowOrder { get; set; }
    }
    public class GetTableAnswerRowInfoInDto
    {
        public Guid VisitTaskId { get; set; }
        public Guid? QuestionId { get; set; }
    }
    public class GetReadingQuestionAndAnswerInDto
    {
        public Guid TrialId { get; set; }
        public Guid VisitTaskId { 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 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 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 GlobalTaskId { 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 ReadingTaskState ReadingTaskState { get; set; }
        public decimal VisitTaskNum { get; set; }
        public Guid? VisitId { get; set; }
        public bool IsCurrentTask { 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 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; }
        public string AgreeOrNotAnswer
        {
            get 
            {
                return this.AgreeOrNot.Select(x => x.Answer).FirstOrDefault()??string.Empty;
            }
        }
        public List BeforeQuestionList { get; set; }
        public List AgreeOrNot { get; set; }
        public List AfterQuestionList { get; set; }
    }
    public class GetGlobalQuestionType
    {
        public GlobalAnswerType GlobalAnswerType { get; set; }
        public string QuestionName { get; set; }
    }
    public class GlobalQuestionInfo
    {
        public Guid? QuestionId { get; set; }
        public bool IsHaveChange { get; set; } = false;
        public string QuestionName { get; set; }
        public string Answer { get; set; }
        /// 
		/// 问题类型
		/// 
		public QuestionType? QuestionType { 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 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 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 GetNextTaskInDto
    {
        public Guid? SubjectId { get; set; }
        public string SubjectCode { get; set; }=string.Empty;
        public Guid TrialId { 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 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 ReadingCategory ReadingCategory { get; set; }
        public decimal VisitNum { get; set; }
        public bool IsReadingShowSubjectInfo { get; set; } = false;
        public bool IsReadingShowPreviousResults { get; set; } = false;
        /// 
		/// 任务展示访视 读片任务显示是否顺序
		/// 
		public bool IsReadingTaskViewInOrder { get; set; } = true;
        public Guid TrialReadingCriterionId { get; set; }
    }
    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 List AnswerCombination { get; set; }
        
        public JudgeTypeEnum JudgeType { get; set; }
    }
    public class GetTrialCriterionJudgeQuestionListOutDto
    {
        public Guid ReadingQuestionTrialId { 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 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 string TaskName { get; set; }
        public string TaskBlindName { get; set; }
        public decimal VisitTaskNum { 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 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 GetReportVerifyInDto
    {
       public Guid  VisitTaskId { 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 Guid? OrganInfoId { get; set; }
        public int? NumberOfFrames { get; set; }
        public decimal RowIndex { get; set; }
        /// 
        /// 截图地址
        /// 
        public string PicturePath { get; set; } = string.Empty;
        /// 
		/// 任务Id
		/// 
		public Guid VisitTaskId { get; set; }
        /// 
        /// 项目Id
        /// 
        public Guid TrialId { get; set; }
        public string MeasureData { get; set; } = string.Empty;
        public Guid? SeriesId { get; set; }
        public Guid? InstanceId { get; set; }
        public Guid? StudyId { get; set; }
        public Guid? RowId { get; set; }
        public bool IsCanEditPosition { get; set; } = false;
        public decimal FristAddTaskNum { get; set; } = 0;
        public string BlindName { get; set; } = string.Empty;
        public bool IsDicomReading { get; set; } = true;
        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 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 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; }
        /// 
        /// 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 int 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; }
    }
    public class GetSystemReadingQuestionOutDto
    {
        public Guid Id { get; set; }
        /// 
		/// 系统标准Id
		/// 
		public Guid ReadingQuestionCriterionSystemId { 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; } = ShowQuestion.Show;
        /// 
        /// 最大问题数
        /// 
        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; }
    }
    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 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; }
    }
    ///// 
    ///// 表格问题
    ///// 
    //public class GetTrialReadingTableQuestion
    //{
    //    public List<> class TrialReadingTableQuestion
    //}
    //public class TrialReadingTableQuestion
    //{
        
    //}
}