// <auto-generated />
using System;
using IRaCIS.Core.Infra.EFCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;

#nullable disable

namespace IRaCIS.Core.Infra.EFCore.Migrations
{
    [DbContext(typeof(IRaCISDBContext))]
    [Migration("20250808062746_addIsEncapsulated")]
    partial class addIsEncapsulated
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "8.0.15")
                .HasAnnotation("Relational:MaxIdentifierLength", 128);

            SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("编码");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("ExpiryDate")
                        .HasColumnType("datetime2")
                        .HasComment("过期时间");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsAuthorizedView")
                        .HasColumnType("bit");

                    b.Property<bool>("IsOfficial")
                        .HasColumnType("bit")
                        .HasComment("是否正式简历");

                    b.Property<int>("Language")
                        .HasColumnType("int")
                        .HasComment("1 中文 2为英文");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("文件类型名");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DoctorId");

                    b.ToTable("Attachment", t =>
                        {
                            t.HasComment("医生 - 简历|证书 文档表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("AuditDocumentTypeEnum")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FileFormat")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FilePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<decimal?>("FileSize")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<bool>("IsAuthorization")
                        .HasColumnType("bit");

                    b.Property<Guid?>("MainFileId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("Version")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("AuditDocument", t =>
                        {
                            t.HasComment("稽查文档管理");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CROCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CROName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CRONameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsTrialLevel")
                        .HasColumnType("bit")
                        .HasComment("是否是项目级别");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("CROCompany", t =>
                        {
                            t.HasComment("机构 - CRO");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool?>("IsCRCNeedReply")
                        .HasColumnType("bit")
                        .HasComment("CRC是否需要回复 前端使用");

                    b.Property<string>("ParamInfo")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)")
                        .HasComment("核查的检查信息Json");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TalkContent")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("UserTypeEnum")
                        .HasColumnType("int")
                        .HasComment("核查过程中的操作用户类型");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectVisitId");

                    b.ToTable("CheckChallengeDialog", t =>
                        {
                            t.HasComment("一致性核查 -  对话记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ClinicalFormId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("表单Id");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("QuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("问题Id");

                    b.Property<int>("RowIndex")
                        .HasColumnType("int");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("受试者Id");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ClinicalAnswerRowInfo", t =>
                        {
                            t.HasComment("受试者 - 临床表单表格问题行记录");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ClinicalDataLevel")
                        .HasColumnType("int");

                    b.Property<string>("ClinicalDataSetEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ClinicalDataSetEnum")
                        .HasColumnType("int")
                        .HasComment("枚举(字典里面取的)");

                    b.Property<string>("ClinicalDataSetName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ClinicalUploadType")
                        .HasColumnType("int")
                        .HasComment("上传方式");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CriterionEnumListStr")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("EnFileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("EnPath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsApply")
                        .HasColumnType("bit")
                        .HasComment("是否应用");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<int>("UploadRole")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ClinicalDataSystemSet", t =>
                        {
                            t.HasComment("系统 - 临床数据配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ClinicalDataLevel")
                        .HasColumnType("int")
                        .HasComment("临床级别");

                    b.Property<string>("ClinicalDataSetEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ClinicalDataSetName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ClinicalUploadType")
                        .HasColumnType("int")
                        .HasComment("上传方式");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CriterionEnumListStr")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("EnFileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("EnPath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsApply")
                        .HasColumnType("bit")
                        .HasComment("是否应用");

                    b.Property<bool>("IsConfirm")
                        .HasColumnType("bit");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid?>("SystemClinicalDataSetId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("UploadRole")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SystemClinicalDataSetId");

                    b.HasIndex("TrialId");

                    b.ToTable("ClinicalDataTrialSet", t =>
                        {
                            t.HasComment("项目 - 临床数据适应标准配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("CheckDate")
                        .HasColumnType("datetime2")
                        .HasComment("检查日期");

                    b.Property<Guid>("ClinicalDataTrialSetId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("PicturePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("截图地址");

                    b.Property<Guid?>("ReadingId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("受试者Id");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("VisitId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("ClinicalDataTrialSetId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ReadingId");

                    b.HasIndex("SubjectId");

                    b.ToTable("ClinicalForm", t =>
                        {
                            t.HasComment("受试者 - 临床表单");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Answer")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid>("ClinicalDataTrialSetId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ClinicalFormId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("表单Id");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("QuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("问题Id");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("受试者Id");

                    b.HasKey("Id");

                    b.HasIndex("ClinicalFormId");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ClinicalQuestionAnswer", t =>
                        {
                            t.HasComment("受试者 - 临床表单问题答案");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Answer")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("答案");

                    b.Property<Guid>("ClinicalFormId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("表单Id");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("QuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("问题Id");

                    b.Property<Guid>("RowId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("答案行的Id");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("受试者Id");

                    b.Property<Guid>("TableQuestionId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("RowId");

                    b.ToTable("ClinicalTableAnswer", t =>
                        {
                            t.HasComment("受试者 - 临床表单表格问题答案");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("BusinessScenarioEnum")
                        .HasColumnType("int")
                        .HasComment("业务场景");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("CriterionTypeEnum")
                        .HasColumnType("int")
                        .HasComment("系统标准枚举");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("FileTypeEnum")
                        .HasColumnType("int")
                        .HasComment("类型-上传|导出|邮件附件");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("NameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("CommonDocument", t =>
                        {
                            t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("CriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsSystemCriterion")
                        .HasColumnType("bit");

                    b.Property<int>("LesionType")
                        .HasColumnType("int")
                        .HasComment("病灶类型");

                    b.Property<int>("OrganType")
                        .HasColumnType("int")
                        .HasComment("器官类型");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("CriterionId");

                    b.ToTable("CriterionNidusSystem", t =>
                        {
                            t.HasComment("系统标准 - 病灶器官表 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("CriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("LesionType")
                        .HasColumnType("int");

                    b.Property<int>("OrganType")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("CriterionNidusTrial", t =>
                        {
                            t.HasComment("项目标准 - 病灶器官表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("BatchId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("批次Id");

                    b.Property<Guid?>("ChildrenTypeId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("子类");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CreateUserName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("创建人姓名");

                    b.Property<string>("CreateUserRealName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("DoctorUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("阅片医生");

                    b.Property<string>("EntityName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("被稽查实体名");

                    b.Property<Guid?>("GeneralId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("要稽查对象Id");

                    b.Property<string>("IP")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Identification")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("标识");

                    b.Property<bool?>("IsFrontAdd")
                        .HasColumnType("bit")
                        .HasComment("是否是前端添加");

                    b.Property<bool?>("IsSign")
                        .HasColumnType("bit");

                    b.Property<string>("JsonDetail")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("LastJsonDetail")
                        .HasColumnType("nvarchar(max)")
                        .HasComment("上一条json");

                    b.Property<Guid?>("ModuleTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("ObjectRelationParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("被稽查对象外键1");

                    b.Property<Guid?>("ObjectRelationParentId2")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("ObjectRelationParentId3")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("ObjectTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("OptTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("父ID");

                    b.Property<string>("Reason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("RoleName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("角色名称");

                    b.Property<Guid?>("SignId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("VisitStageId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("访视计划ID");

                    b.Property<Guid?>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("DataInspection", t =>
                        {
                            t.HasComment("稽查 - 记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b =>
                {
                    b.Property<Guid>("SeqId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("Anonymize")
                        .HasColumnType("bit");

                    b.Property<bool>("CPIStatus")
                        .HasColumnType("bit");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<long?>("FileSize")
                        .HasColumnType("bigint");

                    b.Property<string>("FrameOfReferenceUID")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("HtmlPath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ImageColumns")
                        .HasColumnType("int");

                    b.Property<int>("ImageRows")
                        .HasColumnType("int");

                    b.Property<string>("ImagerPixelSpacing")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("InstanceNumber")
                        .HasColumnType("int");

                    b.Property<DateTime?>("InstanceTime")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsEncapsulated")
                        .HasColumnType("bit");

                    b.Property<bool>("IsReading")
                        .HasColumnType("bit");

                    b.Property<string>("MediaStorageSOPClassUID")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("MediaStorageSOPInstanceUID")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("NumberOfFrames")
                        .HasColumnType("int");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("PixelSpacing")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SOPClassUID")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SeriesId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("SeriesInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SliceLocation")
                        .HasColumnType("int");

                    b.Property<string>("SliceThickness")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SopInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("StudyInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TransferSytaxUID")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("WindowCenter")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("WindowWidth")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("SeqId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SeriesId");

                    b.HasIndex("StudyId");

                    b.ToTable("DicomInstance", t =>
                        {
                            t.HasComment("归档 -  Instance表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b =>
                {
                    b.Property<Guid>("SeqId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("AcquisitionNumber")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AcquisitionTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartExamined")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartForEdit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DicomSeriesDate")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DicomSeriesTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ImageOrientationPatient")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ImagePositionPatient")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ImageResizePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("ImagerPixelSpacing")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("InstanceCount")
                        .HasColumnType("int");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsReading")
                        .HasColumnType("bit");

                    b.Property<string>("Modality")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ProtocolName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SequenceName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SeriesInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SeriesNumber")
                        .HasColumnType("int");

                    b.Property<DateTime?>("SeriesTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("SliceThickness")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("StudyInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TriggerTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("SeqId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("StudyId");

                    b.HasIndex("SubjectVisitId");

                    b.ToTable("DicomSeries", t =>
                        {
                            t.HasComment("归档 - 序列表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b =>
                {
                    b.Property<Guid>("SeqId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier")
                        .HasComment("序列Id 避免内存移动");

                    b.Property<string>("AccessionNumber")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AcquisitionNumber")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AcquisitionTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartExamined")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartForEdit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("Code")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DicomStudyDate")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DicomStudyTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("InstanceCount")
                        .HasColumnType("int");

                    b.Property<string>("InstitutionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsDoubleReview")
                        .HasColumnType("bit");

                    b.Property<bool>("IsFromPACS")
                        .HasColumnType("bit");

                    b.Property<string>("Modalities")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ModalityForEdit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ModifyReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientAge")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientBirthDate")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientId")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientSex")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SeriesCount")
                        .HasColumnType("int");

                    b.Property<string>("StudyCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("StudyDIRPath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("StudyId")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("DicomTag.StudyID");

                    b.Property<string>("StudyInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("StudyName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("StudyTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TriggerTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("UploadedTime")
                        .HasColumnType("datetime2")
                        .HasComment("上传时间");

                    b.Property<string>("Uploader")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("SeqId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("SubjectVisitId");

                    b.HasIndex("TrialId");

                    b.ToTable("DicomStudy");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ChildGroup")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("ConfigTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("DataTypeEnum")
                        .HasColumnType("int")
                        .HasComment("字典类型- 枚举|bool|下拉框");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsConfig")
                        .HasColumnType("bit")
                        .HasComment("是否字典类型配置");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Value")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ValueCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("ConfigTypeId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ParentId");

                    b.ToTable("Dictionary", t =>
                        {
                            t.HasComment("后台 - 字典表（需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("AcceptingNewTrial")
                        .HasColumnType("bit");

                    b.Property<bool>("ActivelyReading")
                        .HasColumnType("bit");

                    b.Property<string>("AdminComment")
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime?>("AuditTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("AuditUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("BankName")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("BankNum")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BankPhoneNum")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BlindName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BlindNameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BlindPublications")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("ChineseName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("City")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CityCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("Code")
                        .HasColumnType("int");

                    b.Property<int>("CooperateStatus")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DepartmentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DepartmentOther")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DepartmentOtherCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("EMail")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FirstName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("GCP")
                        .HasColumnType("int");

                    b.Property<string>("GCPAgencies")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<Guid>("GCPId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("GCPTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("HospitalId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("HospitalName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("HospitalNameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("HospitalOther")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("HospitalOtherCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("IdCard")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Introduction")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<bool>("IsVirtual")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("LastLoginTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("LastName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("Nation")
                        .HasColumnType("int");

                    b.Property<string>("OpeningBank")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("OrganizationId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("OtherClinicalExperience")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("OtherClinicalExperienceCN")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Password")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Phone")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PhotoPath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Physician")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PhysicianCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("PhysicianId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("PositionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("PositionOther")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PositionOtherCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("RankId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("RankOther")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("RankOtherCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ReadingTypeOther")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ReadingTypeOtherCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ResumePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<int>("ResumeStatus")
                        .HasColumnType("int");

                    b.Property<int>("ReviewStatus")
                        .HasColumnType("int");

                    b.Property<string>("ReviewerCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("Sex")
                        .HasColumnType("int");

                    b.Property<Guid?>("SpecialityId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("SpecialityOther")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("SpecialityOtherCN")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("SubspecialityOther")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("SubspecialityOtherCN")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Summarize")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("SummarizeEn")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("UniversityAffiliated")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("UniversityAffiliatedCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("WeChat")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("WorkPartTime")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("WorkPartTimeEn")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DepartmentId");

                    b.HasIndex("HospitalId");

                    b.HasIndex("PositionId");

                    b.HasIndex("RankId");

                    b.HasIndex("SpecialityId");

                    b.ToTable("Doctor", t =>
                        {
                            t.HasComment("医生 - 基础信息表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CriterionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("CriterionType")
                        .HasColumnType("int")
                        .HasComment("标准类型");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FilePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<int>("FileType")
                        .HasColumnType("int");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsIRUpload")
                        .HasColumnType("bit")
                        .HasComment("是否是IR上传");

                    b.Property<string>("Remark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DoctorId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("DoctorCriterionFile", t =>
                        {
                            t.HasComment("医生 - 项目标准签名文档");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DictionaryId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("KeyName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("DictionaryId");

                    b.HasIndex("DoctorId");

                    b.ToTable("DoctorDictionary", t =>
                        {
                            t.HasComment("医生 - 医生字典关联表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Indication")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("IndicationEn")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsMain")
                        .HasColumnType("bit");

                    b.Property<string>("Summarize")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("SummarizeEn")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("DoctorSummarize", t =>
                        {
                            t.HasComment("医生 - 概述");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateOnly?>("BeginDate")
                        .HasColumnType("date");

                    b.Property<string>("City")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CityCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Country")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CountryCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Degree")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DegreeCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateOnly?>("EndDate")
                        .HasColumnType("date");

                    b.Property<string>("Major")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("MajorCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Organization")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("OrganizationCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Province")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ProvinceCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("Education", t =>
                        {
                            t.HasComment("医生 - 教育信息");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("AttachCNPath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AttachName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AttachNameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AttachPath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("BusinessLevelEnum")
                        .HasColumnType("int")
                        .HasComment("业务级别");

                    b.Property<int>("BusinessModuleEnum")
                        .HasColumnType("int")
                        .HasComment("业务模块");

                    b.Property<int>("BusinessScenarioEnum")
                        .HasColumnType("int")
                        .HasComment("业务场景");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CriterionTypeList")
                        .HasColumnType("nvarchar(max)")
                        .HasComment("邮件配置的多个标准");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("EmailCron")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("发送周期");

                    b.Property<int?>("EmailDelaySeconds")
                        .HasColumnType("int")
                        .HasComment("邮件延时秒数，比如一个事件触发，延迟多少s后才发邮件");

                    b.Property<string>("EmailHtmlContent")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("EmailHtmlContentCN")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("EmailTopic")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("EmailTopicCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("EmailUrgentEnum")
                        .HasColumnType("int")
                        .HasComment("加急枚举");

                    b.Property<bool>("IsAutoSend")
                        .HasColumnType("bit")
                        .HasComment("是否自动发送");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsDistinguishCriteria")
                        .HasColumnType("bit")
                        .HasComment("是否区分标准");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsReturnRequired")
                        .HasColumnType("bit")
                        .HasComment("是否需要回执");

                    b.Property<int>("SystemLevel")
                        .HasColumnType("int");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("EmailNoticeConfig", t =>
                        {
                            t.HasComment("后台 - 邮件配置表表（需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("EmailNoticeConfigId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("EmailUserType")
                        .HasColumnType("int");

                    b.Property<int>("UserType")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("EmailNoticeConfigId");

                    b.ToTable("EmailNoticeUserType", t =>
                        {
                            t.HasComment("后台 - 邮件配置用户类型表（需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("Adjudication")
                        .HasColumnType("int");

                    b.Property<int?>("Adjudication24H")
                        .HasColumnType("int");

                    b.Property<int?>("Adjudication48H")
                        .HasColumnType("int");

                    b.Property<decimal?>("AdjustmentMultiple")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<Guid?>("AttachmentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DoctorUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("生成账号  加入到项目中后 赋值");

                    b.Property<int?>("Downtime")
                        .HasColumnType("int");

                    b.Property<int>("EnrollStatus")
                        .HasColumnType("int");

                    b.Property<DateTime?>("EnrollTime")
                        .HasColumnType("datetime2");

                    b.Property<int?>("Global")
                        .HasColumnType("int");

                    b.Property<string>("Memo")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("OutEnrollTime")
                        .HasColumnType("datetime2");

                    b.Property<int?>("RefresherTraining")
                        .HasColumnType("int");

                    b.Property<int>("ReviewerReadingType")
                        .HasColumnType("int");

                    b.Property<int?>("Timepoint")
                        .HasColumnType("int");

                    b.Property<int?>("Timepoint24H")
                        .HasColumnType("int");

                    b.Property<int?>("Timepoint48H")
                        .HasColumnType("int");

                    b.Property<int?>("Training")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DoctorId");

                    b.HasIndex("DoctorUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("Enroll", t =>
                        {
                            t.HasComment("医生 - 入组项目中间记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("EnrollId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("EnrollStatus")
                        .HasColumnType("int");

                    b.Property<string>("Memo")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("OptUserType")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialDetailId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DoctorId");

                    b.HasIndex("TrialDetailId");

                    b.ToTable("EnrollDetail", t =>
                        {
                            t.HasComment("医生 - 入组项目流程记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("EnrollId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ReadingCategory")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("EnrollId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("EnrollReadingCategory", t =>
                        {
                            t.HasComment("医生 - 项目阅片标准阅片类型配置表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("EnrollId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsJoinAnalysis")
                        .HasColumnType("bit");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("EnrollId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("EnrollReadingCriterion", t =>
                        {
                            t.HasComment("医生 - 项目阅片标准参与一致性分析配置表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("EventData")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("EventState")
                        .HasColumnType("int");

                    b.Property<string>("EventType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("完整的事件类型名");

                    b.Property<string>("EventTypeName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("简单的事件类型名");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("EventStoreRecord", t =>
                        {
                            t.HasComment("记录触发的事件，以及状态，从而方便重试操作");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("Rate")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("YearMonth")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ExchangeRate", t =>
                        {
                            t.HasComment("医生计费 - 汇率");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("DownloadUrl")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("ExploreType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Version")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ExploreRecommend", t =>
                        {
                            t.HasComment("后台 - 浏览器推荐 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ChildDataEnLabel")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ChildDataLabel")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("前端渲染数组  数组名 和数组值");

                    b.Property<string>("ChildDataValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("子数据Value");

                    b.Property<Guid?>("ChildrenTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("翻译的字段名   这里有可能是一个数组名  那么具体的翻译字段名就不是这个了");

                    b.Property<string>("CodeEn")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ConfigType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("前端使用 C  M");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DataType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("前端展示类型   Router， Array，Table");

                    b.Property<string>("DateType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("日期格式");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DescriptionCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("翻译的字典名（单个字段翻译的时候）");

                    b.Property<string>("DictionaryKey")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("字典名称-待废弃核查");

                    b.Property<string>("DictionaryType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("枚举字典Type");

                    b.Property<string>("EnumType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("后端翻译的类型  对应前端界面  Dictionary Date");

                    b.Property<string>("ForeignKeyEnText")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ForeignKeyTableName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("外键表");

                    b.Property<string>("ForeignKeyText")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("外键Text");

                    b.Property<string>("ForeignKeyValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("外键Value");

                    b.Property<string>("Identification")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("标识");

                    b.Property<string>("InterfaceName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("接口名");

                    b.Property<bool>("IsBeforeModifyView")
                        .HasColumnType("bit");

                    b.Property<bool>("IsConfig")
                        .HasColumnType("bit")
                        .HasComment("未知是否有用-废弃核查");

                    b.Property<bool>("IsDefaultChoice")
                        .HasColumnType("bit");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsFinish")
                        .HasColumnType("bit")
                        .HasComment("是否完成");

                    b.Property<bool>("IsHaveReason")
                        .HasColumnType("bit")
                        .HasComment("是否有原因");

                    b.Property<bool>("IsHaveSign")
                        .HasColumnType("bit")
                        .HasComment("是否有签名");

                    b.Property<bool?>("IsJoinPlan")
                        .HasColumnType("bit")
                        .HasComment("是否加入计划");

                    b.Property<bool>("IsShowByTrialConfig")
                        .HasColumnType("bit")
                        .HasComment("待废弃核查");

                    b.Property<int>("IsShowParent")
                        .HasColumnType("int");

                    b.Property<bool?>("IsSpecialType")
                        .HasColumnType("bit")
                        .HasComment("是否为特殊类型");

                    b.Property<Guid?>("ModuleTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("ObjectTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("OptTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("Sort")
                        .HasColumnType("int");

                    b.Property<string>("TableConfigJsonStr")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("TrialConfigRelyFieldName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("待废弃核查");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("UrlConfigJsonStr")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Value")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ValueCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("FrontAuditConfig", t =>
                        {
                            t.HasComment("稽查 - 配置表 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("City")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CityCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Country")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CountryCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("HospitalName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("HospitalNameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Province")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ProvinceCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("SiteId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("中心Id");

                    b.Property<string>("UniversityAffiliated")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("UniversityAffiliatedCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SiteId");

                    b.ToTable("Hospital", t =>
                        {
                            t.HasComment("机构 - 医院");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("AutoCutNextTask")
                        .HasColumnType("bit")
                        .HasComment("这个字段废除，放在用户角色上面，后续删除");

                    b.Property<int>("Code")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DepartmentName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("EMail")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("EmailToken")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("FirstName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsFirstAdd")
                        .HasColumnType("bit")
                        .HasComment("首次登录需要修改密码");

                    b.Property<bool>("IsTestUser")
                        .HasColumnType("bit");

                    b.Property<bool>("IsZhiZhun")
                        .HasColumnType("bit")
                        .HasComment("内部用户  外部用户");

                    b.Property<DateTime?>("LastChangePassWordTime")
                        .HasColumnType("datetime2")
                        .HasComment("上一次修改密码的时间");

                    b.Property<string>("LastLoginIP")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("LastLoginTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("LastName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("OrganizationName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Password")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("PasswordChanged")
                        .HasColumnType("bit");

                    b.Property<string>("Phone")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PositionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int?>("Sex")
                        .HasColumnType("int");

                    b.Property<int>("Status")
                        .HasColumnType("int");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("UserCeateSource")
                        .HasColumnType("int");

                    b.Property<string>("UserCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("UserName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("IdentityUser", t =>
                        {
                            t.HasComment("后台 - 系统真实账户表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("ExpireTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Password")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.ToTable("ImageShare", t =>
                        {
                            t.HasComment("影像 - 影像分享记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("RelativePath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("InspectionFile", t =>
                        {
                            t.HasComment("一致性核查文件");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FrontType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("InternationalizationType")
                        .HasColumnType("int");

                    b.Property<string>("Module")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("PublishLogId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联版本历史记录表Id");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<int>("State")
                        .HasColumnType("int")
                        .HasComment("0 1  2 预翻译 已确认  废除");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Value")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ValueCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("PublishLogId");

                    b.ToTable("Internationalization", t =>
                        {
                            t.HasComment("后台 - 国际化配置表 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ApiPath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("Api 接口地址");

                    b.Property<string>("Component")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("组件路径");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsCache")
                        .HasColumnType("bit");

                    b.Property<bool>("IsDisplay")
                        .HasColumnType("bit");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit")
                        .HasComment("启用 禁用");

                    b.Property<bool>("IsExternalLink")
                        .HasColumnType("bit");

                    b.Property<bool>("IsInTabDisplay")
                        .HasColumnType("bit");

                    b.Property<string>("LanguageMark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("MenuIcon")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("MenuName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("MenuType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("类型（M目录 C菜单 F按钮 L链接）");

                    b.Property<string>("Meta")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("上级菜单");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("路由地址");

                    b.Property<string>("PermissionStr")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("权限点");

                    b.Property<string>("Redirect")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("Menu", t =>
                        {
                            t.HasComment("后台 - 系统菜单 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("BodyPart")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("Code")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("FileCount")
                        .HasColumnType("int");

                    b.Property<DateTime>("ImageDate")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsReading")
                        .HasColumnType("bit");

                    b.Property<string>("Modality")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ModifyReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("StudyCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("StudyName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("UploadVideoTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("VideoName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("VideoObjectName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("VideoUrl")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("SubjectVisitId");

                    b.HasIndex("TrialId");

                    b.ToTable("NoneDicomStudy", t =>
                        {
                            t.HasComment("影像 - 非dicom检查");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<long?>("FileSize")
                        .HasColumnType("bigint");

                    b.Property<string>("FileType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsReading")
                        .HasColumnType("bit");

                    b.Property<Guid>("NoneDicomStudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("OriginNoneDicomStudyId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("为了不影响原始检查，跟任务绑定的  NoneDicomStudyId 为guid空  这个字段记录跟原始检查绑");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid?>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("NoneDicomStudyId");

                    b.HasIndex("OriginNoneDicomStudyId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("NoneDicomStudyFile", t =>
                        {
                            t.HasComment("影像 - 非dicom检查关联文件表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Classification")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分类");

                    b.Property<string>("ClassificationEN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分类 英文");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsCanEditPosition")
                        .HasColumnType("bit")
                        .HasComment("是否可编辑位置");

                    b.Property<int>("IsLymphNodes")
                        .HasColumnType("int")
                        .HasComment("是否是淋巴结");

                    b.Property<int>("OrganType")
                        .HasColumnType("int")
                        .HasComment("器官类型");

                    b.Property<string>("Part")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("部位");

                    b.Property<string>("PartEN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("部位 英文");

                    b.Property<string>("Remark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("备注");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("序号");

                    b.Property<Guid>("SystemCriterionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("标准Id");

                    b.Property<string>("TULAT")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("位置");

                    b.Property<string>("TULATEN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("位置 英文");

                    b.Property<string>("TULOC")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("TULOC 器官");

                    b.Property<string>("TULOCEN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("TULOC 器官 英文");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("OrganInfo", t =>
                        {
                            t.HasComment("后台 - 系统标准器官  (需要同步)");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Classification")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分类");

                    b.Property<string>("ClassificationEN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分类 英文");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsCanEditPosition")
                        .HasColumnType("bit")
                        .HasComment("是否可编辑位置");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<int>("IsLymphNodes")
                        .HasColumnType("int")
                        .HasComment("是否是淋巴结");

                    b.Property<Guid>("OrganInfoId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("器官Id");

                    b.Property<int?>("OrganType")
                        .HasColumnType("int")
                        .HasComment("器官类型");

                    b.Property<string>("Part")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("部位");

                    b.Property<string>("PartEN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("部位 英文");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("序号");

                    b.Property<string>("TULAT")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("位置");

                    b.Property<string>("TULATEN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("位置 英文");

                    b.Property<string>("TULOC")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("TULOC 器官");

                    b.Property<string>("TULOCEN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("TULOC 器官 英文");

                    b.Property<Guid>("TrialCriterionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("标准Id");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目Id");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("OrganInfoId");

                    b.ToTable("OrganTrialInfo", t =>
                        {
                            t.HasComment("项目标准 - 器官");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("AdjustmentCNY")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("AdjustmentUSD")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime>("CalculateTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("CalculateUser")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("ExchangeRate")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<bool>("IsLock")
                        .HasColumnType("bit");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<decimal>("PaymentCNY")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("PaymentUSD")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("YearMonth")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("YearMonthDate")
                        .HasColumnType("datetime2");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("Payment", t =>
                        {
                            t.HasComment("医生计费 - 每月支付记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("AdjustmentCNY")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<decimal>("AdjustmentUSD")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("ExchangeRate")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<bool>("IsLock")
                        .HasColumnType("bit");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("ReviewerId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("YearMonth")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("YearMonthDate")
                        .HasColumnType("datetime2");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("PaymentAdjustment", t =>
                        {
                            t.HasComment("医生计费 - 每月支付记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("BasePrice")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("Count")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("ExchangeRate")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("PaymentCNY")
                        .HasPrecision(18, 4)
                        .HasColumnType("decimal(18,4)");

                    b.Property<Guid>("PaymentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("PaymentType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<decimal>("PaymentUSD")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("PersonalAdditional")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("ShowCodeOrder")
                        .HasColumnType("int");

                    b.Property<int>("ShowTypeOrder")
                        .HasColumnType("int");

                    b.Property<decimal>("TrialAdditional")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("TrialCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("YearMonth")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("PaymentDetail", t =>
                        {
                            t.HasComment("医生计费 - 每月支付详情表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateOnly?>("BeginDate")
                        .HasColumnType("date");

                    b.Property<string>("City")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CityCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Country")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CountryCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateOnly?>("EndDate")
                        .HasColumnType("date");

                    b.Property<string>("Hospital")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("HospitalCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("HospitalId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Major")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("MajorCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Province")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ProvinceCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("School")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SchoolCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Training")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("TrainingCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("HospitalId");

                    b.ToTable("Postgraduate", t =>
                        {
                            t.HasComment("医生 - 继续教育经历");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ClinicalDataTrialSetId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("EndTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int?>("IsPD")
                        .HasColumnType("int");

                    b.Property<bool>("IsSubjectLevel")
                        .HasColumnType("bit");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Position")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("StartTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("ClinicalDataTrialSetId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectVisitId");

                    b.ToTable("PreviousHistory", t =>
                        {
                            t.HasComment("受试者访视 - 既往放疗史");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ClinicalDataTrialSetId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("临床数据类型Id");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("EndTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsPD")
                        .HasColumnType("bit");

                    b.Property<bool>("IsSubjectLevel")
                        .HasColumnType("bit");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("StartTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TreatmentType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("ClinicalDataTrialSetId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectVisitId");

                    b.ToTable("PreviousOther", t =>
                        {
                            t.HasComment("受试者访视 - 既往其他治疗史");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("ClinicalLevel")
                        .HasColumnType("int")
                        .HasComment("临床级别");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("DataType")
                        .HasColumnType("int")
                        .HasComment("数据类型");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool?>("IsVisist")
                        .HasColumnType("bit");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid?>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("UploadType")
                        .HasColumnType("int")
                        .HasComment("上传方式");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectVisitId");

                    b.ToTable("PreviousPDF", t =>
                        {
                            t.HasComment("受试者访视 - 临床数据配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ClinicalDataTrialSetId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("临床数据类型Id");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsSubjectLevel")
                        .HasColumnType("bit");

                    b.Property<string>("OperationName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("OperationTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("ClinicalDataTrialSetId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectVisitId");

                    b.ToTable("PreviousSurgery", t =>
                        {
                            t.HasComment("受试者访视 - 既往手术史");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsCurrentVersion")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("PublishTime")
                        .HasColumnType("datetime2");

                    b.Property<int>("State")
                        .HasColumnType("int")
                        .HasComment("0 开发中 ，已发布");

                    b.Property<string>("UpdateContent")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Version")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Version_US")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("PublishLog", t =>
                        {
                            t.HasComment("后台 - 系统发布日志 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ActionContent")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("ChallengeCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ChallengeType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("CloseResonEnum")
                        .HasColumnType("int");

                    b.Property<DateTime?>("ClosedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("ClosedUser")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("Code")
                        .HasColumnType("int");

                    b.Property<string>("Content")
                        .IsRequired()
                        .HasMaxLength(1200)
                        .HasColumnType("nvarchar(1200)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("CurrentQCEnum")
                        .HasColumnType("int");

                    b.Property<DateTime?>("DeadlineTime")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsClosed")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("LatestMsgTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("LatestReplyUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<int>("QCProcessEnum")
                        .HasColumnType("int");

                    b.Property<Guid?>("ReUploadUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("ReUploadedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("ReUploader")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ReuploadEnum")
                        .HasColumnType("int");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("UserTypeEnum")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("LatestReplyUserId");

                    b.HasIndex("SubjectVisitId");

                    b.ToTable("QCChallenge", t =>
                        {
                            t.HasComment("受试者访视 - QC质疑");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("QCChallengeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TalkContent")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<int>("UserTypeEnum")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("QCChallengeId");

                    b.HasIndex("SubjectVisitId");

                    b.ToTable("QCChallengeDialog", t =>
                        {
                            t.HasComment("受试者访视 - QC质疑对话");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsRequired")
                        .HasColumnType("bit");

                    b.Property<int>("LanguageType")
                        .HasColumnType("int")
                        .HasComment("语言类型");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ParentTriggerValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("下拉框、文本、单选、多选");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ParentId");

                    b.ToTable("QCQuestion", t =>
                        {
                            t.HasComment("后台 - QC质控问题（需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("Adjudication")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("AdjudicationIn24H")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("AdjudicationIn48H")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("Downtime")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Global")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("RankName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<decimal>("RefresherTraining")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<decimal>("Timepoint")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("TimepointIn24H")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("TimepointIn48H")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Training")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("RankPrice", t =>
                        {
                            t.HasComment("医生计费 - 不同时间点价格设置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsCRCApplicationRevoke")
                        .HasColumnType("bit")
                        .HasComment("CRC是否正在申请撤回");

                    b.Property<bool>("IsCRCConfirm")
                        .HasColumnType("bit");

                    b.Property<bool?>("IsClinicalDataBlind")
                        .HasColumnType("bit")
                        .HasComment("临床数据是否盲化");

                    b.Property<bool?>("IsClinicalDataComplete")
                        .HasColumnType("bit")
                        .HasComment("临床数据是否完整");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsNotNeedPMConfirm")
                        .HasColumnType("bit");

                    b.Property<bool>("IsPMConfirm")
                        .HasColumnType("bit");

                    b.Property<bool?>("IsUrgent")
                        .HasColumnType("bit")
                        .HasComment("是否加急");

                    b.Property<string>("ModuleName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("模块名称");

                    b.Property<int>("ModuleType")
                        .HasColumnType("int")
                        .HasComment("模块类型");

                    b.Property<Guid?>("ReadingPeriodSetId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("阅片计划ID");

                    b.Property<int>("ReadingSetType")
                        .HasColumnType("int")
                        .HasComment("阅片配置的类型");

                    b.Property<int>("ReadingStatus")
                        .HasColumnType("int");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ReadingPeriodSetId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("SubjectVisitId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("ReadModule", t =>
                        {
                            t.HasComment("读片模块");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ClinicalFormId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("表单Id");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ReadModuleId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("ClinicalFormId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ReadModuleId");

                    b.ToTable("ReadModuleCriterionFrom", t =>
                        {
                            t.HasComment("受试者 - 阅片模块临床表单");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ClinicalDataTrialSetId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("临床数据类型Id");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("FileCount")
                        .HasColumnType("int");

                    b.Property<bool?>("IsBlind")
                        .HasColumnType("bit")
                        .HasComment("是否盲化");

                    b.Property<bool?>("IsComplete")
                        .HasColumnType("bit")
                        .HasComment("是否完整");

                    b.Property<bool>("IsSign")
                        .HasColumnType("bit")
                        .HasComment("是否签名");

                    b.Property<bool>("IsVisit")
                        .HasColumnType("bit")
                        .HasComment("是否为访视");

                    b.Property<int>("ReadingClinicalDataState")
                        .HasColumnType("int")
                        .HasComment("临床数据状态");

                    b.Property<Guid>("ReadingId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("访视Id  或者模块Id");

                    b.Property<Guid?>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("ClinicalDataTrialSetId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ReadingId");

                    b.HasIndex("StudyId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("TrialId");

                    b.ToTable("ReadingClinicalData", t =>
                        {
                            t.HasComment("项目的临床数据");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid>("ReadingClinicalDataId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("阅片临床数据ID");

                    b.Property<int>("Size")
                        .HasColumnType("int");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ReadingClinicalDataId");

                    b.ToTable("ReadingClinicalDataPDF", t =>
                        {
                            t.HasComment("项目的临床数据");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ClinicalDataTrialSetId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("临床数据类型Id");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("FileCount")
                        .HasColumnType("int");

                    b.Property<bool?>("IsBlind")
                        .HasColumnType("bit")
                        .HasComment("是否盲化");

                    b.Property<bool?>("IsComplete")
                        .HasColumnType("bit")
                        .HasComment("是否完整");

                    b.Property<bool>("IsSign")
                        .HasColumnType("bit")
                        .HasComment("是否签名");

                    b.Property<bool>("IsVisit")
                        .HasColumnType("bit")
                        .HasComment("是否为访视");

                    b.Property<int>("ReadingClinicalDataState")
                        .HasColumnType("int")
                        .HasComment("临床数据状态");

                    b.Property<Guid>("ReadingId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("访视Id  或者模块Id");

                    b.Property<Guid?>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("受试者ID");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目ID");

                    b.HasKey("Id");

                    b.HasIndex("ClinicalDataTrialSetId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ReadingId");

                    b.HasIndex("StudyId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("TrialId");

                    b.ToTable("ReadingConsistentClinicalData", t =>
                        {
                            t.HasComment("一致性分析临床数据");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid>("ReadingConsistentClinicalDataId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("阅片临床数据ID");

                    b.Property<int>("Size")
                        .HasColumnType("int");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("文件类型");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ReadingConsistentClinicalDataId");

                    b.ToTable("ReadingConsistentClinicalDataPDF", t =>
                        {
                            t.HasComment("一致性分析临床数据");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit")
                        .HasComment("是否启用");

                    b.Property<bool>("IsPublicPage")
                        .HasColumnType("bit")
                        .HasComment("是否公共分页");

                    b.Property<string>("PageName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分页名称");

                    b.Property<Guid>("ReadingQuestionCriterionTrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目ID");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ReadingCriterionPage", t =>
                        {
                            t.HasComment("阅片标准分页");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("InstanceId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("MeasureData")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("NumberOfFrames")
                        .HasColumnType("int");

                    b.Property<Guid?>("SeriesId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ReadingCustomTag", t =>
                        {
                            t.HasComment("项目阅片 - 自定义标记");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Answer")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("问题答案");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("GlobalAnswerType")
                        .HasColumnType("int")
                        .HasComment("全局答案类型");

                    b.Property<Guid>("GlobalTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("全局任务Id");

                    b.Property<Guid?>("QuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("问题ID");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("原任务ID");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("GlobalTaskId");

                    b.HasIndex("QuestionId");

                    b.HasIndex("TaskId");

                    b.ToTable("ReadingGlobalTaskInfo", t =>
                        {
                            t.HasComment("阅片全局任务信息");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FilePath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TableName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ReadingImportFile", t =>
                        {
                            t.HasComment("阅片导入表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("JudgeTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("裁判任务ID");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TaskIdOne")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("第一个任务ID");

                    b.Property<Guid>("TaskIdTwo")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("第二个任务ID");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ReadingJudgeInfo", t =>
                        {
                            t.HasComment("阅片裁判信息");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("AuditAdviceEnum")
                        .HasColumnType("int")
                        .HasComment("审核建议");

                    b.Property<string>("Content")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("对话内容");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DisagreeReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("不同意重阅原因");

                    b.Property<int>("DoctorUserIdeaEnum")
                        .HasColumnType("int")
                        .HasComment("阅片人是否认同");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("文件名称");

                    b.Property<string>("ImagePath")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)")
                        .HasComment("图片路径");

                    b.Property<bool?>("IsApplyHeavyReading")
                        .HasColumnType("bit")
                        .HasComment("是否申请重阅");

                    b.Property<bool>("IsHaveQuestion")
                        .HasColumnType("bit")
                        .HasComment("是否有问题");

                    b.Property<int?>("MedicalDialogCloseEnum")
                        .HasColumnType("int")
                        .HasComment("医学审核对话关闭原因");

                    b.Property<string>("Questioning")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("质询问题");

                    b.Property<Guid>("TaskMedicalReviewId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("医学审核Id");

                    b.Property<int>("UserTypeEnumInt")
                        .HasColumnType("int")
                        .HasComment("用户角色枚举");

                    b.Property<string>("UserTypeShortName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("用户角色");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("任务Id");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TaskMedicalReviewId");

                    b.ToTable("ReadingMedicalReviewDialog", t =>
                        {
                            t.HasComment("阅片医学审核对话");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Answer")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ReadingMedicineQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("医学审核问题Id");

                    b.Property<Guid>("TaskMedicalReviewId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("医学审核Id");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TaskMedicalReviewId");

                    b.ToTable("ReadingMedicineQuestionAnswer", t =>
                        {
                            t.HasComment("阅片医学问题答案");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("CriterionTypeEnum")
                        .HasColumnType("int");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit")
                        .HasComment("是否启用");

                    b.Property<bool>("IsGeneral")
                        .HasColumnType("bit");

                    b.Property<bool>("IsRequired")
                        .HasColumnType("bit")
                        .HasComment("是否是必须");

                    b.Property<int>("LanguageType")
                        .HasColumnType("int")
                        .HasComment("语言类型");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("父问题ID");

                    b.Property<string>("ParentTriggerValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("父问题触发");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题名称");

                    b.Property<int>("ReadingCategory")
                        .HasColumnType("int")
                        .HasComment("任务类型");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("类型");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("类型值");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ParentId");

                    b.ToTable("ReadingMedicineSystemQuestion", t =>
                        {
                            t.HasComment("阅片医学审核系统问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsConfirm")
                        .HasColumnType("bit")
                        .HasComment("是否确认");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit")
                        .HasComment("是否启用");

                    b.Property<bool>("IsRequired")
                        .HasColumnType("bit")
                        .HasComment("是否必须");

                    b.Property<int>("LanguageType")
                        .HasColumnType("int")
                        .HasComment("语言类型");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("父问题");

                    b.Property<string>("ParentTriggerValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("父问题触发值");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题名称");

                    b.Property<int>("ReadingCategory")
                        .HasColumnType("int")
                        .HasComment("任务类型");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.Property<Guid?>("SystemQuestionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目ID");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目标准");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("类型");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("类型值");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ParentId");

                    b.ToTable("ReadingMedicineTrialQuestion", t =>
                        {
                            t.HasComment("阅片医学审核项目问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("MeasureData")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<Guid?>("NoneDicomFileId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("StudyId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("ReadingNoneDicomMark", t =>
                        {
                            t.HasComment("项目阅片 - 非Dicom标记");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("EvaluationReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("原因");

                    b.Property<string>("EvaluationResult")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("结果");

                    b.Property<Guid>("OncologyTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("肿瘤学  阅片任务ID");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("受试者Id");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目Id");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("产生肿瘤学阅片任务的  访视类型的阅片任务Id");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("OncologyTaskId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("ReadingOncologyTaskInfo", t =>
                        {
                            t.HasComment("阅片肿瘤学  针对访视任务 添加了一个结果");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<Guid>("ReadingPeriodSetId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("阅片期配置ID");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("访视");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ReadingPeriodSetId");

                    b.HasIndex("SubjectVisitId");

                    b.ToTable("ReadingPeriodPlan", t =>
                        {
                            t.HasComment("阅片计划");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("EffectOfTime")
                        .HasColumnType("datetime2")
                        .HasComment("生效时间");

                    b.Property<DateTime?>("ExpirationDate")
                        .HasColumnType("datetime2")
                        .HasComment("截止日期");

                    b.Property<decimal?>("ExpirationVisitNum")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)")
                        .HasComment("截止访视");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsGlobal")
                        .HasColumnType("bit")
                        .HasComment("是否为全局阅片");

                    b.Property<int>("IsTakeEffect")
                        .HasColumnType("int")
                        .HasComment("是否生效");

                    b.Property<string>("ReadingPeriodName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("阅片期名称");

                    b.Property<int>("ReadingScope")
                        .HasColumnType("int")
                        .HasComment("阅片范围");

                    b.Property<int>("ReadingSetType")
                        .HasColumnType("int")
                        .HasComment("阅片配置的类型");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("VisitStageId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("访视计划ID");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("VisitStageId");

                    b.ToTable("ReadingPeriodSet", t =>
                        {
                            t.HasComment("阅片期设置  只会设计到所有人 或者某个Site  针对全局");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("ReadingPeriodSetId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("阅片期配置ID");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ReadingPeriodSetId");

                    b.HasIndex("TrialSiteId");

                    b.ToTable("ReadingPeriodSite", t =>
                        {
                            t.HasComment("阅片期和中心关联");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("ConfirmTime")
                        .HasColumnType("datetime2")
                        .HasComment("确认时间");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("CriterionGroup")
                        .HasColumnType("int");

                    b.Property<string>("CriterionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("标准");

                    b.Property<int>("CriterionType")
                        .HasColumnType("int")
                        .HasComment("标准类型");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("描述");

                    b.Property<bool>("IsCompleteConfig")
                        .HasColumnType("bit")
                        .HasComment("是否完成配置");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit")
                        .HasComment("是否启用");

                    b.Property<bool>("IsMustGlobalReading")
                        .HasColumnType("bit")
                        .HasComment("是否必须全局阅片");

                    b.Property<bool>("IsOncologyReading")
                        .HasColumnType("bit")
                        .HasComment("肿瘤学阅片");

                    b.Property<bool>("IseCRFShowInDicomReading")
                        .HasColumnType("bit")
                        .HasComment("eCRF报告是否显示在图像页面");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ReadingQuestionCriterionSystem", t =>
                        {
                            t.HasComment("系统阅片标准");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ArbitrationRule")
                        .HasColumnType("int")
                        .HasComment("仲裁对象");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("CriterionGroup")
                        .HasColumnType("int");

                    b.Property<string>("CriterionModalitys")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CriterionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("标准");

                    b.Property<int>("CriterionType")
                        .HasColumnType("int")
                        .HasComment("标准类型");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("描述");

                    b.Property<int?>("DigitPlaces")
                        .HasColumnType("int")
                        .HasComment("修约小数点");

                    b.Property<string>("EvaluationReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("评估原因");

                    b.Property<string>("EvaluationResult")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("评估结果");

                    b.Property<int>("FollowGlobalVisitAutoAssignDefaultState")
                        .HasColumnType("int")
                        .HasComment("后续全局自动分配默认状态");

                    b.Property<int>("FollowJudgeTaskAutoAssignDefaultState")
                        .HasColumnType("int");

                    b.Property<int>("FollowVisitAutoAssignDefaultState")
                        .HasColumnType("int")
                        .HasComment("后续访视自动分配默认状态");

                    b.Property<int>("FormType")
                        .HasColumnType("int")
                        .HasComment("表单类型");

                    b.Property<string>("GlobalUpdateType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("全局阅片评估更新类型");

                    b.Property<int>("ImageDownloadEnum")
                        .HasColumnType("int")
                        .HasComment("阅片过程下载影像");

                    b.Property<int>("ImagePlatform")
                        .HasColumnType("int")
                        .HasComment("阅片平台");

                    b.Property<int>("ImageUploadEnum")
                        .HasColumnType("int")
                        .HasComment("阅片过程上传影像");

                    b.Property<bool>("IsAdditionalAssessment")
                        .HasColumnType("bit")
                        .HasComment("是否附加评估");

                    b.Property<bool>("IsArbitrationReading")
                        .HasColumnType("bit")
                        .HasComment("仲裁阅片");

                    b.Property<bool>("IsAutoCreate")
                        .HasColumnType("bit")
                        .HasComment("自动  手动生成任务");

                    b.Property<bool>("IsCompleteConfig")
                        .HasColumnType("bit")
                        .HasComment("是否完成配置");

                    b.Property<bool>("IsConfirm")
                        .HasColumnType("bit")
                        .HasComment("是否确认");

                    b.Property<bool>("IsConfirmMedicineQuestion")
                        .HasColumnType("bit")
                        .HasComment("是确认医学审核问题");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit")
                        .HasComment("是否启用");

                    b.Property<bool>("IsFollowGlobalVisitAutoAssign")
                        .HasColumnType("bit")
                        .HasComment("后续全局自动分配");

                    b.Property<bool>("IsFollowJudgeTaskAutoAssign")
                        .HasColumnType("bit");

                    b.Property<bool>("IsFollowVisitAutoAssign")
                        .HasColumnType("bit")
                        .HasComment("后续访视任务自动分配");

                    b.Property<bool>("IsGlobalReading")
                        .HasColumnType("bit")
                        .HasComment("是否生成全局阅片任务");

                    b.Property<bool>("IsImageFilter")
                        .HasColumnType("bit")
                        .HasComment("是否影像筛选");

                    b.Property<bool>("IsMustGlobalReading")
                        .HasColumnType("bit")
                        .HasComment("是否必须全局阅片");

                    b.Property<bool>("IsOncologyReading")
                        .HasColumnType("bit")
                        .HasComment("肿瘤学阅片  原字段 IsClinicalReading");

                    b.Property<bool>("IsReadingPeriod")
                        .HasColumnType("bit")
                        .HasComment("存在阅片期");

                    b.Property<bool>("IsReadingShowPreviousResults")
                        .HasColumnType("bit")
                        .HasComment("IR阅片页面是否可以查看既往任务结果");

                    b.Property<bool>("IsReadingShowSubjectInfo")
                        .HasColumnType("bit")
                        .HasComment("阅片是否显示受试者信息");

                    b.Property<int>("IsReadingTaskViewInOrder")
                        .HasColumnType("int")
                        .HasComment("任务展示访视 读片任务显示是否顺序");

                    b.Property<bool>("IsShowDetail")
                        .HasColumnType("bit")
                        .HasComment("是否显示详情");

                    b.Property<bool>("IsSigned")
                        .HasColumnType("bit")
                        .HasComment("是否签名");

                    b.Property<bool>("IsSystemSetOncology")
                        .HasColumnType("bit")
                        .HasComment("是否系统设置了 肿瘤学");

                    b.Property<bool>("IsUrgent")
                        .HasColumnType("bit")
                        .HasComment("是否加急");

                    b.Property<bool>("IseCRFShowInDicomReading")
                        .HasColumnType("bit")
                        .HasComment("eCRF报告是否显示在图像页面");

                    b.Property<DateTime?>("ReadingInfoSignTime")
                        .HasColumnType("datetime2")
                        .HasComment("阅片信息签名时间");

                    b.Property<Guid?>("ReadingQuestionCriterionSystemId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("系统标准ID");

                    b.Property<int>("ReadingTaskViewEnum")
                        .HasColumnType("int")
                        .HasComment("任务组织级别");

                    b.Property<int?>("ReadingTool")
                        .HasColumnType("int")
                        .HasComment("阅片工具");

                    b.Property<string>("ReadingToolList")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("ReadingType")
                        .HasColumnType("int")
                        .HasComment("阅片模式");

                    b.Property<int>("ReadingVersionEnum")
                        .HasColumnType("int");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.Property<DateTime?>("SynchronizeOriginalTime")
                        .HasColumnType("datetime2")
                        .HasComment("同步器官时间");

                    b.Property<DateTime>("SynchronizeTime")
                        .HasColumnType("datetime2")
                        .HasComment("同步时间");

                    b.Property<int>("TaskAllocateObjEnum")
                        .HasColumnType("int")
                        .HasComment("任务分配对象");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目Id");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("ReadingQuestionCriterionTrial", t =>
                        {
                            t.HasComment("项目阅片标准");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ClassifyAlgorithms")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分类算法");

                    b.Property<int?>("ClassifyEditType")
                        .HasColumnType("int");

                    b.Property<Guid?>("ClassifyQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("分类问题Id");

                    b.Property<int?>("ClassifyShowType")
                        .HasColumnType("int");

                    b.Property<int?>("ClassifyType")
                        .HasColumnType("int")
                        .HasComment("分类类型");

                    b.Property<int>("ConvertShowType")
                        .HasColumnType("int")
                        .HasComment("转化显示类型");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("DataSource")
                        .HasColumnType("int")
                        .HasComment("数据来源");

                    b.Property<string>("DefaultValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("默认值");

                    b.Property<string>("DictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("字典code");

                    b.Property<string>("ExportResultStr")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("导出结果");

                    b.Property<string>("FileType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("文件类型");

                    b.Property<int>("GlobalReadingShowType")
                        .HasColumnType("int")
                        .HasComment("全局阅片显示类型");

                    b.Property<int?>("GroupClassify")
                        .HasColumnType("int")
                        .HasComment("分组分类");

                    b.Property<string>("GroupEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题英文分组");

                    b.Property<Guid?>("GroupId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("分组ID");

                    b.Property<string>("GroupName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分组");

                    b.Property<string>("HighlightAnswer")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("高亮问题的答案");

                    b.Property<int>("ImageCount")
                        .HasColumnType("int")
                        .HasComment("图片数量");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit")
                        .HasComment("是否启用");

                    b.Property<bool>("IsJudgeQuestion")
                        .HasColumnType("bit")
                        .HasComment("是否是裁判问题");

                    b.Property<int>("IsRequired")
                        .HasColumnType("int")
                        .HasComment("是否是必须");

                    b.Property<bool>("IsShowInDicom")
                        .HasColumnType("bit")
                        .HasComment("是否显示在Dicom阅片中");

                    b.Property<int?>("LesionType")
                        .HasColumnType("int")
                        .HasComment("病灶类型");

                    b.Property<int>("LimitEdit")
                        .HasColumnType("int")
                        .HasComment("限制编辑");

                    b.Property<int>("LimitShow")
                        .HasColumnType("int")
                        .HasComment("限制显示");

                    b.Property<int?>("MaxAnswerLength")
                        .HasColumnType("int")
                        .HasComment("最大答案长度");

                    b.Property<int?>("MaxQuestionCount")
                        .HasColumnType("int")
                        .HasComment("最大问题数");

                    b.Property<string>("OrderMark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("序号标记");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("父问题ID");

                    b.Property<string>("ParentTriggerValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("父问题触发");

                    b.Property<int?>("QuestionClassify")
                        .HasColumnType("int")
                        .HasComment("问题分类");

                    b.Property<string>("QuestionEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题英文名称");

                    b.Property<int?>("QuestionGenre")
                        .HasColumnType("int")
                        .HasComment("问题类型");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题名称");

                    b.Property<int?>("QuestionType")
                        .HasColumnType("int")
                        .HasComment("问题类型");

                    b.Property<Guid>("ReadingQuestionCriterionSystemId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("系统标准Id");

                    b.Property<Guid?>("RelevanceId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联ID");

                    b.Property<string>("RelevanceValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("关联Value");

                    b.Property<string>("Remark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("备注");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.Property<int>("ShowQuestion")
                        .HasColumnType("int")
                        .HasComment("是否显示");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("类型");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("类型值");

                    b.Property<int?>("Unit")
                        .HasColumnType("int")
                        .HasComment("单位");

                    b.Property<int?>("ValueType")
                        .HasColumnType("int")
                        .HasComment("数值类型");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("GroupId");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReadingQuestionCriterionSystemId");

                    b.HasIndex("RelevanceId");

                    b.ToTable("ReadingQuestionSystem", t =>
                        {
                            t.HasComment("系统阅片问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("AnswerCombination")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)")
                        .HasComment("答案组合");

                    b.Property<string>("AnswerGroup")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("答案分组");

                    b.Property<string>("CDISCCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CalculateQuestions")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)")
                        .HasComment("自定义计算标记");

                    b.Property<string>("ClassifyAlgorithms")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分类算法");

                    b.Property<int?>("ClassifyEditType")
                        .HasColumnType("int");

                    b.Property<Guid?>("ClassifyQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("分类问题Id");

                    b.Property<int?>("ClassifyShowType")
                        .HasColumnType("int");

                    b.Property<int?>("ClassifyType")
                        .HasColumnType("int")
                        .HasComment("分类类型");

                    b.Property<int>("ConvertShowType")
                        .HasColumnType("int")
                        .HasComment("转化显示类型");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("CustomCalculateMark")
                        .HasColumnType("int")
                        .HasComment("自定义计算标记");

                    b.Property<string>("CustomUnit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("自定义单位");

                    b.Property<int>("DataSource")
                        .HasColumnType("int")
                        .HasComment("数据来源");

                    b.Property<string>("DefaultValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("默认值");

                    b.Property<string>("DictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("字典code");

                    b.Property<string>("ExcludeShowVisitList")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("ExportResultStr")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("导出结果");

                    b.Property<string>("FileType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("文件类型");

                    b.Property<int>("GlobalReadingShowType")
                        .HasColumnType("int")
                        .HasComment("全局阅片显示类型");

                    b.Property<int?>("GroupClassify")
                        .HasColumnType("int")
                        .HasComment("分组分类");

                    b.Property<string>("GroupEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题英文分组");

                    b.Property<Guid?>("GroupId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("分组ID");

                    b.Property<string>("GroupName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分组");

                    b.Property<string>("HighlightAnswer")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("高亮问题的答案");

                    b.Property<int>("ImageCount")
                        .HasColumnType("int")
                        .HasComment("图片数量");

                    b.Property<int?>("ImageMarkEnum")
                        .HasColumnType("int");

                    b.Property<string>("ImageTool")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ImageToolAttribute")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsAdditional")
                        .HasColumnType("bit");

                    b.Property<bool>("IsCopyLesions")
                        .HasColumnType("bit")
                        .HasComment("是否复制病灶");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsJudgeQuestion")
                        .HasColumnType("bit")
                        .HasComment("是否是裁判问题");

                    b.Property<int>("IsRequired")
                        .HasColumnType("int")
                        .HasComment("是否是必须");

                    b.Property<bool>("IsShowInDicom")
                        .HasColumnType("bit")
                        .HasComment("是否显示在Dicom阅片中");

                    b.Property<int>("JudgeDifferenceType")
                        .HasColumnType("int")
                        .HasComment("裁判百分比或绝对值的相差值匹配规则");

                    b.Property<decimal?>("JudgeDifferenceValue")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)")
                        .HasComment("裁判百分比或绝对值的相差值");

                    b.Property<int>("JudgeType")
                        .HasColumnType("int")
                        .HasComment("裁判类型");

                    b.Property<int?>("LesionType")
                        .HasColumnType("int")
                        .HasComment("病灶类型");

                    b.Property<int>("LimitEdit")
                        .HasColumnType("int")
                        .HasComment("限制编辑");

                    b.Property<int>("LimitShow")
                        .HasColumnType("int")
                        .HasComment("限制显示");

                    b.Property<int?>("MaxAnswerLength")
                        .HasColumnType("int")
                        .HasComment("最大答案长度");

                    b.Property<int?>("MaxQuestionCount")
                        .HasColumnType("int")
                        .HasComment("最大问题数");

                    b.Property<string>("OrderMark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("序号标记");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("父问题ID");

                    b.Property<string>("ParentTriggerValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("父问题触发");

                    b.Property<int?>("QuestionClassify")
                        .HasColumnType("int")
                        .HasComment("问题分类");

                    b.Property<string>("QuestionEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题英文名称");

                    b.Property<int?>("QuestionGenre")
                        .HasColumnType("int")
                        .HasComment("问题类型");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题名称");

                    b.Property<int?>("QuestionType")
                        .HasColumnType("int")
                        .HasComment("问题类型");

                    b.Property<Guid?>("ReadingCriterionPageId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("标准分页Id");

                    b.Property<Guid>("ReadingQuestionCriterionTrialId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目标准Id");

                    b.Property<Guid?>("ReadingQuestionSystemId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("系统问题ID");

                    b.Property<Guid?>("RelevanceId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联ID");

                    b.Property<string>("RelevanceValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("关联Value");

                    b.Property<string>("Remark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("备注");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.Property<int>("ShowQuestion")
                        .HasColumnType("int")
                        .HasComment("是否显示");

                    b.Property<Guid?>("SystemParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("系统标准的ParentId");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目Id");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("类型");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("类型值");

                    b.Property<int?>("Unit")
                        .HasColumnType("int")
                        .HasComment("单位");

                    b.Property<int?>("ValueType")
                        .HasColumnType("int")
                        .HasComment("数值类型");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("GroupId");

                    b.HasIndex("ParentId");

                    b.HasIndex("ReadingCriterionPageId");

                    b.HasIndex("ReadingQuestionCriterionTrialId");

                    b.HasIndex("RelevanceId");

                    b.ToTable("ReadingQuestionTrial", t =>
                        {
                            t.HasComment("项目阅片问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("CriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("CrterionDictionaryGroup")
                        .HasColumnType("int")
                        .HasComment("标准字典分组");

                    b.Property<Guid>("DictionaryId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsBaseLineUse")
                        .HasColumnType("bit");

                    b.Property<bool>("IsFollowVisitUse")
                        .HasColumnType("bit");

                    b.Property<bool>("IsSystemCriterion")
                        .HasColumnType("bit");

                    b.Property<string>("ParentCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DictionaryId");

                    b.ToTable("ReadingSystemCriterionDictionary", t =>
                        {
                            t.HasComment("系统标准 - 全局配置 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("BlindName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("CTSeriesId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("融合的CTSeriesId");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("FristAddTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("首次添加任务ID");

                    b.Property<decimal>("FristAddTaskNum")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)")
                        .HasComment("第一次添加的任务ID");

                    b.Property<string>("FromMark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("来自于哪个标记");

                    b.Property<Guid?>("InstanceId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsCanEditPosition")
                        .HasColumnType("bit");

                    b.Property<bool>("IsCurrentTaskAdd")
                        .HasColumnType("bit")
                        .HasComment("是否是当前任务添加");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsDicomReading")
                        .HasColumnType("bit")
                        .HasComment("是Dicom阅片");

                    b.Property<string>("MarkTool")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("标记工具");

                    b.Property<string>("MeasureData")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<Guid?>("MergeRowId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("NumberOfFrames")
                        .HasColumnType("int");

                    b.Property<string>("OrderMark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("OrganInfoId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("器官Id");

                    b.Property<Guid?>("OtherInstanceId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("OtherMarkTool")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("OtherMeasureData")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("OtherNumberOfFrames")
                        .HasColumnType("int");

                    b.Property<string>("OtherPicturePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid?>("OtherSeriesId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("OtherStudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("PTSeriesId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("融合的PTSeriesId");

                    b.Property<string>("PicturePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("截图地址");

                    b.Property<Guid>("QuestionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ReportMark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("报告页面显示来自于哪个标记");

                    b.Property<decimal>("RowIndex")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("RowMark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("病灶编号");

                    b.Property<Guid?>("SeriesId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("SplitOrMergeType")
                        .HasColumnType("int");

                    b.Property<Guid?>("SplitRowId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal?>("WL")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)")
                        .HasComment("窗位WL");

                    b.Property<decimal?>("WW")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)")
                        .HasComment("窗宽WW");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("InstanceId");

                    b.HasIndex("MergeRowId");

                    b.HasIndex("OrganInfoId");

                    b.HasIndex("QuestionId");

                    b.HasIndex("SplitRowId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("ReadingTableAnswerRowInfo", t =>
                        {
                            t.HasComment("表格问题答案行数据");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Answer")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<Guid>("QuestionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("RowId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("RowIndex")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<Guid>("TableQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("表格问题Id");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("QuestionId");

                    b.HasIndex("RowId");

                    b.HasIndex("TableQuestionId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("ReadingTableQuestionAnswer", t =>
                        {
                            t.HasComment("项目阅片 - 表格问题行记录子项答案");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ClassifyAlgorithms")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分类算法");

                    b.Property<int?>("ClassifyEditType")
                        .HasColumnType("int");

                    b.Property<int?>("ClassifyShowType")
                        .HasColumnType("int");

                    b.Property<Guid?>("ClassifyTableQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("分类问题表格Id");

                    b.Property<int?>("ClassifyType")
                        .HasColumnType("int")
                        .HasComment("分类类型");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("DataSource")
                        .HasColumnType("int")
                        .HasComment("数据来源");

                    b.Property<string>("DataTableColumn")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("数据列");

                    b.Property<string>("DataTableName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("数据表名称");

                    b.Property<string>("DefaultValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("默认值");

                    b.Property<Guid?>("DependParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联父问题");

                    b.Property<string>("DictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("字典code");

                    b.Property<string>("ExportResultStr")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("导出结果");

                    b.Property<string>("FileType")
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("文件类型");

                    b.Property<int?>("ImageCount")
                        .HasColumnType("int")
                        .HasComment("图片数量");

                    b.Property<bool>("IsCopy")
                        .HasColumnType("bit")
                        .HasComment("复制病灶的时候 是否复制这个问题");

                    b.Property<int>("IsDepend")
                        .HasColumnType("int")
                        .HasComment("是否关联");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit")
                        .HasComment("是否启用");

                    b.Property<int>("IsRequired")
                        .HasColumnType("int");

                    b.Property<int>("LimitEdit")
                        .HasColumnType("int")
                        .HasComment("限制编辑");

                    b.Property<int?>("MaxAnswerLength")
                        .HasColumnType("int")
                        .HasComment("最大答案长度");

                    b.Property<int?>("MaxRowCount")
                        .HasColumnType("int")
                        .HasComment("最大问题数");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ParentTriggerValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("父问题触发值");

                    b.Property<int?>("QuestionClassify")
                        .HasColumnType("int")
                        .HasComment("问题分类");

                    b.Property<string>("QuestionEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题英文名称");

                    b.Property<int?>("QuestionMark")
                        .HasColumnType("int")
                        .HasComment("问题标识");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题名称");

                    b.Property<Guid>("ReadingQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("系统表的问题Id    ReadingQuestionSystem的Id");

                    b.Property<Guid?>("RelevanceId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("显示父问题");

                    b.Property<string>("RelevanceValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("显示父问题的值");

                    b.Property<string>("Remark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("备注");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序号");

                    b.Property<int>("ShowQuestion")
                        .HasColumnType("int")
                        .HasComment("是否显示");

                    b.Property<Guid>("SystemCriterionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("系统标准Id");

                    b.Property<int?>("TableQuestionType")
                        .HasColumnType("int")
                        .HasComment("表格问题类型");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("值");

                    b.Property<int?>("Unit")
                        .HasColumnType("int")
                        .HasComment("单位");

                    b.Property<int?>("ValueType")
                        .HasColumnType("int")
                        .HasComment("数值类型");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DependParentId");

                    b.HasIndex("ReadingQuestionId");

                    b.ToTable("ReadingTableQuestionSystem", t =>
                        {
                            t.HasComment("系统表格问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CDISCCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CalculateQuestions")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)")
                        .HasComment("自定义计算标记");

                    b.Property<string>("ClassifyAlgorithms")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("分类算法");

                    b.Property<int?>("ClassifyEditType")
                        .HasColumnType("int");

                    b.Property<int?>("ClassifyShowType")
                        .HasColumnType("int");

                    b.Property<Guid?>("ClassifyTableQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("分类问题表格Id");

                    b.Property<int?>("ClassifyType")
                        .HasColumnType("int")
                        .HasComment("分类类型");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("CustomCalculateMark")
                        .HasColumnType("int")
                        .HasComment("自定义计算标记");

                    b.Property<string>("CustomUnit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("自定义单位");

                    b.Property<int>("DataSource")
                        .HasColumnType("int")
                        .HasComment("数据来源");

                    b.Property<string>("DataTableColumn")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DataTableName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DefaultValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("默认值");

                    b.Property<Guid?>("DependParentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("字典code");

                    b.Property<string>("ExportResultStr")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("导出结果");

                    b.Property<string>("FileType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("文件类型");

                    b.Property<int?>("ImageCount")
                        .HasColumnType("int")
                        .HasComment("图片数量");

                    b.Property<int?>("ImageMarkEnum")
                        .HasColumnType("int");

                    b.Property<string>("ImageTool")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ImageToolAttribute")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsCopy")
                        .HasColumnType("bit")
                        .HasComment("复制病灶的时候 是否复制这个问题");

                    b.Property<int>("IsDepend")
                        .HasColumnType("int");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<int>("IsRequired")
                        .HasColumnType("int");

                    b.Property<int>("LimitEdit")
                        .HasColumnType("int")
                        .HasComment("限制编辑");

                    b.Property<int?>("MaxAnswerLength")
                        .HasColumnType("int")
                        .HasComment("最大答案长度");

                    b.Property<int?>("MaxRowCount")
                        .HasColumnType("int");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ParentTriggerValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int?>("QuestionClassify")
                        .HasColumnType("int")
                        .HasComment("问题分类");

                    b.Property<string>("QuestionEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题英文名称");

                    b.Property<int?>("QuestionMark")
                        .HasColumnType("int")
                        .HasComment("问题标识");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("ReadingQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目问题的Id ReadingQuestionTrial的id");

                    b.Property<Guid?>("RelevanceId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("RelevanceValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Remark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("注释");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<int>("ShowQuestion")
                        .HasColumnType("int");

                    b.Property<Guid?>("SystemTableQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("系统表格问题Id");

                    b.Property<int?>("TableQuestionType")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int?>("Unit")
                        .HasColumnType("int")
                        .HasComment("单位");

                    b.Property<int?>("ValueType")
                        .HasColumnType("int")
                        .HasComment("数值类型");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DependParentId");

                    b.HasIndex("ReadingQuestionId");

                    b.ToTable("ReadingTableQuestionTrial", t =>
                        {
                            t.HasComment("项目阅片问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Answer")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("答案");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("GlobalChangeAnswer")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("全局阅片修改的答案");

                    b.Property<bool>("IsGlobalChange")
                        .HasColumnType("bit")
                        .HasComment("全局阅片是否修改");

                    b.Property<Guid>("ReadingQuestionCriterionTrialId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目问题标准Id");

                    b.Property<Guid>("ReadingQuestionTrialId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目问题Id");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ReadingQuestionTrialId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("ReadingTaskQuestionAnswer", t =>
                        {
                            t.HasComment("阅片任务答案");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("CustomTagId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("FristAddTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("InstanceId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("MarkId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("MarkTool")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("MeasureData")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("NumberOfFrames")
                        .HasColumnType("int");

                    b.Property<string>("OrderMarkName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("OtherInstanceId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("OtherMarkTool")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("OtherMeasureData")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int?>("OtherNumberOfFrames")
                        .HasColumnType("int");

                    b.Property<string>("OtherPicturePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid?>("OtherSeriesId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("OtherStudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("PicturePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid?>("QuestionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("QuestionType")
                        .HasColumnType("int");

                    b.Property<Guid?>("RowId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal?>("RowIndex")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<Guid?>("SeriesId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TableQuestionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("QuestionId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("ReadingTaskQuestionMark", t =>
                        {
                            t.HasComment("项目阅片 - 任务问题标记");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("RelevanceTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联的任务ID");

                    b.Property<int>("RelevanceType")
                        .HasColumnType("int")
                        .HasComment("类型具体解释 看枚举");

                    b.Property<Guid>("TaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("任务ID");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TaskId");

                    b.ToTable("ReadingTaskRelation", t =>
                        {
                            t.HasComment("任务关系表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("CriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("CrterionDictionaryGroup")
                        .HasColumnType("int");

                    b.Property<Guid>("DictionaryId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsBaseLineUse")
                        .HasColumnType("bit");

                    b.Property<bool>("IsFollowVisitUse")
                        .HasColumnType("bit");

                    b.Property<string>("ParentCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("CriterionId");

                    b.HasIndex("DictionaryId");

                    b.ToTable("ReadingTrialCriterionDictionary", t =>
                        {
                            t.HasComment("项目阅片标准 - 全局配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("AwardsHonors")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("AwardsHonorsCN")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Grants")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("GrantsCN")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Publications")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("PublicationsCN")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Research")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("ResearchCN")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ResearchPublication", t =>
                        {
                            t.HasComment("医生 - 科研学术记录");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("Additional")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("BankCardNumber")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BankName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DoctorNameInBank")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("IDCard")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("RankId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("DoctorPayInformation", t =>
                        {
                            t.HasComment("医生计费 - 支付信息表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CalledAE")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CallingAE")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CallingAEIP")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("EndTime")
                        .HasColumnType("datetime2");

                    b.Property<int>("FileCount")
                        .HasColumnType("int");

                    b.Property<long>("FileSize")
                        .HasColumnType("bigint");

                    b.Property<DateTime>("StartTime")
                        .HasColumnType("datetime2");

                    b.Property<int>("StudyCount")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialSiteId");

                    b.ToTable("SCPImageUpload", t =>
                        {
                            t.HasComment("项目中心 - 影像推送记录");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b =>
                {
                    b.Property<Guid>("SeqId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("Anonymize")
                        .HasColumnType("bit");

                    b.Property<bool>("CPIStatus")
                        .HasColumnType("bit");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<long?>("FileSize")
                        .HasColumnType("bigint");

                    b.Property<string>("FrameOfReferenceUID")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ImageColumns")
                        .HasColumnType("int");

                    b.Property<int>("ImageRows")
                        .HasColumnType("int");

                    b.Property<string>("ImagerPixelSpacing")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("InstanceNumber")
                        .HasColumnType("int");

                    b.Property<DateTime?>("InstanceTime")
                        .HasColumnType("datetime2");

                    b.Property<int>("NumberOfFrames")
                        .HasColumnType("int");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("PixelSpacing")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SeriesId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("SeriesInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SliceLocation")
                        .HasColumnType("int");

                    b.Property<string>("SliceThickness")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SopInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("StudyInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("WindowCenter")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("WindowWidth")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("SeqId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SeriesId");

                    b.HasIndex("StudyId");

                    b.ToTable("SCPInstance", t =>
                        {
                            t.HasComment("项目中心 - 推送Instance");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("EarliestStudyTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("LatestPushTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("LatestStudyTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("PatientAge")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientBirthDate")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientIdStr")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientSex")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialSiteId");

                    b.ToTable("SCPPatient", t =>
                        {
                            t.HasComment("项目中心 - 推送检查患者");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b =>
                {
                    b.Property<Guid>("SeqId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("AcquisitionNumber")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AcquisitionTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartExamined")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartForEdit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ImageOrientationPatient")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ImagePositionPatient")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ImageResizePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("ImagerPixelSpacing")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("InstanceCount")
                        .HasColumnType("int");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<string>("Modality")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ProtocolName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SequenceName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SeriesInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SeriesNumber")
                        .HasColumnType("int");

                    b.Property<DateTime?>("SeriesTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("SliceThickness")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("StudyInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("TriggerTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("SeqId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("StudyId");

                    b.ToTable("SCPSeries", t =>
                        {
                            t.HasComment("项目中心 - 推送序列");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b =>
                {
                    b.Property<Guid>("SeqId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("AccessionNumber")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AcquisitionNumber")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AcquisitionTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartExamined")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartForEdit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CalledAE")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("CallingAE")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("InstanceCount")
                        .HasColumnType("int");

                    b.Property<string>("InstitutionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsUploadFinished")
                        .HasColumnType("bit");

                    b.Property<string>("Modalities")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ModalityForEdit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientAge")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientBirthDate")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("PatientId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("PatientIdStr")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientSex")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SeriesCount")
                        .HasColumnType("int");

                    b.Property<string>("StudyId")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("StudyInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("StudyTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TriggerTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("SeqId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("PatientId");

                    b.HasIndex("SubjectVisitId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialSiteId");

                    b.ToTable("SCPStudy", t =>
                        {
                            t.HasComment("项目中心 - 推送检查");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("AltKey")
                        .HasColumnType("bit");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("CtrlKey")
                        .HasColumnType("bit");

                    b.Property<int>("ImageToolType")
                        .HasColumnType("int")
                        .HasComment("影像工具类型");

                    b.Property<string>("Keyboardkey")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("对应的键盘按键");

                    b.Property<bool>("MetaKey")
                        .HasColumnType("bit");

                    b.Property<bool>("ShiftKey")
                        .HasColumnType("bit");

                    b.Property<int>("ShortcutKeyEnum")
                        .HasColumnType("int")
                        .HasComment("按键枚举");

                    b.Property<string>("Text")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("ShortcutKey", t =>
                        {
                            t.HasComment("用户配置 - 快捷键");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Address")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AliasName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("City")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("Code")
                        .HasColumnType("int");

                    b.Property<string>("ContactName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ContactPhone")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Country")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DirectorName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("DirectorPhone")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("HospitalId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Province")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SiteCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SiteName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SiteNameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("State")
                        .HasColumnType("int");

                    b.Property<string>("UniqueCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("HospitalId");

                    b.ToTable("Site", t =>
                        {
                            t.HasComment("机构 - Site");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsTrialLevel")
                        .HasColumnType("bit");

                    b.Property<string>("SponsorCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SponsorName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SponsorNameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("Sponsor", t =>
                        {
                            t.HasComment("机构 - Sponsor");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("ArchiveFinishedTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("FailedFileCount")
                        .HasColumnType("int");

                    b.Property<int>("FileCount")
                        .HasColumnType("int");

                    b.Property<long>("FileSize")
                        .HasColumnType("bigint");

                    b.Property<string>("IP")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsDicom")
                        .HasColumnType("bit");

                    b.Property<bool>("IsDicomReUpload")
                        .HasColumnType("bit");

                    b.Property<bool>("IsSuccess")
                        .HasColumnType("bit");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("RecordPath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("StudyCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("StudyId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("Dicom/非Dicom");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("UploadFinishedTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("UploadStartTime")
                        .HasColumnType("datetime2");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("StudyId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("SubjectVisitId");

                    b.HasIndex("TrialId");

                    b.ToTable("StudyMonitor", t =>
                        {
                            t.HasComment("项目 - 影像上传监控");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("Age")
                        .HasColumnType("int");

                    b.Property<DateTime?>("BirthDate")
                        .HasColumnType("datetime2");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("FinalSubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("FirstGiveMedicineTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("FirstName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Height")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsEnrollment")
                        .HasColumnType("bit");

                    b.Property<bool>("IsReReadingOrBackInfluenceAnalysis")
                        .HasColumnType("bit")
                        .HasComment("重阅或者退回影响一致性分析");

                    b.Property<bool>("IsSubjectQuit")
                        .HasColumnType("bit")
                        .HasComment("受试者退出");

                    b.Property<bool>("IsUrgent")
                        .HasColumnType("bit");

                    b.Property<string>("LastName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("LatestSubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("MedicalNo")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("OutEnrollmentTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Reason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Sex")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ShortName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("SignDate")
                        .HasColumnType("datetime2")
                        .HasComment("知情同意书签署日期");

                    b.Property<int>("Status")
                        .HasColumnType("int")
                        .HasComment("1 访视中，2 出组  3 访视结束");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("VisitOverTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Weight")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("FinalSubjectVisitId");

                    b.HasIndex("LatestSubjectVisitId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialSiteId");

                    b.ToTable("Subject", t =>
                        {
                            t.HasComment("项目 - 受试者");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Answer")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FinalAnswer")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("最终结果");

                    b.Property<string>("FinalTranslateDictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("最终结果翻字典");

                    b.Property<bool>("IsFinalResult")
                        .HasColumnType("bit")
                        .HasComment("是否是最终结果");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TranslateDictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("附加评估答案翻译字典");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingQuestionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("TrialReadingQuestionId");

                    b.ToTable("SubjectAdditionalEvaluationResult", t =>
                        {
                            t.HasComment("受试者 - 附加评估标准结果");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectId");

                    b.ToTable("SubjectCanceDoctor", t =>
                        {
                            t.HasComment("受试者 - 阅片标准取消分配医生记录");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsJoinEvaluation")
                        .HasColumnType("bit")
                        .HasComment("是否参与评估");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("SubjectCriteriaEvaluation", t =>
                        {
                            t.HasComment("受试者 - 参与附加评估标准配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ImageDeterminationResultState")
                        .HasColumnType("int")
                        .HasComment("影像判断结果");

                    b.Property<int>("ImageFilterState")
                        .HasColumnType("int")
                        .HasComment("影像筛选状态");

                    b.Property<bool>("IsGeneratedTask")
                        .HasColumnType("bit")
                        .HasComment("是否已生成任务");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("SubjectVisitId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("SubjectCriteriaEvaluationVisitFilter", t =>
                        {
                            t.HasComment("受试者 - 附加评估标准影像筛选");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsConfirmed")
                        .HasColumnType("bit");

                    b.Property<bool>("IsReading")
                        .HasColumnType("bit");

                    b.Property<Guid>("SeriesId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SeriesId");

                    b.HasIndex("StudyId");

                    b.HasIndex("SubjectVisitId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t =>
                        {
                            t.HasComment("受试者 - 附加评估标准影像筛选检查");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ArmEnum")
                        .HasColumnType("int");

                    b.Property<DateTime?>("AssignTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsConfirmed")
                        .HasColumnType("bit");

                    b.Property<Guid?>("ReplacedSubjectUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DoctorUserId");

                    b.HasIndex("ReplacedSubjectUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("TrialId");

                    b.ToTable("SubjectUser");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("AuditState")
                        .HasColumnType("int")
                        .HasComment("审核状态");

                    b.Property<Guid?>("Auditor")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("BlindName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ChallengeState")
                        .HasColumnType("int");

                    b.Property<DateTime?>("CheckBackTime")
                        .HasColumnType("datetime2");

                    b.Property<int>("CheckChallengeState")
                        .HasColumnType("int");

                    b.Property<DateTime?>("CheckPassedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("CheckResult")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("CheckState")
                        .HasColumnType("int")
                        .HasComment("核查状态");

                    b.Property<DateTime?>("CheckTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("CheckUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("一致性核查人Id");

                    b.Property<string>("CloseTheReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("关闭一致性质疑原因");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("CurrentActionUserExpireTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("CurrentActionUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("当前质控领取人");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("EarliestScanDate")
                        .HasColumnType("datetime2");

                    b.Property<int>("ForwardState")
                        .HasColumnType("int");

                    b.Property<DateTime?>("ForwardTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("ForwardUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("InPlan")
                        .HasColumnType("bit");

                    b.Property<bool>("IsBaseLine")
                        .HasColumnType("bit");

                    b.Property<bool?>("IsCheckBack")
                        .HasColumnType("bit")
                        .HasComment("是否一致性核查回退");

                    b.Property<bool?>("IsConfirmedClinicalData")
                        .HasColumnType("bit")
                        .HasComment("是否确认了、签名了 临床数据完整性");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsEnrollmentConfirm")
                        .HasColumnType("bit");

                    b.Property<bool>("IsFinalVisit")
                        .HasColumnType("bit");

                    b.Property<bool>("IsLostVisit")
                        .HasColumnType("bit");

                    b.Property<bool>("IsPMBackOrReReading")
                        .HasColumnType("bit");

                    b.Property<bool>("IsQCConfirmedReupload")
                        .HasColumnType("bit");

                    b.Property<bool>("IsTake")
                        .HasColumnType("bit");

                    b.Property<bool>("IsUrgent")
                        .HasColumnType("bit");

                    b.Property<bool>("IsVisitTaskGenerated")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("LatestScanDate")
                        .HasColumnType("datetime2")
                        .HasComment("最晚拍片日期");

                    b.Property<string>("ManualPassReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("通过原因");

                    b.Property<Guid?>("OutPlanPreviousVisitId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("计划外上一访视");

                    b.Property<int>("PDState")
                        .HasColumnType("int");

                    b.Property<DateTime?>("PreliminaryAuditTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("PreliminaryAuditUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("单审通过人");

                    b.Property<int>("ReadingStatus")
                        .HasColumnType("int");

                    b.Property<int>("RequestBackState")
                        .HasColumnType("int")
                        .HasComment("一致性核查 回退");

                    b.Property<DateTime?>("ReviewAuditTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("ReviewAuditUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("双审通过人");

                    b.Property<DateTime?>("SVENDTC")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("SVSTDTC")
                        .HasColumnType("datetime2");

                    b.Property<string>("SVUPDES")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SecondReviewState")
                        .HasColumnType("int");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("SubmitState")
                        .HasColumnType("int")
                        .HasComment("提交状态");

                    b.Property<DateTime?>("SubmitTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("SubmitUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("VisitDay")
                        .HasColumnType("int");

                    b.Property<int>("VisitExecuted")
                        .HasColumnType("int")
                        .HasComment("0 未执行  1 执行了  2 不可用");

                    b.Property<string>("VisitName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<decimal>("VisitNum")
                        .HasPrecision(18, 1)
                        .HasColumnType("decimal(18,1)");

                    b.Property<Guid?>("VisitStageId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("访视计划Id，计划外没有");

                    b.Property<int>("VisitWindowLeft")
                        .HasColumnType("int");

                    b.Property<int>("VisitWindowRight")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("CurrentActionUserId");

                    b.HasIndex("ForwardUserId");

                    b.HasIndex("OutPlanPreviousVisitId");

                    b.HasIndex("PreliminaryAuditUserId");

                    b.HasIndex("ReviewAuditUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("SubmitUserId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialSiteId");

                    b.ToTable("SubjectVisit", t =>
                        {
                            t.HasComment("受试者访视");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ApplyReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ApplyUserRole")
                        .HasColumnType("int");

                    b.Property<DateTime?>("AuditTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("EarliestScanDate")
                        .HasColumnType("datetime2");

                    b.Property<int>("ImageBackState")
                        .HasColumnType("int")
                        .HasComment("影像上传 回退");

                    b.Property<DateTime?>("LatestScanDate")
                        .HasColumnType("datetime2")
                        .HasComment("最晚拍片日期");

                    b.Property<string>("ResultRemark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("SubmitTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectVisitId");

                    b.ToTable("SubjectVisitImageBackRecord", t =>
                        {
                            t.HasComment("受试者访视影像回退记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ArchiveTypeEnum")
                        .HasColumnType("int")
                        .HasComment("报告、文档、记录");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsConfirmRecord")
                        .HasColumnType("bit")
                        .HasComment("是否确认收入项");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("NameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<int>("SubIdentificationEnum")
                        .HasColumnType("int")
                        .HasComment("子类标识，是取那个表的数据");

                    b.Property<int>("SysTemplateTypeEnum")
                        .HasColumnType("int");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("SysFileType", t =>
                        {
                            t.HasComment("后台 - 系统文件类型表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Element")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Group")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsAdd")
                        .HasColumnType("bit");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsFixed")
                        .HasColumnType("bit");

                    b.Property<string>("ReplaceValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("TagDescription")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("TagDescriptionCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ValueRepresentation")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("SystemAnonymization", t =>
                        {
                            t.HasComment("系统 - 匿名化配置（需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("BasicDataTypeEnum")
                        .HasColumnType("int");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Value")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("ValueCN")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ParentId");

                    b.ToTable("SystemBasicData", t =>
                        {
                            t.HasComment("系统 - 签名模板场景配置  (需要同步)");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CalculateQuestions")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)")
                        .HasComment("自定义计算问题");

                    b.Property<int>("ClinicalOptionTypeEnum")
                        .HasColumnType("int")
                        .HasComment("临床数据选项类型(无，自定义)");

                    b.Property<int?>("ClinicalQuestionMarkEnum")
                        .HasColumnType("int")
                        .HasComment("问题标识");

                    b.Property<int>("ClinicalQuestionShowEnum")
                        .HasColumnType("int")
                        .HasComment("显示类型");

                    b.Property<string>("ClinicalQuestionType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("临床问题类型(分组，单选。)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("CustomCalculateMark")
                        .HasColumnType("int")
                        .HasComment("自定义计算标记");

                    b.Property<string>("DefaultValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("默认值");

                    b.Property<string>("DictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("字典Code");

                    b.Property<int?>("DigitPlaces")
                        .HasColumnType("int")
                        .HasComment("小数点位数");

                    b.Property<Guid?>("GroupId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("分组Id");

                    b.Property<bool>("IsCheckDate")
                        .HasColumnType("bit")
                        .HasComment("是否是检查日期");

                    b.Property<int>("IsRequired")
                        .HasColumnType("int")
                        .HasComment("是否必填");

                    b.Property<int?>("MaxAnswerLength")
                        .HasColumnType("int")
                        .HasComment("最大长度");

                    b.Property<int?>("MaxQuestionCount")
                        .HasColumnType("int")
                        .HasComment("最大行数");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("父问题Id");

                    b.Property<string>("ParentTriggerValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("父问题触发值");

                    b.Property<string>("QuestionEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题英文名称");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题名称");

                    b.Property<Guid?>("RelevanceId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联ID");

                    b.Property<string>("RelevanceValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("关联Value");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.Property<Guid>("SystemClinicalId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目临床数据Id");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("自定义选项");

                    b.Property<string>("Unit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("单位");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("GroupId");

                    b.ToTable("SystemClinicalQuestion", t =>
                        {
                            t.HasComment("系统临床数据问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ClinicalOptionTypeEnum")
                        .HasColumnType("int")
                        .HasComment("临床数据选项类型(无，自定义)");

                    b.Property<int?>("ClinicalTableQuestionMarkEnum")
                        .HasColumnType("int")
                        .HasComment("问题标识");

                    b.Property<string>("ClinicalTableQuestionType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("临床问题类型(分组，单选。)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DefaultValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("默认值");

                    b.Property<string>("DictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("字典Code");

                    b.Property<int?>("DigitPlaces")
                        .HasColumnType("int")
                        .HasComment("小数点位数");

                    b.Property<int>("IsRequired")
                        .HasColumnType("int")
                        .HasComment("是否必填");

                    b.Property<int?>("MaxAnswerLength")
                        .HasColumnType("int")
                        .HasComment("最大长度");

                    b.Property<string>("QuestionEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题英文名称");

                    b.Property<Guid>("QuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("外层问题Id");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题名称");

                    b.Property<Guid?>("RelevanceId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联ID");

                    b.Property<string>("RelevanceValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("关联Value");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.Property<Guid>("SystemClinicalId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("系统临床数据Id");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("自定义选项");

                    b.Property<string>("Unit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("单位");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("SystemClinicalTableQuestion", t =>
                        {
                            t.HasComment("系统临床表格问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SystemCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("SystemCriterionDictionaryCode", t =>
                        {
                            t.HasComment("系统标准 - 字典配置 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("ConfirmTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("ConfirmUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("SignFirstViewTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("SignText")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid>("SystemDocumentId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("ConfirmUserId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SystemDocumentId");

                    b.ToTable("SystemDocConfirmedIdentityUser", t =>
                        {
                            t.HasComment("后台 - 系统文档签署记录");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("NeedConfirmUserTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SystemDocumentId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("NeedConfirmUserTypeId");

                    b.HasIndex("SystemDocumentId");

                    b.ToTable("SystemDocNeedConfirmedUserType", t =>
                        {
                            t.HasComment("后台 - 系统文档需要签署用户类型");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("CurrentStaffTrainDays")
                        .HasColumnType("int");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<int>("DocUserSignType")
                        .HasColumnType("int");

                    b.Property<Guid>("FileTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsPublish")
                        .HasColumnType("bit");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int?>("NewStaffTrainDays")
                        .HasColumnType("int");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<int>("SignViewMinimumMinutes")
                        .HasColumnType("int");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("FileTypeId");

                    b.ToTable("SystemDocument", t =>
                        {
                            t.HasComment("后台 - 系统签署文档");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FileFormat")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FilePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<decimal?>("FileSize")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("OffLine")
                        .HasColumnType("bit");

                    b.Property<Guid>("SystemDocumentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SystemDocumentId");

                    b.ToTable("SystemDocumentAttachment", t =>
                        {
                            t.HasComment("后台 - 系统签署文档附件");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ApplicableProjectEnum")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("EndDate")
                        .HasColumnType("datetime2");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("NoticeContent")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("NoticeLevelEnum")
                        .HasColumnType("int");

                    b.Property<int>("NoticeModeEnum")
                        .HasColumnType("int");

                    b.Property<int>("NoticeStateEnum")
                        .HasColumnType("int");

                    b.Property<int>("NoticeTypeEnum")
                        .HasColumnType("int");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("PublishedTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("PublishedUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("StartDate")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("PublishedUserId");

                    b.ToTable("SystemNotice", t =>
                        {
                            t.HasComment("后台 - 系统通知");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SystemNoticeId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SystemNoticeId");

                    b.ToTable("SystemNoticeUserRead", t =>
                        {
                            t.HasComment("后台 - 系统通知用户读取记录");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("SystemNoticeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("UserTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SystemNoticeId");

                    b.HasIndex("UserTypeId");

                    b.ToTable("SystemNoticeUserType", t =>
                        {
                            t.HasComment("后台 - 系统通知用户类型配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("EnrollId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsJudgeDoctor")
                        .HasColumnType("bit")
                        .HasComment("是否是裁判医生  裁判医生单独加入");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("PlanReadingRatio")
                        .HasColumnType("int");

                    b.Property<int>("PlanSubjectCount")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DoctorUserId");

                    b.HasIndex("EnrollId")
                        .IsUnique();

                    b.HasIndex("TrialId");

                    b.ToTable("TaskAllocationRule", t =>
                        {
                            t.HasComment("项目阅片 - 分配规则");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("BlindSubjectNumberOfPlaces")
                        .HasColumnType("int");

                    b.Property<string>("BlindTrialSiteCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("IntervalWeeks")
                        .HasColumnType("int");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsGenerateGlobalTask")
                        .HasColumnType("bit");

                    b.Property<bool>("IsHaveReadingPeriod")
                        .HasColumnType("bit");

                    b.Property<bool>("IsSelfAnalysis")
                        .HasColumnType("bit");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("PlanSubjectCount")
                        .HasColumnType("int");

                    b.Property<int>("PlanVisitCount")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("TaskConsistentRule", t =>
                        {
                            t.HasComment("项目阅片 - 一致性分析生成任务配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("InfluenceTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("OptType")
                        .HasColumnType("int")
                        .HasComment("对影响任务进行的操作");

                    b.Property<Guid>("OriginalTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("InfluenceTaskId");

                    b.HasIndex("OriginalTaskId");

                    b.ToTable("TaskInfluence", t =>
                        {
                            t.HasComment("项目阅片 - 退回重阅影响");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b =>
                {
                    b.Property<Guid>("SeqId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("Anonymize")
                        .HasColumnType("bit");

                    b.Property<bool>("CPIStatus")
                        .HasColumnType("bit");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<long?>("FileSize")
                        .HasColumnType("bigint");

                    b.Property<string>("FrameOfReferenceUID")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("HtmlPath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ImageColumns")
                        .HasColumnType("int");

                    b.Property<int>("ImageRows")
                        .HasColumnType("int");

                    b.Property<string>("ImagerPixelSpacing")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("InstanceNumber")
                        .HasColumnType("int");

                    b.Property<DateTime?>("InstanceTime")
                        .HasColumnType("datetime2");

                    b.Property<int>("NumberOfFrames")
                        .HasColumnType("int");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PixelSpacing")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SeriesId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("SeriesInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SliceLocation")
                        .HasColumnType("int");

                    b.Property<string>("SliceThickness")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SopInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("StudyInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("WindowCenter")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("WindowWidth")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("SeqId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SeriesId");

                    b.HasIndex("StudyId");

                    b.ToTable("TaskInstance", t =>
                        {
                            t.HasComment("项目阅片 - 任务后处理Instance");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("AllocateTime")
                        .HasColumnType("datetime2")
                        .HasComment("分配时间");

                    b.Property<int>("AuditAdviceEnum")
                        .HasColumnType("int")
                        .HasComment("审核建议");

                    b.Property<DateTime?>("AuditSignTime")
                        .HasColumnType("datetime2")
                        .HasComment("审核通过时间");

                    b.Property<int>("AuditState")
                        .HasColumnType("int")
                        .HasComment("审核状态");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DialogCloseReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("对话关闭原因");

                    b.Property<string>("DisagreeReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("不同意重阅原因");

                    b.Property<int>("DoctorUserIdeaEnum")
                        .HasColumnType("int")
                        .HasComment("阅片人是否认同");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("文件名称");

                    b.Property<string>("ImagePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("图片路径");

                    b.Property<bool>("IsApplyHeavyReading")
                        .HasColumnType("bit")
                        .HasComment("是否申请重阅");

                    b.Property<bool>("IsAutoGenerate")
                        .HasColumnType("bit");

                    b.Property<bool>("IsClosedDialog")
                        .HasColumnType("bit")
                        .HasComment("是否关闭对话");

                    b.Property<bool>("IsHaveQuestion")
                        .HasColumnType("bit")
                        .HasComment("是否有问题");

                    b.Property<bool>("IsInvalid")
                        .HasColumnType("bit")
                        .HasComment("无效的 为True无效");

                    b.Property<bool>("IsSendMessage")
                        .HasColumnType("bit")
                        .HasComment("是否发送消息");

                    b.Property<Guid?>("LatestReplyUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("MedicalDialogCloseEnum")
                        .HasColumnType("int")
                        .HasComment("医学审核对话关闭原因");

                    b.Property<Guid?>("MedicalManagerUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("PDRelationTaskIdListStr")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("Questioning")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("质询问题");

                    b.Property<DateTime?>("SaveConclusionTime")
                        .HasColumnType("datetime2")
                        .HasComment("保存结论时间");

                    b.Property<DateTime?>("SaveQuestionTime")
                        .HasColumnType("datetime2")
                        .HasComment("保存问题的时间");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("LatestReplyUserId");

                    b.HasIndex("MedicalManagerUserId");

                    b.HasIndex("TrialId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("TaskMedicalReview", t =>
                        {
                            t.HasComment("项目阅片 - 医学审核");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("PlanGlobalCount")
                        .HasColumnType("int");

                    b.Property<int>("PlanJudgeCount")
                        .HasColumnType("int");

                    b.Property<int>("PlanTumorCount")
                        .HasColumnType("int");

                    b.Property<int>("PlanVisitCount")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DoctorUserId");

                    b.ToTable("TaskMedicalReviewRule", t =>
                        {
                            t.HasComment("项目阅片 - 一致性分析规则");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b =>
                {
                    b.Property<Guid>("SeqId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("AcquisitionNumber")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AcquisitionTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartExamined")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartForEdit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ImageOrientationPatient")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ImagePositionPatient")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ImageResizePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("ImagerPixelSpacing")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("InstanceCount")
                        .HasColumnType("int");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<string>("Modality")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ProtocolName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SequenceName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SeriesInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SeriesNumber")
                        .HasColumnType("int");

                    b.Property<DateTime?>("SeriesTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("SliceThickness")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("StudyInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TriggerTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("SeqId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("StudyId");

                    b.ToTable("TaskSeries", t =>
                        {
                            t.HasComment("项目阅片 - 任务后上传序列");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b =>
                {
                    b.Property<Guid>("SeqId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("AccessionNumber")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AcquisitionNumber")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AcquisitionTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartExamined")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartForEdit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("Code")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("InstanceCount")
                        .HasColumnType("int");

                    b.Property<string>("InstitutionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<string>("Modalities")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ModalityForEdit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientAge")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientBirthDate")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientId")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("PatientSex")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SeriesCount")
                        .HasColumnType("int");

                    b.Property<string>("StudyCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("StudyId")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("StudyInstanceUid")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("StudyTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TriggerTime")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("SeqId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("TaskStudy", t =>
                        {
                            t.HasComment("项目阅片 - 任务后上传检查");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("AttendedReviewerTypes")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BlindBaseLineName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BlindFollowUpPrefix")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BodyPartTypes")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<Guid?>("CROId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ChangeDefalutDays")
                        .HasColumnType("int");

                    b.Property<int>("ClinicalInformationTransmissionEnum")
                        .HasColumnType("int")
                        .HasComment("临床信息传输 1：系统录入  2：系统录入+PDF  0：无");

                    b.Property<int>("Code")
                        .HasColumnType("int");

                    b.Property<int>("CollectImagesEnum")
                        .HasColumnType("int")
                        .HasComment("阅片任务产生之前 采集影像");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DeclarationTypes")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<int?>("DigitPlaces")
                        .HasColumnType("int");

                    b.Property<string>("EmailAuthorizationCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("密码/授权码");

                    b.Property<string>("EmailFromEmail")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("发件箱账号");

                    b.Property<string>("EmailFromName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("发件人");

                    b.Property<string>("EmailSMTPServerAddress")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("SMTP服务器");

                    b.Property<int>("EmailSMTPServerPort")
                        .HasColumnType("int")
                        .HasComment("SMTP端口");

                    b.Property<int>("ExpectedPatients")
                        .HasColumnType("int");

                    b.Property<int>("Expedited")
                        .HasColumnType("int");

                    b.Property<string>("ExperimentName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("实验名称");

                    b.Property<int>("GRRReviewers")
                        .HasColumnType("int");

                    b.Property<string>("HeadPI")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("负责人PI");

                    b.Property<string>("ImageFormatList")
                        .IsRequired()
                        .HasMaxLength(2000)
                        .HasColumnType("nvarchar(2000)");

                    b.Property<string>("Indication")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("IndicationEnum")
                        .HasColumnType("int");

                    b.Property<Guid>("IndicationTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsCRAAuditClinicalInformation")
                        .HasColumnType("bit")
                        .HasComment("是否审核 临床信息");

                    b.Property<bool>("IsConfigureEmail")
                        .HasColumnType("bit")
                        .HasComment("是否配置过邮箱");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsEnrollementQualificationConfirm")
                        .HasColumnType("bit")
                        .HasComment("是否有 入组性确认");

                    b.Property<bool>("IsHaveFirstGiveMedicineDate")
                        .HasColumnType("bit")
                        .HasComment("是否 有基准时间（首次给药时间）");

                    b.Property<bool>("IsHaveSubjectAge")
                        .HasColumnType("bit")
                        .HasComment("是否有  受试者年龄");

                    b.Property<bool>("IsIQCAutoNextTask")
                        .HasColumnType("bit");

                    b.Property<bool>("IsIQCAutoTaskDistinguishType")
                        .HasColumnType("bit");

                    b.Property<bool>("IsImageConsistencyVerification")
                        .HasColumnType("bit")
                        .HasComment("影像一致性核查");

                    b.Property<bool>("IsImageExport")
                        .HasColumnType("bit")
                        .HasComment("影像导出");

                    b.Property<bool>("IsImageReplicationAcrossTrial")
                        .HasColumnType("bit")
                        .HasComment("跨项目复制");

                    b.Property<bool>("IsNoticeSubjectCodeRule")
                        .HasColumnType("bit")
                        .HasComment("是否 提醒受试者编号规则");

                    b.Property<bool>("IsPACSConnect")
                        .HasColumnType("bit");

                    b.Property<bool>("IsPDProgressView")
                        .HasColumnType("bit")
                        .HasComment("PD 进展是否显示   配置访视 是否显示 PD进展 (从而可以设置状态)");

                    b.Property<bool>("IsQCQuestionConfirmed")
                        .HasColumnType("bit");

                    b.Property<bool>("IsSPMJoinReReadingApproval")
                        .HasColumnType("bit")
                        .HasComment("SPM 参与重阅审批");

                    b.Property<bool>("IsSPMJoinReviewerSelect")
                        .HasColumnType("bit")
                        .HasComment("SPM 参与阅片人筛选");

                    b.Property<bool>("IsSPMJoinSiteSurvey")
                        .HasColumnType("bit")
                        .HasComment("SPM 参与中心调研");

                    b.Property<bool>("IsShowStudyName")
                        .HasColumnType("bit");

                    b.Property<bool>("IsSubjectExpeditedView")
                        .HasColumnType("bit")
                        .HasComment("配置Suject  Edit页面 是否显示 加急");

                    b.Property<bool>("IsSubjectSecondCodeView")
                        .HasColumnType("bit");

                    b.Property<bool>("IsSubjectSexView")
                        .HasColumnType("bit");

                    b.Property<bool>("IsTrialBasicLogicConfirmed")
                        .HasColumnType("bit");

                    b.Property<bool>("IsTrialPACSConfirmed")
                        .HasColumnType("bit");

                    b.Property<bool>("IsTrialProcessConfirmed")
                        .HasColumnType("bit");

                    b.Property<bool>("IsTrialStart")
                        .HasColumnType("bit");

                    b.Property<bool>("IsTrialUrgentConfirmed")
                        .HasColumnType("bit");

                    b.Property<bool>("IsUrgent")
                        .HasColumnType("bit");

                    b.Property<bool>("IsVerifyVisitImageDate")
                        .HasColumnType("bit")
                        .HasComment("是否 验证拍片日期");

                    b.Property<string>("MainResearchUnit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("主研单位");

                    b.Property<string>("MessageFromClient")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("MessageFromClientName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Modalitys")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("OutEnrollmentVisitName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("出组后计划外访视名称");

                    b.Property<Guid?>("PhaseId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("PlanSiteCount")
                        .HasColumnType("int");

                    b.Property<int>("PlanVisitCount")
                        .HasColumnType("int");

                    b.Property<string>("PreliminaryAuditReuploadText")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ProjectCycle")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("QCProcessEnum")
                        .HasColumnType("int")
                        .HasComment("QC流程  0 不审，1 单审，2双审");

                    b.Property<DateTime?>("QCQuestionConfirmedTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("QCQuestionConfirmedUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ReadingMode")
                        .HasColumnType("int")
                        .HasComment("阅片方式");

                    b.Property<string>("ResearchProgramNo")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("研究方案号");

                    b.Property<string>("ReviewAuditReuploadText")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("ReviewModeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ReviewProtocol")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ReviewProtocolName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("SponsorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("SubjectCodeRule")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("受试者编号具体规则");

                    b.Property<DateTime?>("SyncClinicalDataTime")
                        .HasColumnType("datetime2")
                        .HasComment("同步临床数据时间");

                    b.Property<decimal>("TimePointsPerPatient")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<int>("TotalReviewers")
                        .HasColumnType("int");

                    b.Property<string>("TrialCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("TrialEnrollStatus")
                        .HasColumnType("int")
                        .HasComment("入组那一块的状态");

                    b.Property<string>("TrialExtraConfigJsonStr")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<DateTime?>("TrialFinishTime")
                        .HasColumnType("datetime2")
                        .HasComment("项目完成时间");

                    b.Property<DateTime?>("TrialFinishedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("TrialStatusStr")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("启动状态");

                    b.Property<int>("TrialType")
                        .HasColumnType("int")
                        .HasComment("项目类型 1 正式项目、0 非正式项目  2是培训项目");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("VisitPlanConfirmed")
                        .HasColumnType("bit");

                    b.Property<string>("VitrualSiteCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CROId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("IndicationTypeId");

                    b.HasIndex("PhaseId");

                    b.HasIndex("QCQuestionConfirmedUserId");

                    b.HasIndex("ReviewModeId");

                    b.HasIndex("SponsorId");

                    b.ToTable("Trial", t =>
                        {
                            t.HasComment("项目 - 项目基本信息与配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("FrontAuditConfigId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsShow")
                        .HasColumnType("bit");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("TrialAuditShow");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsHandAdd")
                        .HasColumnType("bit");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("NameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialBodyPart", t =>
                        {
                            t.HasComment("项目 - 项目部位配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialClinicalDataSetId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialClinicalDataSetId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("TrialClinicalDataSetCriterion", t =>
                        {
                            t.HasComment("项目标准 - 临床数据配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CalculateQuestions")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)")
                        .HasComment("自定义计算问题");

                    b.Property<int>("ClinicalOptionTypeEnum")
                        .HasColumnType("int")
                        .HasComment("临床数据选项类型(无，自定义)");

                    b.Property<int?>("ClinicalQuestionMarkEnum")
                        .HasColumnType("int")
                        .HasComment("问题标识");

                    b.Property<int>("ClinicalQuestionShowEnum")
                        .HasColumnType("int")
                        .HasComment("显示类型");

                    b.Property<string>("ClinicalQuestionType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("临床问题类型(分组，单选。)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("CustomCalculateMark")
                        .HasColumnType("int")
                        .HasComment("自定义计算标记");

                    b.Property<string>("DefaultValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("默认值");

                    b.Property<string>("DictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("字典Code");

                    b.Property<int?>("DigitPlaces")
                        .HasColumnType("int")
                        .HasComment("小数点位数");

                    b.Property<Guid?>("GroupId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("分组Id");

                    b.Property<bool>("IsCheckDate")
                        .HasColumnType("bit")
                        .HasComment("是否是检查日期");

                    b.Property<int>("IsRequired")
                        .HasColumnType("int")
                        .HasComment("是否必填");

                    b.Property<int?>("MaxAnswerLength")
                        .HasColumnType("int")
                        .HasComment("最大长度");

                    b.Property<int?>("MaxQuestionCount")
                        .HasColumnType("int")
                        .HasComment("最大行数");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("父问题Id");

                    b.Property<string>("ParentTriggerValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("父问题触发值");

                    b.Property<string>("QuestionEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题英文名称");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题名称");

                    b.Property<Guid?>("RelevanceId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联ID");

                    b.Property<string>("RelevanceValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("关联Value");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.Property<Guid?>("SystemClinicalQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("系统临床问题Id");

                    b.Property<Guid>("TrialClinicalId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目临床数据Id");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("自定义选项");

                    b.Property<string>("Unit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("单位");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("GroupId");

                    b.HasIndex("TrialClinicalId");

                    b.ToTable("TrialClinicalQuestion", t =>
                        {
                            t.HasComment("项目临床数据问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CalculateQuestions")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)")
                        .HasComment("自定义计算问题");

                    b.Property<int?>("ClinicalCalculateMarkEnum")
                        .HasColumnType("int")
                        .HasComment("自定义计算标记");

                    b.Property<int>("ClinicalOptionTypeEnum")
                        .HasColumnType("int")
                        .HasComment("临床数据选项类型(无，自定义)");

                    b.Property<int?>("ClinicalTableQuestionMarkEnum")
                        .HasColumnType("int")
                        .HasComment("问题标识");

                    b.Property<string>("ClinicalTableQuestionType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("临床问题类型(分组，单选。)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DefaultValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("默认值");

                    b.Property<string>("DictionaryCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("字典Code");

                    b.Property<int?>("DigitPlaces")
                        .HasColumnType("int")
                        .HasComment("小数点位数");

                    b.Property<int>("IsRequired")
                        .HasColumnType("int")
                        .HasComment("是否必填");

                    b.Property<int?>("MaxAnswerLength")
                        .HasColumnType("int")
                        .HasComment("最大长度");

                    b.Property<string>("QuestionEnName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题英文名称");

                    b.Property<Guid>("QuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("外层问题Id");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("问题名称");

                    b.Property<Guid?>("RelevanceId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联ID");

                    b.Property<string>("RelevanceValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("关联Value");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int")
                        .HasComment("排序");

                    b.Property<Guid?>("SystemTableQuestionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("系统表格问题Id");

                    b.Property<Guid>("TrialClinicalId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("项目临床数据Id");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("自定义选项");

                    b.Property<string>("Unit")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("单位");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("TrialClinicalTableQuestion", t =>
                        {
                            t.HasComment("项目临床表格问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("AdditionalAssessmentType")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("CriterionType")
                        .HasColumnType("int");

                    b.Property<bool?>("IsSelected")
                        .HasColumnType("bit");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("TrialCriterionAdditionalAssessmentType", t =>
                        {
                            t.HasComment("项目 - 项目标准附加评估配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialCriterionId");

                    b.ToTable("TrialCriterionDictionaryCode");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CalledAE")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("IP")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool?>("IsTestOK")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("LatestTestTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Modality")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("Port")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("TrialDicomAE", t =>
                        {
                            t.HasComment("项目 - 项目DicomAE");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DictionaryId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("KeyName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("DictionaryId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialDictionary", t =>
                        {
                            t.HasComment("项目 - 项目字典关系表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("ConfirmTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("ConfirmUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("SignFirstViewTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("SignText")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid>("TrialDocumentId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("ConfirmUserId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialDocumentId");

                    b.ToTable("TrialDocConfirmedIdentityUser");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("NeedConfirmUserTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialDocumentId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("NeedConfirmUserTypeId");

                    b.HasIndex("TrialDocumentId");

                    b.ToTable("TrialDocNeedConfirmedUserType", t =>
                        {
                            t.HasComment("项目 - 项目文档需要签署的用户类型");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("CurrentStaffTrainDays")
                        .HasColumnType("int");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("FileTypeId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsPublish")
                        .HasColumnType("bit");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int?>("NewStaffTrainDays")
                        .HasColumnType("int");

                    b.Property<string>("Path")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SignViewMinimumMinutes")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("FileTypeId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialDocument", t =>
                        {
                            t.HasComment("项目 - 项目文档");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FileFormat")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FilePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<decimal?>("FileSize")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("OffLine")
                        .HasColumnType("bit");

                    b.Property<Guid>("TrialDocumentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialDocumentId");

                    b.ToTable("TrialDocumentAttachment", t =>
                        {
                            t.HasComment("项目签署文档附件");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialEmailNoticeConfigId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("TrialEmailNoticeConfigId");

                    b.HasIndex("UserId");

                    b.ToTable("TrialEmailBlackUser", t =>
                        {
                            t.HasComment("项目 - 项目邮件用户黑名单");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("AttachCNPath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AttachName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AttachNameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AttachPath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("AuthorizationCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("BusinessLevelEnum")
                        .HasColumnType("int");

                    b.Property<int>("BusinessModuleEnum")
                        .HasColumnType("int");

                    b.Property<int>("BusinessScenarioEnum")
                        .HasColumnType("int");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("CriterionTypeEnum")
                        .HasColumnType("int")
                        .HasComment("后续删除，需要维护数据");

                    b.Property<string>("CriterionTypeList")
                        .HasColumnType("nvarchar(max)")
                        .HasComment("邮件配置的多个标准");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("EmailCron")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int?>("EmailDelaySeconds")
                        .HasColumnType("int")
                        .HasComment("邮件延时秒数，比如一个事件触发，延迟多少s后才发邮件");

                    b.Property<string>("EmailHtmlContent")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("EmailHtmlContentCN")
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("EmailTopic")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("EmailTopicCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("EmailTypeEnum")
                        .HasColumnType("int");

                    b.Property<int>("EmailUrgentEnum")
                        .HasColumnType("int");

                    b.Property<string>("FromEmail")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FromName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsAutoSend")
                        .HasColumnType("bit");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsDistinguishCriteria")
                        .HasColumnType("bit");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsReturnRequired")
                        .HasColumnType("bit");

                    b.Property<string>("SMTPServerAddress")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("SMTPServerPort")
                        .HasColumnType("int");

                    b.Property<Guid?>("SysEmailNoticeConfigId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("下次版本删除");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SysEmailNoticeConfigId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("TrialEmailNoticeConfig", t =>
                        {
                            t.HasComment("项目 - 项目发送邮件配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("EmailUserType")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialEmailNoticeConfigId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("UserType")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("TrialEmailNoticeConfigId");

                    b.ToTable("TrialEmailNoticeUser", t =>
                        {
                            t.HasComment("项目 - 项目邮件收发配置用户类型");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("CriterionType")
                        .HasColumnType("int");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("EndTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("EvaluationContent")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ExperienceDataType")
                        .HasColumnType("int");

                    b.Property<int>("IndicationEnum")
                        .HasColumnType("int");

                    b.Property<Guid>("IndicationTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("OtherCriterion")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("OtherStages")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("PhaseId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("StartTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("VisitReadingCount")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("PhaseId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialExperience", t =>
                        {
                            t.HasComment("医生 - 项目临床经历");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("EvaluationCriteriaId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialExperienceId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("DoctorId");

                    b.HasIndex("EvaluationCriteriaId");

                    b.HasIndex("TrialExperienceId");

                    b.ToTable("TrialExperienceCriteria", t =>
                        {
                            t.HasComment("医生 - 项目临床经历评估标准");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("ConfirmTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("ExpireTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("FirstName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("InviteState")
                        .HasColumnType("int")
                        .HasComment("邀请状态");

                    b.Property<bool>("IsJoin")
                        .HasColumnType("bit");

                    b.Property<bool>("IsSystemUser")
                        .HasColumnType("bit");

                    b.Property<string>("LastName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("OrganizationName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Phone")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("RejectReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SystemUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("IdentityUser 表的用户Id");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("UserTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialExternalUser", t =>
                        {
                            t.HasComment("项目 - 项目外部人员");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FileFormat")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FilePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("FileSize")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialFileTypeId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联项目文件类型");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialFileTypeId");

                    b.ToTable("TrialFile", t =>
                        {
                            t.HasComment("项目文件 - 文件表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("ArchiveTypeEnum")
                        .HasColumnType("int")
                        .HasComment("报告、文档、记录");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("FileRecordId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("文件Id");

                    b.Property<DateOnly?>("FirstFinalDate")
                        .HasColumnType("date")
                        .HasComment("首次定稿日期");

                    b.Property<bool>("IsConfirmRecord")
                        .HasColumnType("bit")
                        .HasComment("是否确认收入项");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsSelfDefine")
                        .HasColumnType("bit")
                        .HasComment("是否自定义");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("NameCN")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<int>("SubIdentificationEnum")
                        .HasColumnType("int")
                        .HasComment("子类标识，是取那个表的数据");

                    b.Property<Guid?>("SysFileTypeId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联系统文件类型");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("TrialFileType", t =>
                        {
                            t.HasComment("项目文件 - 文件类型表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("HistoryFileRecordId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("历史记录");

                    b.Property<bool>("IsAuthorizedView")
                        .HasColumnType("bit")
                        .HasComment("是否授权查看");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("PDFFileRecordId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("定稿PDF");

                    b.Property<Guid?>("SignFileRecordId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("签名页");

                    b.Property<int>("State")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialFileTypeId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联项目文件类型");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Version")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("WordFileRecordId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("定稿Word");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("HistoryFileRecordId");

                    b.HasIndex("PDFFileRecordId");

                    b.HasIndex("SignFileRecordId");

                    b.HasIndex("WordFileRecordId");

                    b.ToTable("TrialFinalRecord", t =>
                        {
                            t.HasComment("项目文件 - 定稿记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("FileFormat")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FileName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FilePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("FileSize")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialFileTypeId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联项目文件类型");

                    b.Property<Guid>("TrialRecordId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialFileTypeId");

                    b.HasIndex("TrialRecordId");

                    b.ToTable("TrialHistoryRecordFile");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("IdentityUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<DateTime?>("JoinTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("RemoveTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("IdentityUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialIdentityUser", t =>
                        {
                            t.HasComment("项目用户表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("DicomStudyCount")
                        .HasColumnType("int");

                    b.Property<DateTime?>("DownloadEndTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("DownloadStartTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("IP")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ImageCount")
                        .HasColumnType("int");

                    b.Property<long>("ImageSize")
                        .HasColumnType("bigint");

                    b.Property<int>("ImageType")
                        .HasColumnType("int");

                    b.Property<bool>("IsSuccess")
                        .HasColumnType("bit");

                    b.Property<int>("NoneDicomStudyCount")
                        .HasColumnType("int");

                    b.Property<string>("SubjectCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TrialSiteCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("一致性分析的就显示一致性分析的中心");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("VisitName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialImageDownload", t =>
                        {
                            t.HasComment("项目 - 影像下载监控");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("HistoryFileRecordId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("历史文件");

                    b.Property<bool>("IsAuthorizedView")
                        .HasColumnType("bit")
                        .HasComment("是否授权查看");

                    b.Property<int>("State")
                        .HasColumnType("int");

                    b.Property<Guid?>("TrialFileRecordId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联具体的文件记录，记录里面有大小，格式，名称");

                    b.Property<Guid>("TrialFileTypeId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联项目文件类型");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("HistoryFileRecordId");

                    b.HasIndex("TrialFileRecordId");

                    b.ToTable("TrialNormalRecord", t =>
                        {
                            t.HasComment("项目文件 - 一般文件记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("AdjustmentMultiple")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool?>("IsNewTrial")
                        .HasColumnType("bit")
                        .HasComment("是否有 为新项目");

                    b.Property<string>("SowName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("SowPath")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<decimal>("TrialAdditional")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialPaymentPrice", t =>
                        {
                            t.HasComment("医生计费 - 项目支付配置");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool?>("IsConfirm")
                        .HasColumnType("bit");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<bool>("IsRequired")
                        .HasColumnType("bit");

                    b.Property<int>("LanguageType")
                        .HasColumnType("int")
                        .HasComment("语言类型");

                    b.Property<Guid?>("ParentId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ParentTriggerValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("QuestionName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("下拉框、文本、单选、多选");

                    b.Property<string>("TypeValue")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("ParentId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialQCQuestion", t =>
                        {
                            t.HasComment("项目 - 质控问题");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Answer")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("CurrentQCEnum")
                        .HasColumnType("int")
                        .HasComment("1代表第一个人QC数据  2 代表第二个人QC数据");

                    b.Property<int>("QCProcessEnum")
                        .HasColumnType("int");

                    b.Property<DateTime?>("SecondReviewTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialQCQuestionConfigureId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectVisitId");

                    b.HasIndex("TrialQCQuestionConfigureId");

                    b.ToTable("TrialQCQuestionAnswer", t =>
                        {
                            t.HasComment("项目 - 质控问题表单答案");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("Adjudication")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("AdjudicationIn24H")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("AdjudicationIn48H")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("Downtime")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Global")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("RefresherTraining")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Timepoint")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("TimepointIn24H")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("TimepointIn48H")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<decimal>("Training")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("TrialRevenuesPrice", t =>
                        {
                            t.HasComment("医生计费 - 项目工作量收入单价");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("Adjudication")
                        .HasColumnType("bit");

                    b.Property<bool>("AdjudicationIn24H")
                        .HasColumnType("bit");

                    b.Property<bool>("AdjudicationIn48H")
                        .HasColumnType("bit");

                    b.Property<bool>("Downtime")
                        .HasColumnType("bit");

                    b.Property<bool>("Global")
                        .HasColumnType("bit");

                    b.Property<bool>("RefresherTraining")
                        .HasColumnType("bit");

                    b.Property<Guid>("ReviewerId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("Timepoint")
                        .HasColumnType("bit");

                    b.Property<bool>("TimepointIn24H")
                        .HasColumnType("bit");

                    b.Property<bool>("TimepointIn48H")
                        .HasColumnType("bit");

                    b.Property<bool>("Training")
                        .HasColumnType("bit");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("WorkLoadDate")
                        .HasColumnType("datetime2");

                    b.Property<string>("YearMonth")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.ToTable("TrialRevenuesPriceVerification", t =>
                        {
                            t.HasComment("医生计费 - 项目收入价格验证");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsCompleted")
                        .HasColumnType("bit");

                    b.Property<string>("SignCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("SignCodeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("SignText")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<Guid?>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("TrialSign", t =>
                        {
                            t.HasComment("项目 - 项目操作签名表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<DateTime?>("EnabledTime")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<Guid?>("SiteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("TrialSiteAliasName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("TrialSiteCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("TrialSiteName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SiteId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialSite", t =>
                        {
                            t.HasComment("项目 - 项目中心表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("CallingAE")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("IP")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<string>("Port")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialSiteId");

                    b.ToTable("TrialSiteDicomAE", t =>
                        {
                            t.HasComment("项目 - 项目中心DicomAE表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("EquipmentTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ManufacturerName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Parameters")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ScannerType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialSiteSurveyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("EquipmentTypeId");

                    b.HasIndex("TrialSiteSurveyId");

                    b.ToTable("TrialSiteEquipmentSurvey", t =>
                        {
                            t.HasComment("项目 - 项目中心调研设备表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("AverageEngravingCycle")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<int>("EfficacyEvaluatorType")
                        .HasColumnType("int");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsConfirmImagingTechnologist")
                        .HasColumnType("bit");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsFollowStudyParameters")
                        .HasColumnType("bit");

                    b.Property<string>("LatestBackReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("NotConfirmReson")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("NotFollowReson")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Phone")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime?>("PreliminaryTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("PreliminaryUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("ReviewerTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid?>("ReviewerUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("State")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("UserName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("PreliminaryUserId");

                    b.HasIndex("ReviewerUserId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialSiteId");

                    b.ToTable("TrialSiteSurvey", t =>
                        {
                            t.HasComment("项目 - 项目中心调研表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialSiteId");

                    b.HasIndex("UserId");

                    b.ToTable("TrialSiteUser", t =>
                        {
                            t.HasComment("项目 - 项目中心用户角色关系表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Email")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FirstName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("InviteState")
                        .HasColumnType("int");

                    b.Property<bool>("IsGenerateAccount")
                        .HasColumnType("bit");

                    b.Property<bool>("IsGenerateSuccess")
                        .HasColumnType("bit");

                    b.Property<bool>("IsHistoryUser")
                        .HasColumnType("bit");

                    b.Property<bool?>("IsHistoryUserDeleted")
                        .HasColumnType("bit");

                    b.Property<bool?>("IsHistoryUserOriginDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsJoin")
                        .HasColumnType("bit");

                    b.Property<string>("LastName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("OrganizationName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Phone")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("SystemUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("IdentityUser 表的用户Id");

                    b.Property<int?>("TrialRoleCode")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialSiteSurveyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("UserTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialSiteSurveyId");

                    b.HasIndex("UserTypeId");

                    b.ToTable("TrialSiteUserSurvey", t =>
                        {
                            t.HasComment("项目 - 项目中心调研用户表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("NowState")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("OriginState")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("Reason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialStateChange", t =>
                        {
                            t.HasComment("项目 - 项目状态变更记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Memo")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("OptUserType")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("TrialStatus")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("TrialStatus", t =>
                        {
                            t.HasComment("项目 - 入组流程记录");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("HistoryFileRecordId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("历史文件");

                    b.Property<bool>("IsAuthorizedView")
                        .HasColumnType("bit")
                        .HasComment("是否授权查看");

                    b.Property<string>("Note")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int?>("State")
                        .HasColumnType("int");

                    b.Property<Guid?>("TrialFileRecordId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联具体的文件记录，记录里面有大小，格式，名称");

                    b.Property<Guid>("TrialFileTypeId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("关联项目文件类型");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int?>("TrianingCount")
                        .HasColumnType("int");

                    b.Property<DateOnly?>("TrianingDate")
                        .HasColumnType("date");

                    b.Property<string>("TrianingState")
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("培训效果");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("HistoryFileRecordId");

                    b.HasIndex("TrialFileRecordId");

                    b.ToTable("TrialTrianingRecord", t =>
                        {
                            t.HasComment("项目文件 - 培训记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("这里实际是UserRoleId");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialUserId");

                    b.HasIndex("UserId");

                    b.ToTable("TrialUser", t =>
                        {
                            t.HasComment("项目用户角色表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("VirturalSiteCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("TrialVirtualSiteCodeUpdate", t =>
                        {
                            t.HasComment("项目 - 虚拟中心编号更新记录");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("NewLesion")
                        .HasColumnType("int")
                        .HasComment("新病灶");

                    b.Property<int>("NonTargetLesions")
                        .HasColumnType("int")
                        .HasComment("非靶病灶");

                    b.Property<int>("OverallEfficacy")
                        .HasColumnType("int")
                        .HasComment("整体疗效");

                    b.Property<int>("TargetLesion")
                        .HasColumnType("int")
                        .HasComment("靶病灶");

                    b.HasKey("Id");

                    b.ToTable("TumorAssessment_IRECIST1Point1", t =>
                        {
                            t.HasComment("IRECIST1Point1肿瘤评估(系统标准)");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("NewLesion")
                        .HasColumnType("int")
                        .HasComment("新病灶");

                    b.Property<int>("NonTargetLesions")
                        .HasColumnType("int")
                        .HasComment("非靶病灶");

                    b.Property<int>("OverallEfficacy")
                        .HasColumnType("int")
                        .HasComment("整体疗效");

                    b.Property<int>("TargetLesion")
                        .HasColumnType("int")
                        .HasComment("靶病灶");

                    b.HasKey("Id");

                    b.ToTable("TumorAssessment_RECIST1Point1", t =>
                        {
                            t.HasComment("RECIST1Point1肿瘤评估(系统标准)");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("NewLesion")
                        .HasColumnType("int")
                        .HasComment("新病灶");

                    b.Property<int>("NonTargetLesions")
                        .HasColumnType("int")
                        .HasComment("非靶病灶");

                    b.Property<int>("OverallEfficacy")
                        .HasColumnType("int")
                        .HasComment("整体疗效");

                    b.Property<int>("TargetLesion")
                        .HasColumnType("int")
                        .HasComment("靶病灶");

                    b.HasKey("Id");

                    b.ToTable("TumorAssessment_RECIST1Point1BM", t =>
                        {
                            t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("QuestionDescription")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("QuestionType")
                        .HasColumnType("int");

                    b.Property<string>("ScreenshotListStr")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<int>("State")
                        .HasColumnType("int");

                    b.Property<Guid?>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("TrialSiteId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("VisitTaskId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("SubjectVisitId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialSiteId");

                    b.HasIndex("VisitTaskId");

                    b.ToTable("UserFeedBack", t =>
                        {
                            t.HasComment("后台 - 用户反馈");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("ActionIdentityUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("ActionUserName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("ActionUserType")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("IP")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("IPRegion")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsIgnoreUncommonly")
                        .HasColumnType("bit")
                        .HasComment("是否忽略异地登录");

                    b.Property<bool>("IsLoginUncommonly")
                        .HasColumnType("bit")
                        .HasComment("异地登录");

                    b.Property<string>("JsonObj")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("LoginFaildName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("LoginPassword")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid?>("LoginUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("后续删除");

                    b.Property<int>("OptType")
                        .HasColumnType("int");

                    b.Property<Guid?>("OptUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("被操作的人，自己操作的就是自己--后续删除");

                    b.Property<Guid?>("TargetIdentityUserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("被操作的对象  admin 修改张三信息 张三是被操作对象");

                    b.HasKey("Id");

                    b.HasIndex("ActionIdentityUserId");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TargetIdentityUserId");

                    b.ToTable("UserLog", t =>
                        {
                            t.HasComment("后台 - 用户账户操作日志");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("IdentityUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("PassWord")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("密码");

                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("用户Id");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("UserPassWordLog", t =>
                        {
                            t.HasComment("后台 - 用户修改密码");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("AutoCutNextTask")
                        .HasColumnType("bit")
                        .HasComment("自动切换下一个任务");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DoctorId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("医生生成账号后，会有值");

                    b.Property<string>("EMail")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("FirstName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("IdentityUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsUserRoleDisabled")
                        .HasColumnType("bit");

                    b.Property<string>("LastName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("UserName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("UserTypeEnum")
                        .HasColumnType("int");

                    b.Property<Guid>("UserTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DoctorId")
                        .IsUnique()
                        .HasFilter("[DoctorId] IS NOT NULL");

                    b.HasIndex("IdentityUserId");

                    b.HasIndex("UserTypeId");

                    b.ToTable("User", t =>
                        {
                            t.HasComment("后台 - 系统账户角色关系表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsEnable")
                        .HasColumnType("bit");

                    b.Property<int>("Order")
                        .HasColumnType("int");

                    b.Property<string>("PermissionStr")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("UserTypeEnum")
                        .HasColumnType("int");

                    b.Property<string>("UserTypeName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("UserTypeShortName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.ToTable("UserType", t =>
                        {
                            t.HasComment("后台 - 系统用户类型 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DictionaryId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("UserTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("DictionaryId");

                    b.HasIndex("UserTypeId");

                    b.ToTable("UserTypeGroup", t =>
                        {
                            t.HasComment("后台 - 用户类型组（需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("MenuId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("UserTypeId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("MenuId");

                    b.HasIndex("UserTypeId");

                    b.ToTable("UserTypeMenu", t =>
                        {
                            t.HasComment("后台 - 系统用户类型菜单中间关系表 （需要同步）");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsPitchOn")
                        .HasColumnType("bit")
                        .HasComment("是否为默认");

                    b.Property<int>("ShowOrder")
                        .HasColumnType("int");

                    b.Property<string>("TemplateName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("WL")
                        .HasColumnType("int");

                    b.Property<int>("WW")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("UserWLTemplate", t =>
                        {
                            t.HasComment("用户配置 - WL模板");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("EndDate")
                        .HasColumnType("datetime2");

                    b.Property<DateTime>("StartDate")
                        .HasColumnType("datetime2");

                    b.Property<int>("Status")
                        .HasColumnType("int");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("Vacation", t =>
                        {
                            t.HasComment("医生 - 假期安排");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("Code")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("验证码");

                    b.Property<int>("CodeType")
                        .HasColumnType("int")
                        .HasComment("什么类型的验证码   邮箱|手机");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("EmailOrPhone")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("发送的邮箱或者手机");

                    b.Property<DateTime>("ExpirationTime")
                        .HasColumnType("datetime2")
                        .HasComment("过期时间");

                    b.Property<bool>("HasSend")
                        .HasColumnType("bit");

                    b.Property<Guid>("UserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("VerificationCode", t =>
                        {
                            t.HasComment("后台 - 验证码记录");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("InconsistentCount")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("VisitPlanInfluenceStat", t =>
                        {
                            t.HasComment("项目配置 - 访视计划调整不一致数量记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("HistoryWindow")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsDicomStudy")
                        .HasColumnType("bit");

                    b.Property<bool>("IsOverWindowNowNotOverWindow")
                        .HasColumnType("bit");

                    b.Property<string>("Modality")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("NowWindow")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<Guid>("StudyId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("StudyTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("SubjectVisitId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("VisitPlanInfluenceStatId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("SubjectVisitId");

                    b.HasIndex("VisitPlanInfluenceStatId");

                    b.ToTable("VisitPlanInfluenceStudy", t =>
                        {
                            t.HasComment("项目配置 - 访视计划调整影像检查");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("BlindName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DeleteUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("DeletedTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<bool>("IsBaseLine")
                        .HasColumnType("bit");

                    b.Property<bool>("IsConfirmed")
                        .HasColumnType("bit");

                    b.Property<bool>("IsDeleted")
                        .HasColumnType("bit");

                    b.Property<bool>("IsHaveFirstConfirmed")
                        .HasColumnType("bit");

                    b.Property<bool>("NeedGlobal")
                        .HasColumnType("bit");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("VisitDay")
                        .HasColumnType("int");

                    b.Property<string>("VisitName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<decimal>("VisitNum")
                        .HasPrecision(18, 1)
                        .HasColumnType("decimal(18,1)");

                    b.Property<int>("VisitWindowLeft")
                        .HasColumnType("int");

                    b.Property<int>("VisitWindowRight")
                        .HasColumnType("int");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("VisitStage", t =>
                        {
                            t.HasComment("项目配置 - 访视记录");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("AllocateTime")
                        .HasColumnType("datetime2")
                        .HasComment("分配时间");

                    b.Property<int>("ArmEnum")
                        .HasColumnType("int")
                        .HasComment("0 代表 单重阅片 产生的任务    否则就是双重  任务 1 任务  2");

                    b.Property<Guid?>("BeforeConvertedTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("转换之前的任务Id(转化的任务才有该值)");

                    b.Property<string>("BlindSubjectCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("BlindTrialSiteCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("Code")
                        .HasColumnType("int");

                    b.Property<Guid?>("ConsistentAnalysisOriginalTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("针对产生的一致性任务而言，这个字段存储的是原始任务");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("DoctorUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("ExpetidEmailNoticeTime")
                        .HasColumnType("datetime2")
                        .HasComment("通知IR加急阅片时间");

                    b.Property<DateTime?>("FirstReadingTime")
                        .HasColumnType("datetime2")
                        .HasComment("首次阅片时间");

                    b.Property<int>("ImageStudyState")
                        .HasColumnType("int");

                    b.Property<bool>("IsAnalysisCreate")
                        .HasColumnType("bit")
                        .HasComment("是否是一致性分析产生");

                    b.Property<bool?>("IsAnalysisDiffToOriginalData")
                        .HasColumnType("bit")
                        .HasComment("阅片结果是否和原数据有差异");

                    b.Property<bool>("IsCanEditUrgentState")
                        .HasColumnType("bit")
                        .HasComment("是否和编辑加急状态");

                    b.Property<bool>("IsChangeTumorEvaluate")
                        .HasColumnType("bit")
                        .HasComment("是否修改了整体肿瘤评估");

                    b.Property<bool>("IsClinicalDataSign")
                        .HasColumnType("bit")
                        .HasComment("临床数据是否签名");

                    b.Property<bool>("IsFrontTaskNeedSignButNotSign")
                        .HasColumnType("bit")
                        .HasComment("前序任务需要签名 但是未签名");

                    b.Property<bool?>("IsGlobalHaveUpdate")
                        .HasColumnType("bit")
                        .HasComment("全局是否有更新");

                    b.Property<bool?>("IsGroupDiffArm1")
                        .HasColumnType("bit")
                        .HasComment("组件一致性和原Arm1是否有差异");

                    b.Property<bool?>("IsGroupDiffArm2")
                        .HasColumnType("bit")
                        .HasComment("组件一致性和原Arm2是否有差异");

                    b.Property<bool>("IsHistoryConvertedTask")
                        .HasColumnType("bit")
                        .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的");

                    b.Property<bool>("IsNeedClinicalDataSign")
                        .HasColumnType("bit")
                        .HasComment("临床数据");

                    b.Property<bool>("IsPMSetBack")
                        .HasColumnType("bit")
                        .HasComment("PM  对该任务进行了回退  影响的任务不设置");

                    b.Property<bool>("IsReReadingCreate")
                        .HasColumnType("bit")
                        .HasComment("是否是重阅产生的，方便过滤数据");

                    b.Property<bool>("IsReadClinicalData")
                        .HasColumnType("bit")
                        .HasComment("IR是否阅读临床数据");

                    b.Property<bool?>("IsSelfAnalysis")
                        .HasColumnType("bit")
                        .HasComment("是否是自身一致性");

                    b.Property<bool>("IsUrgent")
                        .HasColumnType("bit");

                    b.Property<string>("JudgeResultImagePath")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)")
                        .HasComment("裁判结果的图片路径");

                    b.Property<string>("JudgeResultRemark")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("裁判结果的备注");

                    b.Property<Guid?>("JudgeResultTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("在裁判任务上记录 裁判结果的任务ID（访视或者全局）");

                    b.Property<Guid?>("JudgeVisitTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("在访视或者全局任务上记录  裁判任务的Id");

                    b.Property<string>("PMBackReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("退回原因");

                    b.Property<string>("PastResultTaskIds")
                        .IsRequired()
                        .HasMaxLength(2000)
                        .HasColumnType("nvarchar(2000)")
                        .HasComment("既往任务Id  不包括自己");

                    b.Property<int?>("RandomOrder")
                        .HasColumnType("int")
                        .HasComment("完全随机阅片号");

                    b.Property<int>("ReReadingApplyState")
                        .HasColumnType("int")
                        .HasComment("重阅状态");

                    b.Property<int>("ReadingCategory")
                        .HasColumnType("int")
                        .HasComment("任务类型");

                    b.Property<int>("ReadingTaskState")
                        .HasColumnType("int")
                        .HasComment("任务阅片状态");

                    b.Property<string>("RelatedVisitTaskIds")
                        .IsRequired()
                        .HasMaxLength(2000)
                        .HasColumnType("nvarchar(2000)")
                        .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)");

                    b.Property<string>("ReportRelatedTaskIds")
                        .IsRequired()
                        .HasMaxLength(2000)
                        .HasColumnType("nvarchar(2000)")
                        .HasComment("报告任务关系 包含冻结");

                    b.Property<DateTime?>("SignTime")
                        .HasColumnType("datetime2")
                        .HasComment("签名时间");

                    b.Property<Guid?>("SouceReadModuleId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid?>("SourceSubjectVisitId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("任务来源访视Id  方便回更访视读片状态");

                    b.Property<Guid>("SubjectId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime?>("SuggesteFinishedTime")
                        .HasColumnType("datetime2");

                    b.Property<int>("TaskAllocationState")
                        .HasColumnType("int")
                        .HasComment("分配状态");

                    b.Property<string>("TaskBlindName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("TaskCode")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("TaskName")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("TaskState")
                        .HasColumnType("int");

                    b.Property<string>("TaskUrgentRemake")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)")
                        .HasComment("任务加急类型");

                    b.Property<int?>("TaskUrgentType")
                        .HasColumnType("int")
                        .HasComment("加急类型");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("TrialReadingCriterionId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<decimal>("VisitTaskNum")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)")
                        .HasComment("随访任务号   取访视的号  计划外是 访视+0.1   裁判任务在访视任务上+0.02   全局任务在截止访视号上+0.03   肿瘤0.06");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("DoctorUserId");

                    b.HasIndex("JudgeResultTaskId");

                    b.HasIndex("JudgeVisitTaskId");

                    b.HasIndex("SouceReadModuleId");

                    b.HasIndex("SourceSubjectVisitId");

                    b.HasIndex("SubjectId");

                    b.HasIndex("TrialId");

                    b.HasIndex("TrialReadingCriterionId");

                    b.ToTable("VisitTask", t =>
                        {
                            t.HasComment("项目阅片 - 阅片任务表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<bool>("IsCopyFollowForms")
                        .HasColumnType("bit")
                        .HasComment("仅仅包括全局和访视");

                    b.Property<bool>("IsCopyOrigenalForms")
                        .HasColumnType("bit");

                    b.Property<Guid?>("NewReReadingTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("重阅申请 产生的新任务Id");

                    b.Property<Guid>("OriginalReReadingTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("重阅原始任务Id  重阅会产生新的任务");

                    b.Property<Guid?>("RequestReReadingConfirmUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("RequestReReadingReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("RequestReReadingRejectReason")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<int>("RequestReReadingResultEnum")
                        .HasColumnType("int");

                    b.Property<DateTime>("RequestReReadingTime")
                        .HasColumnType("datetime2");

                    b.Property<int>("RequestReReadingType")
                        .HasColumnType("int")
                        .HasComment("申请回退类型");

                    b.Property<Guid>("RequestReReadingUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<Guid>("RootReReadingTaskId")
                        .HasColumnType("uniqueidentifier")
                        .HasComment("产生重阅的根任务Id");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("NewReReadingTaskId");

                    b.HasIndex("OriginalReReadingTaskId");

                    b.HasIndex("RequestReReadingConfirmUserId");

                    b.HasIndex("RequestReReadingUserId");

                    b.HasIndex("RootReReadingTaskId");

                    b.HasIndex("TrialId");

                    b.ToTable("VisitTaskReReading", t =>
                        {
                            t.HasComment("重阅申请流程记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("Max")
                        .HasColumnType("int");

                    b.Property<int>("Min")
                        .HasColumnType("int");

                    b.Property<decimal>("Price")
                        .HasPrecision(18, 2)
                        .HasColumnType("decimal(18,2)");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.ToTable("VolumeReward", t =>
                        {
                            t.HasComment("医生计费 - 奖励");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("Adjudication")
                        .HasColumnType("int");

                    b.Property<int>("AdjudicationIn24H")
                        .HasColumnType("int");

                    b.Property<int>("AdjudicationIn48H")
                        .HasColumnType("int");

                    b.Property<DateTime>("CreateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("CreateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("CreateUserType")
                        .HasColumnType("int");

                    b.Property<int>("DataFrom")
                        .HasColumnType("int");

                    b.Property<Guid>("DoctorId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<int>("Downtime")
                        .HasColumnType("int");

                    b.Property<int>("Global")
                        .HasColumnType("int");

                    b.Property<bool>("IsLock")
                        .HasColumnType("bit");

                    b.Property<int>("RefresherTraining")
                        .HasColumnType("int");

                    b.Property<int>("Timepoint")
                        .HasColumnType("int");

                    b.Property<int>("TimepointIn24H")
                        .HasColumnType("int");

                    b.Property<int>("TimepointIn48H")
                        .HasColumnType("int");

                    b.Property<int>("Training")
                        .HasColumnType("int");

                    b.Property<Guid>("TrialId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("UpdateTime")
                        .HasColumnType("datetime2");

                    b.Property<Guid>("UpdateUserId")
                        .HasColumnType("uniqueidentifier");

                    b.Property<DateTime>("WorkTime")
                        .HasColumnType("datetime2");

                    b.Property<string>("YearMonth")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.HasKey("Id");

                    b.HasIndex("CreateUserId");

                    b.HasIndex("TrialId");

                    b.ToTable("DoctorWorkload", t =>
                        {
                            t.HasComment("医生计费 - 工作量记录表");
                        });
                });

            modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b =>
                {
                    b.Property<Guid>("Id")
                        .HasColumnType("uniqueidentifier");

                    b.Property<string>("DateTimeList")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("nvarchar(400)");

                    b.Property<string>("StringList")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<DateOnly?>("TestDate")
                        .HasColumnType("date");

                    b.Property<string>("TestEnumList")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("nvarchar(1000)");

                    b.Property<string>("TestJsonObjectLsit")
                        .IsRequired()
                        .HasColumnType("nvarchar(max)");

                    b.HasKey("Id");

                    b.ToTable("TestLength");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor")
                        .WithMany("AttachmentList")
                        .HasForeignKey("DoctorId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Doctor");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("CheckChallengeDialogList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet")
                        .WithMany()
                        .HasForeignKey("SystemClinicalDataSetId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("ClinicalDataTrialSetList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalDataSystemSet");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet")
                        .WithMany()
                        .HasForeignKey("ClinicalDataTrialSetId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("ClinicalFormList")
                        .HasForeignKey("ReadingId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany("ClinicalFormList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalDataTrialSet");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Subject");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm")
                        .WithMany()
                        .HasForeignKey("ClinicalFormId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalForm");

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo")
                        .WithMany()
                        .HasForeignKey("RowId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalAnswerRowInfo");

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("CriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialReadingCriterionId");

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany()
                        .HasForeignKey("VisitTaskId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialReadingCriterion");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie")
                        .WithMany("DicomInstanceList")
                        .HasForeignKey("SeriesId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy")
                        .WithMany("InstanceList")
                        .HasForeignKey("StudyId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("DicomSerie");

                    b.Navigation("DicomStudy");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy")
                        .WithMany("SeriesList")
                        .HasForeignKey("StudyId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany()
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("DicomStudy");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany("StudyList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("StudyList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", null)
                        .WithMany("StudyList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Subject");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary")
                        .WithMany()
                        .HasForeignKey("ConfigTypeId");

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent")
                        .WithMany("ChildList")
                        .HasForeignKey("ParentId");

                    b.Navigation("ConfigDictionary");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Parent");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department")
                        .WithMany()
                        .HasForeignKey("DepartmentId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital")
                        .WithMany("DoctorList")
                        .HasForeignKey("HospitalId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position")
                        .WithMany()
                        .HasForeignKey("PositionId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank")
                        .WithMany()
                        .HasForeignKey("RankId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality")
                        .WithMany()
                        .HasForeignKey("SpecialityId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Department");

                    b.Navigation("Hospital");

                    b.Navigation("Position");

                    b.Navigation("Rank");

                    b.Navigation("Speciality");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor")
                        .WithMany("CriterionFileList")
                        .HasForeignKey("DoctorId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialReadingCriterionId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Doctor");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary")
                        .WithMany("DoctorDicRelationList")
                        .HasForeignKey("DictionaryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor")
                        .WithMany("DoctorDicRelationList")
                        .HasForeignKey("DoctorId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Dictionary");

                    b.Navigation("Doctor");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig")
                        .WithMany("EmailNoticeUserTypeList")
                        .HasForeignKey("EmailNoticeConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("EmailNoticeConfig");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor")
                        .WithMany("EnrollList")
                        .HasForeignKey("DoctorId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser")
                        .WithMany()
                        .HasForeignKey("DoctorUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("EnrollList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Doctor");

                    b.Navigation("DoctorUser");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor")
                        .WithMany()
                        .HasForeignKey("DoctorId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail")
                        .WithMany()
                        .HasForeignKey("TrialDetailId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Doctor");

                    b.Navigation("TrialDetail");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll")
                        .WithMany("EnrollReadingCategoryList")
                        .HasForeignKey("EnrollId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialReadingCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Enroll");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll")
                        .WithMany("EnrollReadingCriteriaList")
                        .HasForeignKey("EnrollId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialReadingCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Enroll");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site")
                        .WithMany()
                        .HasForeignKey("SiteId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Site");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog")
                        .WithMany()
                        .HasForeignKey("PublishLogId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("PublishLog");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany()
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("NoneDicomStudyList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", null)
                        .WithMany("NoneDicomStudyList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Subject");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy")
                        .WithMany("NoneDicomFileList")
                        .HasForeignKey("NoneDicomStudyId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy")
                        .WithMany("TaskNoneDicomFileList")
                        .HasForeignKey("OriginNoneDicomStudyId");

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany("TaskNoneDicomStudyFileList")
                        .HasForeignKey("VisitTaskId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("NoneDicomStudy");

                    b.Navigation("OriginNoneDicomStudy");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo")
                        .WithMany()
                        .HasForeignKey("OrganInfoId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("OrganInfo");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt")
                        .WithMany()
                        .HasForeignKey("HospitalId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("HospitalEnt");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet")
                        .WithMany()
                        .HasForeignKey("ClinicalDataTrialSetId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("PreviousHistoryList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalDataTrialSet");

                    b.Navigation("CreateUserRole");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet")
                        .WithMany()
                        .HasForeignKey("ClinicalDataTrialSetId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("PreviousOtherList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalDataTrialSet");

                    b.Navigation("CreateUserRole");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("PreviousPDFList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet")
                        .WithMany()
                        .HasForeignKey("ClinicalDataTrialSetId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null)
                        .WithMany("PreviousSurgeryList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalDataTrialSet");

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser")
                        .WithMany()
                        .HasForeignKey("LatestReplyUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("QCChallengeList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("LatestReplyUser");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge")
                        .WithMany("DialogList")
                        .HasForeignKey("QCChallengeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null)
                        .WithMany("QCChallengeDialogList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("QCChallenge");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion")
                        .WithMany()
                        .HasForeignKey("ParentId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("ParentQuestion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet")
                        .WithMany()
                        .HasForeignKey("ReadingPeriodSetId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany("ReadModuleList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("ReadModuleList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("ReadModuleList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialReadingCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("ReadingPeriodSet");

                    b.Navigation("Subject");

                    b.Navigation("SubjectVisit");

                    b.Navigation("Trial");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm")
                        .WithMany()
                        .HasForeignKey("ClinicalFormId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null)
                        .WithMany("ReadModuleCriterionFromList")
                        .HasForeignKey("ReadModuleId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalForm");

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet")
                        .WithMany("ReadingClinicalDataList")
                        .HasForeignKey("ClinicalDataTrialSetId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule")
                        .WithMany("ReadingClinicalDataList")
                        .HasForeignKey("ReadingId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("ReadingClinicalDataList")
                        .HasForeignKey("ReadingId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy")
                        .WithMany("ReadingClinicalDataList")
                        .HasForeignKey("StudyId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany("ClinicalDataList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("ReadingClinicalDataList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalDataTrialSet");

                    b.Navigation("CreateUserRole");

                    b.Navigation("DicomStudy");

                    b.Navigation("ReadModule");

                    b.Navigation("Subject");

                    b.Navigation("SubjectVisit");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData")
                        .WithMany("ReadingClinicalDataPDFList")
                        .HasForeignKey("ReadingClinicalDataId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("ReadingClinicalData");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet")
                        .WithMany()
                        .HasForeignKey("ClinicalDataTrialSetId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule")
                        .WithMany()
                        .HasForeignKey("ReadingId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany()
                        .HasForeignKey("ReadingId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy")
                        .WithMany("ReadingConsistentClinicalDataList")
                        .HasForeignKey("StudyId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany()
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalDataTrialSet");

                    b.Navigation("CreateUserRole");

                    b.Navigation("DicomStudy");

                    b.Navigation("ReadModule");

                    b.Navigation("Subject");

                    b.Navigation("SubjectVisit");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData")
                        .WithMany("ReadingClinicalDataPDFList")
                        .HasForeignKey("ReadingConsistentClinicalDataId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("ReadingConsistentClinicalData");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask")
                        .WithMany("GlobalVisitResultList")
                        .HasForeignKey("GlobalTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion")
                        .WithMany()
                        .HasForeignKey("QuestionId");

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany()
                        .HasForeignKey("TaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("GlobalVisitTask");

                    b.Navigation("TrialReadingQuestion");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview")
                        .WithMany("ReadingMedicalReviewDialogList")
                        .HasForeignKey("TaskMedicalReviewId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TaskMedicalReview");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview")
                        .WithMany()
                        .HasForeignKey("TaskMedicalReviewId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TaskMedicalReview");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion")
                        .WithMany()
                        .HasForeignKey("ParentId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("ParentQuestion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion")
                        .WithMany()
                        .HasForeignKey("ParentId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("ParentQuestion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy")
                        .WithMany()
                        .HasForeignKey("StudyId");

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null)
                        .WithMany("ReadingNoneDicomMarkList")
                        .HasForeignKey("VisitTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("NoneDicomStudy");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask")
                        .WithMany()
                        .HasForeignKey("OncologyTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany()
                        .HasForeignKey("VisitTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("OncologyVisitTask");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet")
                        .WithMany("ReadingPeriodPlanList")
                        .HasForeignKey("ReadingPeriodSetId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany()
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("ReadingPeriodSet");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage")
                        .WithMany()
                        .HasForeignKey("VisitStageId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("VisitStage");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet")
                        .WithMany("ReadingPeriodSites")
                        .HasForeignKey("ReadingPeriodSetId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite")
                        .WithMany()
                        .HasForeignKey("TrialSiteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("ReadingPeriodSet");

                    b.Navigation("TrialSite");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TrialReadingCriterionList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo")
                        .WithMany()
                        .HasForeignKey("GroupId");

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem")
                        .WithMany()
                        .HasForeignKey("ParentId");

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem")
                        .WithMany("ReadingQuestionSystemList")
                        .HasForeignKey("ReadingQuestionCriterionSystemId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem")
                        .WithMany()
                        .HasForeignKey("RelevanceId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("GroupInfo");

                    b.Navigation("ParentReadingQuestionSystem");

                    b.Navigation("ReadingQuestionCriterionSystem");

                    b.Navigation("RelevanceReadingQuestionSystem");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo")
                        .WithMany()
                        .HasForeignKey("GroupId");

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial")
                        .WithMany()
                        .HasForeignKey("ParentId");

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage")
                        .WithMany("ReadingQuestionList")
                        .HasForeignKey("ReadingCriterionPageId");

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial")
                        .WithMany()
                        .HasForeignKey("ReadingQuestionCriterionTrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial")
                        .WithMany()
                        .HasForeignKey("RelevanceId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("GroupInfo");

                    b.Navigation("ParentReadingQuestionTrial");

                    b.Navigation("ReadingCriterionPage");

                    b.Navigation("ReadingQuestionCriterionTrial");

                    b.Navigation("RelevanceReadingQuestionTrial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary")
                        .WithMany()
                        .HasForeignKey("DictionaryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Dictionary");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance")
                        .WithMany("ReadingTableAnswerRowInfoList")
                        .HasForeignKey("InstanceId")
                        .HasPrincipalKey("Id");

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "MergeRow")
                        .WithMany()
                        .HasForeignKey("MergeRowId");

                    b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo")
                        .WithMany()
                        .HasForeignKey("OrganInfoId");

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial")
                        .WithMany()
                        .HasForeignKey("QuestionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow")
                        .WithMany()
                        .HasForeignKey("SplitRowId");

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany("LesionList")
                        .HasForeignKey("VisitTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Instance");

                    b.Navigation("MergeRow");

                    b.Navigation("OrganInfo");

                    b.Navigation("ReadingQuestionTrial");

                    b.Navigation("SplitRow");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial")
                        .WithMany()
                        .HasForeignKey("QuestionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion")
                        .WithMany("LesionAnswerList")
                        .HasForeignKey("RowId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial")
                        .WithMany()
                        .HasForeignKey("TableQuestionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany()
                        .HasForeignKey("VisitTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Lesion");

                    b.Navigation("ReadingQuestionTrial");

                    b.Navigation("ReadingTableQuestionTrial");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion")
                        .WithMany()
                        .HasForeignKey("DependParentId");

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem")
                        .WithMany("ReadingTableQuestionTrialList")
                        .HasForeignKey("ReadingQuestionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("DependParentQuestion");

                    b.Navigation("ReadingQuestionSystem");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion")
                        .WithMany()
                        .HasForeignKey("DependParentId");

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial")
                        .WithMany("ReadingTableQuestionTrialList")
                        .HasForeignKey("ReadingQuestionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("DependParentQuestion");

                    b.Navigation("ReadingQuestionTrial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial")
                        .WithMany()
                        .HasForeignKey("ReadingQuestionTrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", null)
                        .WithMany("ReadingTaskQuestionAnswerList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany("ReadingTaskQuestionAnswerList")
                        .HasForeignKey("VisitTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("ReadingQuestionTrial");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial")
                        .WithMany()
                        .HasForeignKey("QuestionId");

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany("ReadingTaskQuestionMarkList")
                        .HasForeignKey("VisitTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("ReadingQuestionTrial");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany()
                        .HasForeignKey("TaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("CriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary")
                        .WithMany()
                        .HasForeignKey("DictionaryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Dictionary");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite")
                        .WithMany()
                        .HasForeignKey("TrialSiteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");

                    b.Navigation("TrialSite");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries")
                        .WithMany("SCPInstanceList")
                        .HasForeignKey("SeriesId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy")
                        .WithMany("InstanceList")
                        .HasForeignKey("StudyId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("SCPSeries");

                    b.Navigation("SCPStudy");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany()
                        .HasForeignKey("SubjectId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite")
                        .WithMany()
                        .HasForeignKey("TrialSiteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Subject");

                    b.Navigation("Trial");

                    b.Navigation("TrialSite");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy")
                        .WithMany("SeriesList")
                        .HasForeignKey("StudyId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("SCPStudy");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient")
                        .WithMany("SCPStudyList")
                        .HasForeignKey("PatientId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany()
                        .HasForeignKey("SubjectVisitId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite")
                        .WithMany()
                        .HasForeignKey("TrialSiteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Patient");

                    b.Navigation("SubjectVisit");

                    b.Navigation("Trial");

                    b.Navigation("TrialSite");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital")
                        .WithMany()
                        .HasForeignKey("HospitalId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Hospital");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy")
                        .WithMany("DicomStudyMonitorList")
                        .HasForeignKey("StudyId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy")
                        .WithMany()
                        .HasForeignKey("StudyId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy")
                        .WithMany()
                        .HasForeignKey("StudyId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany()
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany()
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("DicomStudy");

                    b.Navigation("NoneDicomStudy");

                    b.Navigation("Subject");

                    b.Navigation("SubjectVisit");

                    b.Navigation("TaskStudy");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit")
                        .WithMany()
                        .HasForeignKey("FinalSubjectVisitId");

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit")
                        .WithMany()
                        .HasForeignKey("LatestSubjectVisitId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("SubjectList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite")
                        .WithMany("SubjectList")
                        .HasForeignKey("TrialSiteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("FinalSubjectVisit");

                    b.Navigation("LatestSubjectVisit");

                    b.Navigation("Trial");

                    b.Navigation("TrialSite");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", null)
                        .WithMany("SubjectAdditionalEvaluationResult")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion")
                        .WithMany()
                        .HasForeignKey("TrialReadingQuestionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialReadingQuestion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany("SubjectCanceDoctorList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Subject");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject")
                        .WithMany("SubjectCriteriaEvaluationList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialReadingCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialReadingCriterion");

                    b.Navigation("subject");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", null)
                        .WithMany("SubjectCriteriaEvaluationVisitFilterList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("SubjectCriteriaEvaluationVisitFilterList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialReadingCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("SubjectVisit");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series")
                        .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList")
                        .HasForeignKey("SeriesId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study")
                        .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList")
                        .HasForeignKey("StudyId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany()
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialReadingCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Series");

                    b.Navigation("Study");

                    b.Navigation("SubjectVisit");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser")
                        .WithMany()
                        .HasForeignKey("DoctorUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser")
                        .WithMany("EarlierSubjectUserList")
                        .HasForeignKey("ReplacedSubjectUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany("SubjectDoctorList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("SubjectDoctorUserList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("DoctorUser");

                    b.Navigation("ReplacedSubjectUser");

                    b.Navigation("Subject");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser")
                        .WithMany()
                        .HasForeignKey("CurrentActionUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser")
                        .WithMany()
                        .HasForeignKey("ForwardUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit")
                        .WithMany()
                        .HasForeignKey("OutPlanPreviousVisitId");

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser")
                        .WithMany()
                        .HasForeignKey("PreliminaryAuditUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser")
                        .WithMany()
                        .HasForeignKey("ReviewAuditUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany("SubjectVisitList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser")
                        .WithMany()
                        .HasForeignKey("SubmitUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("SubjectVisitList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite")
                        .WithMany("SubjectVisitList")
                        .HasForeignKey("TrialSiteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("CurrentActionUser");

                    b.Navigation("ForwardUser");

                    b.Navigation("OutPlanPreviousVisit");

                    b.Navigation("PreliminaryAuditUser");

                    b.Navigation("ReviewAuditUser");

                    b.Navigation("Subject");

                    b.Navigation("SubmitUser");

                    b.Navigation("Trial");

                    b.Navigation("TrialSite");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("SubjectVisitImageBackRecordList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("SubjectVisit");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent")
                        .WithMany()
                        .HasForeignKey("ParentId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Parent");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin")
                        .WithMany()
                        .HasForeignKey("GroupId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("GroupQuestin");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser")
                        .WithMany("SystemDocConfirmedList")
                        .HasForeignKey("ConfirmUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument")
                        .WithMany("SystemDocConfirmedUserList")
                        .HasForeignKey("SystemDocumentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ConfirmUser");

                    b.Navigation("CreateUserRole");

                    b.Navigation("SystemDocument");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole")
                        .WithMany("SystemDocNeedConfirmedUserTypeList")
                        .HasForeignKey("NeedConfirmUserTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument")
                        .WithMany("NeedConfirmedUserTypeList")
                        .HasForeignKey("SystemDocumentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("SystemDocument");

                    b.Navigation("UserTypeRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType")
                        .WithMany()
                        .HasForeignKey("FileTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("FileType");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument")
                        .WithMany("SystemDocumentAttachmentList")
                        .HasForeignKey("SystemDocumentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("SystemDocument");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser")
                        .WithMany()
                        .HasForeignKey("PublishedUserId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("PublishedUser");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null)
                        .WithMany("NoticeUserReadList")
                        .HasForeignKey("SystemNoticeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null)
                        .WithMany("NoticeUserTypeList")
                        .HasForeignKey("SystemNoticeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType")
                        .WithMany()
                        .HasForeignKey("UserTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("NoticeUserType");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser")
                        .WithMany()
                        .HasForeignKey("DoctorUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll")
                        .WithOne("TaskAllocationRule")
                        .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("DoctorUser");

                    b.Navigation("Enroll");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TaskConsistentRuleList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialReadingCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask")
                        .WithMany()
                        .HasForeignKey("InfluenceTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask")
                        .WithMany("TaskInfluenceList")
                        .HasForeignKey("OriginalTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("InfluenceTask");

                    b.Navigation("OriginalTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries")
                        .WithMany("InstanceList")
                        .HasForeignKey("SeriesId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy")
                        .WithMany("InstanceList")
                        .HasForeignKey("StudyId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TaskSeries");

                    b.Navigation("TaskStudy");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser")
                        .WithMany()
                        .HasForeignKey("LatestReplyUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser")
                        .WithMany()
                        .HasForeignKey("MedicalManagerUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TaskMedicalReviewList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany("TaskMedicalReviewList")
                        .HasForeignKey("VisitTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("LatestReplyUser");

                    b.Navigation("MedicalManagerUser");

                    b.Navigation("Trial");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser")
                        .WithMany()
                        .HasForeignKey("DoctorUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("DoctorUser");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy")
                        .WithMany("SeriesList")
                        .HasForeignKey("StudyId")
                        .HasPrincipalKey("Id")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TaskStudy");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany("TaskStudyList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany("TaskStudyList")
                        .HasForeignKey("VisitTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Subject");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO")
                        .WithMany()
                        .HasForeignKey("CROId");

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType")
                        .WithMany()
                        .HasForeignKey("IndicationTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase")
                        .WithMany()
                        .HasForeignKey("PhaseId");

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser")
                        .WithMany()
                        .HasForeignKey("QCQuestionConfirmedUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode")
                        .WithMany()
                        .HasForeignKey("ReviewModeId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor")
                        .WithMany()
                        .HasForeignKey("SponsorId");

                    b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 =>
                        {
                            b1.Property<Guid>("TrialId")
                                .HasColumnType("uniqueidentifier");

                            b1.Property<int>("Id")
                                .ValueGeneratedOnAdd()
                                .HasColumnType("int");

                            b1.Property<string>("EnName")
                                .IsRequired()
                                .HasMaxLength(400)
                                .HasColumnType("nvarchar(400)");

                            b1.Property<bool>("IsChoose")
                                .HasColumnType("bit");

                            b1.Property<string>("Name")
                                .IsRequired()
                                .HasMaxLength(400)
                                .HasColumnType("nvarchar(400)");

                            b1.HasKey("TrialId", "Id");

                            b1.ToTable("Trial");

                            b1.ToJson("StudyNameList");

                            b1.WithOwner()
                                .HasForeignKey("TrialId");
                        });

                    b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 =>
                        {
                            b1.Property<Guid>("TrialId")
                                .HasColumnType("uniqueidentifier");

                            b1.Property<int>("Id")
                                .ValueGeneratedOnAdd()
                                .HasColumnType("int");

                            b1.Property<bool>("IsDefault")
                                .HasColumnType("bit");

                            b1.Property<string>("Name")
                                .IsRequired()
                                .HasMaxLength(400)
                                .HasColumnType("nvarchar(400)");

                            b1.Property<string>("TrialName")
                                .IsRequired()
                                .HasMaxLength(400)
                                .HasColumnType("nvarchar(400)");

                            b1.HasKey("TrialId", "Id");

                            b1.ToTable("Trial");

                            b1.ToJson("TrialObjectNameList");

                            b1.WithOwner()
                                .HasForeignKey("TrialId");
                        });

                    b.Navigation("CRO");

                    b.Navigation("CreateUserRole");

                    b.Navigation("IndicationType");

                    b.Navigation("Phase");

                    b.Navigation("QCQuestionConfirmedUser");

                    b.Navigation("ReviewMode");

                    b.Navigation("Sponsor");

                    b.Navigation("StudyNameList");

                    b.Navigation("TrialObjectNameList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TrialBodyPartList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet")
                        .WithMany("TrialClinicalDataSetCriteriaList")
                        .HasForeignKey("TrialClinicalDataSetId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany("TrialClinicalDataSetCriterionList")
                        .HasForeignKey("TrialReadingCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialClinicalDataSet");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin")
                        .WithMany()
                        .HasForeignKey("GroupId");

                    b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet")
                        .WithMany("TrialClinicalQuestionList")
                        .HasForeignKey("TrialClinicalId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("ClinicalDataTrialSet");

                    b.Navigation("CreateUserRole");

                    b.Navigation("GroupQuestin");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany("TrialCriterionAdditionalAssessmentTypeList")
                        .HasForeignKey("TrialReadingCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary")
                        .WithMany()
                        .HasForeignKey("DictionaryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TrialDicList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Dictionary");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User")
                        .WithMany()
                        .HasForeignKey("ConfirmUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument")
                        .WithMany("TrialDocConfirmedUserList")
                        .HasForeignKey("TrialDocumentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialDocument");

                    b.Navigation("User");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole")
                        .WithMany()
                        .HasForeignKey("NeedConfirmUserTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument")
                        .WithMany("NeedConfirmedUserTypeList")
                        .HasForeignKey("TrialDocumentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("TrialDocument");

                    b.Navigation("UserTypeRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType")
                        .WithMany()
                        .HasForeignKey("FileTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TrialDocumentList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("FileType");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument")
                        .WithMany("TrialDocumentAttachmentList")
                        .HasForeignKey("TrialDocumentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialDocument");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig")
                        .WithMany("TrialEmailBlackUserList")
                        .HasForeignKey("TrialEmailNoticeConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("TrialEmailNoticeConfig");

                    b.Navigation("User");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig")
                        .WithMany("TrialEmailNoticeConfigList")
                        .HasForeignKey("SysEmailNoticeConfigId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany()
                        .HasForeignKey("TrialReadingCriterionId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("SysEmailNoticeConfig");

                    b.Navigation("Trial");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig")
                        .WithMany("TrialEmailNoticeUserList")
                        .HasForeignKey("TrialEmailNoticeConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("TrialEmailNoticeConfig");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase")
                        .WithMany()
                        .HasForeignKey("PhaseId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Phase");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null)
                        .WithMany("TrialExperienceCriteriaList")
                        .HasForeignKey("DoctorId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria")
                        .WithMany()
                        .HasForeignKey("EvaluationCriteriaId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null)
                        .WithMany("ExperienceCriteriaList")
                        .HasForeignKey("TrialExperienceId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("EvaluationCriteria");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType")
                        .WithMany()
                        .HasForeignKey("TrialFileTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialFileType");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord")
                        .WithMany()
                        .HasForeignKey("HistoryFileRecordId");

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord")
                        .WithMany()
                        .HasForeignKey("PDFFileRecordId");

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord")
                        .WithMany()
                        .HasForeignKey("SignFileRecordId");

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord")
                        .WithMany()
                        .HasForeignKey("WordFileRecordId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("HistoryFileRecord");

                    b.Navigation("PDFFileRecord");

                    b.Navigation("SignFileRecord");

                    b.Navigation("WordFileRecord");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType")
                        .WithMany()
                        .HasForeignKey("TrialFileTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord")
                        .WithMany("TrialHistoryRecordFileList")
                        .HasForeignKey("TrialRecordId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord")
                        .WithMany("TrialHistoryRecordFileList")
                        .HasForeignKey("TrialRecordId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord")
                        .WithMany("TrialHistoryRecordFileList")
                        .HasForeignKey("TrialRecordId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialFileType");

                    b.Navigation("TrialFinalRecord");

                    b.Navigation("TrialNormalRecord");

                    b.Navigation("TrialTrianingRecord");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser")
                        .WithMany("UserTrialList")
                        .HasForeignKey("IdentityUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TrialIdentityUserList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("IdentityUser");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany()
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Subject");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord")
                        .WithMany()
                        .HasForeignKey("HistoryFileRecordId");

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord")
                        .WithMany()
                        .HasForeignKey("TrialFileRecordId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("HistoryFileRecord");

                    b.Navigation("TrialFileRecord");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion")
                        .WithMany()
                        .HasForeignKey("ParentId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("ParentQCQuestion");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany("TrialQCQuestionAnswerList")
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure")
                        .WithMany("TrialQCQuestionAnswerList")
                        .HasForeignKey("TrialQCQuestionConfigureId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("SubjectVisit");

                    b.Navigation("TrialQCQuestionConfigure");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site")
                        .WithMany("TrialSiteList")
                        .HasForeignKey("SiteId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TrialSiteList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Site");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite")
                        .WithMany("TrialSiteDicomAEList")
                        .HasForeignKey("TrialSiteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialSite");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType")
                        .WithMany()
                        .HasForeignKey("EquipmentTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey")
                        .WithMany("TrialSiteEquipmentSurveyList")
                        .HasForeignKey("TrialSiteSurveyId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("EquipmentType");

                    b.Navigation("TrialSiteSurvey");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser")
                        .WithMany()
                        .HasForeignKey("PreliminaryUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser")
                        .WithMany()
                        .HasForeignKey("ReviewerUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TrialSiteSurveyList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite")
                        .WithMany("TrialSiteSurveyList")
                        .HasForeignKey("TrialSiteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("PreliminaryUser");

                    b.Navigation("ReviewerUser");

                    b.Navigation("Trial");

                    b.Navigation("TrialSite");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TrialSiteUserList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite")
                        .WithMany("CRCUserList")
                        .HasForeignKey("TrialSiteId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");

                    b.Navigation("TrialSite");

                    b.Navigation("UserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey")
                        .WithMany("TrialSiteUserSurveyList")
                        .HasForeignKey("TrialSiteSurveyId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole")
                        .WithMany()
                        .HasForeignKey("UserTypeId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("TrialSiteSurvey");

                    b.Navigation("UserTypeRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TrialStateChangeList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("ClinicalTrialProjectDetails")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord")
                        .WithMany()
                        .HasForeignKey("HistoryFileRecordId");

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord")
                        .WithMany()
                        .HasForeignKey("TrialFileRecordId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("HistoryFileRecord");

                    b.Navigation("TrialFileRecord");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("TrialUserRoleList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser")
                        .WithMany("TrialUserRoleList")
                        .HasForeignKey("TrialUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole")
                        .WithMany("UserRoleTrials")
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");

                    b.Navigation("TrialUser");

                    b.Navigation("UserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany()
                        .HasForeignKey("SubjectId");

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany()
                        .HasForeignKey("SubjectVisitId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("UserFeedBackList")
                        .HasForeignKey("TrialId");

                    b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite")
                        .WithMany()
                        .HasForeignKey("TrialSiteId");

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
                        .WithMany("UserFeedBackList")
                        .HasForeignKey("VisitTaskId");

                    b.Navigation("CreateUserRole");

                    b.Navigation("Subject");

                    b.Navigation("SubjectVisit");

                    b.Navigation("Trial");

                    b.Navigation("TrialSite");

                    b.Navigation("VisitTask");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser")
                        .WithMany()
                        .HasForeignKey("ActionIdentityUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser")
                        .WithMany()
                        .HasForeignKey("TargetIdentityUserId");

                    b.Navigation("ActionIdentityUser");

                    b.Navigation("CreateUserRole");

                    b.Navigation("TargetIdentityUser");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null)
                        .WithOne("UserRole")
                        .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId");

                    b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser")
                        .WithMany("UserRoleList")
                        .HasForeignKey("IdentityUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole")
                        .WithMany("UserList")
                        .HasForeignKey("UserTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("IdentityUser");

                    b.Navigation("UserTypeRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group")
                        .WithMany()
                        .HasForeignKey("DictionaryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType")
                        .WithMany("UserTypeGroupList")
                        .HasForeignKey("UserTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Group");

                    b.Navigation("UserType");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu")
                        .WithMany("UserTypeMenuList")
                        .HasForeignKey("MenuId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType")
                        .WithMany("UserTypeMenuList")
                        .HasForeignKey("UserTypeId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Menu");

                    b.Navigation("UserType");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
                        .WithMany()
                        .HasForeignKey("SubjectVisitId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat")
                        .WithMany("InfluenceStudyList")
                        .HasForeignKey("VisitPlanInfluenceStatId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("SubjectVisit");

                    b.Navigation("VisitPlanInfluenceStat");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany()
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser")
                        .WithMany("VisitTaskList")
                        .HasForeignKey("DoctorUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask")
                        .WithMany()
                        .HasForeignKey("JudgeResultTaskId");

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask")
                        .WithMany("JudgeVisitList")
                        .HasForeignKey("JudgeVisitTaskId");

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule")
                        .WithMany("ModuleTaskList")
                        .HasForeignKey("SouceReadModuleId");

                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit")
                        .WithMany("VisitTaskList")
                        .HasForeignKey("SourceSubjectVisitId");

                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
                        .WithMany("SubjectVisitTaskList")
                        .HasForeignKey("SubjectId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("VisitTaskList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
                        .WithMany("VisitTaskList")
                        .HasForeignKey("TrialReadingCriterionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("DoctorUser");

                    b.Navigation("JudgeResultTask");

                    b.Navigation("JudgeVisitTask");

                    b.Navigation("ReadModule");

                    b.Navigation("SourceSubjectVisit");

                    b.Navigation("Subject");

                    b.Navigation("Trial");

                    b.Navigation("TrialReadingCriterion");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask")
                        .WithMany()
                        .HasForeignKey("NewReReadingTaskId");

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask")
                        .WithMany()
                        .HasForeignKey("OriginalReReadingTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser")
                        .WithMany()
                        .HasForeignKey("RequestReReadingConfirmUserId");

                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser")
                        .WithMany()
                        .HasForeignKey("RequestReReadingUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask")
                        .WithMany()
                        .HasForeignKey("RootReReadingTaskId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
                        .WithMany("VisitTaskReReadingList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");

                    b.Navigation("NewReReadingTask");

                    b.Navigation("OriginalReReadingTask");

                    b.Navigation("RequestReReadingConfirmUser");

                    b.Navigation("RequestReReadingUser");

                    b.Navigation("RootReReadingTask");

                    b.Navigation("Trial");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b =>
                {
                    b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
                        .WithMany()
                        .HasForeignKey("CreateUserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", null)
                        .WithMany("WorkloadList")
                        .HasForeignKey("TrialId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("CreateUserRole");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b =>
                {
                    b.Navigation("ReadingClinicalDataList");

                    b.Navigation("TrialClinicalDataSetCriteriaList");

                    b.Navigation("TrialClinicalQuestionList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b =>
                {
                    b.Navigation("ReadingTableAnswerRowInfoList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b =>
                {
                    b.Navigation("DicomInstanceList");

                    b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b =>
                {
                    b.Navigation("DicomStudyMonitorList");

                    b.Navigation("InstanceList");

                    b.Navigation("ReadingClinicalDataList");

                    b.Navigation("ReadingConsistentClinicalDataList");

                    b.Navigation("SeriesList");

                    b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b =>
                {
                    b.Navigation("ChildList");

                    b.Navigation("DoctorDicRelationList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b =>
                {
                    b.Navigation("AttachmentList");

                    b.Navigation("CriterionFileList");

                    b.Navigation("DoctorDicRelationList");

                    b.Navigation("EnrollList");

                    b.Navigation("TrialExperienceCriteriaList");

                    b.Navigation("UserRole")
                        .IsRequired();
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b =>
                {
                    b.Navigation("EmailNoticeUserTypeList");

                    b.Navigation("TrialEmailNoticeConfigList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b =>
                {
                    b.Navigation("EnrollReadingCategoryList");

                    b.Navigation("EnrollReadingCriteriaList");

                    b.Navigation("TaskAllocationRule")
                        .IsRequired();
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b =>
                {
                    b.Navigation("DoctorList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b =>
                {
                    b.Navigation("SystemDocConfirmedList");

                    b.Navigation("UserRoleList");

                    b.Navigation("UserTrialList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b =>
                {
                    b.Navigation("UserTypeMenuList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b =>
                {
                    b.Navigation("NoneDicomFileList");

                    b.Navigation("TaskNoneDicomFileList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b =>
                {
                    b.Navigation("DialogList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b =>
                {
                    b.Navigation("ModuleTaskList");

                    b.Navigation("ReadModuleCriterionFromList");

                    b.Navigation("ReadingClinicalDataList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b =>
                {
                    b.Navigation("ReadingClinicalDataPDFList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b =>
                {
                    b.Navigation("ReadingClinicalDataPDFList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b =>
                {
                    b.Navigation("ReadingQuestionList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b =>
                {
                    b.Navigation("ReadingPeriodPlanList");

                    b.Navigation("ReadingPeriodSites");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b =>
                {
                    b.Navigation("ReadingQuestionSystemList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b =>
                {
                    b.Navigation("TrialClinicalDataSetCriterionList");

                    b.Navigation("TrialCriterionAdditionalAssessmentTypeList");

                    b.Navigation("VisitTaskList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b =>
                {
                    b.Navigation("ReadingTableQuestionTrialList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b =>
                {
                    b.Navigation("ReadingTableQuestionTrialList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b =>
                {
                    b.Navigation("LesionAnswerList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b =>
                {
                    b.Navigation("SCPStudyList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b =>
                {
                    b.Navigation("SCPInstanceList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b =>
                {
                    b.Navigation("InstanceList");

                    b.Navigation("SeriesList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b =>
                {
                    b.Navigation("TrialSiteList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b =>
                {
                    b.Navigation("ClinicalDataList");

                    b.Navigation("ClinicalFormList");

                    b.Navigation("ReadModuleList");

                    b.Navigation("ReadingTaskQuestionAnswerList");

                    b.Navigation("StudyList");

                    b.Navigation("SubjectAdditionalEvaluationResult");

                    b.Navigation("SubjectCanceDoctorList");

                    b.Navigation("SubjectCriteriaEvaluationList");

                    b.Navigation("SubjectCriteriaEvaluationVisitFilterList");

                    b.Navigation("SubjectDoctorList");

                    b.Navigation("SubjectVisitList");

                    b.Navigation("SubjectVisitTaskList");

                    b.Navigation("TaskStudyList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b =>
                {
                    b.Navigation("EarlierSubjectUserList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b =>
                {
                    b.Navigation("CheckChallengeDialogList");

                    b.Navigation("ClinicalFormList");

                    b.Navigation("NoneDicomStudyList");

                    b.Navigation("PreviousHistoryList");

                    b.Navigation("PreviousOtherList");

                    b.Navigation("PreviousPDFList");

                    b.Navigation("PreviousSurgeryList");

                    b.Navigation("QCChallengeDialogList");

                    b.Navigation("QCChallengeList");

                    b.Navigation("ReadModuleList");

                    b.Navigation("ReadingClinicalDataList");

                    b.Navigation("StudyList");

                    b.Navigation("SubjectCriteriaEvaluationVisitFilterList");

                    b.Navigation("SubjectVisitImageBackRecordList");

                    b.Navigation("TrialQCQuestionAnswerList");

                    b.Navigation("VisitTaskList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b =>
                {
                    b.Navigation("NeedConfirmedUserTypeList");

                    b.Navigation("SystemDocConfirmedUserList");

                    b.Navigation("SystemDocumentAttachmentList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b =>
                {
                    b.Navigation("NoticeUserReadList");

                    b.Navigation("NoticeUserTypeList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b =>
                {
                    b.Navigation("ReadingMedicalReviewDialogList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b =>
                {
                    b.Navigation("InstanceList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b =>
                {
                    b.Navigation("InstanceList");

                    b.Navigation("SeriesList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b =>
                {
                    b.Navigation("ClinicalDataTrialSetList");

                    b.Navigation("ClinicalTrialProjectDetails");

                    b.Navigation("EnrollList");

                    b.Navigation("NoneDicomStudyList");

                    b.Navigation("ReadModuleList");

                    b.Navigation("ReadingClinicalDataList");

                    b.Navigation("StudyList");

                    b.Navigation("SubjectDoctorUserList");

                    b.Navigation("SubjectList");

                    b.Navigation("SubjectVisitList");

                    b.Navigation("TaskConsistentRuleList");

                    b.Navigation("TaskMedicalReviewList");

                    b.Navigation("TrialBodyPartList");

                    b.Navigation("TrialDicList");

                    b.Navigation("TrialDocumentList");

                    b.Navigation("TrialIdentityUserList");

                    b.Navigation("TrialReadingCriterionList");

                    b.Navigation("TrialSiteList");

                    b.Navigation("TrialSiteSurveyList");

                    b.Navigation("TrialSiteUserList");

                    b.Navigation("TrialStateChangeList");

                    b.Navigation("TrialUserRoleList");

                    b.Navigation("UserFeedBackList");

                    b.Navigation("VisitTaskList");

                    b.Navigation("VisitTaskReReadingList");

                    b.Navigation("WorkloadList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b =>
                {
                    b.Navigation("NeedConfirmedUserTypeList");

                    b.Navigation("TrialDocConfirmedUserList");

                    b.Navigation("TrialDocumentAttachmentList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b =>
                {
                    b.Navigation("TrialEmailBlackUserList");

                    b.Navigation("TrialEmailNoticeUserList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b =>
                {
                    b.Navigation("ExperienceCriteriaList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b =>
                {
                    b.Navigation("TrialHistoryRecordFileList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b =>
                {
                    b.Navigation("TrialUserRoleList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b =>
                {
                    b.Navigation("TrialHistoryRecordFileList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b =>
                {
                    b.Navigation("TrialQCQuestionAnswerList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b =>
                {
                    b.Navigation("CRCUserList");

                    b.Navigation("SubjectList");

                    b.Navigation("SubjectVisitList");

                    b.Navigation("TrialSiteDicomAEList");

                    b.Navigation("TrialSiteSurveyList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b =>
                {
                    b.Navigation("TrialSiteEquipmentSurveyList");

                    b.Navigation("TrialSiteUserSurveyList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b =>
                {
                    b.Navigation("TrialHistoryRecordFileList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b =>
                {
                    b.Navigation("UserRoleTrials");

                    b.Navigation("VisitTaskList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b =>
                {
                    b.Navigation("SystemDocNeedConfirmedUserTypeList");

                    b.Navigation("UserList");

                    b.Navigation("UserTypeGroupList");

                    b.Navigation("UserTypeMenuList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b =>
                {
                    b.Navigation("InfluenceStudyList");
                });

            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b =>
                {
                    b.Navigation("GlobalVisitResultList");

                    b.Navigation("JudgeVisitList");

                    b.Navigation("LesionList");

                    b.Navigation("ReadingNoneDicomMarkList");

                    b.Navigation("ReadingTaskQuestionAnswerList");

                    b.Navigation("ReadingTaskQuestionMarkList");

                    b.Navigation("TaskInfluenceList");

                    b.Navigation("TaskMedicalReviewList");

                    b.Navigation("TaskNoneDicomStudyFileList");

                    b.Navigation("TaskStudyList");

                    b.Navigation("UserFeedBackList");
                });
#pragma warning restore 612, 618
        }
    }
}
