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
{
///
/// 临床资料项目配置
///
[Table("ClinicalDataTrialSet")]
public class ClinicalDataTrialSet : Entity, IAuditAdd
{
///
/// 项目ID
///
public Guid TrialId { get; set; }
///
/// 名称
///
public string ClinicalDataSetName { get; set; }
///
/// 英文名称
///
public string ClinicalDataSetEnName { get; set; } = string.Empty;
///
/// 临床级别
///
public ClinicalLevel ClinicalDataLevel { get; set; }
///
/// 上传方式
///
public ClinicalUploadType ClinicalUploadType { get; set; }
///
/// 系统的ClinicalDataSetId
///
public Guid? SystemClinicalDataSetId { get; set; }
///
/// 创建时间
///
public DateTime CreateTime { get; set; }
///
/// 创建人
///
public Guid CreateUserId { get; set; }
///
/// 是否确认
///
public bool IsConfirm { get; set; }
///
/// 是否配置完成
///
public bool IsFinish { get; set; } = false;
///
/// 上传角色
///
public UploadRole UploadRole { get; set; }
///
/// 模板文件名称
///
public string FileName { get; set; }
///
/// 文件路径
///
public string Path { get; set; }
[JsonIgnore]
///
///
///
public List ReadingClinicalDataList { get; set; }
[JsonIgnore]
[ForeignKey("TrialId")]
public Trial Trial { get; set; }
[JsonIgnore]
public List TrialClinicalDataSetCriteriaList { get; set; }
public string CriterionEnumListStr { get; set; } = String.Empty;
public List CriterionEnumList => CriterionEnumListStr.Split('|', StringSplitOptions.RemoveEmptyEntries).Where(t => !string.IsNullOrEmpty(t) && int.TryParse(t.Trim(), out var s)).Select(t => int.Parse(t.Trim())).ToList();
}
}