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>
		/// 是否可改截止访视
		/// </summary>
		public bool? IsCanChangeCutOffVisit { 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; }

        /// <summary>
        /// 阅片配置的类型
        /// </summary>
        public ReadingSetType? ReadingSetType { get; set; }
    }
}