using IRaCIS.Core.Domain.Share;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IRaCIS.Core.Domain.Models
{
    public class ReadModuleView: Entity
    {
        /// <summary>
        /// Id(阅片期Id 或者 检查批次ID)
        /// </summary>
        public new Guid Id { get; set; }


        /// <summary>
        /// 项目ID
        /// </summary>
        public Guid TrialId { get; set; }

        /// <summary>
        /// 名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
		/// 患者ID
		/// </summary>
		public Guid SubjectId { get; set; }

        /// <summary>
        /// 模块类型
        /// </summary>
        public ModuleTypeEnum ModuleType { get; set; }

        /// <summary>
        /// 是否加急
        /// </summary>
        public bool? IsUrgent { get; set; }

        /// <summary>
        /// 检查批次ID
        /// </summary>
        public Guid SubjectVisitId { get; set; }


        /// <summary>
        /// 检查批次名称
        /// </summary>
        public string SubjectVisitName { get; set; }


        /// <summary>
        /// 截止检查批次
        /// </summary>
        public Guid? CutOffVisitId { get; set; }


        /// <summary>
        /// 截止检查批次名称
        /// </summary>
        public string? CutOffVisitName { get; set; }

        /// <summary>
        /// 对应阅片期
        /// </summary>
        public Guid? ReadModuleId { get; set; }

        /// <summary>
        /// 对应Name
        /// </summary>
        public string ReadModuleName { get; set; }

      

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 患者Code
        /// </summary>
        public string SubjectCode { get; set; }

        /// <summary>
        /// 中心Id
        /// </summary>
        public string SiteCode { get; set; }

        /// <summary>
        /// 项目中心Id
        /// </summary>
        public string TrialSiteCode { get; set; }

        /// <summary>
        /// 是否为末次检查批次
        /// </summary>
        public bool IsFinalVisit { get; set; } = false;

        /// <summary>
        /// 上一检查批次
        /// </summary>
        public Guid? OutPlanPreviousVisitId { get; set; }

        /// <summary>
        /// 上一检查批次名称
        /// </summary>
        public string OutPlanPreviousVisitName { get; set; }

        /// <summary>
        /// 中心ID
        /// </summary>
        public Guid SiteId { get; set; }

        /// <summary>
        /// 是否为检查批次
        /// </summary>
        public bool IsVisit { get; set; }

        /// <summary>
        /// 检查批次Num
        /// </summary>
        public decimal? VisitNum { get; set; }

        /// <summary>
        /// 是否为PD进展
        /// </summary>
        public PDStateEnum PDState { get; set; } = PDStateEnum.None;

        /// <summary>
        /// 入组确认评估
        /// </summary>
        public bool IsEnrollmentConfirm { get; set; } = false;


        /// <summary>
        /// 阅片状态
        /// </summary>
        public ReadingStatusEnum ReadingStatus { get; set; }

        /// <summary>
        /// 是否是基线
        /// </summary>
        public bool IsBaseLine { get; set; } = false;


        /// <summary>
        /// 标准Id
        /// </summary>
        public Guid? TrialReadingCriterionId { get; set; }


        /// <summary>
        /// 标准名称
        /// </summary>
        public string CriterionName { get; set; } 
    }
}
