

using System;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Collections.Generic;
using System.Linq;

namespace IRaCIS.Core.Domain.Models
{
	///<summary>
	/// 临床资料系统配置
	///</summary>
	[Table("ClinicalDataSystemSet")]
	public class ClinicalDataSystemSet : Entity, IAuditAdd
	{

		/// <summary>
		/// 枚举(字典里面取的)
		/// </summary>
		public int ClinicalDataSetEnum { get; set; }

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

        /// <summary>
        /// 是否应用
        /// </summary>
        public bool IsApply { get; set; } = false;

        /// <summary>
        /// 英文名称
        /// </summary>
        public string ClinicalDataSetEnName { get; set; } = string.Empty;

		/// <summary>
		/// 临床级别
		/// </summary>
		public ClinicalLevel ClinicalDataLevel { get; set; }


		/// <summary>
		/// 上传方式
		/// </summary>
		public ClinicalUploadType ClinicalUploadType { get; set; }

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

		/// <summary>
		/// 创建人
		/// </summary>
		public Guid CreateUserId { get; set; }

		/// <summary>
		/// 是否启用
		/// </summary>
		public bool IsEnable { get; set; }

		/// <summary>
		/// 上传角色
		/// </summary>
		public UploadRole UploadRole { get; set; }

		/// <summary>
		/// 模板文件名称
		/// </summary>
		public string FileName { get; set; }

		/// <summary>
		/// 文件路径
		/// </summary>
		public string Path { get; set; }

		public string CriterionEnumListStr { get; set; }=String.Empty;




        [NotMapped]
        public List<int> CriterionEnumList => CriterionEnumListStr.Split('|', StringSplitOptions.RemoveEmptyEntries).Where(t => !string.IsNullOrEmpty(t)  && int.TryParse(t.Trim(),out var s)).Select(t =>  int.Parse(t.Trim()) ).ToList();

		//public List<SystemClinicalDataCriterion> SystemClinicalDataCriterionList { get; set; } = new List<SystemClinicalDataCriterion>();

	}


	



}
