using System;
using IRaCIS.Core.Domain.Share;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace IRaCIS.Core.Domain.Models;
[Comment("受试者 - 阅片模块")]
[Table("ReadModule")]
public class ReadModule : BaseFullDeleteAuditEntity
{
#region 导航属性
[JsonIgnore]
///
/// 受试者
///
[ForeignKey("SubjectId")]
public Subject Subject { get; set; }
[JsonIgnore]
///
/// 阅片期配置
///
[ForeignKey("ReadingPeriodSetId")]
public ReadingPeriodSet ReadingPeriodSet { get; set; }
[JsonIgnore]
///
/// 访视
///
[ForeignKey("SubjectVisitId")]
public SubjectVisit SubjectVisit { get; set; }
[JsonIgnore]
[ForeignKey("TrialId")]
public Trial Trial { get; set; }
[JsonIgnore]
public List ReadModuleCriterionFromList { get; set; } = new List();
[JsonIgnore]
public List ModuleTaskList { get; set; }
[JsonIgnore]
public ReadingQuestionCriterionTrial TrialReadingCriterion { get; set; }
[JsonIgnore]
public List ReadingClinicalDataList { get; set; }
#endregion
public bool? IsClinicalDataBlind { get; set; }
[Comment("临床数据是否完整")]
public bool? IsClinicalDataComplete { get; set; }
[Comment("CRC是否正在申请撤回")]
public bool IsCRCApplicationRevoke { get; set; }
public bool IsCRCConfirm { get; set; }
public bool IsNotNeedPMConfirm { get; set; }
public bool IsPMConfirm { get; set; }
[Comment(" 是否加急")]
public bool? IsUrgent { get; set; }
public Guid? LastVisitIdSetId { get; set; }
[Comment(" 模块名称")]
public string ModuleName { get; set; } = null!;
[Comment(" 模块类型")]
public ModuleTypeEnum ModuleType { get; set; }
public Guid? ReadingPeriodSetId { get; set; }
public ReadingSetType ReadingSetType { get; set; }
public ReadingStatusEnum ReadingStatus { get; set; } = ReadingStatusEnum.TaskAllocate;
public Guid? ReadModuleId { get; set; }
[Comment(" 状态")]
public int Status { get; set; }
[Comment(" 受试者ID")]
public Guid SubjectId { get; set; }
[Comment(" 访视ID")]
public Guid SubjectVisitId { get; set; }
public Guid TrialId { get; set; }
public Guid TrialReadingCriterionId { get; set; }
}